1a8e1175bSopenharmony_ci/*
2a8e1175bSopenharmony_ci *  Elliptic curves over GF(p): curve-specific data and functions
3a8e1175bSopenharmony_ci *
4a8e1175bSopenharmony_ci *  Copyright The Mbed TLS Contributors
5a8e1175bSopenharmony_ci *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
6a8e1175bSopenharmony_ci */
7a8e1175bSopenharmony_ci
8a8e1175bSopenharmony_ci#include "common.h"
9a8e1175bSopenharmony_ci
10a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_WITH_MPI_UINT)
11a8e1175bSopenharmony_ci
12a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_LIGHT)
13a8e1175bSopenharmony_ci
14a8e1175bSopenharmony_ci#include "mbedtls/ecp.h"
15a8e1175bSopenharmony_ci#include "mbedtls/platform.h"
16a8e1175bSopenharmony_ci#include "mbedtls/platform_util.h"
17a8e1175bSopenharmony_ci#include "mbedtls/error.h"
18a8e1175bSopenharmony_ci
19a8e1175bSopenharmony_ci#include "mbedtls/platform.h"
20a8e1175bSopenharmony_ci
21a8e1175bSopenharmony_ci#include "constant_time_internal.h"
22a8e1175bSopenharmony_ci
23a8e1175bSopenharmony_ci#include "bn_mul.h"
24a8e1175bSopenharmony_ci#include "bignum_core.h"
25a8e1175bSopenharmony_ci#include "ecp_invasive.h"
26a8e1175bSopenharmony_ci
27a8e1175bSopenharmony_ci#include <string.h>
28a8e1175bSopenharmony_ci
29a8e1175bSopenharmony_ci#if !defined(MBEDTLS_ECP_ALT)
30a8e1175bSopenharmony_ci
31a8e1175bSopenharmony_ci#define ECP_MPI_INIT(_p, _n) { .p = (mbedtls_mpi_uint *) (_p), .s = 1, .n = (_n) }
32a8e1175bSopenharmony_ci
33a8e1175bSopenharmony_ci#define ECP_MPI_INIT_ARRAY(x)   \
34a8e1175bSopenharmony_ci    ECP_MPI_INIT(x, sizeof(x) / sizeof(mbedtls_mpi_uint))
35a8e1175bSopenharmony_ci
36a8e1175bSopenharmony_ci#define ECP_POINT_INIT_XY_Z0(x, y) { \
37a8e1175bSopenharmony_ci        ECP_MPI_INIT_ARRAY(x), ECP_MPI_INIT_ARRAY(y), ECP_MPI_INIT(NULL, 0) }
38a8e1175bSopenharmony_ci#define ECP_POINT_INIT_XY_Z1(x, y) { \
39a8e1175bSopenharmony_ci        ECP_MPI_INIT_ARRAY(x), ECP_MPI_INIT_ARRAY(y), ECP_MPI_INIT(mpi_one, 1) }
40a8e1175bSopenharmony_ci
41a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED) ||   \
42a8e1175bSopenharmony_ci    defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED) ||   \
43a8e1175bSopenharmony_ci    defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) ||   \
44a8e1175bSopenharmony_ci    defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED) ||   \
45a8e1175bSopenharmony_ci    defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED) ||   \
46a8e1175bSopenharmony_ci    defined(MBEDTLS_ECP_DP_BP256R1_ENABLED)   ||   \
47a8e1175bSopenharmony_ci    defined(MBEDTLS_ECP_DP_BP384R1_ENABLED)   ||   \
48a8e1175bSopenharmony_ci    defined(MBEDTLS_ECP_DP_BP512R1_ENABLED)   ||   \
49a8e1175bSopenharmony_ci    defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED) ||   \
50a8e1175bSopenharmony_ci    defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED) ||   \
51a8e1175bSopenharmony_ci    defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED)
52a8e1175bSopenharmony_ci/* For these curves, we build the group parameters dynamically. */
53a8e1175bSopenharmony_ci#define ECP_LOAD_GROUP
54a8e1175bSopenharmony_cistatic mbedtls_mpi_uint mpi_one[] = { 1 };
55a8e1175bSopenharmony_ci#endif
56a8e1175bSopenharmony_ci
57a8e1175bSopenharmony_ci/*
58a8e1175bSopenharmony_ci * Note: the constants are in little-endian order
59a8e1175bSopenharmony_ci * to be directly usable in MPIs
60a8e1175bSopenharmony_ci */
61a8e1175bSopenharmony_ci
62a8e1175bSopenharmony_ci/*
63a8e1175bSopenharmony_ci * Domain parameters for secp192r1
64a8e1175bSopenharmony_ci */
65a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED)
66a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192r1_p[] = {
67a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
68a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
69a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
70a8e1175bSopenharmony_ci};
71a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192r1_b[] = {
72a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB1, 0xB9, 0x46, 0xC1, 0xEC, 0xDE, 0xB8, 0xFE),
73a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x49, 0x30, 0x24, 0x72, 0xAB, 0xE9, 0xA7, 0x0F),
74a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE7, 0x80, 0x9C, 0xE5, 0x19, 0x05, 0x21, 0x64),
75a8e1175bSopenharmony_ci};
76a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192r1_gx[] = {
77a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x12, 0x10, 0xFF, 0x82, 0xFD, 0x0A, 0xFF, 0xF4),
78a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x88, 0xA1, 0x43, 0xEB, 0x20, 0xBF, 0x7C),
79a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF6, 0x90, 0x30, 0xB0, 0x0E, 0xA8, 0x8D, 0x18),
80a8e1175bSopenharmony_ci};
81a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192r1_gy[] = {
82a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x11, 0x48, 0x79, 0x1E, 0xA1, 0x77, 0xF9, 0x73),
83a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD5, 0xCD, 0x24, 0x6B, 0xED, 0x11, 0x10, 0x63),
84a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x78, 0xDA, 0xC8, 0xFF, 0x95, 0x2B, 0x19, 0x07),
85a8e1175bSopenharmony_ci};
86a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192r1_n[] = {
87a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x31, 0x28, 0xD2, 0xB4, 0xB1, 0xC9, 0x6B, 0x14),
88a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x36, 0xF8, 0xDE, 0x99, 0xFF, 0xFF, 0xFF, 0xFF),
89a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
90a8e1175bSopenharmony_ci};
91a8e1175bSopenharmony_ci#if MBEDTLS_ECP_FIXED_POINT_OPTIM == 1
92a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192r1_T_0_X[] = {
93a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x12, 0x10, 0xFF, 0x82, 0xFD, 0x0A, 0xFF, 0xF4),
94a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x88, 0xA1, 0x43, 0xEB, 0x20, 0xBF, 0x7C),
95a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF6, 0x90, 0x30, 0xB0, 0x0E, 0xA8, 0x8D, 0x18),
96a8e1175bSopenharmony_ci};
97a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192r1_T_0_Y[] = {
98a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x11, 0x48, 0x79, 0x1E, 0xA1, 0x77, 0xF9, 0x73),
99a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD5, 0xCD, 0x24, 0x6B, 0xED, 0x11, 0x10, 0x63),
100a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x78, 0xDA, 0xC8, 0xFF, 0x95, 0x2B, 0x19, 0x07),
101a8e1175bSopenharmony_ci};
102a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192r1_T_1_X[] = {
103a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x97, 0x9E, 0xE3, 0x60, 0x59, 0xD1, 0xC4, 0xC2),
104a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x91, 0xBD, 0x22, 0xD7, 0x2D, 0x07, 0xBD, 0xB6),
105a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x74, 0x2A, 0xCF, 0x33, 0xF0, 0xBE, 0xD1, 0xED),
106a8e1175bSopenharmony_ci};
107a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192r1_T_1_Y[] = {
108a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x88, 0x71, 0x4B, 0xA8, 0xED, 0x7E, 0xC9, 0x1A),
109a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x8E, 0x2A, 0xF6, 0xDF, 0x0E, 0xE8, 0x4C, 0x0F),
110a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC5, 0x35, 0xF7, 0x8A, 0xC3, 0xEC, 0xDE, 0x1E),
111a8e1175bSopenharmony_ci};
112a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192r1_T_2_X[] = {
113a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x67, 0xC2, 0x1D, 0x32, 0x8F, 0x10, 0xFB),
114a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBB, 0x2D, 0x17, 0xF3, 0xE4, 0xFE, 0xD8, 0x13),
115a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x55, 0x45, 0x10, 0x70, 0x2C, 0x3E, 0x52, 0x3E),
116a8e1175bSopenharmony_ci};
117a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192r1_T_2_Y[] = {
118a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x61, 0xF1, 0x04, 0x5D, 0xEE, 0xD4, 0x56, 0xE6),
119a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x78, 0xB7, 0x38, 0x27, 0x61, 0xAA, 0x81, 0x87),
120a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x71, 0x37, 0xD7, 0x0E, 0x29, 0x0E, 0x11, 0x14),
121a8e1175bSopenharmony_ci};
122a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192r1_T_3_X[] = {
123a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0x35, 0x52, 0xC6, 0x31, 0xB7, 0x27, 0xF5),
124a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3D, 0xD4, 0x15, 0x98, 0x0F, 0xE7, 0xF3, 0x6A),
125a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD3, 0x31, 0x70, 0x35, 0x09, 0xA0, 0x2B, 0xC2),
126a8e1175bSopenharmony_ci};
127a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192r1_T_3_Y[] = {
128a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0x75, 0xA7, 0x4C, 0x88, 0xCF, 0x5B, 0xE4),
129a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x17, 0x17, 0x48, 0x8D, 0xF2, 0xF0, 0x86, 0xED),
130a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x49, 0xCF, 0xFE, 0x6B, 0xB0, 0xA5, 0x06, 0xAB),
131a8e1175bSopenharmony_ci};
132a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192r1_T_4_X[] = {
133a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x18, 0x6A, 0xDC, 0x9A, 0x6D, 0x7B, 0x47, 0x2E),
134a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x12, 0xFC, 0x51, 0x12, 0x62, 0x66, 0x0B, 0x59),
135a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCD, 0x40, 0x93, 0xA0, 0xB5, 0x5A, 0x58, 0xD7),
136a8e1175bSopenharmony_ci};
137a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192r1_T_4_Y[] = {
138a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xEF, 0xCB, 0xAF, 0xDC, 0x0B, 0xA1, 0x26, 0xFB),
139a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDA, 0x36, 0x9D, 0xA3, 0xD7, 0x3B, 0xAD, 0x39),
140a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB4, 0x3B, 0x05, 0x9A, 0xA8, 0xAA, 0x69, 0xB2),
141a8e1175bSopenharmony_ci};
142a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192r1_T_5_X[] = {
143a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0xD9, 0xD1, 0x4D, 0x4A, 0x6E, 0x96, 0x1E),
144a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x17, 0x66, 0x32, 0x39, 0xC6, 0x57, 0x7D, 0xE6),
145a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x92, 0xA0, 0x36, 0xC2, 0x45, 0xF9, 0x00, 0x62),
146a8e1175bSopenharmony_ci};
147a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192r1_T_5_Y[] = {
148a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB4, 0xEF, 0x59, 0x46, 0xDC, 0x60, 0xD9, 0x8F),
149a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x24, 0xB0, 0xE9, 0x41, 0xA4, 0x87, 0x76, 0x89),
150a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x13, 0xD4, 0x0E, 0xB2, 0xFA, 0x16, 0x56, 0xDC),
151a8e1175bSopenharmony_ci};
152a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192r1_T_6_X[] = {
153a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x0A, 0x62, 0xD2, 0xB1, 0x34, 0xB2, 0xF1, 0x06),
154a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB2, 0xED, 0x55, 0xC5, 0x47, 0xB5, 0x07, 0x15),
155a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x17, 0xF6, 0x2F, 0x94, 0xC3, 0xDD, 0x54, 0x2F),
156a8e1175bSopenharmony_ci};
157a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192r1_T_6_Y[] = {
158a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFD, 0xA6, 0xD4, 0x8C, 0xA9, 0xCE, 0x4D, 0x2E),
159a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB9, 0x4B, 0x46, 0xCC, 0xB2, 0x55, 0xC8, 0xB2),
160a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3A, 0xAE, 0x31, 0xED, 0x89, 0x65, 0x59, 0x55),
161a8e1175bSopenharmony_ci};
162a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192r1_T_7_X[] = {
163a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCC, 0x0A, 0xD1, 0x1A, 0xC5, 0xF6, 0xEA, 0x43),
164a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x0C, 0xFC, 0x0C, 0x1A, 0xFB, 0xA0, 0xC8, 0x70),
165a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xEA, 0xFD, 0x53, 0x6F, 0x6D, 0xBF, 0xBA, 0xAF),
166a8e1175bSopenharmony_ci};
167a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192r1_T_7_Y[] = {
168a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x2D, 0xB0, 0x7D, 0x83, 0x96, 0xE3, 0xCB, 0x9D),
169a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6F, 0x6E, 0x55, 0x2C, 0x20, 0x53, 0x2F, 0x46),
170a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA6, 0x66, 0x00, 0x17, 0x08, 0xFE, 0xAC, 0x31),
171a8e1175bSopenharmony_ci};
172a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192r1_T_8_X[] = {
173a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x09, 0x12, 0x97, 0x3A, 0xC7, 0x57, 0x45, 0xCD),
174a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x38, 0x25, 0x99, 0x00, 0xF6, 0x97, 0xB4, 0x64),
175a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9B, 0x74, 0xE6, 0xE6, 0xA3, 0xDF, 0x9C, 0xCC),
176a8e1175bSopenharmony_ci};
177a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192r1_T_8_Y[] = {
178a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x32, 0xF4, 0x76, 0xD5, 0x5F, 0x2A, 0xFD, 0x85),
179a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x62, 0x80, 0x7E, 0x3E, 0xE5, 0xE8, 0xD6, 0x63),
180a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE2, 0xAD, 0x1E, 0x70, 0x79, 0x3E, 0x3D, 0x83),
181a8e1175bSopenharmony_ci};
182a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192r1_T_9_X[] = {
183a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x8E, 0x15, 0xBB, 0xB3, 0x42, 0x6A, 0xA1, 0x7C),
184a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9B, 0x58, 0xCB, 0x43, 0x25, 0x00, 0x14, 0x68),
185a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x06, 0x4E, 0x93, 0x11, 0xE0, 0x32, 0x54, 0x98),
186a8e1175bSopenharmony_ci};
187a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192r1_T_9_Y[] = {
188a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA7, 0x52, 0xA2, 0xB4, 0x57, 0x32, 0xB9, 0x11),
189a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x7D, 0x43, 0xA1, 0xB1, 0xFB, 0x01, 0xE1, 0xE7),
190a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA6, 0xFB, 0x5A, 0x11, 0xB8, 0xC2, 0x03, 0xE5),
191a8e1175bSopenharmony_ci};
192a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192r1_T_10_X[] = {
193a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1C, 0x2B, 0x71, 0x26, 0x4E, 0x7C, 0xC5, 0x32),
194a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1F, 0xF5, 0xD3, 0xA8, 0xE4, 0x95, 0x48, 0x65),
195a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x55, 0xAE, 0xD9, 0x5D, 0x9F, 0x6A, 0x22, 0xAD),
196a8e1175bSopenharmony_ci};
197a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192r1_T_10_Y[] = {
198a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD9, 0xCC, 0xA3, 0x4D, 0xA0, 0x1C, 0x34, 0xEF),
199a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA3, 0x3C, 0x62, 0xF8, 0x5E, 0xA6, 0x58, 0x7D),
200a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0x6E, 0x66, 0x8A, 0x3D, 0x17, 0xFF, 0x0F),
201a8e1175bSopenharmony_ci};
202a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192r1_T_11_X[] = {
203a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF7, 0xCD, 0xA8, 0xDD, 0xD1, 0x20, 0x5C, 0xEA),
204a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBF, 0xFE, 0x17, 0xE2, 0xCF, 0xEA, 0x63, 0xDE),
205a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x74, 0x51, 0xC9, 0x16, 0xDE, 0xB4, 0xB2, 0xDD),
206a8e1175bSopenharmony_ci};
207a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192r1_T_11_Y[] = {
208a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x59, 0xBE, 0x12, 0xD7, 0xA3, 0x0A, 0x50, 0x33),
209a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x53, 0x87, 0xC5, 0x8A, 0x76, 0x57, 0x07, 0x60),
210a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE5, 0x1F, 0xC6, 0x1B, 0x66, 0xC4, 0x3D, 0x8A),
211a8e1175bSopenharmony_ci};
212a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192r1_T_12_X[] = {
213a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x28, 0xA4, 0x85, 0x13, 0x8F, 0xA7, 0x35, 0x19),
214a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x58, 0x0D, 0xFD, 0xFF, 0x1B, 0xD1, 0xD6, 0xEF),
215a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBA, 0x7A, 0xD0, 0xC3, 0xB4, 0xEF, 0x39, 0x66),
216a8e1175bSopenharmony_ci};
217a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192r1_T_12_Y[] = {
218a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3A, 0xFE, 0xA5, 0x9C, 0x34, 0x30, 0x49, 0x40),
219a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDE, 0xC5, 0x39, 0x26, 0x06, 0xE3, 0x01, 0x17),
220a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE2, 0x2B, 0x66, 0xFC, 0x95, 0x5F, 0x35, 0xF7),
221a8e1175bSopenharmony_ci};
222a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192r1_T_13_X[] = {
223a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x58, 0xCF, 0x54, 0x63, 0x99, 0x57, 0x05, 0x45),
224a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x71, 0x6F, 0x00, 0x5F, 0x65, 0x08, 0x47, 0x98),
225a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x62, 0x2A, 0x90, 0x6D, 0x67, 0xC6, 0xBC, 0x45),
226a8e1175bSopenharmony_ci};
227a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192r1_T_13_Y[] = {
228a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x8A, 0x4D, 0x88, 0x0A, 0x35, 0x9E, 0x33, 0x9C),
229a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x7C, 0x17, 0x0C, 0xF8, 0xE1, 0x7A, 0x49, 0x02),
230a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA4, 0x44, 0x06, 0x8F, 0x0B, 0x70, 0x2F, 0x71),
231a8e1175bSopenharmony_ci};
232a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192r1_T_14_X[] = {
233a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x85, 0x4B, 0xCB, 0xF9, 0x8E, 0x6A, 0xDA, 0x1B),
234a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x29, 0x43, 0xA1, 0x3F, 0xCE, 0x17, 0xD2, 0x32),
235a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5D, 0x0D, 0xD2, 0x6C, 0x82, 0x37, 0xE5, 0xFC),
236a8e1175bSopenharmony_ci};
237a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192r1_T_14_Y[] = {
238a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x4A, 0x3C, 0xF4, 0x92, 0xB4, 0x8A, 0x95, 0x85),
239a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x85, 0x96, 0xF1, 0x0A, 0x34, 0x2F, 0x74, 0x7E),
240a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x7B, 0xA1, 0xAA, 0xBA, 0x86, 0x77, 0x4F, 0xA2),
241a8e1175bSopenharmony_ci};
242a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192r1_T_15_X[] = {
243a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE5, 0x7F, 0xEF, 0x60, 0x50, 0x80, 0xD7, 0xD4),
244a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x31, 0xAC, 0xC9, 0xFE, 0xEC, 0x0A, 0x1A, 0x9F),
245a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6B, 0x2F, 0xBE, 0x91, 0xD7, 0xB7, 0x38, 0x48),
246a8e1175bSopenharmony_ci};
247a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192r1_T_15_Y[] = {
248a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB1, 0xAE, 0x85, 0x98, 0xFE, 0x05, 0x7F, 0x9F),
249a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x91, 0xBE, 0xFD, 0x11, 0x31, 0x3D, 0x14, 0x13),
250a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x59, 0x75, 0xE8, 0x30, 0x01, 0xCB, 0x9B, 0x1C),
251a8e1175bSopenharmony_ci};
252a8e1175bSopenharmony_cistatic const mbedtls_ecp_point secp192r1_T[16] = {
253a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z1(secp192r1_T_0_X, secp192r1_T_0_Y),
254a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp192r1_T_1_X, secp192r1_T_1_Y),
255a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp192r1_T_2_X, secp192r1_T_2_Y),
256a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp192r1_T_3_X, secp192r1_T_3_Y),
257a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp192r1_T_4_X, secp192r1_T_4_Y),
258a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp192r1_T_5_X, secp192r1_T_5_Y),
259a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp192r1_T_6_X, secp192r1_T_6_Y),
260a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp192r1_T_7_X, secp192r1_T_7_Y),
261a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp192r1_T_8_X, secp192r1_T_8_Y),
262a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp192r1_T_9_X, secp192r1_T_9_Y),
263a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp192r1_T_10_X, secp192r1_T_10_Y),
264a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp192r1_T_11_X, secp192r1_T_11_Y),
265a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp192r1_T_12_X, secp192r1_T_12_Y),
266a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp192r1_T_13_X, secp192r1_T_13_Y),
267a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp192r1_T_14_X, secp192r1_T_14_Y),
268a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp192r1_T_15_X, secp192r1_T_15_Y),
269a8e1175bSopenharmony_ci};
270a8e1175bSopenharmony_ci#else
271a8e1175bSopenharmony_ci#define secp192r1_T NULL
272a8e1175bSopenharmony_ci#endif
273a8e1175bSopenharmony_ci#endif /* MBEDTLS_ECP_DP_SECP192R1_ENABLED */
274a8e1175bSopenharmony_ci
275a8e1175bSopenharmony_ci/*
276a8e1175bSopenharmony_ci * Domain parameters for secp224r1
277a8e1175bSopenharmony_ci */
278a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED)
279a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224r1_p[] = {
280a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
281a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF),
282a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
283a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00),
284a8e1175bSopenharmony_ci};
285a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224r1_b[] = {
286a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB4, 0xFF, 0x55, 0x23, 0x43, 0x39, 0x0B, 0x27),
287a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBA, 0xD8, 0xBF, 0xD7, 0xB7, 0xB0, 0x44, 0x50),
288a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x56, 0x32, 0x41, 0xF5, 0xAB, 0xB3, 0x04, 0x0C),
289a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_4(0x85, 0x0A, 0x05, 0xB4),
290a8e1175bSopenharmony_ci};
291a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224r1_gx[] = {
292a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0x1D, 0x5C, 0x11, 0xD6, 0x80, 0x32, 0x34),
293a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x22, 0x11, 0xC2, 0x56, 0xD3, 0xC1, 0x03, 0x4A),
294a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB9, 0x90, 0x13, 0x32, 0x7F, 0xBF, 0xB4, 0x6B),
295a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_4(0xBD, 0x0C, 0x0E, 0xB7),
296a8e1175bSopenharmony_ci};
297a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224r1_gy[] = {
298a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0x7E, 0x00, 0x85, 0x99, 0x81, 0xD5, 0x44),
299a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x64, 0x47, 0x07, 0x5A, 0xA0, 0x75, 0x43, 0xCD),
300a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE6, 0xDF, 0x22, 0x4C, 0xFB, 0x23, 0xF7, 0xB5),
301a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_4(0x88, 0x63, 0x37, 0xBD),
302a8e1175bSopenharmony_ci};
303a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224r1_n[] = {
304a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3D, 0x2A, 0x5C, 0x5C, 0x45, 0x29, 0xDD, 0x13),
305a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3E, 0xF0, 0xB8, 0xE0, 0xA2, 0x16, 0xFF, 0xFF),
306a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
307a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_4(0xFF, 0xFF, 0xFF, 0xFF),
308a8e1175bSopenharmony_ci};
309a8e1175bSopenharmony_ci#if MBEDTLS_ECP_FIXED_POINT_OPTIM == 1
310a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224r1_T_0_X[] = {
311a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0x1D, 0x5C, 0x11, 0xD6, 0x80, 0x32, 0x34),
312a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x22, 0x11, 0xC2, 0x56, 0xD3, 0xC1, 0x03, 0x4A),
313a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB9, 0x90, 0x13, 0x32, 0x7F, 0xBF, 0xB4, 0x6B),
314a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBD, 0x0C, 0x0E, 0xB7, 0x00, 0x00, 0x00, 0x00),
315a8e1175bSopenharmony_ci};
316a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224r1_T_0_Y[] = {
317a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0x7E, 0x00, 0x85, 0x99, 0x81, 0xD5, 0x44),
318a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x64, 0x47, 0x07, 0x5A, 0xA0, 0x75, 0x43, 0xCD),
319a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE6, 0xDF, 0x22, 0x4C, 0xFB, 0x23, 0xF7, 0xB5),
320a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x88, 0x63, 0x37, 0xBD, 0x00, 0x00, 0x00, 0x00),
321a8e1175bSopenharmony_ci};
322a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224r1_T_1_X[] = {
323a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE0, 0xF9, 0xB8, 0xD0, 0x3D, 0xD2, 0xD3, 0xFA),
324a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0xFD, 0x99, 0x26, 0x19, 0xFE, 0x13, 0x6E),
325a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1C, 0x0E, 0x4C, 0x48, 0x7C, 0xA2, 0x17, 0x01),
326a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3D, 0xA3, 0x13, 0x57, 0x00, 0x00, 0x00, 0x00),
327a8e1175bSopenharmony_ci};
328a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224r1_T_1_Y[] = {
329a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9F, 0x16, 0x5C, 0x8F, 0xAA, 0xED, 0x0F, 0x58),
330a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBF, 0xC5, 0x43, 0x34, 0x93, 0x05, 0x2A, 0x4C),
331a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE4, 0xE3, 0x6C, 0xCA, 0xC6, 0x14, 0xC2, 0x25),
332a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD3, 0x43, 0x6C, 0xD7, 0x00, 0x00, 0x00, 0x00),
333a8e1175bSopenharmony_ci};
334a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224r1_T_2_X[] = {
335a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC3, 0x5A, 0x98, 0x1E, 0xC8, 0xA5, 0x42, 0xA3),
336a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x98, 0x49, 0x56, 0x78, 0xF8, 0xEF, 0xED, 0x65),
337a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1B, 0xBB, 0x64, 0xB6, 0x4C, 0x54, 0x5F, 0xD1),
338a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x2F, 0x0C, 0x33, 0xCC, 0x00, 0x00, 0x00, 0x00),
339a8e1175bSopenharmony_ci};
340a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224r1_T_2_Y[] = {
341a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0x79, 0xCB, 0x2E, 0x08, 0xFF, 0xD8, 0xE6),
342a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x2E, 0x1F, 0xD4, 0xD7, 0x57, 0xE9, 0x39, 0x45),
343a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD8, 0xD6, 0x3B, 0x0A, 0x1C, 0x87, 0xB7, 0x6A),
344a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xEB, 0x30, 0xD8, 0x05, 0x00, 0x00, 0x00, 0x00),
345a8e1175bSopenharmony_ci};
346a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224r1_T_3_X[] = {
347a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAD, 0x79, 0x74, 0x9A, 0xE6, 0xBB, 0xC2, 0xC2),
348a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB4, 0x5B, 0xA6, 0x67, 0xC1, 0x91, 0xE7, 0x64),
349a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF0, 0xDF, 0x38, 0x82, 0x19, 0x2C, 0x4C, 0xCA),
350a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD1, 0x2E, 0x39, 0xC5, 0x00, 0x00, 0x00, 0x00),
351a8e1175bSopenharmony_ci};
352a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224r1_T_3_Y[] = {
353a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x99, 0x36, 0x78, 0x4E, 0xAE, 0x5B, 0x02, 0x76),
354a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x14, 0xF6, 0x8B, 0xF8, 0xF4, 0x92, 0x6B, 0x42),
355a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBA, 0x4D, 0x71, 0x35, 0xE7, 0x0C, 0x2C, 0x98),
356a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9B, 0xA5, 0x1F, 0xAE, 0x00, 0x00, 0x00, 0x00),
357a8e1175bSopenharmony_ci};
358a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224r1_T_4_X[] = {
359a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAF, 0x1C, 0x4B, 0xDF, 0x5B, 0xF2, 0x51, 0xB7),
360a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x05, 0x74, 0xB1, 0x5A, 0xC6, 0x0F, 0x0E, 0x61),
361a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE8, 0x24, 0x09, 0x62, 0xAF, 0xFC, 0xDB, 0x45),
362a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x43, 0xE1, 0x80, 0x55, 0x00, 0x00, 0x00, 0x00),
363a8e1175bSopenharmony_ci};
364a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224r1_T_4_Y[] = {
365a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3C, 0x82, 0xFE, 0xAD, 0xC3, 0xE5, 0xCF, 0xD8),
366a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x24, 0xA2, 0x62, 0x17, 0x76, 0xF0, 0x5A, 0xFA),
367a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3E, 0xB8, 0xE5, 0xAC, 0xB7, 0x66, 0x38, 0xAA),
368a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x97, 0xFD, 0x86, 0x05, 0x00, 0x00, 0x00, 0x00),
369a8e1175bSopenharmony_ci};
370a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224r1_T_5_X[] = {
371a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x59, 0xD3, 0x0C, 0x3C, 0xD1, 0x66, 0xB0, 0xF1),
372a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBC, 0x59, 0xB4, 0x8D, 0x90, 0x10, 0xB7, 0xA2),
373a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x96, 0x47, 0x9B, 0xE6, 0x55, 0x8A, 0xE4, 0xEE),
374a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB1, 0x49, 0xDB, 0x78, 0x00, 0x00, 0x00, 0x00),
375a8e1175bSopenharmony_ci};
376a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224r1_T_5_Y[] = {
377a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x41, 0x97, 0xED, 0xDE, 0xFF, 0xB3, 0xDF, 0x48),
378a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x10, 0xB9, 0x83, 0xB7, 0xEB, 0xBE, 0x40, 0x8D),
379a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAF, 0xD3, 0xD3, 0xCD, 0x0E, 0x82, 0x79, 0x3D),
380a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9B, 0x83, 0x1B, 0xF0, 0x00, 0x00, 0x00, 0x00),
381a8e1175bSopenharmony_ci};
382a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224r1_T_6_X[] = {
383a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3F, 0x22, 0xBB, 0x54, 0xD3, 0x31, 0x56, 0xFC),
384a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x80, 0x36, 0xE5, 0xE0, 0x89, 0x96, 0x8E, 0x71),
385a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE1, 0xEF, 0x0A, 0xED, 0xD0, 0x11, 0x4A, 0xFF),
386a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0x00, 0x57, 0x27, 0x00, 0x00, 0x00, 0x00),
387a8e1175bSopenharmony_ci};
388a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224r1_T_6_Y[] = {
389a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x13, 0xCA, 0x3D, 0xF7, 0x64, 0x9B, 0x6E, 0x85),
390a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x90, 0xE3, 0x70, 0x6B, 0x41, 0xD7, 0xED, 0x8F),
391a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x02, 0x44, 0x44, 0x80, 0xCE, 0x13, 0x37, 0x92),
392a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x94, 0x73, 0x80, 0x79, 0x00, 0x00, 0x00, 0x00),
393a8e1175bSopenharmony_ci};
394a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224r1_T_7_X[] = {
395a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB7, 0x4D, 0x70, 0x7D, 0x31, 0x0F, 0x1C, 0x58),
396a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0x35, 0x88, 0x47, 0xC4, 0x24, 0x78, 0x3F),
397a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBA, 0xF0, 0xCD, 0x91, 0x81, 0xB3, 0xDE, 0xB6),
398a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x04, 0xCE, 0xC6, 0xF7, 0x00, 0x00, 0x00, 0x00),
399a8e1175bSopenharmony_ci};
400a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224r1_T_7_Y[] = {
401a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE9, 0x9C, 0x2D, 0xE8, 0xD2, 0x00, 0x8F, 0x10),
402a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD5, 0x5E, 0x7C, 0x0E, 0x0C, 0x6E, 0x58, 0x02),
403a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAE, 0x81, 0x21, 0xCE, 0x43, 0xF4, 0x24, 0x3D),
404a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9E, 0xBC, 0xF0, 0xF4, 0x00, 0x00, 0x00, 0x00),
405a8e1175bSopenharmony_ci};
406a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224r1_T_8_X[] = {
407a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD6, 0x10, 0xC2, 0x74, 0x4A, 0x8F, 0x8A, 0xCF),
408a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x89, 0x67, 0xF4, 0x2B, 0x38, 0x2B, 0x35, 0x17),
409a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0xE7, 0x0C, 0xA9, 0xFA, 0x77, 0x5C, 0xBD),
410a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE0, 0x33, 0x19, 0x2B, 0x00, 0x00, 0x00, 0x00),
411a8e1175bSopenharmony_ci};
412a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224r1_T_8_Y[] = {
413a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE7, 0x3E, 0x96, 0x22, 0x53, 0xE1, 0xE9, 0xBE),
414a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE0, 0x13, 0xBC, 0xA1, 0x16, 0xEC, 0x01, 0x1A),
415a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9A, 0x00, 0xC9, 0x7A, 0xC3, 0x73, 0xA5, 0x45),
416a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE1, 0xF4, 0x5E, 0xC1, 0x00, 0x00, 0x00, 0x00),
417a8e1175bSopenharmony_ci};
418a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224r1_T_9_X[] = {
419a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA8, 0x95, 0xD6, 0xD9, 0x32, 0x30, 0x2B, 0xD0),
420a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x77, 0x42, 0x09, 0x05, 0x61, 0x2A, 0x7E, 0x82),
421a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x73, 0x84, 0xA2, 0x05, 0x88, 0x64, 0x65, 0xF9),
422a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x03, 0x2D, 0x90, 0xB3, 0x00, 0x00, 0x00, 0x00),
423a8e1175bSopenharmony_ci};
424a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224r1_T_9_Y[] = {
425a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x0A, 0xE7, 0x2E, 0x85, 0x55, 0x80, 0x7C, 0x79),
426a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x0F, 0xC1, 0xAC, 0x78, 0xB4, 0xAF, 0xFB, 0x6E),
427a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD3, 0xC3, 0x28, 0x8E, 0x79, 0x18, 0x1F, 0x58),
428a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0x46, 0xCF, 0x49, 0x00, 0x00, 0x00, 0x00),
429a8e1175bSopenharmony_ci};
430a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224r1_T_10_X[] = {
431a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x63, 0x5F, 0xA8, 0x6C, 0x46, 0x83, 0x43, 0xFA),
432a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0xA9, 0x93, 0x11, 0xB6, 0x07, 0x57, 0x74),
433a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x77, 0x2A, 0x9D, 0x03, 0x89, 0x7E, 0xD7, 0x3C),
434a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x7B, 0x8C, 0x62, 0xCF, 0x00, 0x00, 0x00, 0x00),
435a8e1175bSopenharmony_ci};
436a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224r1_T_10_Y[] = {
437a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x44, 0x2C, 0x13, 0x59, 0xCC, 0xFA, 0x84, 0x9E),
438a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x51, 0xB9, 0x48, 0xBC, 0x57, 0xC7, 0xB3, 0x7C),
439a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFC, 0x0A, 0x38, 0x24, 0x2E, 0x3A, 0x28, 0x25),
440a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBC, 0x0A, 0x43, 0xB8, 0x00, 0x00, 0x00, 0x00),
441a8e1175bSopenharmony_ci};
442a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224r1_T_11_X[] = {
443a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x59, 0x25, 0xAB, 0xC1, 0xEE, 0x70, 0x3C, 0xE1),
444a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF3, 0xDB, 0x45, 0x1D, 0x4A, 0x80, 0x75, 0x35),
445a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE8, 0x1F, 0x4D, 0x2D, 0x9A, 0x05, 0xF4, 0xCB),
446a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6B, 0x10, 0xF0, 0x5A, 0x00, 0x00, 0x00, 0x00),
447a8e1175bSopenharmony_ci};
448a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224r1_T_11_Y[] = {
449a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x35, 0x95, 0xE1, 0xDC, 0x15, 0x86, 0xC3, 0x7B),
450a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xEC, 0xDC, 0x27, 0xD1, 0x56, 0xA1, 0x14, 0x0D),
451a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x59, 0x0B, 0xD6, 0x77, 0x4E, 0x44, 0xA2, 0xF8),
452a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x94, 0x42, 0x71, 0x1F, 0x00, 0x00, 0x00, 0x00),
453a8e1175bSopenharmony_ci};
454a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224r1_T_12_X[] = {
455a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x30, 0x86, 0xB2, 0xB0, 0xC8, 0x2F, 0x7B, 0xFE),
456a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x96, 0xEF, 0xCB, 0xDB, 0xBC, 0x9E, 0x3B, 0xC5),
457a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1B, 0x03, 0x86, 0xDD, 0x5B, 0xF5, 0x8D, 0x46),
458a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x58, 0x95, 0x79, 0xD6, 0x00, 0x00, 0x00, 0x00),
459a8e1175bSopenharmony_ci};
460a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224r1_T_12_Y[] = {
461a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x84, 0x32, 0x14, 0xDA, 0x9B, 0x4F, 0x07, 0x39),
462a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB5, 0x3E, 0xFB, 0x06, 0xEE, 0xA7, 0x40, 0x40),
463a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x76, 0x1F, 0xDF, 0x71, 0x61, 0xFD, 0x8B, 0xBE),
464a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x80, 0x8B, 0xAB, 0x8B, 0x00, 0x00, 0x00, 0x00),
465a8e1175bSopenharmony_ci};
466a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224r1_T_13_X[] = {
467a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0x34, 0xB3, 0xB4, 0xBC, 0x9F, 0xB0, 0x5E),
468a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE6, 0x58, 0x48, 0xA8, 0x77, 0xBB, 0x13, 0x2F),
469a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x41, 0xC6, 0xF7, 0x34, 0xCC, 0x89, 0x21, 0x0A),
470a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCA, 0x33, 0xDD, 0x1F, 0x00, 0x00, 0x00, 0x00),
471a8e1175bSopenharmony_ci};
472a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224r1_T_13_Y[] = {
473a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCC, 0x81, 0xEF, 0xA4, 0xF2, 0x10, 0x0B, 0xCD),
474a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x83, 0xF7, 0x6E, 0x72, 0x4A, 0xDF, 0xDD, 0xE8),
475a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x67, 0x23, 0x0A, 0x53, 0x03, 0x16, 0x62, 0xD2),
476a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x0B, 0x76, 0xFD, 0x3C, 0x00, 0x00, 0x00, 0x00),
477a8e1175bSopenharmony_ci};
478a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224r1_T_14_X[] = {
479a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCB, 0x14, 0xA1, 0xFA, 0xA0, 0x18, 0xBE, 0x07),
480a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x03, 0x2A, 0xE1, 0xD7, 0xB0, 0x6C, 0xA0, 0xDE),
481a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD1, 0xC0, 0xB0, 0xC6, 0x63, 0x24, 0xCD, 0x4E),
482a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x33, 0x38, 0x2C, 0xB1, 0x00, 0x00, 0x00, 0x00),
483a8e1175bSopenharmony_ci};
484a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224r1_T_14_Y[] = {
485a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xEE, 0xCD, 0x7D, 0x20, 0x0C, 0xFE, 0xAC, 0xC3),
486a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x09, 0x97, 0x9F, 0xA2, 0xB6, 0x45, 0xF7, 0x7B),
487a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCA, 0x99, 0xF3, 0xD2, 0x20, 0x02, 0xEB, 0x04),
488a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x43, 0x18, 0x5B, 0x7B, 0x00, 0x00, 0x00, 0x00),
489a8e1175bSopenharmony_ci};
490a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224r1_T_15_X[] = {
491a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x2B, 0xDD, 0x77, 0x91, 0x60, 0xEA, 0xFD, 0xD3),
492a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x7D, 0xD3, 0xB5, 0xD6, 0x90, 0x17, 0x0E, 0x1A),
493a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0xF4, 0x28, 0xC1, 0xF2, 0x53, 0xF6, 0x63),
494a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x49, 0x58, 0xDC, 0x61, 0x00, 0x00, 0x00, 0x00),
495a8e1175bSopenharmony_ci};
496a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224r1_T_15_Y[] = {
497a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA8, 0x20, 0x01, 0xFB, 0xF1, 0xBD, 0x5F, 0x45),
498a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD0, 0x7F, 0x06, 0xDA, 0x11, 0xCB, 0xBA, 0xA6),
499a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA7, 0x41, 0x00, 0xA4, 0x1B, 0x30, 0x33, 0x79),
500a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF4, 0xFF, 0x27, 0xCA, 0x00, 0x00, 0x00, 0x00),
501a8e1175bSopenharmony_ci};
502a8e1175bSopenharmony_cistatic const mbedtls_ecp_point secp224r1_T[16] = {
503a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z1(secp224r1_T_0_X, secp224r1_T_0_Y),
504a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp224r1_T_1_X, secp224r1_T_1_Y),
505a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp224r1_T_2_X, secp224r1_T_2_Y),
506a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp224r1_T_3_X, secp224r1_T_3_Y),
507a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp224r1_T_4_X, secp224r1_T_4_Y),
508a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp224r1_T_5_X, secp224r1_T_5_Y),
509a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp224r1_T_6_X, secp224r1_T_6_Y),
510a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp224r1_T_7_X, secp224r1_T_7_Y),
511a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp224r1_T_8_X, secp224r1_T_8_Y),
512a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp224r1_T_9_X, secp224r1_T_9_Y),
513a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp224r1_T_10_X, secp224r1_T_10_Y),
514a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp224r1_T_11_X, secp224r1_T_11_Y),
515a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp224r1_T_12_X, secp224r1_T_12_Y),
516a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp224r1_T_13_X, secp224r1_T_13_Y),
517a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp224r1_T_14_X, secp224r1_T_14_Y),
518a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp224r1_T_15_X, secp224r1_T_15_Y),
519a8e1175bSopenharmony_ci};
520a8e1175bSopenharmony_ci#else
521a8e1175bSopenharmony_ci#define secp224r1_T NULL
522a8e1175bSopenharmony_ci#endif
523a8e1175bSopenharmony_ci#endif /* MBEDTLS_ECP_DP_SECP224R1_ENABLED */
524a8e1175bSopenharmony_ci
525a8e1175bSopenharmony_ci/*
526a8e1175bSopenharmony_ci * Domain parameters for secp256r1
527a8e1175bSopenharmony_ci */
528a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED)
529a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256r1_p[] = {
530a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
531a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00),
532a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
533a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF),
534a8e1175bSopenharmony_ci};
535a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256r1_b[] = {
536a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x4B, 0x60, 0xD2, 0x27, 0x3E, 0x3C, 0xCE, 0x3B),
537a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF6, 0xB0, 0x53, 0xCC, 0xB0, 0x06, 0x1D, 0x65),
538a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBC, 0x86, 0x98, 0x76, 0x55, 0xBD, 0xEB, 0xB3),
539a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE7, 0x93, 0x3A, 0xAA, 0xD8, 0x35, 0xC6, 0x5A),
540a8e1175bSopenharmony_ci};
541a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256r1_gx[] = {
542a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x96, 0xC2, 0x98, 0xD8, 0x45, 0x39, 0xA1, 0xF4),
543a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA0, 0x33, 0xEB, 0x2D, 0x81, 0x7D, 0x03, 0x77),
544a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF2, 0x40, 0xA4, 0x63, 0xE5, 0xE6, 0xBC, 0xF8),
545a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x47, 0x42, 0x2C, 0xE1, 0xF2, 0xD1, 0x17, 0x6B),
546a8e1175bSopenharmony_ci};
547a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256r1_gy[] = {
548a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0x51, 0xBF, 0x37, 0x68, 0x40, 0xB6, 0xCB),
549a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCE, 0x5E, 0x31, 0x6B, 0x57, 0x33, 0xCE, 0x2B),
550a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x16, 0x9E, 0x0F, 0x7C, 0x4A, 0xEB, 0xE7, 0x8E),
551a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9B, 0x7F, 0x1A, 0xFE, 0xE2, 0x42, 0xE3, 0x4F),
552a8e1175bSopenharmony_ci};
553a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256r1_n[] = {
554a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x51, 0x25, 0x63, 0xFC, 0xC2, 0xCA, 0xB9, 0xF3),
555a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x84, 0x9E, 0x17, 0xA7, 0xAD, 0xFA, 0xE6, 0xBC),
556a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
557a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF),
558a8e1175bSopenharmony_ci};
559a8e1175bSopenharmony_ci#if MBEDTLS_ECP_FIXED_POINT_OPTIM == 1
560a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256r1_T_0_X[] = {
561a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x96, 0xC2, 0x98, 0xD8, 0x45, 0x39, 0xA1, 0xF4),
562a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA0, 0x33, 0xEB, 0x2D, 0x81, 0x7D, 0x03, 0x77),
563a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF2, 0x40, 0xA4, 0x63, 0xE5, 0xE6, 0xBC, 0xF8),
564a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x47, 0x42, 0x2C, 0xE1, 0xF2, 0xD1, 0x17, 0x6B),
565a8e1175bSopenharmony_ci};
566a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256r1_T_0_Y[] = {
567a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0x51, 0xBF, 0x37, 0x68, 0x40, 0xB6, 0xCB),
568a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCE, 0x5E, 0x31, 0x6B, 0x57, 0x33, 0xCE, 0x2B),
569a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x16, 0x9E, 0x0F, 0x7C, 0x4A, 0xEB, 0xE7, 0x8E),
570a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9B, 0x7F, 0x1A, 0xFE, 0xE2, 0x42, 0xE3, 0x4F),
571a8e1175bSopenharmony_ci};
572a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256r1_T_1_X[] = {
573a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x70, 0xC8, 0xBA, 0x04, 0xB7, 0x4B, 0xD2, 0xF7),
574a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAB, 0xC6, 0x23, 0x3A, 0xA0, 0x09, 0x3A, 0x59),
575a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1D, 0x9D, 0x4C, 0xF9, 0x58, 0x23, 0xCC, 0xDF),
576a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x02, 0xED, 0x7B, 0x29, 0x87, 0x0F, 0xFA, 0x3C),
577a8e1175bSopenharmony_ci};
578a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256r1_T_1_Y[] = {
579a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x40, 0x69, 0xF2, 0x40, 0x0B, 0xA3, 0x98, 0xCE),
580a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAF, 0xA8, 0x48, 0x02, 0x0D, 0x1C, 0x12, 0x62),
581a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9B, 0xAF, 0x09, 0x83, 0x80, 0xAA, 0x58, 0xA7),
582a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC6, 0x12, 0xBE, 0x70, 0x94, 0x76, 0xE3, 0xE4),
583a8e1175bSopenharmony_ci};
584a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256r1_T_2_X[] = {
585a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x7D, 0x7D, 0xEF, 0x86, 0xFF, 0xE3, 0x37, 0xDD),
586a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDB, 0x86, 0x8B, 0x08, 0x27, 0x7C, 0xD7, 0xF6),
587a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x91, 0x54, 0x4C, 0x25, 0x4F, 0x9A, 0xFE, 0x28),
588a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5E, 0xFD, 0xF0, 0x6D, 0x37, 0x03, 0x69, 0xD6),
589a8e1175bSopenharmony_ci};
590a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256r1_T_2_Y[] = {
591a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x96, 0xD5, 0xDA, 0xAD, 0x92, 0x49, 0xF0, 0x9F),
592a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF9, 0x73, 0x43, 0x9E, 0xAF, 0xA7, 0xD1, 0xF3),
593a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x67, 0x41, 0x07, 0xDF, 0x78, 0x95, 0x3E, 0xA1),
594a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x22, 0x3D, 0xD1, 0xE6, 0x3C, 0xA5, 0xE2, 0x20),
595a8e1175bSopenharmony_ci};
596a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256r1_T_3_X[] = {
597a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBF, 0x6A, 0x5D, 0x52, 0x35, 0xD7, 0xBF, 0xAE),
598a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5A, 0xA2, 0xBE, 0x96, 0xF4, 0xF8, 0x02, 0xC3),
599a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA4, 0x20, 0x49, 0x54, 0xEA, 0xB3, 0x82, 0xDB),
600a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x2E, 0xDB, 0xEA, 0x02, 0xD1, 0x75, 0x1C, 0x62),
601a8e1175bSopenharmony_ci};
602a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256r1_T_3_Y[] = {
603a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF0, 0x85, 0xF4, 0x9E, 0x4C, 0xDC, 0x39, 0x89),
604a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x63, 0x6D, 0xC4, 0x57, 0xD8, 0x03, 0x5D, 0x22),
605a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x70, 0x7F, 0x2D, 0x52, 0x6F, 0xC9, 0xDA, 0x4F),
606a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9D, 0x64, 0xFA, 0xB4, 0xFE, 0xA4, 0xC4, 0xD7),
607a8e1175bSopenharmony_ci};
608a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256r1_T_4_X[] = {
609a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x2A, 0x37, 0xB9, 0xC0, 0xAA, 0x59, 0xC6, 0x8B),
610a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3F, 0x58, 0xD9, 0xED, 0x58, 0x99, 0x65, 0xF7),
611a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x88, 0x7D, 0x26, 0x8C, 0x4A, 0xF9, 0x05, 0x9F),
612a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9D, 0x73, 0x9A, 0xC9, 0xE7, 0x46, 0xDC, 0x00),
613a8e1175bSopenharmony_ci};
614a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256r1_T_4_Y[] = {
615a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF2, 0xD0, 0x55, 0xDF, 0x00, 0x0A, 0xF5, 0x4A),
616a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6A, 0xBF, 0x56, 0x81, 0x2D, 0x20, 0xEB, 0xB5),
617a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x11, 0xC1, 0x28, 0x52, 0xAB, 0xE3, 0xD1, 0x40),
618a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x24, 0x34, 0x79, 0x45, 0x57, 0xA5, 0x12, 0x03),
619a8e1175bSopenharmony_ci};
620a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256r1_T_5_X[] = {
621a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xEE, 0xCF, 0xB8, 0x7E, 0xF7, 0x92, 0x96, 0x8D),
622a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3D, 0x01, 0x8C, 0x0D, 0x23, 0xF2, 0xE3, 0x05),
623a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x59, 0x2E, 0xE3, 0x84, 0x52, 0x7A, 0x34, 0x76),
624a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE5, 0xA1, 0xB0, 0x15, 0x90, 0xE2, 0x53, 0x3C),
625a8e1175bSopenharmony_ci};
626a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256r1_T_5_Y[] = {
627a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD4, 0x98, 0xE7, 0xFA, 0xA5, 0x7D, 0x8B, 0x53),
628a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x91, 0x35, 0xD2, 0x00, 0xD1, 0x1B, 0x9F, 0x1B),
629a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3F, 0x69, 0x08, 0x9A, 0x72, 0xF0, 0xA9, 0x11),
630a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB3, 0xFE, 0x0E, 0x14, 0xDA, 0x7C, 0x0E, 0xD3),
631a8e1175bSopenharmony_ci};
632a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256r1_T_6_X[] = {
633a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x83, 0xF6, 0xE8, 0xF8, 0x87, 0xF7, 0xFC, 0x6D),
634a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x90, 0xBE, 0x7F, 0x3F, 0x7A, 0x2B, 0xD7, 0x13),
635a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCF, 0x32, 0xF2, 0x2D, 0x94, 0x6D, 0x42, 0xFD),
636a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAD, 0x9A, 0xE3, 0x5F, 0x42, 0xBB, 0x84, 0xED),
637a8e1175bSopenharmony_ci};
638a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256r1_T_6_Y[] = {
639a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFC, 0x95, 0x29, 0x73, 0xA1, 0x67, 0x3E, 0x02),
640a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE3, 0x30, 0x54, 0x35, 0x8E, 0x0A, 0xDD, 0x67),
641a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x03, 0xD7, 0xA1, 0x97, 0x61, 0x3B, 0xF8, 0x0C),
642a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF2, 0x33, 0x3C, 0x58, 0x55, 0x34, 0x23, 0xA3),
643a8e1175bSopenharmony_ci};
644a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256r1_T_7_X[] = {
645a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x99, 0x5D, 0x16, 0x5F, 0x7B, 0xBC, 0xBB, 0xCE),
646a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x61, 0xEE, 0x4E, 0x8A, 0xC1, 0x51, 0xCC, 0x50),
647a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1F, 0x0D, 0x4D, 0x1B, 0x53, 0x23, 0x1D, 0xB3),
648a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDA, 0x2A, 0x38, 0x66, 0x52, 0x84, 0xE1, 0x95),
649a8e1175bSopenharmony_ci};
650a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256r1_T_7_Y[] = {
651a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5B, 0x9B, 0x83, 0x0A, 0x81, 0x4F, 0xAD, 0xAC),
652a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x0F, 0xFF, 0x42, 0x41, 0x6E, 0xA9, 0xA2, 0xA0),
653a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x2F, 0xA1, 0x4F, 0x1F, 0x89, 0x82, 0xAA, 0x3E),
654a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF3, 0xB8, 0x0F, 0x6B, 0x8F, 0x8C, 0xD6, 0x68),
655a8e1175bSopenharmony_ci};
656a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256r1_T_8_X[] = {
657a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF1, 0xB3, 0xBB, 0x51, 0x69, 0xA2, 0x11, 0x93),
658a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x65, 0x4F, 0x0F, 0x8D, 0xBD, 0x26, 0x0F, 0xE8),
659a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB9, 0xCB, 0xEC, 0x6B, 0x34, 0xC3, 0x3D, 0x9D),
660a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE4, 0x5D, 0x1E, 0x10, 0xD5, 0x44, 0xE2, 0x54),
661a8e1175bSopenharmony_ci};
662a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256r1_T_8_Y[] = {
663a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x28, 0x9E, 0xB1, 0xF1, 0x6E, 0x4C, 0xAD, 0xB3),
664a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB7, 0xE3, 0xC2, 0x58, 0xC0, 0xFB, 0x34, 0x43),
665a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x25, 0x9C, 0xDF, 0x35, 0x07, 0x41, 0xBD, 0x19),
666a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0x6E, 0x10, 0xEC, 0x0E, 0xEC, 0xBB, 0xD6),
667a8e1175bSopenharmony_ci};
668a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256r1_T_9_X[] = {
669a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC8, 0xCF, 0xEF, 0x3F, 0x83, 0x1A, 0x88, 0xE8),
670a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x0B, 0x29, 0xB5, 0xB9, 0xE0, 0xC9, 0xA3, 0xAE),
671a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x88, 0x46, 0x1E, 0x77, 0xCD, 0x7E, 0xB3, 0x10),
672a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0x21, 0xD0, 0xD4, 0xA3, 0x16, 0x08, 0xEE),
673a8e1175bSopenharmony_ci};
674a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256r1_T_9_Y[] = {
675a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA1, 0xCA, 0xA8, 0xB3, 0xBF, 0x29, 0x99, 0x8E),
676a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD1, 0xF2, 0x05, 0xC1, 0xCF, 0x5D, 0x91, 0x48),
677a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9F, 0x01, 0x49, 0xDB, 0x82, 0xDF, 0x5F, 0x3A),
678a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE1, 0x06, 0x90, 0xAD, 0xE3, 0x38, 0xA4, 0xC4),
679a8e1175bSopenharmony_ci};
680a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256r1_T_10_X[] = {
681a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0xD2, 0x3A, 0xE8, 0x03, 0xC5, 0x6D, 0x5D),
682a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBE, 0x35, 0xD0, 0xAE, 0x1D, 0x7A, 0x9F, 0xCA),
683a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x33, 0x1E, 0xD2, 0xCB, 0xAC, 0x88, 0x27, 0x55),
684a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF0, 0xB9, 0x9C, 0xE0, 0x31, 0xDD, 0x99, 0x86),
685a8e1175bSopenharmony_ci};
686a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256r1_T_10_Y[] = {
687a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x61, 0xF9, 0x9B, 0x32, 0x96, 0x41, 0x58, 0x38),
688a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF9, 0x5A, 0x2A, 0xB8, 0x96, 0x0E, 0xB2, 0x4C),
689a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC1, 0x78, 0x2C, 0xC7, 0x08, 0x99, 0x19, 0x24),
690a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB7, 0x59, 0x28, 0xE9, 0x84, 0x54, 0xE6, 0x16),
691a8e1175bSopenharmony_ci};
692a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256r1_T_11_X[] = {
693a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDD, 0x38, 0x30, 0xDB, 0x70, 0x2C, 0x0A, 0xA2),
694a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x7C, 0x5C, 0x9D, 0xE9, 0xD5, 0x46, 0x0B, 0x5F),
695a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x83, 0x0B, 0x60, 0x4B, 0x37, 0x7D, 0xB9, 0xC9),
696a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5E, 0x24, 0xF3, 0x3D, 0x79, 0x7F, 0x6C, 0x18),
697a8e1175bSopenharmony_ci};
698a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256r1_T_11_Y[] = {
699a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x7F, 0xE5, 0x1C, 0x4F, 0x60, 0x24, 0xF7, 0x2A),
700a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xED, 0xD8, 0xE2, 0x91, 0x7F, 0x89, 0x49, 0x92),
701a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x97, 0xA7, 0x2E, 0x8D, 0x6A, 0xB3, 0x39, 0x81),
702a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x13, 0x89, 0xB5, 0x9A, 0xB8, 0x8D, 0x42, 0x9C),
703a8e1175bSopenharmony_ci};
704a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256r1_T_12_X[] = {
705a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x8D, 0x45, 0xE6, 0x4B, 0x3F, 0x4F, 0x1E, 0x1F),
706a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x47, 0x65, 0x5E, 0x59, 0x22, 0xCC, 0x72, 0x5F),
707a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF1, 0x93, 0x1A, 0x27, 0x1E, 0x34, 0xC5, 0x5B),
708a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x63, 0xF2, 0xA5, 0x58, 0x5C, 0x15, 0x2E, 0xC6),
709a8e1175bSopenharmony_ci};
710a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256r1_T_12_Y[] = {
711a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF4, 0x7F, 0xBA, 0x58, 0x5A, 0x84, 0x6F, 0x5F),
712a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAD, 0xA6, 0x36, 0x7E, 0xDC, 0xF7, 0xE1, 0x67),
713a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x04, 0x4D, 0xAA, 0xEE, 0x57, 0x76, 0x3A, 0xD3),
714a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x4E, 0x7E, 0x26, 0x18, 0x22, 0x23, 0x9F, 0xFF),
715a8e1175bSopenharmony_ci};
716a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256r1_T_13_X[] = {
717a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1D, 0x4C, 0x64, 0xC7, 0x55, 0x02, 0x3F, 0xE3),
718a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD8, 0x02, 0x90, 0xBB, 0xC3, 0xEC, 0x30, 0x40),
719a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9F, 0x6F, 0x64, 0xF4, 0x16, 0x69, 0x48, 0xA4),
720a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0x44, 0x9C, 0x95, 0x0C, 0x7D, 0x67, 0x5E),
721a8e1175bSopenharmony_ci};
722a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256r1_T_13_Y[] = {
723a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x44, 0x91, 0x8B, 0xD8, 0xD0, 0xD7, 0xE7, 0xE2),
724a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1F, 0xF9, 0x48, 0x62, 0x6F, 0xA8, 0x93, 0x5D),
725a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xEA, 0x3A, 0x99, 0x02, 0xD5, 0x0B, 0x3D, 0xE3),
726a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0xD3, 0x00, 0x31, 0xE6, 0x0C, 0x9F, 0x44),
727a8e1175bSopenharmony_ci};
728a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256r1_T_14_X[] = {
729a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x56, 0xB2, 0xAA, 0xFD, 0x88, 0x15, 0xDF, 0x52),
730a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x4C, 0x35, 0x27, 0x31, 0x44, 0xCD, 0xC0, 0x68),
731a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x53, 0xF8, 0x91, 0xA5, 0x71, 0x94, 0x84, 0x2A),
732a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x92, 0xCB, 0xD0, 0x93, 0xE9, 0x88, 0xDA, 0xE4),
733a8e1175bSopenharmony_ci};
734a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256r1_T_14_Y[] = {
735a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x24, 0xC6, 0x39, 0x16, 0x5D, 0xA3, 0x1E, 0x6D),
736a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBA, 0x07, 0x37, 0x26, 0x36, 0x2A, 0xFE, 0x60),
737a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x51, 0xBC, 0xF3, 0xD0, 0xDE, 0x50, 0xFC, 0x97),
738a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x80, 0x2E, 0x06, 0x10, 0x15, 0x4D, 0xFA, 0xF7),
739a8e1175bSopenharmony_ci};
740a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256r1_T_15_X[] = {
741a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x27, 0x65, 0x69, 0x5B, 0x66, 0xA2, 0x75, 0x2E),
742a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9C, 0x16, 0x00, 0x5A, 0xB0, 0x30, 0x25, 0x1A),
743a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x42, 0xFB, 0x86, 0x42, 0x80, 0xC1, 0xC4, 0x76),
744a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5B, 0x1D, 0x83, 0x8E, 0x94, 0x01, 0x5F, 0x82),
745a8e1175bSopenharmony_ci};
746a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256r1_T_15_Y[] = {
747a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x39, 0x37, 0x70, 0xEF, 0x1F, 0xA1, 0xF0, 0xDB),
748a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6A, 0x10, 0x5B, 0xCE, 0xC4, 0x9B, 0x6F, 0x10),
749a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x50, 0x11, 0x11, 0x24, 0x4F, 0x4C, 0x79, 0x61),
750a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x17, 0x3A, 0x72, 0xBC, 0xFE, 0x72, 0x58, 0x43),
751a8e1175bSopenharmony_ci};
752a8e1175bSopenharmony_cistatic const mbedtls_ecp_point secp256r1_T[16] = {
753a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z1(secp256r1_T_0_X, secp256r1_T_0_Y),
754a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp256r1_T_1_X, secp256r1_T_1_Y),
755a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp256r1_T_2_X, secp256r1_T_2_Y),
756a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp256r1_T_3_X, secp256r1_T_3_Y),
757a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp256r1_T_4_X, secp256r1_T_4_Y),
758a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp256r1_T_5_X, secp256r1_T_5_Y),
759a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp256r1_T_6_X, secp256r1_T_6_Y),
760a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp256r1_T_7_X, secp256r1_T_7_Y),
761a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp256r1_T_8_X, secp256r1_T_8_Y),
762a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp256r1_T_9_X, secp256r1_T_9_Y),
763a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp256r1_T_10_X, secp256r1_T_10_Y),
764a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp256r1_T_11_X, secp256r1_T_11_Y),
765a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp256r1_T_12_X, secp256r1_T_12_Y),
766a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp256r1_T_13_X, secp256r1_T_13_Y),
767a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp256r1_T_14_X, secp256r1_T_14_Y),
768a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp256r1_T_15_X, secp256r1_T_15_Y),
769a8e1175bSopenharmony_ci};
770a8e1175bSopenharmony_ci#else
771a8e1175bSopenharmony_ci#define secp256r1_T NULL
772a8e1175bSopenharmony_ci#endif
773a8e1175bSopenharmony_ci
774a8e1175bSopenharmony_ci#endif /* MBEDTLS_ECP_DP_SECP256R1_ENABLED */
775a8e1175bSopenharmony_ci
776a8e1175bSopenharmony_ci/*
777a8e1175bSopenharmony_ci * Domain parameters for secp384r1
778a8e1175bSopenharmony_ci */
779a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED)
780a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_p[] = {
781a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00),
782a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF),
783a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
784a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
785a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
786a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
787a8e1175bSopenharmony_ci};
788a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_b[] = {
789a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xEF, 0x2A, 0xEC, 0xD3, 0xED, 0xC8, 0x85, 0x2A),
790a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9D, 0xD1, 0x2E, 0x8A, 0x8D, 0x39, 0x56, 0xC6),
791a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5A, 0x87, 0x13, 0x50, 0x8F, 0x08, 0x14, 0x03),
792a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x12, 0x41, 0x81, 0xFE, 0x6E, 0x9C, 0x1D, 0x18),
793a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x19, 0x2D, 0xF8, 0xE3, 0x6B, 0x05, 0x8E, 0x98),
794a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE4, 0xE7, 0x3E, 0xE2, 0xA7, 0x2F, 0x31, 0xB3),
795a8e1175bSopenharmony_ci};
796a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_gx[] = {
797a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB7, 0x0A, 0x76, 0x72, 0x38, 0x5E, 0x54, 0x3A),
798a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x29, 0x55, 0xBF, 0x5D, 0xF2, 0x02, 0x55),
799a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x38, 0x2A, 0x54, 0x82, 0xE0, 0x41, 0xF7, 0x59),
800a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x98, 0x9B, 0xA7, 0x8B, 0x62, 0x3B, 0x1D, 0x6E),
801a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x74, 0xAD, 0x20, 0xF3, 0x1E, 0xC7, 0xB1, 0x8E),
802a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x37, 0x05, 0x8B, 0xBE, 0x22, 0xCA, 0x87, 0xAA),
803a8e1175bSopenharmony_ci};
804a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_gy[] = {
805a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5F, 0x0E, 0xEA, 0x90, 0x7C, 0x1D, 0x43, 0x7A),
806a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9D, 0x81, 0x7E, 0x1D, 0xCE, 0xB1, 0x60, 0x0A),
807a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC0, 0xB8, 0xF0, 0xB5, 0x13, 0x31, 0xDA, 0xE9),
808a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x7C, 0x14, 0x9A, 0x28, 0xBD, 0x1D, 0xF4, 0xF8),
809a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x29, 0xDC, 0x92, 0x92, 0xBF, 0x98, 0x9E, 0x5D),
810a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6F, 0x2C, 0x26, 0x96, 0x4A, 0xDE, 0x17, 0x36),
811a8e1175bSopenharmony_ci};
812a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_n[] = {
813a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x73, 0x29, 0xC5, 0xCC, 0x6A, 0x19, 0xEC, 0xEC),
814a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x7A, 0xA7, 0xB0, 0x48, 0xB2, 0x0D, 0x1A, 0x58),
815a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDF, 0x2D, 0x37, 0xF4, 0x81, 0x4D, 0x63, 0xC7),
816a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
817a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
818a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
819a8e1175bSopenharmony_ci};
820a8e1175bSopenharmony_ci#if MBEDTLS_ECP_FIXED_POINT_OPTIM == 1
821a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_0_X[] = {
822a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB7, 0x0A, 0x76, 0x72, 0x38, 0x5E, 0x54, 0x3A),
823a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x29, 0x55, 0xBF, 0x5D, 0xF2, 0x02, 0x55),
824a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x38, 0x2A, 0x54, 0x82, 0xE0, 0x41, 0xF7, 0x59),
825a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x98, 0x9B, 0xA7, 0x8B, 0x62, 0x3B, 0x1D, 0x6E),
826a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x74, 0xAD, 0x20, 0xF3, 0x1E, 0xC7, 0xB1, 0x8E),
827a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x37, 0x05, 0x8B, 0xBE, 0x22, 0xCA, 0x87, 0xAA),
828a8e1175bSopenharmony_ci};
829a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_0_Y[] = {
830a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5F, 0x0E, 0xEA, 0x90, 0x7C, 0x1D, 0x43, 0x7A),
831a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9D, 0x81, 0x7E, 0x1D, 0xCE, 0xB1, 0x60, 0x0A),
832a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC0, 0xB8, 0xF0, 0xB5, 0x13, 0x31, 0xDA, 0xE9),
833a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x7C, 0x14, 0x9A, 0x28, 0xBD, 0x1D, 0xF4, 0xF8),
834a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x29, 0xDC, 0x92, 0x92, 0xBF, 0x98, 0x9E, 0x5D),
835a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6F, 0x2C, 0x26, 0x96, 0x4A, 0xDE, 0x17, 0x36),
836a8e1175bSopenharmony_ci};
837a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_1_X[] = {
838a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x46, 0x92, 0x00, 0x2C, 0x78, 0xDB, 0x1F, 0x37),
839a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x17, 0xF3, 0xEB, 0xB7, 0x06, 0xF7, 0xB6, 0xBC),
840a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3D, 0xBC, 0x2C, 0xCF, 0xD8, 0xED, 0x53, 0xE7),
841a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x52, 0x75, 0x7B, 0xA3, 0xAB, 0xC3, 0x2C, 0x85),
842a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE5, 0x9D, 0x78, 0x41, 0xF6, 0x76, 0x84, 0xAC),
843a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x54, 0x56, 0xE8, 0x52, 0xB3, 0xCB, 0xA8, 0xBD),
844a8e1175bSopenharmony_ci};
845a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_1_Y[] = {
846a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0xF2, 0xAE, 0xA4, 0xB6, 0x89, 0x1B, 0xDA),
847a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x01, 0x0F, 0xCE, 0x1C, 0x7C, 0xF6, 0x50, 0x4C),
848a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x4C, 0xEB, 0x90, 0xE6, 0x4D, 0xC7, 0xD4, 0x7A),
849a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD1, 0x49, 0x2D, 0x8A, 0x01, 0x99, 0x60, 0x94),
850a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5F, 0x80, 0x9B, 0x9B, 0x6A, 0xB0, 0x07, 0xD9),
851a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC2, 0xA2, 0xEE, 0x59, 0xBE, 0x95, 0xBC, 0x23),
852a8e1175bSopenharmony_ci};
853a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_2_X[] = {
854a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE6, 0x9D, 0x56, 0xAE, 0x59, 0xFB, 0x1F, 0x98),
855a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCF, 0xAC, 0x91, 0x80, 0x87, 0xA8, 0x6E, 0x58),
856a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x30, 0x08, 0xA7, 0x08, 0x94, 0x32, 0xFC, 0x67),
857a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9F, 0x29, 0x9E, 0x84, 0xF4, 0xE5, 0x6E, 0x7E),
858a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x55, 0x21, 0xB9, 0x50, 0x24, 0xF8, 0x9C, 0xC7),
859a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0x04, 0x01, 0xC2, 0xFB, 0x77, 0x3E, 0xDE),
860a8e1175bSopenharmony_ci};
861a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_2_Y[] = {
862a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x38, 0xEE, 0xE3, 0xC7, 0x9D, 0xEC, 0xA6),
863a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0x88, 0xCF, 0x43, 0xFA, 0x92, 0x5E, 0x8E),
864a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE9, 0xCA, 0x43, 0xF8, 0x3B, 0x49, 0x7E, 0x75),
865a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1C, 0xE7, 0xEB, 0x17, 0x45, 0x86, 0xC2, 0xE1),
866a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x92, 0x69, 0x57, 0x32, 0xE0, 0x9C, 0xD1, 0x00),
867a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD9, 0x10, 0xB8, 0x4D, 0xB8, 0xF4, 0x0D, 0xE3),
868a8e1175bSopenharmony_ci};
869a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_3_X[] = {
870a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x60, 0xDC, 0x9A, 0xB2, 0x79, 0x39, 0x27, 0x16),
871a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x4F, 0x71, 0xE4, 0x3B, 0x4D, 0x60, 0x0C, 0xA3),
872a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x55, 0xBD, 0x19, 0x40, 0xFA, 0x19, 0x2A, 0x5A),
873a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x4D, 0xF8, 0x1E, 0x43, 0xA1, 0x50, 0x8D, 0xEF),
874a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA3, 0x18, 0x7C, 0x41, 0xFA, 0x7C, 0x1B, 0x58),
875a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x59, 0x24, 0xC4, 0xE9, 0xB7, 0xD3, 0xAD),
876a8e1175bSopenharmony_ci};
877a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_3_Y[] = {
878a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBB, 0x01, 0x3D, 0x63, 0x54, 0x45, 0x6F, 0xB7),
879a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x7B, 0xB2, 0x19, 0xA3, 0x86, 0x1D, 0x42, 0x34),
880a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x84, 0x02, 0x87, 0x18, 0x92, 0x52, 0x1A, 0x71),
881a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x18, 0xB1, 0x5D, 0x18, 0x1B, 0x37, 0xFE),
882a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF4, 0x74, 0x61, 0xBA, 0x18, 0xAF, 0x40, 0x30),
883a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDA, 0x7D, 0x3C, 0x52, 0x0F, 0x07, 0xB0, 0x6F),
884a8e1175bSopenharmony_ci};
885a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_4_X[] = {
886a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x09, 0x39, 0x13, 0xAA, 0x60, 0x15, 0x99, 0x30),
887a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x17, 0x00, 0xCB, 0xC6, 0xB1, 0xDB, 0x97, 0x90),
888a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE6, 0xFA, 0x60, 0xB8, 0x24, 0xE4, 0x7D, 0xD3),
889a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDD, 0x75, 0xB3, 0x70, 0xB2, 0x83, 0xB1, 0x9B),
890a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA3, 0xE3, 0x6C, 0xCD, 0x33, 0x62, 0x7A, 0x56),
891a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x88, 0x30, 0xDC, 0x0F, 0x9F, 0xBB, 0xB8, 0xAA),
892a8e1175bSopenharmony_ci};
893a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_4_Y[] = {
894a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA6, 0xD5, 0x0A, 0x60, 0x81, 0xB9, 0xC5, 0x16),
895a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x44, 0xAA, 0x2F, 0xD6, 0xF2, 0x73, 0xDF, 0xEB),
896a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF3, 0x7B, 0x74, 0xC9, 0xB3, 0x5B, 0x95, 0x6D),
897a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0x04, 0xEB, 0x15, 0xC8, 0x5F, 0x00, 0xF6),
898a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB5, 0x50, 0x20, 0x28, 0xD1, 0x01, 0xAF, 0xF0),
899a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x28, 0x6D, 0x4F, 0x31, 0x81, 0x2F, 0x94, 0x48),
900a8e1175bSopenharmony_ci};
901a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_5_X[] = {
902a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x46, 0x2F, 0xD8, 0xB6, 0x63, 0x7C, 0xE9, 0x50),
903a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD9, 0x8C, 0xB9, 0x14, 0xD9, 0x37, 0x63, 0xDE),
904a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x10, 0x02, 0xB8, 0x46, 0xAD, 0xCE, 0x7B, 0x38),
905a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x82, 0x47, 0x2D, 0x66, 0xA7, 0xE9, 0x33, 0x23),
906a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x92, 0xF9, 0x93, 0x94, 0xA8, 0x48, 0xB3, 0x4F),
907a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE9, 0x4A, 0xAC, 0x51, 0x08, 0x72, 0x2F, 0x1A),
908a8e1175bSopenharmony_ci};
909a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_5_Y[] = {
910a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDA, 0xAD, 0xA0, 0xF9, 0x81, 0xE1, 0x78, 0x97),
911a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3A, 0x9A, 0x63, 0xD8, 0xBA, 0x79, 0x1A, 0x17),
912a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0x31, 0x7B, 0x7A, 0x5A, 0x5D, 0x7D, 0x2D),
913a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x83, 0x96, 0x12, 0x4B, 0x19, 0x09, 0xE0, 0xB7),
914a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x55, 0x8A, 0x57, 0xEE, 0x4E, 0x6E, 0x7E, 0xEC),
915a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x11, 0x9D, 0x69, 0xDC, 0xB3, 0xDA, 0xD8, 0x08),
916a8e1175bSopenharmony_ci};
917a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_6_X[] = {
918a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x68, 0x49, 0x03, 0x03, 0x33, 0x6F, 0x28, 0x4A),
919a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5D, 0xDB, 0xA7, 0x05, 0x8C, 0xF3, 0x4D, 0xFB),
920a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x8E, 0x92, 0xB1, 0xA8, 0xEC, 0x0D, 0x64, 0x3B),
921a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x4E, 0xFC, 0xFD, 0xD0, 0x4B, 0x88, 0x1B, 0x5D),
922a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x83, 0x9C, 0x51, 0x69, 0xCE, 0x71, 0x73, 0xF5),
923a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB8, 0x5A, 0x14, 0x23, 0x1A, 0x46, 0x63, 0x5F),
924a8e1175bSopenharmony_ci};
925a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_6_Y[] = {
926a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBC, 0x4C, 0x70, 0x44, 0x18, 0xCD, 0xEF, 0xED),
927a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC2, 0x49, 0xDD, 0x64, 0x7E, 0x7E, 0x4D, 0x92),
928a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA2, 0x32, 0x7C, 0x09, 0xD0, 0x3F, 0xD6, 0x2C),
929a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0xE0, 0x4F, 0x65, 0x0C, 0x7A, 0x54, 0x3E),
930a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x16, 0xFA, 0xFB, 0x4A, 0xB4, 0x79, 0x5A, 0x8C),
931a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x04, 0x5D, 0x1B, 0x2B, 0xDA, 0xBC, 0x9A, 0x74),
932a8e1175bSopenharmony_ci};
933a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_7_X[] = {
934a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x51, 0xAC, 0x56, 0xF7, 0x5F, 0x51, 0x68, 0x0B),
935a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC6, 0xE0, 0x1D, 0xBC, 0x13, 0x4E, 0xAC, 0x03),
936a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB7, 0xF5, 0xC5, 0xE6, 0xD2, 0x88, 0xBA, 0xCB),
937a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0x0E, 0x28, 0x23, 0x58, 0x67, 0xFA, 0xEE),
938a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9E, 0x80, 0x4B, 0xD8, 0xC4, 0xDF, 0x15, 0xE4),
939a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF1, 0x0E, 0x58, 0xE6, 0x2C, 0x59, 0xC2, 0x03),
940a8e1175bSopenharmony_ci};
941a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_7_Y[] = {
942a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9B, 0x26, 0x27, 0x99, 0x16, 0x2B, 0x22, 0x0B),
943a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBA, 0xF3, 0x8F, 0xC3, 0x2A, 0x9B, 0xFC, 0x38),
944a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFC, 0x2E, 0x83, 0x3D, 0xFE, 0x9E, 0x3C, 0x1B),
945a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x08, 0x57, 0xCD, 0x2D, 0xC1, 0x49, 0x38, 0xB5),
946a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x95, 0x42, 0x8B, 0x33, 0x89, 0x1F, 0xEA, 0x01),
947a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAA, 0x1D, 0x13, 0xD7, 0x50, 0xBB, 0x3E, 0xEB),
948a8e1175bSopenharmony_ci};
949a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_8_X[] = {
950a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD2, 0x9A, 0x52, 0xD2, 0x54, 0x7C, 0x97, 0xF2),
951a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE0, 0x33, 0x6E, 0xED, 0xD9, 0x87, 0x50, 0xC5),
952a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5A, 0x35, 0x7E, 0x16, 0x40, 0x15, 0x83, 0xB8),
953a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x33, 0x2B, 0xA4, 0xAB, 0x03, 0x91, 0xEA, 0xFE),
954a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC1, 0x47, 0x39, 0xEF, 0x05, 0x59, 0xD0, 0x90),
955a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBF, 0x24, 0x0D, 0x76, 0x11, 0x53, 0x08, 0xAF),
956a8e1175bSopenharmony_ci};
957a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_8_Y[] = {
958a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1F, 0x2F, 0xDD, 0xBD, 0x50, 0x48, 0xB1, 0xE5),
959a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x80, 0x1C, 0x84, 0x55, 0x78, 0x14, 0xEB, 0xF6),
960a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD9, 0x5E, 0x3E, 0xA6, 0xAF, 0xF6, 0xC7, 0x04),
961a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE7, 0x11, 0xE2, 0x65, 0xCA, 0x41, 0x95, 0x3B),
962a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAE, 0x83, 0xD8, 0xE6, 0x4D, 0x22, 0x06, 0x2D),
963a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0x7F, 0x25, 0x2A, 0xAA, 0x28, 0x46, 0x97),
964a8e1175bSopenharmony_ci};
965a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_9_X[] = {
966a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x79, 0xDB, 0x15, 0x56, 0x84, 0xCB, 0xC0, 0x56),
967a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x56, 0xDB, 0x0E, 0x08, 0xC9, 0xF5, 0xD4, 0x9E),
968a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE6, 0x62, 0xD0, 0x1A, 0x7C, 0x13, 0xD5, 0x07),
969a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x7D, 0xAD, 0x53, 0xE0, 0x32, 0x21, 0xA0, 0xC0),
970a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC5, 0x38, 0x81, 0x21, 0x23, 0x0E, 0xD2, 0xBB),
971a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1C, 0x51, 0x05, 0xD0, 0x1E, 0x82, 0xA9, 0x71),
972a8e1175bSopenharmony_ci};
973a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_9_Y[] = {
974a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA7, 0xC3, 0x27, 0xBF, 0xC6, 0xAA, 0xB7, 0xB9),
975a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCB, 0x65, 0x45, 0xDF, 0xB9, 0x46, 0x17, 0x46),
976a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0x38, 0x3F, 0xB2, 0xB1, 0x5D, 0xCA, 0x1C),
977a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x88, 0x29, 0x6C, 0x63, 0xE9, 0xD7, 0x48, 0xB8),
978a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBC, 0xF1, 0xD7, 0x99, 0x8C, 0xC2, 0x05, 0x99),
979a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0xE6, 0x5E, 0x82, 0x6D, 0xE5, 0x7E, 0xD5),
980a8e1175bSopenharmony_ci};
981a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_10_X[] = {
982a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x7B, 0x61, 0xFA, 0x7D, 0x01, 0xDB, 0xB6, 0x63),
983a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x11, 0xC6, 0x58, 0x39, 0xF4, 0xC6, 0x82, 0x23),
984a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x47, 0x5A, 0x7A, 0x80, 0x08, 0xCD, 0xAA, 0xD8),
985a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDA, 0x8C, 0xC6, 0x3F, 0x3C, 0xA5, 0x68, 0xF4),
986a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBB, 0xF5, 0xD5, 0x17, 0xAE, 0x36, 0xD8, 0x8A),
987a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC7, 0xAD, 0x92, 0xC5, 0x57, 0x6C, 0xDA, 0x91),
988a8e1175bSopenharmony_ci};
989a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_10_Y[] = {
990a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE8, 0x67, 0x17, 0xC0, 0x40, 0x78, 0x8C, 0x84),
991a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x7E, 0x9F, 0xF4, 0xAA, 0xDA, 0x5C, 0x7E, 0xB2),
992a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x96, 0xDB, 0x42, 0x3E, 0x72, 0x64, 0xA0, 0x67),
993a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x27, 0xF9, 0x41, 0x17, 0x43, 0xE3, 0xE8, 0xA8),
994a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x66, 0xDD, 0xCC, 0x43, 0x7E, 0x16, 0x05, 0x03),
995a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x36, 0x4B, 0xCF, 0x48, 0x8F, 0x41, 0x90, 0xE5),
996a8e1175bSopenharmony_ci};
997a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_11_X[] = {
998a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x98, 0x0C, 0x6B, 0x9D, 0x22, 0x04, 0xBC, 0x5C),
999a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x86, 0x63, 0x79, 0x2F, 0x6A, 0x0E, 0x8A, 0xDE),
1000a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x29, 0x67, 0x3F, 0x02, 0xB8, 0x91, 0x7F, 0x74),
1001a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFC, 0x14, 0x64, 0xA0, 0x33, 0xF4, 0x6B, 0x50),
1002a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1C, 0x44, 0x71, 0x87, 0xB8, 0x88, 0x3F, 0x45),
1003a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1B, 0x2B, 0x85, 0x05, 0xC5, 0x44, 0x53, 0x15),
1004a8e1175bSopenharmony_ci};
1005a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_11_Y[] = {
1006a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3E, 0x2B, 0xFE, 0xD1, 0x1C, 0x73, 0xE3, 0x2E),
1007a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x66, 0x33, 0xA1, 0xD3, 0x69, 0x1C, 0x9D, 0xD2),
1008a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE0, 0x5A, 0xBA, 0xB6, 0xAE, 0x1B, 0x94, 0x04),
1009a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAF, 0x74, 0x90, 0x5C, 0x57, 0xB0, 0x3A, 0x45),
1010a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDD, 0x2F, 0x93, 0x20, 0x24, 0x54, 0x1D, 0x8D),
1011a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0x78, 0x9D, 0x71, 0x67, 0x5D, 0x49, 0x98),
1012a8e1175bSopenharmony_ci};
1013a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_12_X[] = {
1014a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x12, 0xC8, 0x0E, 0x11, 0x8D, 0xE0, 0x8F, 0x69),
1015a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x59, 0x7F, 0x79, 0x6C, 0x5F, 0xB7, 0xBC, 0xB1),
1016a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x88, 0xE1, 0x83, 0x3C, 0x12, 0xBB, 0xEE, 0x96),
1017a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x2A, 0xC2, 0xC4, 0x1B, 0x41, 0x71, 0xB9, 0x17),
1018a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB0, 0xEE, 0xBB, 0x1D, 0x89, 0x50, 0x88, 0xF2),
1019a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFC, 0x1C, 0x55, 0x74, 0xEB, 0xDE, 0x92, 0x3F),
1020a8e1175bSopenharmony_ci};
1021a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_12_Y[] = {
1022a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9C, 0x38, 0x92, 0x06, 0x19, 0xD0, 0xB3, 0xB2),
1023a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x2A, 0x99, 0x26, 0xA3, 0x5F, 0xE2, 0xC1, 0x81),
1024a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x75, 0xFC, 0xFD, 0xC3, 0xB6, 0x26, 0x24, 0x8F),
1025a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAF, 0xAD, 0xE7, 0x49, 0xB7, 0x64, 0x4B, 0x96),
1026a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x4E, 0x95, 0xAD, 0x07, 0xFE, 0xB6, 0x30),
1027a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x4F, 0x15, 0xE7, 0x2D, 0x19, 0xA9, 0x08, 0x10),
1028a8e1175bSopenharmony_ci};
1029a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_13_X[] = {
1030a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBE, 0xBD, 0xAC, 0x0A, 0x3F, 0x6B, 0xFF, 0xFA),
1031a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE0, 0xE4, 0x74, 0x14, 0xD9, 0x70, 0x1D, 0x71),
1032a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF2, 0xB0, 0x71, 0xBB, 0xD8, 0x18, 0x96, 0x2B),
1033a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDA, 0xB8, 0x19, 0x90, 0x80, 0xB5, 0xEE, 0x01),
1034a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x91, 0x21, 0x20, 0xA6, 0x17, 0x48, 0x03, 0x6F),
1035a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE3, 0x1D, 0xBB, 0x6D, 0x94, 0x20, 0x34, 0xF1),
1036a8e1175bSopenharmony_ci};
1037a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_13_Y[] = {
1038a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x59, 0x82, 0x67, 0x4B, 0x8E, 0x4E, 0xBE, 0xE2),
1039a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBE, 0xDA, 0x77, 0xF8, 0x23, 0x55, 0x2B, 0x2D),
1040a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5C, 0x02, 0xDE, 0x25, 0x35, 0x2D, 0x74, 0x51),
1041a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD0, 0x0C, 0xB8, 0x0B, 0x39, 0xBA, 0xAD, 0x04),
1042a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA6, 0x0E, 0x28, 0x4D, 0xE1, 0x3D, 0xE4, 0x1B),
1043a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5D, 0xEC, 0x0A, 0xD4, 0xB8, 0xC4, 0x8D, 0xB0),
1044a8e1175bSopenharmony_ci};
1045a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_14_X[] = {
1046a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3E, 0x68, 0xCE, 0xC2, 0x55, 0x4D, 0x0C, 0x6D),
1047a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9B, 0x20, 0x93, 0x32, 0x90, 0xD6, 0xAE, 0x47),
1048a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDD, 0x78, 0xAB, 0x43, 0x9E, 0xEB, 0x73, 0xAE),
1049a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xED, 0x97, 0xC3, 0x83, 0xA6, 0x3C, 0xF1, 0xBF),
1050a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x0F, 0x25, 0x25, 0x66, 0x08, 0x26, 0xFA, 0x4B),
1051a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x41, 0xFB, 0x44, 0x5D, 0x82, 0xEC, 0x3B, 0xAC),
1052a8e1175bSopenharmony_ci};
1053a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_14_Y[] = {
1054a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x58, 0x90, 0xEA, 0xB5, 0x04, 0x99, 0xD0, 0x69),
1055a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x4A, 0xF2, 0x22, 0xA0, 0xEB, 0xFD, 0x45, 0x87),
1056a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5D, 0xA4, 0x81, 0x32, 0xFC, 0xFA, 0xEE, 0x5B),
1057a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x27, 0xBB, 0xA4, 0x6A, 0x77, 0x41, 0x5C, 0x1D),
1058a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA1, 0x1E, 0xAA, 0x4F, 0xF0, 0x10, 0xB3, 0x50),
1059a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x09, 0x74, 0x13, 0x14, 0x9E, 0x90, 0xD7, 0xE6),
1060a8e1175bSopenharmony_ci};
1061a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_15_X[] = {
1062a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDB, 0xBD, 0x70, 0x4F, 0xA8, 0xD1, 0x06, 0x2C),
1063a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x19, 0x4E, 0x2E, 0x68, 0xFC, 0x35, 0xFA, 0x50),
1064a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x60, 0x53, 0x75, 0xED, 0xF2, 0x5F, 0xC2, 0xEB),
1065a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x39, 0x87, 0x6B, 0x9F, 0x05, 0xE2, 0x22, 0x93),
1066a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x4F, 0x1A, 0xA8, 0xB7, 0x03, 0x9E, 0x6D, 0x7C),
1067a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCB, 0xD0, 0x69, 0x88, 0xA8, 0x39, 0x9E, 0x3A),
1068a8e1175bSopenharmony_ci};
1069a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_15_Y[] = {
1070a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF8, 0xEF, 0x68, 0xFE, 0xEC, 0x24, 0x08, 0x15),
1071a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA1, 0x06, 0x4B, 0x92, 0x0D, 0xB7, 0x34, 0x74),
1072a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3E, 0xF4, 0xDD, 0x1A, 0xA0, 0x4A, 0xE4, 0x45),
1073a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC3, 0x63, 0x4F, 0x4F, 0xCE, 0xBB, 0xD6, 0xD3),
1074a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCD, 0xEE, 0x8D, 0xDF, 0x3F, 0x73, 0xB7, 0xAC),
1075a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDF, 0x06, 0xB6, 0x80, 0x4D, 0x81, 0xD9, 0x53),
1076a8e1175bSopenharmony_ci};
1077a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_16_X[] = {
1078a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0xF5, 0x13, 0xDF, 0x13, 0x19, 0x97, 0x94),
1079a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x08, 0xF9, 0xB3, 0x33, 0x66, 0x82, 0x21, 0xFE),
1080a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0xFC, 0x39, 0x16, 0x23, 0x43, 0x76, 0x0E),
1081a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x09, 0x48, 0x25, 0xA1, 0x64, 0x95, 0x1C, 0x2F),
1082a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x43, 0xAC, 0x15, 0x57, 0xD9, 0xDE, 0xA0, 0x28),
1083a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x16, 0x5F, 0xB8, 0x3D, 0x48, 0x91, 0x24, 0xCC),
1084a8e1175bSopenharmony_ci};
1085a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_16_Y[] = {
1086a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x2D, 0xF2, 0xC8, 0x54, 0xD1, 0x32, 0xBD, 0xC4),
1087a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x8A, 0x3B, 0xF0, 0xAA, 0x9D, 0xD8, 0xF4, 0x20),
1088a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x4F, 0xC3, 0xBB, 0x6C, 0x66, 0xAC, 0x25, 0x2D),
1089a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6F, 0x25, 0x10, 0xB2, 0xE1, 0x41, 0xDE, 0x1D),
1090a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3C, 0xE8, 0x30, 0xB8, 0x37, 0xBC, 0x2A, 0x98),
1091a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBA, 0x57, 0x01, 0x4A, 0x1E, 0x78, 0x9F, 0x85),
1092a8e1175bSopenharmony_ci};
1093a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_17_X[] = {
1094a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBD, 0x19, 0xCD, 0x12, 0x0B, 0x51, 0x4F, 0x56),
1095a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x30, 0x4B, 0x3D, 0x24, 0xA4, 0x16, 0x59, 0x05),
1096a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0xEB, 0xD3, 0x59, 0x2E, 0x75, 0x7C, 0x01),
1097a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x8C, 0xB9, 0xB4, 0xA5, 0xD9, 0x2E, 0x29, 0x4C),
1098a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x86, 0x16, 0x05, 0x75, 0x02, 0xB3, 0x06, 0xEE),
1099a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAB, 0x7C, 0x9F, 0x79, 0x91, 0xF1, 0x4F, 0x23),
1100a8e1175bSopenharmony_ci};
1101a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_17_Y[] = {
1102a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x65, 0x98, 0x7C, 0x84, 0xE1, 0xFF, 0x30, 0x77),
1103a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x71, 0xE2, 0xC2, 0x5F, 0x55, 0x40, 0xBD, 0xCD),
1104a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x69, 0x65, 0x87, 0x3F, 0xC4, 0xC2, 0x24, 0x57),
1105a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x0E, 0x30, 0x0A, 0x60, 0x15, 0xD1, 0x24, 0x48),
1106a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x57, 0x99, 0xD9, 0xB6, 0xAE, 0xB1, 0xAF, 0x1D),
1107a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9B, 0x80, 0xEE, 0xA2, 0x0F, 0x74, 0xB9, 0xF3),
1108a8e1175bSopenharmony_ci};
1109a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_18_X[] = {
1110a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x03, 0xE6, 0x0F, 0x37, 0xC1, 0x10, 0x99, 0x1E),
1111a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x61, 0xAD, 0x9D, 0x5D, 0x80, 0x01, 0xA6, 0xFE),
1112a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB0, 0x0F, 0x10, 0x2A, 0x9D, 0x20, 0x38, 0xEB),
1113a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x60, 0xCB, 0xCE, 0x5A, 0xA0, 0xA7, 0x32),
1114a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBA, 0xCF, 0x14, 0xDF, 0xBF, 0xE5, 0x74, 0x2D),
1115a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB5, 0x12, 0x1A, 0xDD, 0x59, 0x02, 0x5D, 0xC6),
1116a8e1175bSopenharmony_ci};
1117a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_18_Y[] = {
1118a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC8, 0xC9, 0xF8, 0xF5, 0xB6, 0x13, 0x4D, 0x7B),
1119a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xED, 0x45, 0xB1, 0x93, 0xB3, 0xA2, 0x79, 0xDC),
1120a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x74, 0xF6, 0xCF, 0xF7, 0xE6, 0x29, 0x9C, 0xCC),
1121a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x87, 0x50, 0x65, 0x80, 0xBC, 0x59, 0x0A, 0x59),
1122a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x0E, 0xF0, 0x24, 0x35, 0xA2, 0x46, 0xF0, 0x0C),
1123a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBD, 0x26, 0xC0, 0x9D, 0x61, 0x56, 0x62, 0x67),
1124a8e1175bSopenharmony_ci};
1125a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_19_X[] = {
1126a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x10, 0xBB, 0xC2, 0x24, 0x43, 0x2E, 0x37, 0x54),
1127a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x8A, 0xF7, 0xCE, 0x35, 0xFC, 0x77, 0xF3, 0x3F),
1128a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x75, 0x34, 0x96, 0xD5, 0x4A, 0x76, 0x9D, 0x6B),
1129a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB8, 0x3B, 0x0F, 0xEA, 0xA8, 0x12, 0x0B, 0x22),
1130a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x66, 0x3F, 0x5D, 0x2D, 0x1C, 0xD4, 0x9E, 0xFB),
1131a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x7D, 0x2E, 0xDD, 0xC7, 0x6E, 0xAB, 0xAF, 0xDC),
1132a8e1175bSopenharmony_ci};
1133a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_19_Y[] = {
1134a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x8C, 0xB2, 0x7B, 0x0C, 0x9A, 0x83, 0x8E, 0x59),
1135a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x30, 0x51, 0x90, 0x92, 0x79, 0x32, 0x19, 0xC3),
1136a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xEE, 0x89, 0xF9, 0xD0, 0xCF, 0x2C, 0xA5, 0x8F),
1137a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x7B, 0x50, 0x21, 0xDE, 0x50, 0x41, 0x9D, 0x81),
1138a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE0, 0x7D, 0x2B, 0x9E, 0x9D, 0x95, 0xA8, 0xE3),
1139a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD8, 0xA5, 0x20, 0x87, 0x88, 0x97, 0x5F, 0xAA),
1140a8e1175bSopenharmony_ci};
1141a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_20_X[] = {
1142a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x64, 0x59, 0xB4, 0x66, 0x7E, 0xE8, 0x5A, 0x60),
1143a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA5, 0x5C, 0x7E, 0xB2, 0xAD, 0xD9, 0xC9, 0xDA),
1144a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x82, 0x97, 0x49, 0xA3, 0x13, 0x83, 0x07, 0x2E),
1145a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5A, 0x26, 0xC7, 0x13, 0x35, 0x0D, 0xB0, 0x6B),
1146a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0x60, 0xAB, 0xFA, 0x4B, 0x93, 0x18, 0x2C),
1147a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x54, 0x2D, 0x1C, 0x31, 0x4C, 0xE4, 0x61, 0xAE),
1148a8e1175bSopenharmony_ci};
1149a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_20_Y[] = {
1150a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDE, 0x4D, 0x1E, 0x51, 0x59, 0x6E, 0x91, 0xC5),
1151a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x38, 0x54, 0x4D, 0x51, 0xED, 0x36, 0xCC, 0x60),
1152a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x18, 0xA8, 0x56, 0xC7, 0x78, 0x27, 0x33, 0xC5),
1153a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x42, 0xB7, 0x95, 0xC9, 0x8B, 0xC8, 0x6A, 0xBC),
1154a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5E, 0xE9, 0x13, 0x96, 0xB3, 0xE1, 0xF9, 0xEE),
1155a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0x46, 0xB0, 0x5E, 0xC3, 0x94, 0x03, 0x05),
1156a8e1175bSopenharmony_ci};
1157a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_21_X[] = {
1158a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0x5B, 0x29, 0x30, 0x41, 0x1A, 0x9E, 0xB6),
1159a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x76, 0xCA, 0x83, 0x31, 0x5B, 0xA7, 0xCB, 0x42),
1160a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0x41, 0x50, 0x44, 0x4D, 0x64, 0x31, 0x89),
1161a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCF, 0x84, 0xC2, 0x5D, 0x97, 0xA5, 0x3C, 0x18),
1162a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF0, 0x0F, 0xA5, 0xFD, 0x8E, 0x5A, 0x47, 0x2C),
1163a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x7C, 0x58, 0x02, 0x2D, 0x40, 0xB1, 0x0B, 0xBA),
1164a8e1175bSopenharmony_ci};
1165a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_21_Y[] = {
1166a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDA, 0x33, 0x8C, 0x67, 0xCE, 0x23, 0x43, 0x99),
1167a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x84, 0x53, 0x47, 0x72, 0x44, 0x1F, 0x5B, 0x2A),
1168a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAE, 0xC1, 0xD9, 0xA4, 0x50, 0x88, 0x63, 0x18),
1169a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x7C, 0xF2, 0x75, 0x69, 0x73, 0x00, 0xC4, 0x31),
1170a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x4B, 0x90, 0x1D, 0xDF, 0x1A, 0x00, 0xD8, 0x69),
1171a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x05, 0xB1, 0x89, 0x48, 0xA8, 0x70, 0x62, 0xEF),
1172a8e1175bSopenharmony_ci};
1173a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_22_X[] = {
1174a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x7E, 0x8A, 0x55, 0x50, 0x7B, 0xEF, 0x8A, 0x3C),
1175a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFE, 0x1B, 0x23, 0x48, 0x23, 0x63, 0x91, 0xB6),
1176a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x0D, 0x04, 0x54, 0x3C, 0x24, 0x9B, 0xC7, 0x9A),
1177a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x25, 0x38, 0xC3, 0x84, 0xFB, 0xFF, 0x9F, 0x49),
1178a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x66, 0x2A, 0xE0, 0x6D, 0x68, 0x8A, 0x5C, 0xCB),
1179a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC4, 0x93, 0x53, 0x85, 0xA1, 0x0D, 0xAF, 0x63),
1180a8e1175bSopenharmony_ci};
1181a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_22_Y[] = {
1182a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1B, 0x88, 0x95, 0x4C, 0x0B, 0xD0, 0x06, 0x51),
1183a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x92, 0xAF, 0x8D, 0x49, 0xA2, 0xC8, 0xB4, 0xE0),
1184a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x75, 0x76, 0x53, 0x09, 0x88, 0x43, 0x87, 0xCA),
1185a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x90, 0xA4, 0x77, 0x3F, 0x5E, 0x21, 0xB4, 0x0A),
1186a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x35, 0x9E, 0x86, 0x64, 0xCC, 0x91, 0xC1, 0x77),
1187a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC1, 0x17, 0x56, 0xCB, 0xC3, 0x7D, 0x5B, 0xB1),
1188a8e1175bSopenharmony_ci};
1189a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_23_X[] = {
1190a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x64, 0x74, 0x9F, 0xB5, 0x91, 0x21, 0xB1, 0x1C),
1191a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0xED, 0xE1, 0x11, 0xEF, 0x45, 0xAF, 0xC1),
1192a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE0, 0x31, 0xBE, 0xB2, 0xBC, 0x72, 0x65, 0x1F),
1193a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB1, 0x4B, 0x8C, 0x77, 0xCE, 0x1E, 0x42, 0xB5),
1194a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xC9, 0xAA, 0xB9, 0xD9, 0x86, 0x99, 0x55),
1195a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x65, 0x23, 0x80, 0xC6, 0x4E, 0x35, 0x0B, 0x6D),
1196a8e1175bSopenharmony_ci};
1197a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_23_Y[] = {
1198a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x47, 0xD8, 0xA2, 0x0A, 0x39, 0x32, 0x1D, 0x23),
1199a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x61, 0xC8, 0x86, 0xF1, 0x12, 0x9A, 0x4A, 0x05),
1200a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x8D, 0xF1, 0x7C, 0xAA, 0x70, 0x8E, 0xBC, 0x01),
1201a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x62, 0x01, 0x47, 0x8F, 0xDD, 0x8B, 0xA5, 0xC8),
1202a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDB, 0x08, 0x21, 0xF4, 0xAB, 0xC7, 0xF5, 0x96),
1203a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x0A, 0x76, 0xA5, 0x95, 0xC4, 0x0F, 0x88, 0x1D),
1204a8e1175bSopenharmony_ci};
1205a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_24_X[] = {
1206a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3F, 0x42, 0x2A, 0x52, 0xCD, 0x75, 0x51, 0x49),
1207a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x90, 0x36, 0xE5, 0x04, 0x2B, 0x44, 0xC6, 0xEF),
1208a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5C, 0xEE, 0x16, 0x13, 0x07, 0x83, 0xB5, 0x30),
1209a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x76, 0x59, 0xC6, 0xA2, 0x19, 0x05, 0xD3, 0xC6),
1210a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0x8B, 0xA8, 0x16, 0x09, 0xB7, 0xEA, 0xD6),
1211a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x70, 0xEE, 0x14, 0xAF, 0xB5, 0xFD, 0xD0, 0xEF),
1212a8e1175bSopenharmony_ci};
1213a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_24_Y[] = {
1214a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x18, 0x7C, 0xCA, 0x71, 0x3E, 0x6E, 0x66, 0x75),
1215a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBE, 0x31, 0x0E, 0x3F, 0xE5, 0x91, 0xC4, 0x7F),
1216a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x8E, 0x3D, 0xC2, 0x3E, 0x95, 0x37, 0x58, 0x2B),
1217a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x01, 0x1F, 0x02, 0x03, 0xF3, 0xEF, 0xEE, 0x66),
1218a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x28, 0x5B, 0x1A, 0xFC, 0x38, 0xCD, 0xE8, 0x24),
1219a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x12, 0x57, 0x42, 0x85, 0xC6, 0x21, 0x68, 0x71),
1220a8e1175bSopenharmony_ci};
1221a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_25_X[] = {
1222a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x8D, 0xA2, 0x4A, 0x66, 0xB1, 0x0A, 0xE6, 0xC0),
1223a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x86, 0x0C, 0x94, 0x9D, 0x5E, 0x99, 0xB2, 0xCE),
1224a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAD, 0x03, 0x40, 0xCA, 0xB2, 0xB3, 0x30, 0x55),
1225a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x74, 0x78, 0x48, 0x27, 0x34, 0x1E, 0xE2, 0x42),
1226a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAE, 0x72, 0x5B, 0xAC, 0xC1, 0x6D, 0xE3, 0x82),
1227a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x57, 0xAB, 0x46, 0xCB, 0xEA, 0x5E, 0x4B, 0x0B),
1228a8e1175bSopenharmony_ci};
1229a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_25_Y[] = {
1230a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFC, 0x08, 0xAD, 0x4E, 0x51, 0x9F, 0x2A, 0x52),
1231a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x68, 0x5C, 0x7D, 0x4C, 0xD6, 0xCF, 0xDD, 0x02),
1232a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD8, 0x76, 0x26, 0xE0, 0x8B, 0x10, 0xD9, 0x7C),
1233a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x30, 0xA7, 0x23, 0x4E, 0x5F, 0xD2, 0x42, 0x17),
1234a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD1, 0xE5, 0xA4, 0xEC, 0x77, 0x21, 0x34, 0x28),
1235a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5C, 0x14, 0x65, 0xEA, 0x4A, 0x85, 0xC3, 0x2F),
1236a8e1175bSopenharmony_ci};
1237a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_26_X[] = {
1238a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x19, 0xD8, 0x40, 0x27, 0x73, 0x15, 0x7E, 0x65),
1239a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF6, 0xBB, 0x53, 0x7E, 0x0F, 0x40, 0xC8, 0xD4),
1240a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xEA, 0x37, 0x19, 0x73, 0xEF, 0x5A, 0x5E, 0x04),
1241a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9C, 0x73, 0x2B, 0x49, 0x7E, 0xAC, 0x97, 0x5C),
1242a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0xB2, 0xC3, 0x1E, 0x0E, 0xE7, 0xD2, 0x21),
1243a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x8A, 0x08, 0xD6, 0xDD, 0xAC, 0x21, 0xD6, 0x3E),
1244a8e1175bSopenharmony_ci};
1245a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_26_Y[] = {
1246a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA9, 0x26, 0xBE, 0x6D, 0x6D, 0xF2, 0x38, 0x3F),
1247a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x08, 0x6C, 0x31, 0xA7, 0x49, 0x50, 0x3A, 0x89),
1248a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC3, 0x99, 0xC6, 0xF5, 0xD2, 0xC2, 0x30, 0x5A),
1249a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x2A, 0xE4, 0xF6, 0x8B, 0x8B, 0x97, 0xE9, 0xB2),
1250a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDD, 0x21, 0xB7, 0x0D, 0xFC, 0x15, 0x54, 0x0B),
1251a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x65, 0x83, 0x1C, 0xA4, 0xCD, 0x6B, 0x9D, 0xF2),
1252a8e1175bSopenharmony_ci};
1253a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_27_X[] = {
1254a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD6, 0xE8, 0x4C, 0x48, 0xE4, 0xAA, 0x69, 0x93),
1255a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x27, 0x7A, 0x27, 0xFC, 0x37, 0x96, 0x1A, 0x7B),
1256a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6F, 0xE7, 0x30, 0xA5, 0xCF, 0x13, 0x46, 0x5C),
1257a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x8C, 0xD8, 0xAF, 0x74, 0x23, 0x4D, 0x56, 0x84),
1258a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x32, 0x3D, 0x44, 0x14, 0x1B, 0x97, 0x83, 0xF0),
1259a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0x47, 0xD7, 0x5F, 0xFD, 0x98, 0x38, 0xF7),
1260a8e1175bSopenharmony_ci};
1261a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_27_Y[] = {
1262a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA3, 0x73, 0x64, 0x36, 0xFD, 0x7B, 0xC1, 0x15),
1263a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xEA, 0x5D, 0x32, 0xD2, 0x47, 0x94, 0x89, 0x2D),
1264a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x51, 0xE9, 0x30, 0xAC, 0x06, 0xC8, 0x65, 0x04),
1265a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0x6C, 0xB9, 0x1B, 0xF7, 0x61, 0x49, 0x53),
1266a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD7, 0xFF, 0x32, 0x43, 0x80, 0xDA, 0xA6, 0xB1),
1267a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0xF8, 0x04, 0x01, 0x95, 0x35, 0xCE, 0x21),
1268a8e1175bSopenharmony_ci};
1269a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_28_X[] = {
1270a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0x06, 0x46, 0x0D, 0x51, 0xE2, 0xD8, 0xAC),
1271a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x14, 0x57, 0x1D, 0x6F, 0x79, 0xA0, 0xCD, 0xA6),
1272a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDF, 0xFB, 0x36, 0xCA, 0xAD, 0xF5, 0x9E, 0x41),
1273a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6F, 0x7A, 0x1D, 0x9E, 0x1D, 0x95, 0x48, 0xDC),
1274a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x81, 0x26, 0xA5, 0xB7, 0x15, 0x2C, 0xC2, 0xC6),
1275a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x86, 0x42, 0x72, 0xAA, 0x11, 0xDC, 0xC9, 0xB6),
1276a8e1175bSopenharmony_ci};
1277a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_28_Y[] = {
1278a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3F, 0x6C, 0x64, 0xA7, 0x62, 0x3C, 0xAB, 0xD4),
1279a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x48, 0x6A, 0x44, 0xD8, 0x60, 0xC0, 0xA8, 0x80),
1280a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x82, 0x76, 0x58, 0x12, 0x57, 0x3C, 0x89, 0x46),
1281a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x82, 0x4F, 0x83, 0xCE, 0xCB, 0xB8, 0xD0, 0x2C),
1282a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9A, 0x84, 0x04, 0xB0, 0xAD, 0xEB, 0xFA, 0xDF),
1283a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0xA4, 0xC3, 0x41, 0x44, 0x4E, 0x65, 0x3E),
1284a8e1175bSopenharmony_ci};
1285a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_29_X[] = {
1286a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0x16, 0xA9, 0x1C, 0xE7, 0x65, 0x20, 0xC1),
1287a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x58, 0x53, 0x32, 0xF8, 0xC0, 0xA6, 0xBD, 0x2C),
1288a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB7, 0xF0, 0xE6, 0x57, 0x31, 0xCC, 0x26, 0x6F),
1289a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x27, 0xE3, 0x54, 0x1C, 0x34, 0xD3, 0x17, 0xBC),
1290a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0xAE, 0xED, 0xFB, 0xCD, 0xE7, 0x1E, 0x9F),
1291a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5A, 0x16, 0x1C, 0x34, 0x40, 0x00, 0x1F, 0xB6),
1292a8e1175bSopenharmony_ci};
1293a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_29_Y[] = {
1294a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6A, 0x32, 0x00, 0xC2, 0xD4, 0x3B, 0x1A, 0x09),
1295a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0xE0, 0x99, 0x8F, 0x0C, 0x4A, 0x16, 0x44),
1296a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x83, 0x73, 0x18, 0x1B, 0xD4, 0x94, 0x29, 0x62),
1297a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x29, 0xA4, 0x2D, 0xB1, 0x9D, 0x74, 0x32, 0x67),
1298a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBF, 0xF4, 0xB1, 0x0C, 0x37, 0x62, 0x8B, 0x66),
1299a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0xFF, 0xDA, 0xE2, 0x35, 0xA3, 0xB6, 0x42),
1300a8e1175bSopenharmony_ci};
1301a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_30_X[] = {
1302a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x91, 0x49, 0x99, 0x65, 0xC5, 0xED, 0x16, 0xEF),
1303a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x79, 0x42, 0x9A, 0xF3, 0xA7, 0x4E, 0x6F, 0x2B),
1304a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x7B, 0x0A, 0x7E, 0xC0, 0xD7, 0x4E, 0x07, 0x55),
1305a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD6, 0x7A, 0x31, 0x69, 0xA6, 0xB9, 0x15, 0x34),
1306a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA8, 0xE0, 0x72, 0xA4, 0x3F, 0xB9, 0xF8, 0x0C),
1307a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x2B, 0x75, 0x32, 0x85, 0xA2, 0xDE, 0x37, 0x12),
1308a8e1175bSopenharmony_ci};
1309a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_30_Y[] = {
1310a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBC, 0xC0, 0x0D, 0xCF, 0x25, 0x41, 0xA4, 0xF4),
1311a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9B, 0xFC, 0xB2, 0x48, 0xC3, 0x85, 0x83, 0x4B),
1312a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x2B, 0xBE, 0x0B, 0x58, 0x2D, 0x7A, 0x9A, 0x62),
1313a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC5, 0xF3, 0x81, 0x18, 0x1B, 0x74, 0x4F, 0x2C),
1314a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE2, 0x43, 0xA3, 0x0A, 0x16, 0x8B, 0xA3, 0x1E),
1315a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x4A, 0x18, 0x81, 0x7B, 0x8D, 0xA2, 0x35, 0x77),
1316a8e1175bSopenharmony_ci};
1317a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_31_X[] = {
1318a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x86, 0xC4, 0x3F, 0x2C, 0xE7, 0x5F, 0x99, 0x03),
1319a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF0, 0x2B, 0xB7, 0xB6, 0xAD, 0x5A, 0x56, 0xFF),
1320a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x04, 0x00, 0xA4, 0x48, 0xC8, 0xE8, 0xBA, 0xBF),
1321a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE8, 0xA1, 0xB5, 0x13, 0x5A, 0xCD, 0x99, 0x9C),
1322a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB0, 0x95, 0xAD, 0xFC, 0xE2, 0x7E, 0xE7, 0xFE),
1323a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x96, 0x6B, 0xD1, 0x34, 0x99, 0x53, 0x63, 0x0B),
1324a8e1175bSopenharmony_ci};
1325a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp384r1_T_31_Y[] = {
1326a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x19, 0x8A, 0x77, 0x5D, 0x2B, 0xAB, 0x01, 0x28),
1327a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x4E, 0x85, 0xD0, 0xD5, 0x49, 0x83, 0x4D, 0x60),
1328a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x81, 0xC6, 0x91, 0x30, 0x3B, 0x00, 0xAF, 0x7A),
1329a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3A, 0xAE, 0x61, 0x07, 0xE1, 0xB6, 0xE2, 0xC9),
1330a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x95, 0x43, 0x41, 0xFE, 0x9B, 0xB6, 0xF0, 0xA5),
1331a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB4, 0x97, 0xAE, 0xAD, 0x89, 0x88, 0x9E, 0x41),
1332a8e1175bSopenharmony_ci};
1333a8e1175bSopenharmony_cistatic const mbedtls_ecp_point secp384r1_T[32] = {
1334a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z1(secp384r1_T_0_X, secp384r1_T_0_Y),
1335a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp384r1_T_1_X, secp384r1_T_1_Y),
1336a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp384r1_T_2_X, secp384r1_T_2_Y),
1337a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp384r1_T_3_X, secp384r1_T_3_Y),
1338a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp384r1_T_4_X, secp384r1_T_4_Y),
1339a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp384r1_T_5_X, secp384r1_T_5_Y),
1340a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp384r1_T_6_X, secp384r1_T_6_Y),
1341a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp384r1_T_7_X, secp384r1_T_7_Y),
1342a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp384r1_T_8_X, secp384r1_T_8_Y),
1343a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp384r1_T_9_X, secp384r1_T_9_Y),
1344a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp384r1_T_10_X, secp384r1_T_10_Y),
1345a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp384r1_T_11_X, secp384r1_T_11_Y),
1346a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp384r1_T_12_X, secp384r1_T_12_Y),
1347a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp384r1_T_13_X, secp384r1_T_13_Y),
1348a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp384r1_T_14_X, secp384r1_T_14_Y),
1349a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp384r1_T_15_X, secp384r1_T_15_Y),
1350a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp384r1_T_16_X, secp384r1_T_16_Y),
1351a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp384r1_T_17_X, secp384r1_T_17_Y),
1352a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp384r1_T_18_X, secp384r1_T_18_Y),
1353a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp384r1_T_19_X, secp384r1_T_19_Y),
1354a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp384r1_T_20_X, secp384r1_T_20_Y),
1355a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp384r1_T_21_X, secp384r1_T_21_Y),
1356a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp384r1_T_22_X, secp384r1_T_22_Y),
1357a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp384r1_T_23_X, secp384r1_T_23_Y),
1358a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp384r1_T_24_X, secp384r1_T_24_Y),
1359a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp384r1_T_25_X, secp384r1_T_25_Y),
1360a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp384r1_T_26_X, secp384r1_T_26_Y),
1361a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp384r1_T_27_X, secp384r1_T_27_Y),
1362a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp384r1_T_28_X, secp384r1_T_28_Y),
1363a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp384r1_T_29_X, secp384r1_T_29_Y),
1364a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp384r1_T_30_X, secp384r1_T_30_Y),
1365a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp384r1_T_31_X, secp384r1_T_31_Y),
1366a8e1175bSopenharmony_ci};
1367a8e1175bSopenharmony_ci#else
1368a8e1175bSopenharmony_ci#define secp384r1_T NULL
1369a8e1175bSopenharmony_ci#endif
1370a8e1175bSopenharmony_ci
1371a8e1175bSopenharmony_ci#endif /* MBEDTLS_ECP_DP_SECP384R1_ENABLED */
1372a8e1175bSopenharmony_ci
1373a8e1175bSopenharmony_ci/*
1374a8e1175bSopenharmony_ci * Domain parameters for secp521r1
1375a8e1175bSopenharmony_ci */
1376a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED)
1377a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_p[] = {
1378a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
1379a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
1380a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
1381a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
1382a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
1383a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
1384a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
1385a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
1386a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_2(0xFF, 0x01),
1387a8e1175bSopenharmony_ci};
1388a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_b[] = {
1389a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x3F, 0x50, 0x6B, 0xD4, 0x1F, 0x45, 0xEF),
1390a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF1, 0x34, 0x2C, 0x3D, 0x88, 0xDF, 0x73, 0x35),
1391a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x07, 0xBF, 0xB1, 0x3B, 0xBD, 0xC0, 0x52, 0x16),
1392a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x7B, 0x93, 0x7E, 0xEC, 0x51, 0x39, 0x19, 0x56),
1393a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE1, 0x09, 0xF1, 0x8E, 0x91, 0x89, 0xB4, 0xB8),
1394a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF3, 0x15, 0xB3, 0x99, 0x5B, 0x72, 0xDA, 0xA2),
1395a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xEE, 0x40, 0x85, 0xB6, 0xA0, 0x21, 0x9A, 0x92),
1396a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1F, 0x9A, 0x1C, 0x8E, 0x61, 0xB9, 0x3E, 0x95),
1397a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_2(0x51, 0x00),
1398a8e1175bSopenharmony_ci};
1399a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_gx[] = {
1400a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x66, 0xBD, 0xE5, 0xC2, 0x31, 0x7E, 0x7E, 0xF9),
1401a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9B, 0x42, 0x6A, 0x85, 0xC1, 0xB3, 0x48, 0x33),
1402a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDE, 0xA8, 0xFF, 0xA2, 0x27, 0xC1, 0x1D, 0xFE),
1403a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x28, 0x59, 0xE7, 0xEF, 0x77, 0x5E, 0x4B, 0xA1),
1404a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBA, 0x3D, 0x4D, 0x6B, 0x60, 0xAF, 0x28, 0xF8),
1405a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0xB5, 0x3F, 0x05, 0x39, 0x81, 0x64, 0x9C),
1406a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x42, 0xB4, 0x95, 0x23, 0x66, 0xCB, 0x3E, 0x9E),
1407a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCD, 0xE9, 0x04, 0x04, 0xB7, 0x06, 0x8E, 0x85),
1408a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_2(0xC6, 0x00),
1409a8e1175bSopenharmony_ci};
1410a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_gy[] = {
1411a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x50, 0x66, 0xD1, 0x9F, 0x76, 0x94, 0xBE, 0x88),
1412a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x40, 0xC2, 0x72, 0xA2, 0x86, 0x70, 0x3C, 0x35),
1413a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x61, 0x07, 0xAD, 0x3F, 0x01, 0xB9, 0x50, 0xC5),
1414a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x40, 0x26, 0xF4, 0x5E, 0x99, 0x72, 0xEE, 0x97),
1415a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x2C, 0x66, 0x3E, 0x27, 0x17, 0xBD, 0xAF, 0x17),
1416a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x68, 0x44, 0x9B, 0x57, 0x49, 0x44, 0xF5, 0x98),
1417a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD9, 0x1B, 0x7D, 0x2C, 0xB4, 0x5F, 0x8A, 0x5C),
1418a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x04, 0xC0, 0x3B, 0x9A, 0x78, 0x6A, 0x29, 0x39),
1419a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_2(0x18, 0x01),
1420a8e1175bSopenharmony_ci};
1421a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_n[] = {
1422a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x09, 0x64, 0x38, 0x91, 0x1E, 0xB7, 0x6F, 0xBB),
1423a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAE, 0x47, 0x9C, 0x89, 0xB8, 0xC9, 0xB5, 0x3B),
1424a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD0, 0xA5, 0x09, 0xF7, 0x48, 0x01, 0xCC, 0x7F),
1425a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6B, 0x96, 0x2F, 0xBF, 0x83, 0x87, 0x86, 0x51),
1426a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
1427a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
1428a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
1429a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
1430a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_2(0xFF, 0x01),
1431a8e1175bSopenharmony_ci};
1432a8e1175bSopenharmony_ci#if MBEDTLS_ECP_FIXED_POINT_OPTIM == 1
1433a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_0_X[] = {
1434a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x66, 0xBD, 0xE5, 0xC2, 0x31, 0x7E, 0x7E, 0xF9),
1435a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9B, 0x42, 0x6A, 0x85, 0xC1, 0xB3, 0x48, 0x33),
1436a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDE, 0xA8, 0xFF, 0xA2, 0x27, 0xC1, 0x1D, 0xFE),
1437a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x28, 0x59, 0xE7, 0xEF, 0x77, 0x5E, 0x4B, 0xA1),
1438a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBA, 0x3D, 0x4D, 0x6B, 0x60, 0xAF, 0x28, 0xF8),
1439a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0xB5, 0x3F, 0x05, 0x39, 0x81, 0x64, 0x9C),
1440a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x42, 0xB4, 0x95, 0x23, 0x66, 0xCB, 0x3E, 0x9E),
1441a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCD, 0xE9, 0x04, 0x04, 0xB7, 0x06, 0x8E, 0x85),
1442a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1443a8e1175bSopenharmony_ci};
1444a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_0_Y[] = {
1445a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x50, 0x66, 0xD1, 0x9F, 0x76, 0x94, 0xBE, 0x88),
1446a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x40, 0xC2, 0x72, 0xA2, 0x86, 0x70, 0x3C, 0x35),
1447a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x61, 0x07, 0xAD, 0x3F, 0x01, 0xB9, 0x50, 0xC5),
1448a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x40, 0x26, 0xF4, 0x5E, 0x99, 0x72, 0xEE, 0x97),
1449a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x2C, 0x66, 0x3E, 0x27, 0x17, 0xBD, 0xAF, 0x17),
1450a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x68, 0x44, 0x9B, 0x57, 0x49, 0x44, 0xF5, 0x98),
1451a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD9, 0x1B, 0x7D, 0x2C, 0xB4, 0x5F, 0x8A, 0x5C),
1452a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x04, 0xC0, 0x3B, 0x9A, 0x78, 0x6A, 0x29, 0x39),
1453a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x18, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1454a8e1175bSopenharmony_ci};
1455a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_1_X[] = {
1456a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x2F, 0xB1, 0x2D, 0xEB, 0x27, 0x2F, 0xE8, 0xDA),
1457a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x98, 0x4B, 0x44, 0x25, 0xDB, 0x5C, 0x5F, 0x67),
1458a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x13, 0x85, 0x28, 0x78, 0x2E, 0x75, 0x34, 0x32),
1459a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x69, 0x57, 0x0F, 0x73, 0x78, 0x7A, 0xE3, 0x53),
1460a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x8D, 0xD8, 0xEC, 0xDC, 0xDA, 0x04, 0xAD, 0xAB),
1461a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0x8A, 0x09, 0xF3, 0x58, 0x79, 0xD8, 0x29),
1462a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x63, 0x03, 0xCB, 0x50, 0x1A, 0x7F, 0x56, 0x00),
1463a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF6, 0xA6, 0x78, 0x38, 0x85, 0x67, 0x0B, 0x40),
1464a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x83, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1465a8e1175bSopenharmony_ci};
1466a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_1_Y[] = {
1467a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x8A, 0xD5, 0xD2, 0x22, 0xC4, 0x00, 0x3B, 0xBA),
1468a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD5, 0x93, 0x0E, 0x7B, 0x85, 0x51, 0xC3, 0x06),
1469a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3D, 0xA6, 0x5F, 0x54, 0x49, 0x02, 0x81, 0x78),
1470a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x22, 0xE9, 0x6B, 0x3A, 0x92, 0xE7, 0x72, 0x1D),
1471a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6F, 0x5F, 0x28, 0x9E, 0x91, 0x27, 0x88, 0xE3),
1472a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xEF, 0x28, 0x31, 0xB3, 0x84, 0xCA, 0x12, 0x32),
1473a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3D, 0xF9, 0xAC, 0x22, 0x10, 0x0A, 0x64, 0x41),
1474a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE9, 0xC6, 0x33, 0x1F, 0x69, 0x19, 0x18, 0xBF),
1475a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBE, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1476a8e1175bSopenharmony_ci};
1477a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_2_X[] = {
1478a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA0, 0x48, 0xB8, 0xC7, 0x37, 0x5A, 0x00, 0x36),
1479a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x07, 0xCC, 0x32, 0xE0, 0xEE, 0x03, 0xC2, 0xBA),
1480a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC4, 0x29, 0xC2, 0xE4, 0x6E, 0x24, 0x20, 0x8D),
1481a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x06, 0x6B, 0x7F, 0x7B, 0xF9, 0xB0, 0xB8, 0x13),
1482a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1D, 0x7B, 0x3C, 0xE1, 0x19, 0xA1, 0x23, 0x02),
1483a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x2A, 0xE3, 0xC2, 0x53, 0xC0, 0x07, 0x13, 0xA9),
1484a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x07, 0xFE, 0x36, 0x35, 0x9F, 0x5E, 0x59, 0xCE),
1485a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1D, 0x55, 0x89, 0x84, 0xBC, 0xEF, 0xA2, 0xC2),
1486a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1487a8e1175bSopenharmony_ci};
1488a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_2_Y[] = {
1489a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFD, 0x1A, 0x08, 0x67, 0xB4, 0xE7, 0x22, 0xED),
1490a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x76, 0x26, 0xDF, 0x81, 0x3C, 0x5F, 0x1C, 0xDA),
1491a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE0, 0x4D, 0xD0, 0x0A, 0x48, 0x06, 0xF4, 0x48),
1492a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x73, 0x18, 0x39, 0xF7, 0xD1, 0x20, 0x77, 0x8D),
1493a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x78, 0x8F, 0x44, 0x13, 0xCB, 0x78, 0x11, 0x11),
1494a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x33, 0xE2, 0x49, 0xEA, 0x43, 0x79, 0x08, 0x39),
1495a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x01, 0xD1, 0xD8, 0x73, 0x2C, 0x71, 0x2F, 0x69),
1496a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0xE5, 0xE7, 0xF4, 0x46, 0xAB, 0x20, 0xCA),
1497a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1498a8e1175bSopenharmony_ci};
1499a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_3_X[] = {
1500a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x8C, 0x0B, 0xB9, 0x71, 0x1A, 0x27, 0xB7, 0xA7),
1501a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x2A, 0xA2, 0x2C, 0xD1, 0xDA, 0xBC, 0xC1, 0xBD),
1502a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x10, 0xA3, 0x10, 0x1F, 0x90, 0xF2, 0xA5, 0x52),
1503a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x28, 0xFB, 0x20, 0xF4, 0xC0, 0x70, 0xC0, 0xF5),
1504a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x8F, 0xA7, 0x99, 0xF0, 0xA5, 0xD3, 0x09, 0xDD),
1505a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x26, 0xE8, 0x14, 0x39, 0xBE, 0xCB, 0x60, 0xAF),
1506a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9F, 0xD6, 0x14, 0xA9, 0xC9, 0x20, 0xC3, 0xEA),
1507a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5D, 0xA8, 0x5B, 0xFD, 0x2D, 0x96, 0xBC, 0x78),
1508a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1509a8e1175bSopenharmony_ci};
1510a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_3_Y[] = {
1511a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9D, 0x04, 0x45, 0xBE, 0xCE, 0x75, 0x95, 0xF6),
1512a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCC, 0xDA, 0x58, 0x49, 0x35, 0x09, 0x8D, 0x41),
1513a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x76, 0xF0, 0xC0, 0x36, 0xF2, 0xA6, 0x2D, 0x14),
1514a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE7, 0xFC, 0x3D, 0xA8, 0xFB, 0x3C, 0xD2, 0x51),
1515a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x01, 0x4D, 0x71, 0x09, 0x18, 0x42, 0xF0, 0x2D),
1516a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x8D, 0xC1, 0xCE, 0x9E, 0x6A, 0x49, 0x60, 0x12),
1517a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAD, 0xB1, 0x00, 0xF7, 0xA1, 0x7A, 0x31, 0xB4),
1518a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x41, 0xC3, 0x86, 0xCD, 0x20, 0x4A, 0x17, 0x86),
1519a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1520a8e1175bSopenharmony_ci};
1521a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_4_X[] = {
1522a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x98, 0xAB, 0x8B, 0x47, 0x8D, 0xAA, 0xA6, 0x5B),
1523a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC4, 0x97, 0xF0, 0xBC, 0x2D, 0xDC, 0x9D, 0x84),
1524a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x01, 0x86, 0xB0, 0x74, 0xB2, 0xF4, 0xF6, 0x67),
1525a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0xBD, 0xAC, 0xE3, 0x8F, 0x43, 0x5C, 0xB1),
1526a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x37, 0xC3, 0xE2, 0x6E, 0x25, 0x49, 0xCD, 0x0B),
1527a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x64, 0x5E, 0x08, 0xB3, 0xB9, 0xAC, 0x5F, 0xD1),
1528a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x08, 0xB7, 0xD1, 0xF4, 0xDC, 0x19, 0xE9, 0xC8),
1529a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x49, 0xE4, 0xFA, 0xE1, 0x36, 0x3E, 0xED, 0x6E),
1530a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1531a8e1175bSopenharmony_ci};
1532a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_4_Y[] = {
1533a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x67, 0x92, 0x84, 0x6E, 0x48, 0x03, 0x51),
1534a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9E, 0x95, 0xEF, 0x8F, 0xB2, 0x82, 0x6B, 0x1C),
1535a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x8D, 0xFA, 0xB9, 0x55, 0x23, 0xFE, 0x09, 0xB3),
1536a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xEF, 0x79, 0x85, 0x4B, 0x0E, 0xD4, 0x35, 0xDB),
1537a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9A, 0x27, 0x45, 0x81, 0xE0, 0x88, 0x52, 0xAD),
1538a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x17, 0x63, 0xA2, 0x4B, 0xBC, 0x5D, 0xB1, 0x92),
1539a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x28, 0x8C, 0x83, 0xD9, 0x3E, 0xD3, 0x42, 0xDA),
1540a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x99, 0x03, 0x3A, 0x31, 0xBA, 0xE9, 0x3A, 0xD1),
1541a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1542a8e1175bSopenharmony_ci};
1543a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_5_X[] = {
1544a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x35, 0x10, 0xCD, 0x2D, 0x00, 0xFE, 0x32, 0xA7),
1545a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE4, 0x6E, 0x1F, 0xDA, 0xF8, 0x6F, 0x4D, 0x03),
1546a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x09, 0x79, 0x7D, 0x09, 0xE5, 0xD3, 0x03, 0x21),
1547a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x58, 0xC3, 0xBE, 0xDF, 0x07, 0x65, 0x49, 0xCC),
1548a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x08, 0x57, 0x33, 0xEF, 0xAE, 0x4F, 0x04, 0x27),
1549a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9A, 0xE9, 0x9B, 0xFE, 0xBF, 0xE6, 0x85, 0xF6),
1550a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBD, 0xBA, 0xAA, 0x06, 0xC4, 0xC6, 0xB8, 0x57),
1551a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x0C, 0x83, 0x01, 0xA9, 0xF6, 0x51, 0xE7, 0xB8),
1552a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1B, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1553a8e1175bSopenharmony_ci};
1554a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_5_Y[] = {
1555a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB9, 0xA6, 0x15, 0x8E, 0xAB, 0x1F, 0x10, 0x87),
1556a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x74, 0x08, 0x27, 0x1A, 0xA1, 0x21, 0xAD, 0xF5),
1557a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x02, 0x09, 0x90, 0x6E, 0x50, 0x90, 0x9A, 0x5D),
1558a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x86, 0x9A, 0xFE, 0xD7, 0xA1, 0xF5, 0xA2, 0x15),
1559a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE8, 0x7D, 0xE3, 0xDC, 0x21, 0xFB, 0xA4, 0x7B),
1560a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB9, 0xBF, 0x07, 0xFF, 0x45, 0xDF, 0x51, 0x77),
1561a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x0B, 0x5C, 0x34, 0x02, 0x62, 0x9B, 0x08, 0x12),
1562a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x86, 0xCE, 0x9A, 0x6A, 0xEC, 0x75, 0xF6, 0x46),
1563a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1564a8e1175bSopenharmony_ci};
1565a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_6_X[] = {
1566a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE6, 0x59, 0xF4, 0x78, 0x3C, 0x60, 0xB1, 0x4A),
1567a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3E, 0x37, 0x84, 0x6A, 0xDC, 0xF2, 0x9A, 0x7D),
1568a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x40, 0x9A, 0x9A, 0x15, 0x36, 0xE0, 0x2B, 0x2D),
1569a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xEC, 0x38, 0x9C, 0x50, 0x3D, 0x1E, 0x37, 0x82),
1570a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB7, 0x79, 0xF0, 0x92, 0xF2, 0x8B, 0x18, 0x82),
1571a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x17, 0xE0, 0x82, 0x1E, 0x80, 0x82, 0x4B, 0xD7),
1572a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0xBB, 0x59, 0x6B, 0x8A, 0x77, 0x41, 0x40),
1573a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA7, 0xF9, 0xD4, 0xB8, 0x4A, 0x82, 0xCF, 0x40),
1574a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1575a8e1175bSopenharmony_ci};
1576a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_6_Y[] = {
1577a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0x8C, 0xC8, 0x9B, 0x72, 0x9E, 0xF7, 0xF9),
1578a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB8, 0xCE, 0xE9, 0x77, 0x0A, 0x19, 0x59, 0x84),
1579a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9D, 0xA1, 0x41, 0x6A, 0x72, 0x4B, 0xB4, 0xDC),
1580a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x0B, 0x35, 0x43, 0xE2, 0x8C, 0xBE, 0x0D, 0xE3),
1581a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC1, 0xEB, 0xAD, 0xF3, 0xA9, 0xA6, 0x68, 0xA1),
1582a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x81, 0x2F, 0xE2, 0x48, 0x0C, 0xDB, 0x1F, 0x42),
1583a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD1, 0x1E, 0x60, 0x9B, 0x2A, 0xD2, 0xC1, 0x3C),
1584a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC0, 0x64, 0xB5, 0xD2, 0xF6, 0xF6, 0x6E, 0x22),
1585a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x70, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1586a8e1175bSopenharmony_ci};
1587a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_7_X[] = {
1588a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC6, 0x3D, 0x30, 0x78, 0x10, 0x18, 0x41, 0x51),
1589a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x96, 0x1D, 0x1C, 0xE0, 0x6D, 0x83, 0xD1, 0x93),
1590a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x7B, 0x03, 0x0B, 0xF5, 0x2F, 0x6C, 0x04, 0x98),
1591a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x3E, 0xD5, 0xFC, 0x31, 0x5B, 0x3A, 0xEB),
1592a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x50, 0x82, 0x2F, 0xFB, 0xFE, 0xF8, 0x76, 0x39),
1593a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x85, 0x26, 0xDA, 0x9C, 0x36, 0xF5, 0x93, 0xD1),
1594a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x4C, 0xE7, 0x6E, 0xD2, 0x7D, 0x81, 0x09, 0xC6),
1595a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD3, 0x03, 0xF9, 0x58, 0x48, 0x24, 0xA2, 0xEE),
1596a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1597a8e1175bSopenharmony_ci};
1598a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_7_Y[] = {
1599a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1B, 0x79, 0x0C, 0x8E, 0x6B, 0x95, 0xF3, 0xC4),
1600a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF4, 0x10, 0x5C, 0x87, 0x03, 0x39, 0xCF, 0x68),
1601a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAD, 0xF0, 0xF7, 0xC1, 0x07, 0xA4, 0xF4, 0x3F),
1602a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x32, 0xE8, 0x02, 0x89, 0x65, 0xC4, 0x72, 0x36),
1603a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB4, 0x88, 0xEA, 0x96, 0x67, 0x0B, 0x5D, 0xDF),
1604a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA8, 0x75, 0x60, 0xA8, 0xBD, 0x74, 0xDF, 0x68),
1605a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6E, 0xE5, 0x71, 0x50, 0x67, 0xD0, 0xD2, 0xE6),
1606a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD5, 0xFC, 0xE5, 0xC7, 0x77, 0xB0, 0x7F, 0x8C),
1607a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF1, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1608a8e1175bSopenharmony_ci};
1609a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_8_X[] = {
1610a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x97, 0x86, 0x69, 0xCD, 0x0D, 0x9A, 0xBD, 0x66),
1611a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x58, 0x17, 0xBC, 0xBB, 0x59, 0x85, 0x7D, 0x0E),
1612a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x8D, 0xA8, 0x76, 0xAC, 0x80, 0xA9, 0x72, 0xE0),
1613a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x74, 0x78, 0xC1, 0xE2, 0x4D, 0xAF, 0xF9, 0x3C),
1614a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAD, 0x97, 0x8E, 0x74, 0xC4, 0x4B, 0xB2, 0x85),
1615a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xEA, 0xD8, 0xF6, 0xF3, 0xAF, 0x2F, 0x52, 0xE5),
1616a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x95, 0x57, 0xF4, 0xCE, 0xEE, 0x43, 0xED, 0x60),
1617a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x7D, 0x46, 0x38, 0xDE, 0x20, 0xFD, 0x59, 0x18),
1618a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD7, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1619a8e1175bSopenharmony_ci};
1620a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_8_Y[] = {
1621a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1C, 0x18, 0xE8, 0x58, 0xB9, 0x76, 0x2C, 0xE6),
1622a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xED, 0x54, 0xE4, 0xFE, 0xC7, 0xBC, 0x31, 0x37),
1623a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0xF8, 0x89, 0xEE, 0x70, 0xB5, 0xB0, 0x2C),
1624a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x83, 0x22, 0x26, 0x9A, 0x53, 0xB9, 0x38, 0x0A),
1625a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x74, 0xA7, 0x19, 0x8C, 0x74, 0x7E, 0x88, 0x46),
1626a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB4, 0xDA, 0x0A, 0xE8, 0xDA, 0xA5, 0xBE, 0x1D),
1627a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x90, 0x5C, 0xF7, 0xB1, 0x0C, 0x72, 0xFB, 0x09),
1628a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x78, 0xE2, 0x23, 0xE7, 0x46, 0xB7, 0xE0, 0x91),
1629a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC5, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1630a8e1175bSopenharmony_ci};
1631a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_9_X[] = {
1632a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3A, 0x36, 0xBC, 0xBD, 0x48, 0x11, 0x8E, 0x72),
1633a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAB, 0xBB, 0xA1, 0xF7, 0x0B, 0x9E, 0xBF, 0xDF),
1634a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x68, 0x28, 0xE1, 0xA2, 0x8F, 0xFC, 0xFC, 0xD6),
1635a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x81, 0xFE, 0x19, 0x0A, 0xE5, 0xE7, 0x69, 0x39),
1636a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5E, 0xCD, 0x12, 0xF5, 0xBE, 0xD3, 0x04, 0xF1),
1637a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0xA8, 0x0D, 0x81, 0x59, 0xC4, 0x79, 0x98),
1638a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA3, 0xF3, 0x4B, 0x92, 0x65, 0xC3, 0x31, 0xAD),
1639a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x75, 0xB5, 0x4F, 0x4D, 0x91, 0xD4, 0xE2, 0xB2),
1640a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x51, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1641a8e1175bSopenharmony_ci};
1642a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_9_Y[] = {
1643a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x72, 0x09, 0x41, 0x79, 0x1D, 0x4D, 0x0D, 0x33),
1644a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBB, 0x31, 0x18, 0xBA, 0xA0, 0xF2, 0x6E, 0x7E),
1645a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x93, 0x5B, 0x4D, 0x4F, 0xAF, 0xC9, 0x8C, 0xA1),
1646a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x48, 0x99, 0x9C, 0x06, 0x68, 0xDE, 0xD8, 0x29),
1647a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA0, 0x04, 0xE1, 0xB5, 0x9D, 0x00, 0xBC, 0xB8),
1648a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x61, 0x95, 0x92, 0x8D, 0x72, 0xD3, 0x37, 0x42),
1649a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAB, 0x4B, 0x27, 0xA2, 0xE8, 0xA4, 0x26, 0xA1),
1650a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x4F, 0x45, 0x9C, 0xA9, 0xCB, 0x9F, 0xBA, 0x85),
1651a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1652a8e1175bSopenharmony_ci};
1653a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_10_X[] = {
1654a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x08, 0x7E, 0x1B, 0x64, 0xF4, 0xE8, 0xA5, 0x55),
1655a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF7, 0x20, 0xA9, 0xCA, 0xF3, 0x89, 0xE5, 0xE1),
1656a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x83, 0xED, 0xFC, 0xAB, 0xD9, 0x0A, 0xB9, 0x07),
1657a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x08, 0x6F, 0x46, 0x7C, 0xCD, 0x78, 0xFF, 0x05),
1658a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x69, 0xAB, 0x71, 0x5A, 0x94, 0xAB, 0x20, 0x20),
1659a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC2, 0x2E, 0xEE, 0x87, 0x57, 0x1F, 0xAD, 0xD3),
1660a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x91, 0x4C, 0x3D, 0xFB, 0x7E, 0xA1, 0x8B, 0x07),
1661a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x69, 0xCF, 0x07, 0x86, 0xBA, 0x53, 0x37, 0xCF),
1662a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x38, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1663a8e1175bSopenharmony_ci};
1664a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_10_Y[] = {
1665a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x26, 0xB2, 0xB9, 0xE2, 0x91, 0xE3, 0xB5),
1666a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x79, 0xC9, 0x54, 0x84, 0x08, 0x3D, 0x0B, 0xD2),
1667a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5D, 0xA8, 0x77, 0x2F, 0x64, 0x45, 0x99, 0x4C),
1668a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x87, 0x96, 0x16, 0x1F, 0xDB, 0x96, 0x28, 0x97),
1669a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x83, 0x2B, 0x8D, 0xFF, 0xA2, 0x4F, 0x55, 0xD3),
1670a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x71, 0xE6, 0x48, 0xBD, 0x99, 0x3D, 0x12, 0x57),
1671a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3F, 0x84, 0x59, 0xDA, 0xB9, 0xB6, 0x66, 0x12),
1672a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0x78, 0x41, 0x92, 0xDF, 0xF4, 0x3F, 0x63),
1673a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1674a8e1175bSopenharmony_ci};
1675a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_11_X[] = {
1676a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x7E, 0x86, 0x6F, 0x4F, 0xBF, 0x67, 0xDF, 0x2F),
1677a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF2, 0x2B, 0x1E, 0x5F, 0x00, 0xEA, 0xF6, 0x56),
1678a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x90, 0xB9, 0x6A, 0x89, 0xD8, 0xC0, 0xD7, 0xA7),
1679a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCB, 0x9A, 0x32, 0x23, 0xA0, 0x02, 0x91, 0x58),
1680a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x42, 0x7F, 0x6A, 0x15, 0x64, 0x6A, 0x8B, 0xBB),
1681a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x8A, 0x57, 0x82, 0x58, 0xA9, 0x56, 0xB5, 0xFB),
1682a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDD, 0x50, 0x92, 0x60, 0xCC, 0x81, 0x24, 0xA8),
1683a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x36, 0x3D, 0xAD, 0xDA, 0xD9, 0x51, 0x3E, 0x57),
1684a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1685a8e1175bSopenharmony_ci};
1686a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_11_Y[] = {
1687a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xEC, 0xFE, 0x8F, 0xB0, 0x0B, 0xDE, 0x2E, 0x7E),
1688a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x79, 0xD2, 0xBE, 0xEF, 0xAC, 0x76, 0x71, 0xA3),
1689a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x55, 0xE8, 0x72, 0x0B, 0xAC, 0xFE, 0xCA, 0x5A),
1690a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAD, 0x5B, 0xC7, 0xFC, 0xE3, 0x3C, 0x7C, 0x4C),
1691a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA1, 0x04, 0xA7, 0xB9, 0x9B, 0x93, 0xC0, 0x2F),
1692a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x41, 0x48, 0x4B, 0x8E, 0x32, 0xC5, 0xF0, 0x6B),
1693a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB0, 0x42, 0x07, 0xC1, 0xF2, 0xF1, 0x72, 0x5B),
1694a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0x37, 0x54, 0x9C, 0x88, 0xD2, 0x62, 0xAA),
1695a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC1, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1696a8e1175bSopenharmony_ci};
1697a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_12_X[] = {
1698a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC2, 0x19, 0x8A, 0x89, 0x58, 0xA2, 0x0F, 0xDB),
1699a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x01, 0xCC, 0x4C, 0x97, 0x30, 0x66, 0x34, 0x26),
1700a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x83, 0x6A, 0x1E, 0x1F, 0xDB, 0xC9, 0x5E, 0x13),
1701a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1B, 0x4D, 0x49, 0xFF, 0x9B, 0x9C, 0xAC, 0x9B),
1702a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD7, 0xE4, 0x4B, 0xF2, 0xD4, 0x1A, 0xD2, 0x78),
1703a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCD, 0xDA, 0xE8, 0x61, 0x9F, 0xC8, 0x49, 0x32),
1704a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x51, 0xCB, 0xF2, 0x2D, 0x85, 0xF6, 0x8D, 0x52),
1705a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB7, 0xC5, 0xCD, 0x2C, 0x79, 0xC6, 0x0E, 0x4F),
1706a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDB, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1707a8e1175bSopenharmony_ci};
1708a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_12_Y[] = {
1709a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x73, 0x1D, 0x55, 0x0F, 0xF8, 0x22, 0x9F, 0x78),
1710a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x76, 0x56, 0xBA, 0xE7, 0x57, 0x32, 0xEC, 0x42),
1711a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x65, 0x9A, 0xC6, 0x4C, 0x09, 0xC4, 0x52, 0x3F),
1712a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0x1E, 0x6F, 0xF4, 0x7D, 0x27, 0xDD, 0xAF),
1713a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x94, 0x11, 0x16, 0xEC, 0x79, 0x83, 0xAD, 0xAE),
1714a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x46, 0x4E, 0x92, 0x1F, 0x19, 0x7D, 0x65, 0xDC),
1715a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x09, 0xFF, 0x78, 0x15, 0x45, 0x63, 0x32, 0xE4),
1716a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBF, 0x91, 0xD0, 0x78, 0x58, 0xDA, 0x50, 0x47),
1717a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x73, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1718a8e1175bSopenharmony_ci};
1719a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_13_X[] = {
1720a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x23, 0xDE, 0x40, 0xF6, 0x41, 0xB4, 0x3B, 0x95),
1721a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC6, 0x8D, 0xE0, 0xE1, 0xA9, 0xF0, 0x35, 0x5D),
1722a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE6, 0xD4, 0xBA, 0x7B, 0xCC, 0x1B, 0x3A, 0x32),
1723a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD0, 0x5A, 0x2E, 0x74, 0x47, 0x14, 0xC3, 0x4D),
1724a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x7D, 0xF0, 0x8B, 0x06, 0x15, 0x8E, 0x0E, 0xCA),
1725a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB5, 0xD2, 0xEB, 0x97, 0x50, 0x7D, 0x31, 0xFC),
1726a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x42, 0x93, 0x4C, 0xDB, 0x97, 0x79, 0x44, 0xF5),
1727a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9C, 0xA2, 0xA0, 0x0B, 0xC8, 0x3A, 0x8A, 0xF9),
1728a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1729a8e1175bSopenharmony_ci};
1730a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_13_Y[] = {
1731a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x79, 0x50, 0x92, 0x9E, 0x24, 0x1F, 0xCB, 0x4C),
1732a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD3, 0x16, 0xC9, 0xC5, 0x3D, 0x5A, 0xAF, 0x97),
1733a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x18, 0xE3, 0x97, 0xE4, 0xA8, 0x50, 0xF6, 0x7E),
1734a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x45, 0x57, 0x97, 0x42, 0x78, 0x92, 0x49, 0x0D),
1735a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA5, 0xEB, 0x62, 0x24, 0xFB, 0x8F, 0x32, 0xCF),
1736a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF3, 0x0C, 0x36, 0x6E, 0x8F, 0xE8, 0xE8, 0x8E),
1737a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC2, 0xD3, 0x7C, 0xC7, 0x8D, 0x3F, 0x5C, 0xE1),
1738a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6A, 0x64, 0x6A, 0x73, 0x10, 0x79, 0xB8, 0x5A),
1739a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCB, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1740a8e1175bSopenharmony_ci};
1741a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_14_X[] = {
1742a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x51, 0xF9, 0xEF, 0xA5, 0x20, 0x4A, 0x5C, 0xA1),
1743a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x2F, 0xF3, 0xF4, 0x49, 0x5B, 0x73, 0xAA, 0x1B),
1744a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC6, 0xF2, 0xEA, 0x0F, 0x00, 0xAD, 0x53, 0xAB),
1745a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x03, 0xB8, 0x66, 0xED, 0xC4, 0x2B, 0x4C, 0x35),
1746a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3A, 0x2F, 0xC1, 0x9A, 0x37, 0xD2, 0x7F, 0x58),
1747a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x29, 0xA7, 0x81, 0x38, 0x64, 0xC9, 0x37, 0x38),
1748a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBE, 0x3B, 0x6C, 0x9F, 0x5B, 0xD9, 0x8B, 0x1D),
1749a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0x14, 0xD9, 0x08, 0xD8, 0xD2, 0x7E, 0x23),
1750a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1751a8e1175bSopenharmony_ci};
1752a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_14_Y[] = {
1753a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0x71, 0xE6, 0x3D, 0xD1, 0xB0, 0xE7, 0xCD),
1754a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5B, 0x81, 0x23, 0xEC, 0x2D, 0x42, 0x45, 0xE6),
1755a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x51, 0x5B, 0x44, 0x6B, 0x89, 0x03, 0x67, 0x28),
1756a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x84, 0x27, 0xAE, 0x80, 0x5A, 0x33, 0xBE, 0x11),
1757a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE3, 0xB6, 0x64, 0x1A, 0xDF, 0xD3, 0x85, 0x91),
1758a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x67, 0x8C, 0x22, 0xBA, 0xD0, 0xBD, 0xCC, 0xA0),
1759a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF7, 0x3C, 0x01, 0x3A, 0xFF, 0x9D, 0xC7, 0x6B),
1760a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x0C, 0xC7, 0x64, 0xB4, 0x59, 0x4E, 0x9F, 0x22),
1761a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x85, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1762a8e1175bSopenharmony_ci};
1763a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_15_X[] = {
1764a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA1, 0x34, 0x0A, 0x41, 0x94, 0xA8, 0xF2, 0xB7),
1765a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF6, 0xD4, 0xE4, 0xF0, 0x97, 0x45, 0x6D, 0xCA),
1766a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x8F, 0x1F, 0x4D, 0x6D, 0xFE, 0xA0, 0xC4, 0x84),
1767a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1D, 0x28, 0x5C, 0x40, 0xBB, 0x65, 0xD4, 0x42),
1768a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x98, 0xA8, 0x87, 0x35, 0x20, 0x3A, 0x89, 0x44),
1769a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD6, 0xFD, 0x4F, 0xAB, 0x2D, 0xD1, 0xD0, 0xC0),
1770a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x86, 0xE8, 0x00, 0xFC, 0x69, 0x52, 0xF8, 0xD5),
1771a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE1, 0x9A, 0x99, 0xE1, 0xDC, 0x9C, 0x3F, 0xD9),
1772a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x99, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1773a8e1175bSopenharmony_ci};
1774a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_15_Y[] = {
1775a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x12, 0x08, 0x98, 0xD9, 0xCA, 0x73, 0xD5, 0xA9),
1776a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB9, 0x2C, 0xE0, 0xA7, 0x3E, 0x91, 0xD7, 0x87),
1777a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x68, 0x04, 0xB0, 0x54, 0x09, 0xF4, 0x72, 0xB7),
1778a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC8, 0xEE, 0x28, 0xCC, 0xE8, 0x50, 0x78, 0x20),
1779a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x0D, 0x91, 0x03, 0x76, 0xDB, 0x68, 0x24, 0x77),
1780a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x7A, 0xE0, 0x56, 0xB2, 0x5D, 0x12, 0xD3, 0xB5),
1781a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x0D, 0x42, 0x59, 0x8B, 0xDF, 0x67, 0xB5, 0xBE),
1782a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD1, 0xCC, 0xE5, 0x31, 0x53, 0x7A, 0x46, 0xB3),
1783a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDA, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1784a8e1175bSopenharmony_ci};
1785a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_16_X[] = {
1786a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCC, 0x8D, 0x59, 0xB5, 0x1B, 0x0F, 0xF4, 0xAF),
1787a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD9, 0x2F, 0xD1, 0x2C, 0xE0, 0xD8, 0x04, 0xEF),
1788a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0xF4, 0xD7, 0xBA, 0xB0, 0xA3, 0x7E, 0xC9),
1789a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCD, 0x08, 0x51, 0x56, 0xA6, 0x76, 0x67, 0x33),
1790a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x8C, 0x17, 0x63, 0xFE, 0x56, 0xD0, 0xD9, 0x71),
1791a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAA, 0xF6, 0xC3, 0x14, 0x47, 0xC5, 0xA7, 0x31),
1792a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x72, 0x4C, 0x80, 0xF6, 0xA2, 0x57, 0xA7, 0x5D),
1793a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x11, 0xB3, 0x7B, 0xF8, 0x2F, 0xE1, 0x3E, 0x7B),
1794a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1795a8e1175bSopenharmony_ci};
1796a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_16_Y[] = {
1797a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x26, 0xF4, 0xF9, 0x6B, 0x7B, 0x90, 0xDF, 0x30),
1798a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1F, 0x82, 0xEF, 0x62, 0xA1, 0x4C, 0x53, 0xCA),
1799a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE6, 0x99, 0x76, 0x01, 0xBA, 0x8D, 0x0F, 0x54),
1800a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAF, 0xF4, 0x58, 0x73, 0x56, 0xFE, 0xDD, 0x7C),
1801a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF6, 0xCE, 0xF9, 0xE8, 0xA1, 0x34, 0xC3, 0x5B),
1802a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x09, 0x5F, 0xDC, 0x6A, 0x3D, 0xD8, 0x7F, 0x42),
1803a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC2, 0xF4, 0x51, 0xB8, 0xB8, 0xC1, 0xD7, 0x2F),
1804a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAE, 0x7D, 0x58, 0xD1, 0xD4, 0x1B, 0x4D, 0x23),
1805a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1806a8e1175bSopenharmony_ci};
1807a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_17_X[] = {
1808a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB9, 0x95, 0xDF, 0x00, 0xD8, 0x21, 0xDE, 0x94),
1809a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF7, 0x47, 0x3C, 0xC3, 0xB2, 0x01, 0x53, 0x5D),
1810a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0x17, 0x43, 0x23, 0xBD, 0xCA, 0x71, 0xF2),
1811a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x70, 0xBA, 0x0F, 0x4F, 0xDC, 0x41, 0x54, 0xBE),
1812a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD6, 0x39, 0x26, 0x70, 0x53, 0x32, 0x18, 0x11),
1813a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x32, 0x46, 0x07, 0x97, 0x3A, 0x57, 0xE0, 0x01),
1814a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD6, 0x92, 0x4F, 0xCE, 0xDF, 0x25, 0x80, 0x26),
1815a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5B, 0x6F, 0x9A, 0x03, 0x05, 0x4B, 0xD1, 0x47),
1816a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5D, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1817a8e1175bSopenharmony_ci};
1818a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_17_Y[] = {
1819a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x25, 0x01, 0x72, 0x30, 0x90, 0x17, 0x51, 0x20),
1820a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x74, 0xFB, 0x41, 0x65, 0x5C, 0xB4, 0x2D, 0xEE),
1821a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x66, 0xCD, 0xCD, 0xAA, 0x41, 0xCC, 0xBB, 0x07),
1822a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD4, 0xCE, 0x08, 0x0A, 0x63, 0xE9, 0xA2, 0xFF),
1823a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3D, 0xA8, 0x21, 0x7F, 0x7A, 0x5B, 0x9B, 0x81),
1824a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x10, 0x6B, 0x89, 0x44, 0x0A, 0x7F, 0x85, 0x5F),
1825a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x7D, 0xDE, 0x7C, 0x19, 0x5C, 0x65, 0x26, 0x61),
1826a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD7, 0xAC, 0x62, 0x29, 0x4A, 0xF1, 0xD0, 0x81),
1827a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x38, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1828a8e1175bSopenharmony_ci};
1829a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_18_X[] = {
1830a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x32, 0x00, 0x40, 0x87, 0xEB, 0xA9, 0x58, 0x56),
1831a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAF, 0x51, 0x0B, 0xFF, 0x56, 0x35, 0x51, 0xB3),
1832a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x7B, 0xAC, 0x08, 0x94, 0x71, 0xDA, 0xEC, 0x99),
1833a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5F, 0x4D, 0xC5, 0x7B, 0x31, 0x8B, 0x8D, 0x5E),
1834a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0x05, 0xF1, 0x3E, 0x9E, 0x8F, 0x17, 0x8F),
1835a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF0, 0x9C, 0x4B, 0x62, 0x94, 0xAD, 0x49, 0xFC),
1836a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x0F, 0xC9, 0xC6, 0x8F, 0xFD, 0x33, 0x44, 0x34),
1837a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5F, 0x96, 0x17, 0x7F, 0x42, 0xBE, 0xF7, 0x0D),
1838a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1839a8e1175bSopenharmony_ci};
1840a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_18_Y[] = {
1841a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFB, 0x29, 0x39, 0x13, 0x08, 0x8D, 0x91, 0x47),
1842a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF6, 0x79, 0xF9, 0x2F, 0xA9, 0x0A, 0xCF, 0xD6),
1843a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAB, 0x87, 0x7A, 0xA3, 0x19, 0xAB, 0x55, 0xAD),
1844a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE8, 0x0B, 0x01, 0xC5, 0x56, 0x19, 0x9D, 0x9E),
1845a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x19, 0xDE, 0x82, 0x3B, 0xEA, 0xD3, 0x0B, 0x8C),
1846a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x65, 0x6B, 0xC7, 0xF3, 0x0F, 0x82, 0x87, 0x6C),
1847a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD8, 0x2E, 0x23, 0xF2, 0x39, 0x9D, 0x49, 0x70),
1848a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x31, 0xDE, 0xAF, 0x7A, 0xEE, 0xB0, 0xDA, 0x70),
1849a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x63, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1850a8e1175bSopenharmony_ci};
1851a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_19_X[] = {
1852a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x76, 0x4E, 0x2A, 0x50, 0xFD, 0x8E, 0xC0, 0xEB),
1853a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x52, 0x0F, 0x7C, 0x76, 0x63, 0xD8, 0x89, 0x45),
1854a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xEC, 0x2D, 0xB9, 0x4E, 0xF4, 0xEE, 0x85, 0xCF),
1855a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC1, 0x95, 0x5C, 0x96, 0x5D, 0xAA, 0x59, 0x0B),
1856a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCA, 0xDB, 0xD2, 0x68, 0x8E, 0x5A, 0x94, 0x60),
1857a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD9, 0x02, 0xBF, 0x77, 0x9F, 0xB9, 0x4C, 0xC9),
1858a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x2D, 0xDC, 0xC0, 0xCF, 0x81, 0x1E, 0xC4, 0x6C),
1859a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x2B, 0xCC, 0x37, 0x86, 0xDC, 0xE2, 0x64, 0x72),
1860a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1861a8e1175bSopenharmony_ci};
1862a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_19_Y[] = {
1863a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x2C, 0x30, 0xB1, 0x59, 0x20, 0x9D, 0x98, 0x28),
1864a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x77, 0x0C, 0x9D, 0xF8, 0x20, 0xDC, 0x90, 0xBA),
1865a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB1, 0xA0, 0xF4, 0xE7, 0x3E, 0x9C, 0x9E, 0xA2),
1866a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB5, 0x25, 0xA2, 0xB0, 0x54, 0xCD, 0x2E, 0x33),
1867a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xEA, 0xD9, 0x42, 0xB0, 0x80, 0xB0, 0xA3, 0x38),
1868a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9F, 0xFE, 0x9D, 0x8D, 0x40, 0xFF, 0x27, 0x6D),
1869a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3A, 0x9D, 0xA6, 0x88, 0x3A, 0x8B, 0x6F, 0x14),
1870a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0x39, 0xEE, 0x1F, 0x3F, 0xB1, 0x4F, 0x63),
1871a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1872a8e1175bSopenharmony_ci};
1873a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_20_X[] = {
1874a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0xD7, 0x9E, 0xFF, 0xD2, 0x35, 0x67, 0x03),
1875a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCA, 0x4F, 0x15, 0x5D, 0xE3, 0xE8, 0x53, 0x86),
1876a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x92, 0xF7, 0x24, 0x98, 0xA2, 0xCB, 0x11, 0x68),
1877a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x06, 0x2E, 0x25, 0xE1, 0x94, 0xC5, 0xA3, 0x96),
1878a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE0, 0x82, 0x6E, 0xBA, 0xE7, 0x43, 0x25, 0xB0),
1879a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x18, 0x65, 0xB4, 0x49, 0x73, 0x18, 0x35, 0x54),
1880a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x59, 0x5B, 0xBC, 0x62, 0x86, 0x4C, 0xC1, 0xB7),
1881a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9B, 0xF2, 0x95, 0xA2, 0xBB, 0xA2, 0x35, 0x65),
1882a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1883a8e1175bSopenharmony_ci};
1884a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_20_Y[] = {
1885a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x72, 0x59, 0x62, 0xB0, 0x4B, 0x1E, 0xB4, 0xD8),
1886a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x0D, 0x55, 0xCE, 0xB0, 0x69, 0xBA, 0x63, 0x10),
1887a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6E, 0x69, 0x86, 0xDB, 0x34, 0x7D, 0x68, 0x64),
1888a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDA, 0x06, 0xCA, 0x55, 0x44, 0x36, 0x2B, 0xBA),
1889a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0xD4, 0xC4, 0x3D, 0xCD, 0x9E, 0x69, 0xA4),
1890a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3F, 0x44, 0xE4, 0xBF, 0x31, 0xE6, 0x40, 0x9F),
1891a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x7E, 0x4F, 0xFA, 0x75, 0xE3, 0xFB, 0x97, 0x0E),
1892a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x08, 0xC0, 0xBD, 0x1C, 0x48, 0xB0, 0x26, 0xD0),
1893a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD2, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1894a8e1175bSopenharmony_ci};
1895a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_21_X[] = {
1896a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1C, 0x7B, 0x32, 0xFA, 0xF2, 0x6D, 0x84, 0x8E),
1897a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA0, 0x21, 0x03, 0x1D, 0x0D, 0x22, 0x55, 0x67),
1898a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x18, 0xF9, 0x42, 0x03, 0x9C, 0xC2, 0xCB, 0xBA),
1899a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF8, 0xA1, 0x96, 0xD9, 0x9D, 0x11, 0x6F, 0xBE),
1900a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0x40, 0x57, 0xEB, 0x40, 0x2D, 0xC0, 0x11),
1901a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x2F, 0x96, 0xBB, 0x4F, 0x2F, 0x23, 0xA8, 0x28),
1902a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3A, 0x29, 0x85, 0x21, 0xA5, 0x50, 0x62, 0x06),
1903a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0x7D, 0x92, 0xCF, 0x87, 0x0C, 0x22, 0xF9),
1904a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1905a8e1175bSopenharmony_ci};
1906a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_21_Y[] = {
1907a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5A, 0x0E, 0xA5, 0x32, 0x5B, 0xDF, 0x9C, 0xD5),
1908a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x27, 0x96, 0x37, 0x2C, 0x88, 0x35, 0x30, 0xA1),
1909a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x40, 0xB4, 0x69, 0xFF, 0xEB, 0xC6, 0x94, 0x08),
1910a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0x55, 0x60, 0xAD, 0xAA, 0x58, 0x14, 0x88),
1911a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3C, 0xFF, 0xF2, 0xB2, 0xD5, 0xA7, 0xD9, 0x27),
1912a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x2D, 0xAE, 0x54, 0xD2, 0x60, 0x31, 0xF3, 0x15),
1913a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBB, 0x92, 0x83, 0xE3, 0xF1, 0x42, 0x83, 0x6E),
1914a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x49, 0xD2, 0xC8, 0xB7, 0x76, 0x45, 0x7F, 0x7D),
1915a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x04, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1916a8e1175bSopenharmony_ci};
1917a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_22_X[] = {
1918a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x4A, 0x11, 0xA4, 0xFB, 0x7A, 0x01, 0xBC, 0xC8),
1919a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCD, 0x27, 0x73, 0x8D, 0x02, 0x91, 0x27, 0x8E),
1920a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA4, 0x62, 0xF6, 0xDD, 0x6B, 0xFA, 0x5B, 0xB9),
1921a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xEF, 0xCA, 0xA2, 0x44, 0x2C, 0xF0, 0x28, 0xD8),
1922a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3C, 0xF1, 0x7A, 0xA2, 0x42, 0x4C, 0x50, 0xC6),
1923a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x2D, 0x83, 0x3E, 0x50, 0xAB, 0x9C, 0xF7, 0x67),
1924a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1D, 0xED, 0x78, 0xCB, 0x76, 0x69, 0xDA, 0x42),
1925a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDB, 0x01, 0x1E, 0x43, 0x27, 0x47, 0x6E, 0xDA),
1926a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x94, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1927a8e1175bSopenharmony_ci};
1928a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_22_Y[] = {
1929a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD3, 0x4F, 0x54, 0xB9, 0x3E, 0xBD, 0xD5, 0x44),
1930a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0x35, 0x40, 0x69, 0x7F, 0x74, 0x9D, 0x32),
1931a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5A, 0x06, 0x6F, 0x67, 0x68, 0x2B, 0x4D, 0x10),
1932a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC6, 0x65, 0x41, 0xFC, 0x7C, 0x1E, 0xE8, 0xC8),
1933a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF2, 0x79, 0x37, 0xAF, 0xFD, 0xD2, 0xDA, 0x4C),
1934a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x33, 0xA8, 0x69, 0x56, 0x62, 0xA4, 0xE4, 0xA3),
1935a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x42, 0x71, 0x73, 0x21, 0x8A, 0x17, 0x81, 0xA2),
1936a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x14, 0x55, 0x8F, 0x7B, 0xB8, 0xAF, 0xF7, 0x86),
1937a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAA, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1938a8e1175bSopenharmony_ci};
1939a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_23_X[] = {
1940a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x4B, 0xD1, 0xBD, 0xBE, 0x8C, 0xBC, 0x60, 0x6E),
1941a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x62, 0xA6, 0x57, 0x8C, 0xAE, 0x5C, 0x19, 0xFE),
1942a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x7A, 0x43, 0xE4, 0xD9, 0xD8, 0x7B, 0xE7, 0x41),
1943a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xED, 0xB9, 0xE4, 0x85, 0x7C, 0x2E, 0xFC, 0x20),
1944a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x02, 0x2E, 0x01, 0x2A, 0x6D, 0x56, 0xBE, 0x97),
1945a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6A, 0x0C, 0x25, 0x9B, 0xAE, 0x86, 0x37, 0x43),
1946a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x4A, 0x22, 0xB3, 0xCB, 0x99, 0x66, 0xB7, 0x9E),
1947a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x56, 0xF7, 0x90, 0xF0, 0x1B, 0x09, 0x27, 0xF7),
1948a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1949a8e1175bSopenharmony_ci};
1950a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_23_Y[] = {
1951a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1C, 0x16, 0x08, 0xEF, 0x39, 0x64, 0x49, 0x31),
1952a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x08, 0xA0, 0xE3, 0x97, 0xA9, 0x07, 0x54, 0x26),
1953a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCD, 0xFF, 0xE2, 0x00, 0x07, 0x21, 0x88, 0x20),
1954a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x16, 0xFD, 0x59, 0x53, 0x05, 0x6C, 0x42, 0x27),
1955a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x8F, 0xF7, 0x39, 0x5C, 0x82, 0x36, 0xE8, 0x03),
1956a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x2E, 0x83, 0xA8, 0xE2, 0xA8, 0x43, 0x07, 0x38),
1957a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE6, 0xAF, 0x2B, 0x79, 0xED, 0xD8, 0x39, 0x87),
1958a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0x20, 0x91, 0x7A, 0xC4, 0x07, 0xEF, 0x6C),
1959a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x28, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1960a8e1175bSopenharmony_ci};
1961a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_24_X[] = {
1962a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6A, 0x10, 0x2F, 0xAA, 0x0C, 0x94, 0x0E, 0x5A),
1963a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB7, 0x81, 0x87, 0x41, 0x23, 0xEB, 0x55, 0x7C),
1964a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB8, 0x53, 0xCC, 0x79, 0xB6, 0xEB, 0x6C, 0xCC),
1965a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF4, 0x77, 0x73, 0x9D, 0xFC, 0x64, 0x6F, 0x7F),
1966a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3C, 0x40, 0xE3, 0x6D, 0x1C, 0x16, 0x71, 0x15),
1967a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5A, 0xF4, 0x1B, 0xFF, 0x1C, 0x2F, 0xA5, 0xD7),
1968a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x06, 0x0E, 0x0B, 0x11, 0xF4, 0x8D, 0x93, 0xAF),
1969a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x58, 0xC5, 0x64, 0x6F, 0x24, 0x19, 0xF2, 0x9B),
1970a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1971a8e1175bSopenharmony_ci};
1972a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_24_Y[] = {
1973a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x52, 0xB3, 0xAF, 0xA5, 0x0E, 0x4F, 0x5E, 0xE1),
1974a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x0F, 0x77, 0xCA, 0xF2, 0x6D, 0xC5, 0xF6, 0x9F),
1975a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x90, 0x18, 0x8E, 0x33, 0x68, 0x6C, 0xE8, 0xE0),
1976a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFC, 0x8B, 0x80, 0x90, 0x19, 0x7F, 0x90, 0x96),
1977a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5B, 0x80, 0x6B, 0x68, 0xE2, 0x7D, 0xD4, 0xD0),
1978a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x2A, 0xC1, 0x67, 0xB3, 0x72, 0xCB, 0xBF, 0x2F),
1979a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x4F, 0xD5, 0xD3, 0x1D, 0x14, 0x58, 0x0A, 0x80),
1980a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x79, 0x7A, 0x65, 0x98, 0xB3, 0x07, 0x4B, 0x2F),
1981a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF3, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1982a8e1175bSopenharmony_ci};
1983a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_25_X[] = {
1984a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x2A, 0x87, 0x0F, 0x5F, 0xCF, 0xA2, 0x01, 0x08),
1985a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x0C, 0xC9, 0xC8, 0x6E, 0x35, 0x87, 0xA5, 0x67),
1986a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x94, 0x3E, 0x91, 0xA0, 0xAB, 0x24, 0x1E, 0xF2),
1987a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB9, 0xBC, 0x02, 0x35, 0x70, 0xC1, 0x5F, 0x98),
1988a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x26, 0x59, 0xA0, 0x50, 0x04, 0x80, 0x52, 0x85),
1989a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF8, 0x56, 0x6E, 0x42, 0x8F, 0x8C, 0x91, 0x65),
1990a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0xA2, 0xCB, 0xA5, 0xDE, 0x14, 0x24, 0x38),
1991a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0xCB, 0x74, 0x28, 0xE6, 0xA7, 0xE7, 0xC3),
1992a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
1993a8e1175bSopenharmony_ci};
1994a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_25_Y[] = {
1995a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x35, 0x73, 0xA8, 0x8F, 0x9E, 0x0E, 0x63, 0x96),
1996a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC8, 0x1B, 0x77, 0xC7, 0xC1, 0x38, 0xF9, 0xDC),
1997a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD8, 0x3C, 0xCF, 0xA8, 0x7A, 0xD7, 0xF3, 0xC4),
1998a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDD, 0x5F, 0x9A, 0xC9, 0xAD, 0xE9, 0x1A, 0x93),
1999a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFC, 0xCF, 0x2B, 0x5E, 0xD5, 0x81, 0x95, 0xA8),
2000a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x19, 0x88, 0x75, 0x29, 0x1F, 0xC7, 0xC7, 0xD0),
2001a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD8, 0xA9, 0x5A, 0x4D, 0x63, 0x95, 0xF9, 0x4E),
2002a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xEB, 0xCD, 0x04, 0x8F, 0xCD, 0x91, 0xDE, 0xC6),
2003a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x71, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
2004a8e1175bSopenharmony_ci};
2005a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_26_X[] = {
2006a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x88, 0xD4, 0xFD, 0x25, 0x11, 0x99, 0x6E, 0xEA),
2007a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB0, 0x83, 0x01, 0x3D, 0xFB, 0x56, 0xA5, 0x4E),
2008a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC2, 0x3A, 0xDC, 0x74, 0xC2, 0xD7, 0xCF, 0xE8),
2009a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x8F, 0xBD, 0xF1, 0xDD, 0xA3, 0x07, 0x03, 0xE2),
2010a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x7B, 0xBE, 0xE9, 0x2E, 0x58, 0x84, 0x66, 0xFC),
2011a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x71, 0x20, 0x78, 0x37, 0x79, 0x0B, 0xA6, 0x64),
2012a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE3, 0xF2, 0xAC, 0x65, 0xC8, 0xC9, 0x2F, 0x61),
2013a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x26, 0x93, 0xE5, 0x0D, 0x0C, 0xC6, 0xB8, 0xCB),
2014a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
2015a8e1175bSopenharmony_ci};
2016a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_26_Y[] = {
2017a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x69, 0xAD, 0x5C, 0x19, 0x12, 0x61, 0x0E, 0x25),
2018a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x39, 0x4F, 0x0B, 0x1F, 0x49, 0x7E, 0xCD, 0x81),
2019a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x46, 0x2E, 0x30, 0x61, 0xDB, 0x08, 0x68, 0x9B),
2020a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x41, 0x78, 0xAF, 0xB3, 0x08, 0xC1, 0x69, 0xE5),
2021a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC4, 0x5F, 0x5D, 0xC1, 0x57, 0x6F, 0xD8, 0x34),
2022a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x38, 0xD3, 0x6A, 0xF7, 0xFD, 0x86, 0xE5, 0xB3),
2023a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA8, 0x63, 0xBD, 0x70, 0x7B, 0x47, 0xE8, 0x6D),
2024a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x18, 0x62, 0xC8, 0x7E, 0x9D, 0x11, 0x2B, 0xA5),
2025a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
2026a8e1175bSopenharmony_ci};
2027a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_27_X[] = {
2028a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE2, 0x84, 0xFD, 0xD5, 0x9A, 0x56, 0x7F, 0x5C),
2029a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x7C, 0xBB, 0xA4, 0x6F, 0x12, 0x6E, 0x4D, 0xF8),
2030a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1D, 0x08, 0xA1, 0x82, 0x9C, 0x62, 0x74, 0x7B),
2031a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9E, 0x58, 0x22, 0x05, 0x1D, 0x15, 0x35, 0x79),
2032a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9A, 0x88, 0xCF, 0x5C, 0x05, 0x78, 0xFB, 0x94),
2033a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0x6B, 0x2F, 0x79, 0x09, 0x73, 0x67, 0xEC),
2034a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD8, 0xA0, 0x80, 0xD8, 0xE8, 0xEC, 0xFB, 0x42),
2035a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0xE7, 0x0B, 0xB7, 0x81, 0x48, 0x7B, 0xD9),
2036a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
2037a8e1175bSopenharmony_ci};
2038a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_27_Y[] = {
2039a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE8, 0x53, 0xA9, 0xED, 0x61, 0x92, 0xD7, 0x85),
2040a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x26, 0x49, 0xD9, 0x5D, 0x9B, 0x4E, 0x89, 0x35),
2041a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB8, 0x12, 0xEB, 0x9A, 0xC9, 0xCB, 0xC1, 0x95),
2042a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x35, 0xDC, 0x95, 0x16, 0xFE, 0x29, 0x70, 0x01),
2043a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x64, 0x33, 0xB1, 0xD6, 0x78, 0xB9, 0xE2, 0x36),
2044a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0xCE, 0x88, 0xC3, 0xFD, 0x7A, 0x6B, 0xB8),
2045a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x40, 0x1E, 0x50, 0x1E, 0xAF, 0xB1, 0x25, 0x2D),
2046a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC1, 0xE7, 0xD7, 0xD5, 0xBD, 0x7A, 0x12, 0xF9),
2047a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
2048a8e1175bSopenharmony_ci};
2049a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_28_X[] = {
2050a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x22, 0xAA, 0xA2, 0x80, 0x5D, 0x8F, 0xCD, 0xC8),
2051a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x48, 0x39, 0x79, 0x64, 0xA1, 0x67, 0x3C, 0xB7),
2052a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3D, 0xC7, 0x49, 0xFF, 0x7F, 0xAC, 0xAB, 0x55),
2053a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x81, 0x54, 0x3E, 0x83, 0xF0, 0x3D, 0xBC, 0xB5),
2054a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x87, 0x92, 0x4A, 0x38, 0x42, 0x8A, 0xAB, 0xF6),
2055a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE7, 0x0B, 0x4F, 0xEE, 0x9E, 0x92, 0xA5, 0xBE),
2056a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBA, 0xDD, 0x19, 0x96, 0xF2, 0xF0, 0x6B, 0x2E),
2057a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBE, 0xFC, 0xDD, 0xB2, 0x8A, 0xE5, 0x4C, 0x22),
2058a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD4, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
2059a8e1175bSopenharmony_ci};
2060a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_28_Y[] = {
2061a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB7, 0x06, 0x49, 0xAC, 0x99, 0x7E, 0xF8, 0x12),
2062a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x76, 0xC8, 0x01, 0x51, 0xEA, 0xF6, 0x52, 0xE7),
2063a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x43, 0x89, 0x66, 0x2B, 0x1F, 0x9B, 0x2A, 0xA3),
2064a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDF, 0x0F, 0x95, 0x07, 0x2B, 0x6C, 0x6E, 0x9E),
2065a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x24, 0xC3, 0xB4, 0xBB, 0x91, 0x1F, 0xA3, 0x72),
2066a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5F, 0x6E, 0x54, 0x28, 0x7B, 0x9C, 0x79, 0x2E),
2067a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x03, 0x45, 0xFF, 0xA6, 0xDA, 0xA2, 0x83, 0x71),
2068a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xEB, 0xDE, 0x8F, 0x17, 0x37, 0x82, 0xCB, 0xE2),
2069a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
2070a8e1175bSopenharmony_ci};
2071a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_29_X[] = {
2072a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD8, 0x94, 0x3F, 0x26, 0xC9, 0x1D, 0xD9, 0xAE),
2073a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x09, 0x97, 0x28, 0x20, 0xCD, 0xC1, 0xF3, 0x40),
2074a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x95, 0xC9, 0xB5, 0x60, 0x9B, 0x1E, 0xDC, 0x74),
2075a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5B, 0xB9, 0x5B, 0x7D, 0xA0, 0xB2, 0x8C, 0xF0),
2076a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x33, 0xD1, 0x42, 0xE6, 0x39, 0x33, 0x6D, 0xBB),
2077a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5D, 0xC0, 0xFC, 0xD2, 0x14, 0x5D, 0x3E, 0x3C),
2078a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x78, 0x4A, 0x3E, 0x40, 0x16, 0x93, 0x15, 0xCF),
2079a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0x24, 0xC1, 0x27, 0x27, 0xE5, 0x4B, 0xD8),
2080a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
2081a8e1175bSopenharmony_ci};
2082a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_29_Y[] = {
2083a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1D, 0x50, 0xD8, 0xBC, 0xC1, 0x46, 0x22, 0xBB),
2084a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAD, 0x0E, 0x60, 0xA1, 0xB3, 0x50, 0xD4, 0x86),
2085a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x80, 0xB1, 0x26, 0xB6, 0x6D, 0x47, 0x5A, 0x6F),
2086a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x45, 0xAC, 0x11, 0x35, 0x3E, 0xB9, 0xF4, 0x01),
2087a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x58, 0x97, 0xFA, 0xBB, 0x6B, 0x39, 0x13, 0xD8),
2088a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0x7B, 0x34, 0x12, 0x75, 0x8E, 0x9B, 0xC6),
2089a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x2C, 0x9E, 0xCD, 0x29, 0xB6, 0xEF, 0x8D, 0x10),
2090a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x47, 0xAC, 0xE9, 0x25, 0x27, 0xBB, 0x78, 0x47),
2091a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x2F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
2092a8e1175bSopenharmony_ci};
2093a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_30_X[] = {
2094a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x30, 0x7A, 0xA8, 0xD3, 0xE3, 0x66, 0xE5, 0x66),
2095a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x2F, 0x4C, 0xC4, 0x2C, 0x76, 0x81, 0x50, 0x32),
2096a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xEE, 0x71, 0x08, 0xB8, 0x52, 0x7C, 0xAF, 0xDC),
2097a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x45, 0x59, 0x24, 0xDD, 0xFB, 0x2F, 0xD0, 0xDA),
2098a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB7, 0xCD, 0x56, 0xE9, 0xAC, 0x91, 0xE6, 0xB9),
2099a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE5, 0x64, 0x20, 0xC6, 0x9F, 0xE4, 0xEF, 0xDF),
2100a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0x2C, 0x8F, 0x8C, 0x97, 0xF6, 0x22, 0xC3),
2101a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0xF4, 0x88, 0xAA, 0xA8, 0xD7, 0xA5, 0x68),
2102a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
2103a8e1175bSopenharmony_ci};
2104a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_30_Y[] = {
2105a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0x6C, 0xAE, 0x83, 0xB1, 0x55, 0x55, 0xEE),
2106a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB0, 0x67, 0x84, 0x47, 0x7C, 0x83, 0x5C, 0x89),
2107a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5B, 0x10, 0x4D, 0xDD, 0x30, 0x60, 0xB0, 0xE6),
2108a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x59, 0xA7, 0x36, 0x76, 0x24, 0x32, 0x9F, 0x9D),
2109a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDD, 0x42, 0x81, 0xFB, 0xA4, 0x2E, 0x13, 0x68),
2110a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x87, 0x94, 0x91, 0xFF, 0x99, 0xA0, 0x09, 0x61),
2111a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5D, 0x83, 0xA1, 0x76, 0xAF, 0x37, 0x5C, 0x77),
2112a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0xA8, 0x04, 0x86, 0xC4, 0xA9, 0x79, 0x42),
2113a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x93, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
2114a8e1175bSopenharmony_ci};
2115a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_31_X[] = {
2116a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0x8C, 0xC2, 0x34, 0xFB, 0x83, 0x28, 0x27),
2117a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA4, 0x03, 0x7D, 0x5E, 0x9E, 0x0E, 0xB0, 0x22),
2118a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA2, 0x02, 0x46, 0x7F, 0xB9, 0xAC, 0xBB, 0x23),
2119a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x06, 0xED, 0x48, 0xC2, 0x96, 0x4D, 0x56, 0x27),
2120a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x44, 0xB5, 0xC5, 0xD1, 0xE6, 0x1C, 0x7E, 0x9B),
2121a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x92, 0x2E, 0x18, 0x71, 0x2D, 0x7B, 0xD7, 0xB3),
2122a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAB, 0x46, 0x9D, 0xDE, 0xAA, 0x78, 0x8E, 0xB1),
2123a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x4D, 0xD7, 0x69, 0x2E, 0xE1, 0xD9, 0x48, 0xDE),
2124a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFB, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
2125a8e1175bSopenharmony_ci};
2126a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp521r1_T_31_Y[] = {
2127a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAF, 0xFF, 0x9E, 0x09, 0x22, 0x22, 0xE6, 0x8D),
2128a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x14, 0x28, 0x13, 0x1B, 0x62, 0x12, 0x22),
2129a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCC, 0x7F, 0x67, 0x03, 0xB0, 0xC0, 0xF3, 0x05),
2130a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC0, 0xC3, 0x0F, 0xFB, 0x25, 0x48, 0x3E, 0xF4),
2131a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x0B, 0x6E, 0x53, 0x98, 0x36, 0xB3, 0xD3, 0x94),
2132a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xEB, 0x81, 0x54, 0x22, 0xA4, 0xCC, 0xC1, 0x22),
2133a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0xBA, 0xFC, 0xA9, 0xDF, 0x68, 0x86, 0x2B),
2134a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x71, 0x92, 0x0E, 0xC3, 0xF2, 0x58, 0xE8, 0x51),
2135a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE9, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
2136a8e1175bSopenharmony_ci};
2137a8e1175bSopenharmony_cistatic const mbedtls_ecp_point secp521r1_T[32] = {
2138a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z1(secp521r1_T_0_X, secp521r1_T_0_Y),
2139a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp521r1_T_1_X, secp521r1_T_1_Y),
2140a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp521r1_T_2_X, secp521r1_T_2_Y),
2141a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp521r1_T_3_X, secp521r1_T_3_Y),
2142a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp521r1_T_4_X, secp521r1_T_4_Y),
2143a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp521r1_T_5_X, secp521r1_T_5_Y),
2144a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp521r1_T_6_X, secp521r1_T_6_Y),
2145a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp521r1_T_7_X, secp521r1_T_7_Y),
2146a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp521r1_T_8_X, secp521r1_T_8_Y),
2147a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp521r1_T_9_X, secp521r1_T_9_Y),
2148a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp521r1_T_10_X, secp521r1_T_10_Y),
2149a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp521r1_T_11_X, secp521r1_T_11_Y),
2150a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp521r1_T_12_X, secp521r1_T_12_Y),
2151a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp521r1_T_13_X, secp521r1_T_13_Y),
2152a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp521r1_T_14_X, secp521r1_T_14_Y),
2153a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp521r1_T_15_X, secp521r1_T_15_Y),
2154a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp521r1_T_16_X, secp521r1_T_16_Y),
2155a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp521r1_T_17_X, secp521r1_T_17_Y),
2156a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp521r1_T_18_X, secp521r1_T_18_Y),
2157a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp521r1_T_19_X, secp521r1_T_19_Y),
2158a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp521r1_T_20_X, secp521r1_T_20_Y),
2159a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp521r1_T_21_X, secp521r1_T_21_Y),
2160a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp521r1_T_22_X, secp521r1_T_22_Y),
2161a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp521r1_T_23_X, secp521r1_T_23_Y),
2162a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp521r1_T_24_X, secp521r1_T_24_Y),
2163a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp521r1_T_25_X, secp521r1_T_25_Y),
2164a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp521r1_T_26_X, secp521r1_T_26_Y),
2165a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp521r1_T_27_X, secp521r1_T_27_Y),
2166a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp521r1_T_28_X, secp521r1_T_28_Y),
2167a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp521r1_T_29_X, secp521r1_T_29_Y),
2168a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp521r1_T_30_X, secp521r1_T_30_Y),
2169a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp521r1_T_31_X, secp521r1_T_31_Y),
2170a8e1175bSopenharmony_ci};
2171a8e1175bSopenharmony_ci#else
2172a8e1175bSopenharmony_ci#define secp521r1_T NULL
2173a8e1175bSopenharmony_ci#endif
2174a8e1175bSopenharmony_ci#endif /* MBEDTLS_ECP_DP_SECP521R1_ENABLED */
2175a8e1175bSopenharmony_ci
2176a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED)
2177a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192k1_p[] = {
2178a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x37, 0xEE, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF),
2179a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
2180a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
2181a8e1175bSopenharmony_ci};
2182a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192k1_a[] = {
2183a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_2(0x00, 0x00),
2184a8e1175bSopenharmony_ci};
2185a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192k1_b[] = {
2186a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_2(0x03, 0x00),
2187a8e1175bSopenharmony_ci};
2188a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192k1_gx[] = {
2189a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x7D, 0x6C, 0xE0, 0xEA, 0xB1, 0xD1, 0xA5, 0x1D),
2190a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0xF4, 0xB7, 0x80, 0x02, 0x7D, 0xB0, 0x26),
2191a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAE, 0xE9, 0x57, 0xC0, 0x0E, 0xF1, 0x4F, 0xDB),
2192a8e1175bSopenharmony_ci};
2193a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192k1_gy[] = {
2194a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9D, 0x2F, 0x5E, 0xD9, 0x88, 0xAA, 0x82, 0x40),
2195a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0x86, 0xBE, 0x15, 0xD0, 0x63, 0x41, 0x84),
2196a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA7, 0x28, 0x56, 0x9C, 0x6D, 0x2F, 0x2F, 0x9B),
2197a8e1175bSopenharmony_ci};
2198a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192k1_n[] = {
2199a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x8D, 0xFD, 0xDE, 0x74, 0x6A, 0x46, 0x69, 0x0F),
2200a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x17, 0xFC, 0xF2, 0x26, 0xFE, 0xFF, 0xFF, 0xFF),
2201a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
2202a8e1175bSopenharmony_ci};
2203a8e1175bSopenharmony_ci
2204a8e1175bSopenharmony_ci#if MBEDTLS_ECP_FIXED_POINT_OPTIM == 1
2205a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192k1_T_0_X[] = {
2206a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x7D, 0x6C, 0xE0, 0xEA, 0xB1, 0xD1, 0xA5, 0x1D),
2207a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0xF4, 0xB7, 0x80, 0x02, 0x7D, 0xB0, 0x26),
2208a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAE, 0xE9, 0x57, 0xC0, 0x0E, 0xF1, 0x4F, 0xDB),
2209a8e1175bSopenharmony_ci};
2210a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192k1_T_0_Y[] = {
2211a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9D, 0x2F, 0x5E, 0xD9, 0x88, 0xAA, 0x82, 0x40),
2212a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0x86, 0xBE, 0x15, 0xD0, 0x63, 0x41, 0x84),
2213a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA7, 0x28, 0x56, 0x9C, 0x6D, 0x2F, 0x2F, 0x9B),
2214a8e1175bSopenharmony_ci};
2215a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192k1_T_1_X[] = {
2216a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6F, 0x77, 0x3D, 0x0D, 0x85, 0x48, 0xA8, 0xA9),
2217a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x62, 0x07, 0xDF, 0x1D, 0xB3, 0xB3, 0x01, 0x54),
2218a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x05, 0x86, 0xF6, 0xAF, 0x19, 0x2A, 0x88, 0x2E),
2219a8e1175bSopenharmony_ci};
2220a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192k1_T_1_Y[] = {
2221a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x33, 0x90, 0xB6, 0x2F, 0x48, 0x36, 0x4C, 0x5B),
2222a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDB, 0x11, 0x14, 0xA6, 0xCB, 0xBA, 0x15, 0xD9),
2223a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x7E, 0xB0, 0xF2, 0xD4, 0xC9, 0xDA, 0xBA, 0xD7),
2224a8e1175bSopenharmony_ci};
2225a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192k1_T_2_X[] = {
2226a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE4, 0xC1, 0x9C, 0xE6, 0xBB, 0xFB, 0xCF, 0x23),
2227a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x93, 0x19, 0xAC, 0x5A, 0xC9, 0x8A, 0x1C, 0x75),
2228a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC1, 0xF6, 0x76, 0x86, 0x89, 0x27, 0x8D, 0x28),
2229a8e1175bSopenharmony_ci};
2230a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192k1_T_2_Y[] = {
2231a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x4B, 0xE0, 0x6F, 0x34, 0xBA, 0x5E, 0xD3, 0x96),
2232a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6A, 0xDC, 0xA6, 0x87, 0xC9, 0x9D, 0xC0, 0x82),
2233a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x09, 0x11, 0x7E, 0xD6, 0xF7, 0x33, 0xFC, 0xE4),
2234a8e1175bSopenharmony_ci};
2235a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192k1_T_3_X[] = {
2236a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC2, 0x37, 0x3E, 0xC0, 0x7F, 0x62, 0xE7, 0x54),
2237a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA5, 0x3B, 0x69, 0x9D, 0x44, 0xBC, 0x82, 0x99),
2238a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD4, 0x84, 0xB3, 0x5F, 0x2B, 0xA5, 0x9E, 0x2C),
2239a8e1175bSopenharmony_ci};
2240a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192k1_T_3_Y[] = {
2241a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1D, 0x95, 0xEB, 0x4C, 0x04, 0xB4, 0xF4, 0x75),
2242a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x55, 0xAD, 0x4B, 0xD5, 0x9A, 0xEB, 0xC4, 0x4E),
2243a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0xB1, 0xC5, 0x59, 0xE3, 0xD5, 0x16, 0x2A),
2244a8e1175bSopenharmony_ci};
2245a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192k1_T_4_X[] = {
2246a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x48, 0x2A, 0xCC, 0xAC, 0xD0, 0xEE, 0x50, 0xEC),
2247a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x99, 0x83, 0xE0, 0x5B, 0x14, 0x44, 0x52, 0x20),
2248a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD6, 0x15, 0x2D, 0x78, 0xF6, 0x51, 0x32, 0xCF),
2249a8e1175bSopenharmony_ci};
2250a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192k1_T_4_Y[] = {
2251a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x86, 0x36, 0x9B, 0xDD, 0xF8, 0xDD, 0xEF, 0xB2),
2252a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x0B, 0xB1, 0x6A, 0x2B, 0xAF, 0xEB, 0x2B, 0xB1),
2253a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0x87, 0x7A, 0x66, 0x5D, 0x5B, 0xDF, 0x8F),
2254a8e1175bSopenharmony_ci};
2255a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192k1_T_5_X[] = {
2256a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x62, 0x45, 0xE5, 0x81, 0x9B, 0xEB, 0x37, 0x23),
2257a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB3, 0x29, 0xE2, 0x20, 0x64, 0x23, 0x6B, 0x6E),
2258a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFE, 0x1D, 0x41, 0xE1, 0x9B, 0x61, 0x7B, 0xD9),
2259a8e1175bSopenharmony_ci};
2260a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192k1_T_5_Y[] = {
2261a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x75, 0x57, 0xA3, 0x0A, 0x13, 0xE4, 0x59, 0x15),
2262a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x79, 0x6E, 0x4A, 0x48, 0x84, 0x90, 0xAC, 0xC7),
2263a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9C, 0xB8, 0xF5, 0xF3, 0xDE, 0xA0, 0xA1, 0x1D),
2264a8e1175bSopenharmony_ci};
2265a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192k1_T_6_X[] = {
2266a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA3, 0x32, 0x81, 0xA9, 0x91, 0x5A, 0x4E, 0x33),
2267a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCB, 0xA8, 0x90, 0xBE, 0x0F, 0xEC, 0xC0, 0x85),
2268a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x80, 0x30, 0xD7, 0x08, 0xAE, 0xC4, 0x3A, 0xA5),
2269a8e1175bSopenharmony_ci};
2270a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192k1_T_6_Y[] = {
2271a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBC, 0x55, 0xE3, 0x76, 0xB3, 0x64, 0x74, 0x9F),
2272a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3F, 0x75, 0xD4, 0xDB, 0x98, 0xD7, 0x39, 0xAE),
2273a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD4, 0xEB, 0x8A, 0xAB, 0x16, 0xD9, 0xD4, 0x0B),
2274a8e1175bSopenharmony_ci};
2275a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192k1_T_7_X[] = {
2276a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x41, 0xBE, 0xF9, 0xC7, 0xC7, 0xBA, 0xF3, 0xA1),
2277a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC2, 0x85, 0x59, 0xF3, 0x60, 0x41, 0x02, 0xD2),
2278a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x46, 0x1C, 0x4A, 0xA4, 0xC7, 0xED, 0x66, 0xBC),
2279a8e1175bSopenharmony_ci};
2280a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192k1_T_7_Y[] = {
2281a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC3, 0x9C, 0x2E, 0x46, 0x52, 0x18, 0x87, 0x14),
2282a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0x35, 0x5A, 0x75, 0xAC, 0x4D, 0x75, 0x91),
2283a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCE, 0x2F, 0xAC, 0xFC, 0xBC, 0xE6, 0x93, 0x5E),
2284a8e1175bSopenharmony_ci};
2285a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192k1_T_8_X[] = {
2286a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x87, 0x4D, 0xC9, 0x18, 0xE9, 0x00, 0xEB, 0x33),
2287a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1A, 0x69, 0x72, 0x07, 0x5A, 0x59, 0xA8, 0x26),
2288a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0x65, 0x83, 0x20, 0x10, 0xF9, 0x69, 0x82),
2289a8e1175bSopenharmony_ci};
2290a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192k1_T_8_Y[] = {
2291a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x8B, 0x56, 0x7F, 0x9F, 0xBF, 0x46, 0x0C, 0x7E),
2292a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFC, 0xCF, 0xF0, 0xDC, 0xDF, 0x2D, 0xE6, 0xE5),
2293a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x09, 0xF0, 0x72, 0x3A, 0x7A, 0x03, 0xE5, 0x22),
2294a8e1175bSopenharmony_ci};
2295a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192k1_T_9_X[] = {
2296a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3E, 0xAA, 0x57, 0x13, 0x37, 0xA7, 0x2C, 0xD4),
2297a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA3, 0xAC, 0xA2, 0x23, 0xF9, 0x84, 0x60, 0xD3),
2298a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x32, 0xEB, 0x51, 0x70, 0x64, 0x78, 0xCA, 0x05),
2299a8e1175bSopenharmony_ci};
2300a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192k1_T_9_Y[] = {
2301a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x91, 0xCC, 0x30, 0x62, 0x93, 0x46, 0x13, 0xE9),
2302a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0x26, 0xCC, 0x6C, 0x3D, 0x5C, 0xDA, 0x2C),
2303a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD5, 0xAA, 0xB8, 0x03, 0xA4, 0x1A, 0x00, 0x96),
2304a8e1175bSopenharmony_ci};
2305a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192k1_T_10_X[] = {
2306a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF9, 0x9D, 0xE6, 0xCC, 0x4E, 0x2E, 0xC2, 0xD5),
2307a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB4, 0xC3, 0x8A, 0xAE, 0x6F, 0x40, 0x05, 0xEB),
2308a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9D, 0x8F, 0x4A, 0x4D, 0x35, 0xD3, 0x50, 0x9D),
2309a8e1175bSopenharmony_ci};
2310a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192k1_T_10_Y[] = {
2311a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1F, 0xFD, 0x98, 0xAB, 0xC7, 0x03, 0xB4, 0x55),
2312a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x40, 0x40, 0xD2, 0x9F, 0xCA, 0xD0, 0x53, 0x00),
2313a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1A, 0x84, 0x00, 0x6F, 0xC8, 0xAD, 0xED, 0x8D),
2314a8e1175bSopenharmony_ci};
2315a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192k1_T_11_X[] = {
2316a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCE, 0xD3, 0x57, 0xD7, 0xC3, 0x07, 0xBD, 0xD7),
2317a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x67, 0xBA, 0x47, 0x1D, 0x3D, 0xEF, 0x98, 0x6C),
2318a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0xC0, 0x6C, 0x7F, 0x12, 0xEE, 0x9F, 0x67),
2319a8e1175bSopenharmony_ci};
2320a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192k1_T_11_Y[] = {
2321a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCA, 0x02, 0xDA, 0x79, 0xAA, 0xC9, 0x27, 0xC4),
2322a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0x79, 0xC7, 0x71, 0x84, 0xCB, 0xE5, 0x5A),
2323a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0x37, 0x06, 0xBA, 0xB5, 0xD5, 0x18, 0x4C),
2324a8e1175bSopenharmony_ci};
2325a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192k1_T_12_X[] = {
2326a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA1, 0x65, 0x72, 0x6C, 0xF2, 0x63, 0x27, 0x6A),
2327a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x69, 0xBC, 0x71, 0xDF, 0x75, 0xF8, 0x98, 0x4D),
2328a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x70, 0x70, 0x9B, 0xDC, 0xE7, 0x18, 0x71, 0xFF),
2329a8e1175bSopenharmony_ci};
2330a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192k1_T_12_Y[] = {
2331a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0x5B, 0x9F, 0x00, 0x5A, 0xB6, 0x80, 0x7A),
2332a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB7, 0xE0, 0xBB, 0xFC, 0x5E, 0x78, 0x9C, 0x89),
2333a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x60, 0x03, 0x68, 0x83, 0x3D, 0x2E, 0x4C, 0xDD),
2334a8e1175bSopenharmony_ci};
2335a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192k1_T_13_X[] = {
2336a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3B, 0x49, 0x23, 0xA8, 0xCB, 0x3B, 0x1A, 0xF6),
2337a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x8B, 0x3D, 0xA7, 0x46, 0xCF, 0x75, 0xB6, 0x2C),
2338a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x92, 0xFD, 0x30, 0x01, 0xB6, 0xEF, 0xF9, 0xE8),
2339a8e1175bSopenharmony_ci};
2340a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192k1_T_13_Y[] = {
2341a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDC, 0xFA, 0xDA, 0xB8, 0x29, 0x42, 0xC9, 0xC7),
2342a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x06, 0xD7, 0xA0, 0xE6, 0x6B, 0x86, 0x61, 0x39),
2343a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDB, 0xE9, 0xD3, 0x37, 0xD8, 0xE7, 0x35, 0xA9),
2344a8e1175bSopenharmony_ci};
2345a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192k1_T_14_X[] = {
2346a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFD, 0xC8, 0x8E, 0xB1, 0xCB, 0xB1, 0xB5, 0x4D),
2347a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x16, 0xD7, 0x46, 0x7D, 0xAF, 0xE2, 0xDC, 0xBB),
2348a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD0, 0x46, 0xE7, 0xD8, 0x76, 0x31, 0x90, 0x76),
2349a8e1175bSopenharmony_ci};
2350a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192k1_T_14_Y[] = {
2351a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xEB, 0xD3, 0xF4, 0x74, 0xE1, 0x67, 0xD8, 0x66),
2352a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE7, 0x70, 0x3C, 0xC8, 0xAF, 0x5F, 0xF4, 0x58),
2353a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x24, 0x4E, 0xED, 0x5C, 0x43, 0xB3, 0x16, 0x35),
2354a8e1175bSopenharmony_ci};
2355a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192k1_T_15_X[] = {
2356a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x57, 0xAE, 0xD1, 0xDD, 0x31, 0x14, 0xD3, 0xF0),
2357a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE8, 0x14, 0x06, 0x13, 0x12, 0x1C, 0x81, 0xF5),
2358a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA6, 0xF9, 0x0C, 0x91, 0xF7, 0x67, 0x59, 0x63),
2359a8e1175bSopenharmony_ci};
2360a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp192k1_T_15_Y[] = {
2361a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAB, 0x91, 0xE2, 0xF4, 0x9D, 0xEB, 0x88, 0x87),
2362a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDB, 0x82, 0x30, 0x9C, 0xAE, 0x18, 0x4D, 0xB7),
2363a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3C, 0x79, 0xCF, 0x17, 0xA5, 0x1E, 0xE8, 0xC8),
2364a8e1175bSopenharmony_ci};
2365a8e1175bSopenharmony_cistatic const mbedtls_ecp_point secp192k1_T[16] = {
2366a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z1(secp192k1_T_0_X, secp192k1_T_0_Y),
2367a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp192k1_T_1_X, secp192k1_T_1_Y),
2368a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp192k1_T_2_X, secp192k1_T_2_Y),
2369a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp192k1_T_3_X, secp192k1_T_3_Y),
2370a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp192k1_T_4_X, secp192k1_T_4_Y),
2371a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp192k1_T_5_X, secp192k1_T_5_Y),
2372a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp192k1_T_6_X, secp192k1_T_6_Y),
2373a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp192k1_T_7_X, secp192k1_T_7_Y),
2374a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp192k1_T_8_X, secp192k1_T_8_Y),
2375a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp192k1_T_9_X, secp192k1_T_9_Y),
2376a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp192k1_T_10_X, secp192k1_T_10_Y),
2377a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp192k1_T_11_X, secp192k1_T_11_Y),
2378a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp192k1_T_12_X, secp192k1_T_12_Y),
2379a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp192k1_T_13_X, secp192k1_T_13_Y),
2380a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp192k1_T_14_X, secp192k1_T_14_Y),
2381a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp192k1_T_15_X, secp192k1_T_15_Y),
2382a8e1175bSopenharmony_ci};
2383a8e1175bSopenharmony_ci#else
2384a8e1175bSopenharmony_ci#define secp192k1_T NULL
2385a8e1175bSopenharmony_ci#endif
2386a8e1175bSopenharmony_ci
2387a8e1175bSopenharmony_ci#endif /* MBEDTLS_ECP_DP_SECP192K1_ENABLED */
2388a8e1175bSopenharmony_ci
2389a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED)
2390a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224k1_p[] = {
2391a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0xE5, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF),
2392a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
2393a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
2394a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_4(0xFF, 0xFF, 0xFF, 0xFF),
2395a8e1175bSopenharmony_ci};
2396a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224k1_a[] = {
2397a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_2(0x00, 0x00),
2398a8e1175bSopenharmony_ci};
2399a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224k1_b[] = {
2400a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_2(0x05, 0x00),
2401a8e1175bSopenharmony_ci};
2402a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224k1_gx[] = {
2403a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5C, 0xA4, 0xB7, 0xB6, 0x0E, 0x65, 0x7E, 0x0F),
2404a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA9, 0x75, 0x70, 0xE4, 0xE9, 0x67, 0xA4, 0x69),
2405a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA1, 0x28, 0xFC, 0x30, 0xDF, 0x99, 0xF0, 0x4D),
2406a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_4(0x33, 0x5B, 0x45, 0xA1),
2407a8e1175bSopenharmony_ci};
2408a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224k1_gy[] = {
2409a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA5, 0x61, 0x6D, 0x55, 0xDB, 0x4B, 0xCA, 0xE2),
2410a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x59, 0xBD, 0xB0, 0xC0, 0xF7, 0x19, 0xE3, 0xF7),
2411a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD6, 0xFB, 0xCA, 0x82, 0x42, 0x34, 0xBA, 0x7F),
2412a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_4(0xED, 0x9F, 0x08, 0x7E),
2413a8e1175bSopenharmony_ci};
2414a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224k1_n[] = {
2415a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF7, 0xB1, 0x9F, 0x76, 0x71, 0xA9, 0xF0, 0xCA),
2416a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x84, 0x61, 0xEC, 0xD2, 0xE8, 0xDC, 0x01, 0x00),
2417a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00),
2418a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00),
2419a8e1175bSopenharmony_ci};
2420a8e1175bSopenharmony_ci
2421a8e1175bSopenharmony_ci#if MBEDTLS_ECP_FIXED_POINT_OPTIM == 1
2422a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224k1_T_0_X[] = {
2423a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5C, 0xA4, 0xB7, 0xB6, 0x0E, 0x65, 0x7E, 0x0F),
2424a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA9, 0x75, 0x70, 0xE4, 0xE9, 0x67, 0xA4, 0x69),
2425a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA1, 0x28, 0xFC, 0x30, 0xDF, 0x99, 0xF0, 0x4D),
2426a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x33, 0x5B, 0x45, 0xA1, 0x00, 0x00, 0x00, 0x00),
2427a8e1175bSopenharmony_ci};
2428a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224k1_T_0_Y[] = {
2429a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA5, 0x61, 0x6D, 0x55, 0xDB, 0x4B, 0xCA, 0xE2),
2430a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x59, 0xBD, 0xB0, 0xC0, 0xF7, 0x19, 0xE3, 0xF7),
2431a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD6, 0xFB, 0xCA, 0x82, 0x42, 0x34, 0xBA, 0x7F),
2432a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xED, 0x9F, 0x08, 0x7E, 0x00, 0x00, 0x00, 0x00),
2433a8e1175bSopenharmony_ci};
2434a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224k1_T_1_X[] = {
2435a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x99, 0x6C, 0x22, 0x22, 0x40, 0x89, 0xAE, 0x7A),
2436a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x2F, 0x92, 0xE1, 0x87, 0x56, 0x35, 0xAF, 0x9B),
2437a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x88, 0xAF, 0x08, 0x35, 0x27, 0xEA, 0x04, 0xED),
2438a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF0, 0x53, 0xFD, 0xCF, 0x00, 0x00, 0x00, 0x00),
2439a8e1175bSopenharmony_ci};
2440a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224k1_T_1_Y[] = {
2441a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC1, 0xD0, 0x9F, 0x8D, 0xF3, 0x63, 0x54, 0x30),
2442a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x39, 0xDB, 0x0F, 0x61, 0x54, 0x26, 0xD1, 0x98),
2443a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0x21, 0xF7, 0x1B, 0xB5, 0x1D, 0xF6, 0x7E),
2444a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0x05, 0xDA, 0x8F, 0x00, 0x00, 0x00, 0x00),
2445a8e1175bSopenharmony_ci};
2446a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224k1_T_2_X[] = {
2447a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x10, 0x26, 0x73, 0xBC, 0xE4, 0x29, 0x62, 0x56),
2448a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x37, 0x95, 0x17, 0x8B, 0xC3, 0x9B, 0xAC, 0xCC),
2449a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB1, 0xDB, 0x77, 0xDF, 0xDD, 0x13, 0x04, 0x98),
2450a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x02, 0xFC, 0x22, 0x93, 0x00, 0x00, 0x00, 0x00),
2451a8e1175bSopenharmony_ci};
2452a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224k1_T_2_Y[] = {
2453a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0x65, 0xF1, 0x5A, 0x37, 0xEF, 0x79, 0xAD),
2454a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x99, 0x01, 0x37, 0xAC, 0x9A, 0x5B, 0x51, 0x65),
2455a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0x75, 0x13, 0xA9, 0x4A, 0xAD, 0xFE, 0x9B),
2456a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x32, 0x82, 0x6F, 0x66, 0x00, 0x00, 0x00, 0x00),
2457a8e1175bSopenharmony_ci};
2458a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224k1_T_3_X[] = {
2459a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x4D, 0x5E, 0xF0, 0x40, 0xC3, 0xA6, 0xE2, 0x1E),
2460a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0x9A, 0x6F, 0xCF, 0x11, 0x26, 0x66, 0x85),
2461a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x79, 0x73, 0xA8, 0xCF, 0x2B, 0x12, 0x36, 0x37),
2462a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB9, 0xB3, 0x0A, 0x58, 0x00, 0x00, 0x00, 0x00),
2463a8e1175bSopenharmony_ci};
2464a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224k1_T_3_Y[] = {
2465a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD3, 0x79, 0x00, 0x55, 0x04, 0x34, 0x90, 0x1A),
2466a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x0A, 0x54, 0x1C, 0xC2, 0x45, 0x0C, 0x1B, 0x23),
2467a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x86, 0x19, 0xAB, 0xA8, 0xFC, 0x73, 0xDC, 0xEE),
2468a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x72, 0xFB, 0x93, 0xCE, 0x00, 0x00, 0x00, 0x00),
2469a8e1175bSopenharmony_ci};
2470a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224k1_T_4_X[] = {
2471a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF8, 0x75, 0xD0, 0x66, 0x95, 0x86, 0xCA, 0x66),
2472a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x17, 0xEA, 0x29, 0x16, 0x6A, 0x38, 0xDF, 0x41),
2473a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD8, 0xA2, 0x36, 0x2F, 0xDC, 0xBB, 0x5E, 0xF7),
2474a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD4, 0x89, 0x59, 0x49, 0x00, 0x00, 0x00, 0x00),
2475a8e1175bSopenharmony_ci};
2476a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224k1_T_4_Y[] = {
2477a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCA, 0xA3, 0x99, 0x9D, 0xB8, 0x77, 0x9D, 0x1D),
2478a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x0A, 0x93, 0x43, 0x47, 0xC6, 0x5C, 0xF9, 0xFD),
2479a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAA, 0x00, 0x79, 0x42, 0x64, 0xB8, 0x25, 0x3E),
2480a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x29, 0x54, 0xB4, 0x33, 0x00, 0x00, 0x00, 0x00),
2481a8e1175bSopenharmony_ci};
2482a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224k1_T_5_X[] = {
2483a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD9, 0x0C, 0x42, 0x90, 0x83, 0x0B, 0x31, 0x5F),
2484a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x54, 0x2E, 0xAE, 0xC8, 0xC7, 0x5F, 0xD2, 0x70),
2485a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA9, 0xBC, 0xAD, 0x41, 0xE7, 0x32, 0x3A, 0x81),
2486a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x8A, 0x97, 0x52, 0x83, 0x00, 0x00, 0x00, 0x00),
2487a8e1175bSopenharmony_ci};
2488a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224k1_T_5_Y[] = {
2489a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1A, 0x13, 0x7A, 0xBD, 0xAE, 0x94, 0x60, 0xFD),
2490a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x92, 0x9B, 0x95, 0xB4, 0x6E, 0x68, 0xB2, 0x1F),
2491a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0x49, 0xBE, 0x51, 0xFE, 0x66, 0x15, 0x74),
2492a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE6, 0x37, 0xE4, 0xFE, 0x00, 0x00, 0x00, 0x00),
2493a8e1175bSopenharmony_ci};
2494a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224k1_T_6_X[] = {
2495a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF6, 0x9B, 0xEE, 0x64, 0xC9, 0x1B, 0xBD, 0x77),
2496a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDA, 0x5F, 0x34, 0xA9, 0x0B, 0xB7, 0x25, 0x52),
2497a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x90, 0x13, 0xB1, 0x38, 0xFB, 0x9D, 0x78, 0xED),
2498a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x39, 0xE7, 0x1B, 0xFA, 0x00, 0x00, 0x00, 0x00),
2499a8e1175bSopenharmony_ci};
2500a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224k1_T_6_Y[] = {
2501a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFB, 0xB3, 0xB7, 0x44, 0x92, 0x6B, 0x00, 0x82),
2502a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x97, 0x82, 0x44, 0x3E, 0x18, 0x1A, 0x58, 0x6A),
2503a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0xF8, 0xC0, 0xE4, 0xEE, 0xC1, 0xBF, 0x44),
2504a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x7E, 0x32, 0x27, 0xB2, 0x00, 0x00, 0x00, 0x00),
2505a8e1175bSopenharmony_ci};
2506a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224k1_T_7_X[] = {
2507a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF4, 0x9A, 0x42, 0x62, 0x8B, 0x26, 0x54, 0x21),
2508a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x24, 0x85, 0x74, 0xA0, 0x79, 0xA8, 0xEE, 0xBE),
2509a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x80, 0x36, 0x60, 0xB3, 0x28, 0x4D, 0x55, 0xBE),
2510a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x32, 0x27, 0x82, 0x29, 0x00, 0x00, 0x00, 0x00),
2511a8e1175bSopenharmony_ci};
2512a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224k1_T_7_Y[] = {
2513a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x0D, 0xFC, 0x73, 0x77, 0xAF, 0x5C, 0xAC, 0x78),
2514a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCC, 0xED, 0xE5, 0xF6, 0x1D, 0xA8, 0x67, 0x43),
2515a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF8, 0xDE, 0x33, 0x1C, 0xF1, 0x80, 0x73, 0xF8),
2516a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x2A, 0xE2, 0xDE, 0x3C, 0x00, 0x00, 0x00, 0x00),
2517a8e1175bSopenharmony_ci};
2518a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224k1_T_8_X[] = {
2519a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x57, 0x3E, 0x6B, 0xFE, 0xF0, 0x04, 0x28, 0x01),
2520a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBB, 0xB2, 0x14, 0x9D, 0x18, 0x11, 0x7D, 0x9D),
2521a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x96, 0xC4, 0xD6, 0x2E, 0x6E, 0x57, 0x4D, 0xE1),
2522a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xEA, 0x55, 0x1B, 0xDE, 0x00, 0x00, 0x00, 0x00),
2523a8e1175bSopenharmony_ci};
2524a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224k1_T_8_Y[] = {
2525a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x07, 0xF7, 0x17, 0xBC, 0x45, 0xAB, 0x16, 0xAB),
2526a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCD, 0xB0, 0xEF, 0x61, 0xE3, 0x20, 0x7C, 0xF8),
2527a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x85, 0x41, 0x4D, 0xF1, 0x7E, 0x4D, 0x41),
2528a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x99, 0xC2, 0x9B, 0x5E, 0x00, 0x00, 0x00, 0x00),
2529a8e1175bSopenharmony_ci};
2530a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224k1_T_9_X[] = {
2531a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x70, 0x2E, 0x49, 0x3D, 0x3E, 0x4B, 0xD3, 0x32),
2532a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC8, 0x2B, 0x9D, 0xD5, 0x27, 0xFA, 0xCA, 0xE0),
2533a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB3, 0xB3, 0x6A, 0xE0, 0x79, 0x14, 0x28, 0x0F),
2534a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x1E, 0xDC, 0xF5, 0x00, 0x00, 0x00, 0x00),
2535a8e1175bSopenharmony_ci};
2536a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224k1_T_9_Y[] = {
2537a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCA, 0x44, 0x56, 0xCD, 0xFC, 0x9F, 0x09, 0xFF),
2538a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5C, 0x8C, 0x59, 0xA4, 0x64, 0x2A, 0x3A, 0xED),
2539a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x40, 0xA0, 0xB5, 0x86, 0x4E, 0x69, 0xDA, 0x06),
2540a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x08, 0x8B, 0x11, 0x38, 0x00, 0x00, 0x00, 0x00),
2541a8e1175bSopenharmony_ci};
2542a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224k1_T_10_X[] = {
2543a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA0, 0x17, 0x16, 0x12, 0x17, 0xDC, 0x00, 0x7E),
2544a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE7, 0x76, 0x24, 0x6C, 0x97, 0x2C, 0xB5, 0xF9),
2545a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x82, 0x71, 0xE3, 0xB0, 0xBB, 0x4E, 0x50, 0x52),
2546a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6E, 0x48, 0x26, 0xD5, 0x00, 0x00, 0x00, 0x00),
2547a8e1175bSopenharmony_ci};
2548a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224k1_T_10_Y[] = {
2549a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x06, 0x5F, 0x28, 0xF6, 0x01, 0x5A, 0x60, 0x41),
2550a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAE, 0x95, 0xFE, 0xD0, 0xAD, 0x15, 0xD4, 0xD9),
2551a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAD, 0x5B, 0x7A, 0xFD, 0x80, 0xF7, 0x9F, 0x64),
2552a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x32, 0xBC, 0x1B, 0xDF, 0x00, 0x00, 0x00, 0x00),
2553a8e1175bSopenharmony_ci};
2554a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224k1_T_11_X[] = {
2555a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBB, 0xE6, 0xDF, 0x14, 0x29, 0xF4, 0xD4, 0x14),
2556a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE5, 0x12, 0xDD, 0xEC, 0x5B, 0x8A, 0x59, 0xE5),
2557a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x26, 0x92, 0x3E, 0x35, 0x08, 0xE9, 0xCF, 0x0E),
2558a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE0, 0x35, 0x29, 0x97, 0x00, 0x00, 0x00, 0x00),
2559a8e1175bSopenharmony_ci};
2560a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224k1_T_11_Y[] = {
2561a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x11, 0xDB, 0xD6, 0x6A, 0xC5, 0x43, 0xA4, 0xA1),
2562a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x61, 0x33, 0x50, 0x61, 0x70, 0xA1, 0xE9, 0xCE),
2563a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0x15, 0x6E, 0x5F, 0x01, 0x0C, 0x8C, 0xFA),
2564a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x85, 0xA1, 0x9A, 0x9D, 0x00, 0x00, 0x00, 0x00),
2565a8e1175bSopenharmony_ci};
2566a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224k1_T_12_X[] = {
2567a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6E, 0xC6, 0xF7, 0xE2, 0x4A, 0xCD, 0x9B, 0x61),
2568a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0x4D, 0x5A, 0xB8, 0xE2, 0x6D, 0xA6, 0x50),
2569a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x32, 0x3F, 0xB6, 0x17, 0xE3, 0x2C, 0x6F, 0x65),
2570a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0xA4, 0x59, 0x51, 0x00, 0x00, 0x00, 0x00),
2571a8e1175bSopenharmony_ci};
2572a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224k1_T_12_Y[] = {
2573a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x77, 0x4F, 0x7C, 0x49, 0xCD, 0x6E, 0xEB, 0x3C),
2574a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x05, 0xC9, 0x1F, 0xB7, 0x4D, 0x98, 0xC7, 0x67),
2575a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x4C, 0xFD, 0x98, 0x20, 0x95, 0xBB, 0x20, 0x3A),
2576a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE0, 0xF2, 0x73, 0x92, 0x00, 0x00, 0x00, 0x00),
2577a8e1175bSopenharmony_ci};
2578a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224k1_T_13_X[] = {
2579a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE2, 0xEF, 0xFB, 0x30, 0xFA, 0x12, 0x1A, 0xB0),
2580a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x7A, 0x4C, 0x24, 0xB4, 0x5B, 0xC9, 0x4C, 0x0F),
2581a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x7A, 0xDD, 0x5E, 0x84, 0x95, 0x4D, 0x26, 0xED),
2582a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE3, 0xFA, 0xF9, 0x3A, 0x00, 0x00, 0x00, 0x00),
2583a8e1175bSopenharmony_ci};
2584a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224k1_T_13_Y[] = {
2585a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6A, 0xA3, 0x2E, 0x7A, 0xDC, 0xA7, 0x53, 0xA9),
2586a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x7C, 0x9F, 0x81, 0x84, 0xB2, 0x0D, 0xFE, 0x31),
2587a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x61, 0x89, 0x1B, 0x77, 0x0C, 0x89, 0x71, 0xEC),
2588a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0xFF, 0x7F, 0xB2, 0x00, 0x00, 0x00, 0x00),
2589a8e1175bSopenharmony_ci};
2590a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224k1_T_14_X[] = {
2591a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x28, 0xE9, 0x2C, 0x79, 0xA6, 0x3C, 0xAD, 0x93),
2592a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD6, 0xE0, 0x23, 0x02, 0x86, 0x0F, 0x77, 0x2A),
2593a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x13, 0x93, 0x6D, 0xE9, 0xF9, 0x3C, 0xBE, 0xB9),
2594a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x04, 0xE7, 0x24, 0x92, 0x00, 0x00, 0x00, 0x00),
2595a8e1175bSopenharmony_ci};
2596a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224k1_T_14_Y[] = {
2597a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBB, 0x3C, 0x5B, 0x4B, 0x1B, 0x25, 0x37, 0xD6),
2598a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0xE8, 0x38, 0x1B, 0xA1, 0x5A, 0x2E, 0x68),
2599a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x03, 0x19, 0xFD, 0xF4, 0x78, 0x01, 0x6B, 0x44),
2600a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x0F, 0x69, 0x37, 0x4F, 0x00, 0x00, 0x00, 0x00),
2601a8e1175bSopenharmony_ci};
2602a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224k1_T_15_X[] = {
2603a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1A, 0xE2, 0xBF, 0xD3, 0xEC, 0x95, 0x9C, 0x03),
2604a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC2, 0x7B, 0xFC, 0xD5, 0xD3, 0x25, 0x5E, 0x0F),
2605a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x39, 0x55, 0x09, 0xA2, 0x58, 0x6A, 0xC9, 0xFF),
2606a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x80, 0xCC, 0x3B, 0xD9, 0x00, 0x00, 0x00, 0x00),
2607a8e1175bSopenharmony_ci};
2608a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp224k1_T_15_Y[] = {
2609a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x8F, 0x08, 0x65, 0x5E, 0xCB, 0xAB, 0x48, 0xC8),
2610a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xEE, 0x79, 0x8B, 0xC0, 0x11, 0xC0, 0x69, 0x38),
2611a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE6, 0xE8, 0x8C, 0x4C, 0xC5, 0x28, 0xE4, 0xAE),
2612a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA5, 0x1F, 0x34, 0x5C, 0x00, 0x00, 0x00, 0x00),
2613a8e1175bSopenharmony_ci};
2614a8e1175bSopenharmony_cistatic const mbedtls_ecp_point secp224k1_T[16] = {
2615a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z1(secp224k1_T_0_X, secp224k1_T_0_Y),
2616a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp224k1_T_1_X, secp224k1_T_1_Y),
2617a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp224k1_T_2_X, secp224k1_T_2_Y),
2618a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp224k1_T_3_X, secp224k1_T_3_Y),
2619a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp224k1_T_4_X, secp224k1_T_4_Y),
2620a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp224k1_T_5_X, secp224k1_T_5_Y),
2621a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp224k1_T_6_X, secp224k1_T_6_Y),
2622a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp224k1_T_7_X, secp224k1_T_7_Y),
2623a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp224k1_T_8_X, secp224k1_T_8_Y),
2624a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp224k1_T_9_X, secp224k1_T_9_Y),
2625a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp224k1_T_10_X, secp224k1_T_10_Y),
2626a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp224k1_T_11_X, secp224k1_T_11_Y),
2627a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp224k1_T_12_X, secp224k1_T_12_Y),
2628a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp224k1_T_13_X, secp224k1_T_13_Y),
2629a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp224k1_T_14_X, secp224k1_T_14_Y),
2630a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp224k1_T_15_X, secp224k1_T_15_Y),
2631a8e1175bSopenharmony_ci};
2632a8e1175bSopenharmony_ci#else
2633a8e1175bSopenharmony_ci#define secp224k1_T NULL
2634a8e1175bSopenharmony_ci#endif
2635a8e1175bSopenharmony_ci#endif /* MBEDTLS_ECP_DP_SECP224K1_ENABLED */
2636a8e1175bSopenharmony_ci
2637a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED)
2638a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256k1_p[] = {
2639a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x2F, 0xFC, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF),
2640a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
2641a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
2642a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
2643a8e1175bSopenharmony_ci};
2644a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256k1_a[] = {
2645a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_2(0x00, 0x00),
2646a8e1175bSopenharmony_ci};
2647a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256k1_b[] = {
2648a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_2(0x07, 0x00),
2649a8e1175bSopenharmony_ci};
2650a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256k1_gx[] = {
2651a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x98, 0x17, 0xF8, 0x16, 0x5B, 0x81, 0xF2, 0x59),
2652a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD9, 0x28, 0xCE, 0x2D, 0xDB, 0xFC, 0x9B, 0x02),
2653a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x07, 0x0B, 0x87, 0xCE, 0x95, 0x62, 0xA0, 0x55),
2654a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0xBB, 0xDC, 0xF9, 0x7E, 0x66, 0xBE, 0x79),
2655a8e1175bSopenharmony_ci};
2656a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256k1_gy[] = {
2657a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB8, 0xD4, 0x10, 0xFB, 0x8F, 0xD0, 0x47, 0x9C),
2658a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x19, 0x54, 0x85, 0xA6, 0x48, 0xB4, 0x17, 0xFD),
2659a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA8, 0x08, 0x11, 0x0E, 0xFC, 0xFB, 0xA4, 0x5D),
2660a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x65, 0xC4, 0xA3, 0x26, 0x77, 0xDA, 0x3A, 0x48),
2661a8e1175bSopenharmony_ci};
2662a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256k1_n[] = {
2663a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x41, 0x41, 0x36, 0xD0, 0x8C, 0x5E, 0xD2, 0xBF),
2664a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3B, 0xA0, 0x48, 0xAF, 0xE6, 0xDC, 0xAE, 0xBA),
2665a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
2666a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
2667a8e1175bSopenharmony_ci};
2668a8e1175bSopenharmony_ci
2669a8e1175bSopenharmony_ci#if MBEDTLS_ECP_FIXED_POINT_OPTIM == 1
2670a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256k1_T_0_X[] = {
2671a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x98, 0x17, 0xF8, 0x16, 0x5B, 0x81, 0xF2, 0x59),
2672a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD9, 0x28, 0xCE, 0x2D, 0xDB, 0xFC, 0x9B, 0x02),
2673a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x07, 0x0B, 0x87, 0xCE, 0x95, 0x62, 0xA0, 0x55),
2674a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0xBB, 0xDC, 0xF9, 0x7E, 0x66, 0xBE, 0x79),
2675a8e1175bSopenharmony_ci};
2676a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256k1_T_0_Y[] = {
2677a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB8, 0xD4, 0x10, 0xFB, 0x8F, 0xD0, 0x47, 0x9C),
2678a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x19, 0x54, 0x85, 0xA6, 0x48, 0xB4, 0x17, 0xFD),
2679a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA8, 0x08, 0x11, 0x0E, 0xFC, 0xFB, 0xA4, 0x5D),
2680a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x65, 0xC4, 0xA3, 0x26, 0x77, 0xDA, 0x3A, 0x48),
2681a8e1175bSopenharmony_ci};
2682a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256k1_T_1_X[] = {
2683a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE7, 0xEE, 0xD7, 0x1E, 0x67, 0x86, 0x32, 0x74),
2684a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x23, 0x73, 0xB1, 0xA9, 0xD5, 0xCC, 0x27, 0x78),
2685a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1F, 0x0E, 0x11, 0x01, 0x71, 0xFE, 0x92, 0x73),
2686a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC6, 0x28, 0x63, 0x6D, 0x72, 0x09, 0xA6, 0xC0),
2687a8e1175bSopenharmony_ci};
2688a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256k1_T_1_Y[] = {
2689a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCE, 0xE1, 0x69, 0xDC, 0x3E, 0x2C, 0x75, 0xC3),
2690a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE5, 0xB7, 0x3F, 0x30, 0x26, 0x3C, 0xDF, 0x8E),
2691a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3D, 0xBE, 0xB9, 0x5D, 0x0E, 0xE8, 0x5E, 0x14),
2692a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x01, 0xC3, 0x05, 0xD6, 0xB7, 0xD5, 0x24, 0xFC),
2693a8e1175bSopenharmony_ci};
2694a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256k1_T_2_X[] = {
2695a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x13, 0xCF, 0x7B, 0xDC, 0xCD, 0xC3, 0x39, 0x9D),
2696a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x42, 0xDA, 0xB9, 0xE5, 0x64, 0xA7, 0x47, 0x91),
2697a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x76, 0x46, 0xA8, 0x61, 0xF6, 0x23, 0xEB, 0x58),
2698a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5C, 0xC1, 0xFF, 0xE4, 0x55, 0xD5, 0xC2, 0xBF),
2699a8e1175bSopenharmony_ci};
2700a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256k1_T_2_Y[] = {
2701a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0xBE, 0xB9, 0x59, 0x24, 0x13, 0x4A, 0x2A),
2702a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x64, 0x45, 0x12, 0xDE, 0xBA, 0x4F, 0xEF, 0x56),
2703a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBE, 0x08, 0xBF, 0xC1, 0x66, 0xAA, 0x0A, 0xBC),
2704a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x36, 0xFE, 0x30, 0x55, 0x31, 0x86, 0xA7, 0xB4),
2705a8e1175bSopenharmony_ci};
2706a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256k1_T_3_X[] = {
2707a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1D, 0xBF, 0x18, 0x81, 0x67, 0x27, 0x42, 0xBD),
2708a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x08, 0x05, 0x83, 0xA4, 0xDD, 0x57, 0xD3, 0x50),
2709a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x20, 0x63, 0xAB, 0xE4, 0x90, 0x70, 0xD0, 0x7C),
2710a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x71, 0x5D, 0xFD, 0xA0, 0xEF, 0xCF, 0x1C, 0x54),
2711a8e1175bSopenharmony_ci};
2712a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256k1_T_3_Y[] = {
2713a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x13, 0x80, 0xE4, 0xF6, 0x09, 0xBC, 0x57, 0x90),
2714a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0x9F, 0x6E, 0x88, 0x54, 0x6E, 0x51, 0xF2),
2715a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0x5F, 0x85, 0xFB, 0x84, 0x3E, 0x4A, 0xAA),
2716a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA8, 0x19, 0xF5, 0x55, 0xC9, 0x07, 0xD8, 0xCE),
2717a8e1175bSopenharmony_ci};
2718a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256k1_T_4_X[] = {
2719a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1A, 0xB4, 0xC3, 0xD9, 0x5C, 0xA0, 0xD4, 0x90),
2720a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x0D, 0x30, 0xAF, 0x59, 0x9B, 0xF8, 0x04, 0x85),
2721a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x4D, 0xA6, 0xFD, 0x66, 0x7B, 0xC3, 0x39, 0x85),
2722a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE0, 0xBF, 0xF0, 0xC2, 0xE9, 0x71, 0xA4, 0x9E),
2723a8e1175bSopenharmony_ci};
2724a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256k1_T_4_Y[] = {
2725a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x14, 0x2D, 0xB9, 0x88, 0x28, 0xF1, 0xBE, 0x78),
2726a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x14, 0xF3, 0x1A, 0x0E, 0xB9, 0x01, 0x66, 0x34),
2727a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x77, 0xA7, 0xA4, 0xF4, 0x05, 0xD0, 0xAA, 0x53),
2728a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x39, 0x1E, 0x47, 0xE5, 0x68, 0xC8, 0xC0),
2729a8e1175bSopenharmony_ci};
2730a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256k1_T_5_X[] = {
2731a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDD, 0xB9, 0xFC, 0xE0, 0x33, 0x8A, 0x7D, 0x96),
2732a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x4F, 0x93, 0xA5, 0x53, 0x55, 0x16, 0xB4, 0x6E),
2733a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE9, 0x5F, 0xEA, 0x9B, 0x29, 0x52, 0x71, 0xDA),
2734a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB2, 0xF0, 0x24, 0xB8, 0x7D, 0xB7, 0xA0, 0x9B),
2735a8e1175bSopenharmony_ci};
2736a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256k1_T_5_Y[] = {
2737a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC2, 0x00, 0x27, 0xB2, 0xDF, 0x73, 0xA2, 0xE0),
2738a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1D, 0x2E, 0x4D, 0x7C, 0xDE, 0x7A, 0x23, 0x32),
2739a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0x65, 0x60, 0xC7, 0x97, 0x1E, 0xA4, 0x22),
2740a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCD, 0x13, 0x5B, 0x77, 0x59, 0xCB, 0x36, 0xE1),
2741a8e1175bSopenharmony_ci};
2742a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256k1_T_6_X[] = {
2743a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x99, 0xBC, 0x9F, 0x9E, 0x2D, 0x53, 0x2A, 0xA8),
2744a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x87, 0x5F, 0x64, 0x9F, 0x1A, 0x19, 0xE6, 0x77),
2745a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9E, 0x7B, 0x39, 0xD2, 0xDB, 0x85, 0x84, 0xD5),
2746a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x83, 0xC7, 0x0D, 0x58, 0x6E, 0x3F, 0x52, 0x15),
2747a8e1175bSopenharmony_ci};
2748a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256k1_T_6_Y[] = {
2749a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0x68, 0x19, 0x0B, 0x68, 0xC9, 0x1E, 0xFB),
2750a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD2, 0x4E, 0x21, 0x49, 0x3D, 0x55, 0xCC, 0x25),
2751a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0xF9, 0x25, 0x45, 0x54, 0x45, 0xB1, 0x0F),
2752a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA9, 0xB3, 0xF7, 0xCD, 0x80, 0xA4, 0x04, 0x05),
2753a8e1175bSopenharmony_ci};
2754a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256k1_T_7_X[] = {
2755a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD4, 0x1E, 0x88, 0xC4, 0xAA, 0x18, 0x7E, 0x45),
2756a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x4B, 0xAC, 0xD9, 0xB2, 0xA1, 0xC0, 0x71, 0x5D),
2757a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA9, 0xA2, 0xF1, 0x15, 0xA6, 0x5F, 0x6C, 0x86),
2758a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x4F, 0x5B, 0x05, 0xBC, 0xB7, 0xC6, 0x4E, 0x72),
2759a8e1175bSopenharmony_ci};
2760a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256k1_T_7_Y[] = {
2761a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1D, 0x80, 0xF8, 0x5C, 0x20, 0x2A, 0xE1, 0xE2),
2762a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x7C, 0x48, 0x2E, 0x68, 0x82, 0x7F, 0xEB, 0x5F),
2763a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA2, 0x3B, 0x25, 0xDB, 0x32, 0x4D, 0x88, 0x42),
2764a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xEE, 0x6E, 0xA6, 0xB6, 0x6D, 0x62, 0x78, 0x22),
2765a8e1175bSopenharmony_ci};
2766a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256k1_T_8_X[] = {
2767a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1F, 0x4D, 0x3E, 0x86, 0x58, 0xC3, 0xEB, 0xBA),
2768a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1A, 0x89, 0x33, 0x18, 0x21, 0x1D, 0x9B, 0xE7),
2769a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x0B, 0x9D, 0xFF, 0xC3, 0x79, 0xC1, 0x88, 0xF8),
2770a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x28, 0xD4, 0x48, 0x53, 0xE8, 0xAD, 0x21, 0x16),
2771a8e1175bSopenharmony_ci};
2772a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256k1_T_8_Y[] = {
2773a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0x7B, 0xDE, 0xCB, 0xD8, 0x39, 0x17, 0x7C),
2774a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD3, 0xF3, 0x03, 0xF2, 0x5C, 0xBC, 0xC8, 0x8A),
2775a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x27, 0xAE, 0x4C, 0xB0, 0x16, 0xA4, 0x93, 0x86),
2776a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x71, 0x8B, 0x6B, 0xDC, 0xD7, 0x9A, 0x3E, 0x7E),
2777a8e1175bSopenharmony_ci};
2778a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256k1_T_9_X[] = {
2779a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD6, 0x2D, 0x7A, 0xD2, 0x59, 0x05, 0xA2, 0x82),
2780a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x57, 0x56, 0x09, 0x32, 0xF1, 0xE8, 0xE3, 0x72),
2781a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x03, 0xCA, 0xE5, 0x2E, 0xF0, 0xFB, 0x18, 0x19),
2782a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBA, 0x85, 0xA9, 0x23, 0x15, 0x31, 0x1F, 0x0E),
2783a8e1175bSopenharmony_ci};
2784a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256k1_T_9_Y[] = {
2785a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x76, 0xE5, 0xB1, 0x86, 0xB9, 0x6E, 0x8D, 0xD3),
2786a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x77, 0xFC, 0xC9, 0xA3, 0x3F, 0x89, 0xD2),
2787a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDB, 0x6A, 0xDC, 0x25, 0xB0, 0xC7, 0x41, 0x54),
2788a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x02, 0x11, 0x6B, 0xA6, 0x11, 0x62, 0xD4, 0x2D),
2789a8e1175bSopenharmony_ci};
2790a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256k1_T_10_X[] = {
2791a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x19, 0x7D, 0x34, 0xB3, 0x20, 0x7F, 0x37, 0xAA),
2792a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBD, 0xD4, 0x45, 0xE8, 0xC2, 0xE9, 0xC5, 0xEA),
2793a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5A, 0x32, 0x3B, 0x25, 0x7E, 0x79, 0xAF, 0xE7),
2794a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3F, 0xE4, 0x54, 0x71, 0xBE, 0x35, 0x4E, 0xD0),
2795a8e1175bSopenharmony_ci};
2796a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256k1_T_10_Y[] = {
2797a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB0, 0x94, 0xDD, 0x8F, 0xB5, 0xC2, 0xDD, 0x75),
2798a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x07, 0x49, 0xE9, 0x1C, 0x2F, 0x08, 0x49, 0xC6),
2799a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x77, 0xB6, 0x03, 0x88, 0x6F, 0xB8, 0x15, 0x67),
2800a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA4, 0xD3, 0x1C, 0xF3, 0xA5, 0xEB, 0x79, 0x01),
2801a8e1175bSopenharmony_ci};
2802a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256k1_T_11_X[] = {
2803a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x25, 0xF9, 0x43, 0x88, 0x89, 0x0D, 0x06, 0xEA),
2804a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x02, 0x2D, 0xF5, 0x98, 0x32, 0xF6, 0xB1, 0x05),
2805a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x23, 0x73, 0x8F, 0x2B, 0x50, 0x27, 0x0A, 0xE7),
2806a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA7, 0xE3, 0xBD, 0x16, 0x05, 0xC8, 0x93, 0x12),
2807a8e1175bSopenharmony_ci};
2808a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256k1_T_11_Y[] = {
2809a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x0A, 0x6A, 0xF7, 0xE3, 0x3D, 0xDE, 0x5F, 0x2F),
2810a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x47, 0xA3, 0x9C, 0x22, 0x3C, 0x33, 0x36, 0x5D),
2811a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x20, 0x24, 0x4C, 0x69, 0x45, 0x78, 0x14, 0xAE),
2812a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x59, 0xF8, 0xD4, 0xBF, 0xB8, 0xC0, 0xA1, 0x25),
2813a8e1175bSopenharmony_ci};
2814a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256k1_T_12_X[] = {
2815a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x7E, 0x88, 0xE1, 0x91, 0x03, 0xEB, 0xB3, 0x2B),
2816a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5C, 0x11, 0xA1, 0xEF, 0x14, 0x0D, 0xC4, 0x7D),
2817a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFE, 0xD4, 0x0D, 0x1D, 0x96, 0x33, 0x5C, 0x19),
2818a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x70, 0x45, 0x2A, 0x1A, 0xE6, 0x57, 0x04, 0x9B),
2819a8e1175bSopenharmony_ci};
2820a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256k1_T_12_Y[] = {
2821a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x70, 0xB5, 0xA7, 0x80, 0xE9, 0x93, 0x97, 0x8D),
2822a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5D, 0xB9, 0x7C, 0xA0, 0xC9, 0x57, 0x26, 0x43),
2823a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9E, 0xEF, 0x56, 0xDA, 0x66, 0xF6, 0x1B, 0x9A),
2824a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1F, 0x89, 0x6B, 0x91, 0xE0, 0xA9, 0x65, 0x2B),
2825a8e1175bSopenharmony_ci};
2826a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256k1_T_13_X[] = {
2827a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x91, 0x98, 0x96, 0x9B, 0x06, 0x7D, 0x5E, 0x5A),
2828a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x0A, 0xFA, 0xC1, 0x5F, 0x19, 0x37, 0x94, 0x9D),
2829a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCF, 0xBE, 0x6B, 0x1A, 0x05, 0xE4, 0xBF, 0x9F),
2830a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x84, 0xCD, 0x5D, 0x35, 0xB4, 0x51, 0xF7, 0x64),
2831a8e1175bSopenharmony_ci};
2832a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256k1_T_13_Y[] = {
2833a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0xEF, 0x96, 0xDB, 0xF2, 0x61, 0x63, 0x59),
2834a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCB, 0x04, 0x88, 0xC9, 0x9F, 0x1B, 0x94, 0xB9),
2835a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDB, 0x30, 0x79, 0x7E, 0x24, 0xE7, 0x5F, 0xB8),
2836a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3F, 0xB8, 0x90, 0xB7, 0x94, 0x25, 0xBB, 0x0F),
2837a8e1175bSopenharmony_ci};
2838a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256k1_T_14_X[] = {
2839a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x62, 0x79, 0xEA, 0xAD, 0xC0, 0x6D, 0x18, 0x57),
2840a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE9, 0xA4, 0x58, 0x2A, 0x8D, 0x95, 0xB3, 0xE6),
2841a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC8, 0xC4, 0xC2, 0x12, 0x0D, 0x79, 0xE2, 0x2B),
2842a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x02, 0x6F, 0xBE, 0x97, 0x4D, 0xA4, 0x20, 0x07),
2843a8e1175bSopenharmony_ci};
2844a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256k1_T_14_Y[] = {
2845a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCA, 0x31, 0x71, 0xC6, 0xA6, 0x91, 0xEB, 0x1F),
2846a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB4, 0x9B, 0xA8, 0x4A, 0xE7, 0x77, 0xE1, 0xAA),
2847a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA9, 0x06, 0xD3, 0x3D, 0x94, 0x30, 0xEF, 0x8C),
2848a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE7, 0xDF, 0xCA, 0xFA, 0xF5, 0x28, 0xF8, 0xC9),
2849a8e1175bSopenharmony_ci};
2850a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256k1_T_15_X[] = {
2851a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCC, 0xE1, 0x32, 0xFD, 0x3E, 0x81, 0xF8, 0x11),
2852a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCD, 0xF2, 0x4B, 0x1D, 0x19, 0xC9, 0x0F, 0xCC),
2853a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x59, 0xB1, 0x8A, 0x22, 0x8B, 0x05, 0x6B, 0x56),
2854a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x35, 0x21, 0xEF, 0x30, 0xEC, 0x09, 0x2A, 0x89),
2855a8e1175bSopenharmony_ci};
2856a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint secp256k1_T_15_Y[] = {
2857a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0x84, 0x4A, 0x46, 0x07, 0x6C, 0x3C, 0x4C),
2858a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDD, 0x18, 0x3A, 0xF4, 0xCC, 0xF5, 0xB2, 0xF2),
2859a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x4F, 0x8F, 0xCD, 0x0A, 0x9C, 0xF4, 0xBD, 0x95),
2860a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x37, 0x89, 0x7F, 0x8A, 0xB1, 0x52, 0x3A, 0xAB),
2861a8e1175bSopenharmony_ci};
2862a8e1175bSopenharmony_cistatic const mbedtls_ecp_point secp256k1_T[16] = {
2863a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z1(secp256k1_T_0_X, secp256k1_T_0_Y),
2864a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp256k1_T_1_X, secp256k1_T_1_Y),
2865a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp256k1_T_2_X, secp256k1_T_2_Y),
2866a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp256k1_T_3_X, secp256k1_T_3_Y),
2867a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp256k1_T_4_X, secp256k1_T_4_Y),
2868a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp256k1_T_5_X, secp256k1_T_5_Y),
2869a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp256k1_T_6_X, secp256k1_T_6_Y),
2870a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp256k1_T_7_X, secp256k1_T_7_Y),
2871a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp256k1_T_8_X, secp256k1_T_8_Y),
2872a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp256k1_T_9_X, secp256k1_T_9_Y),
2873a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp256k1_T_10_X, secp256k1_T_10_Y),
2874a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp256k1_T_11_X, secp256k1_T_11_Y),
2875a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp256k1_T_12_X, secp256k1_T_12_Y),
2876a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp256k1_T_13_X, secp256k1_T_13_Y),
2877a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp256k1_T_14_X, secp256k1_T_14_Y),
2878a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(secp256k1_T_15_X, secp256k1_T_15_Y),
2879a8e1175bSopenharmony_ci};
2880a8e1175bSopenharmony_ci#else
2881a8e1175bSopenharmony_ci#define secp256k1_T NULL
2882a8e1175bSopenharmony_ci#endif
2883a8e1175bSopenharmony_ci#endif /* MBEDTLS_ECP_DP_SECP256K1_ENABLED */
2884a8e1175bSopenharmony_ci
2885a8e1175bSopenharmony_ci/*
2886a8e1175bSopenharmony_ci * Domain parameters for brainpoolP256r1 (RFC 5639 3.4)
2887a8e1175bSopenharmony_ci */
2888a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_BP256R1_ENABLED)
2889a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP256r1_p[] = {
2890a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x77, 0x53, 0x6E, 0x1F, 0x1D, 0x48, 0x13, 0x20),
2891a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x28, 0x20, 0x26, 0xD5, 0x23, 0xF6, 0x3B, 0x6E),
2892a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x72, 0x8D, 0x83, 0x9D, 0x90, 0x0A, 0x66, 0x3E),
2893a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBC, 0xA9, 0xEE, 0xA1, 0xDB, 0x57, 0xFB, 0xA9),
2894a8e1175bSopenharmony_ci};
2895a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP256r1_a[] = {
2896a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD9, 0xB5, 0x30, 0xF3, 0x44, 0x4B, 0x4A, 0xE9),
2897a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x5C, 0xDC, 0x26, 0xC1, 0x55, 0x80, 0xFB),
2898a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE7, 0xFF, 0x7A, 0x41, 0x30, 0x75, 0xF6, 0xEE),
2899a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x57, 0x30, 0x2C, 0xFC, 0x75, 0x09, 0x5A, 0x7D),
2900a8e1175bSopenharmony_ci};
2901a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP256r1_b[] = {
2902a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0x07, 0x8C, 0xFF, 0x18, 0xDC, 0xCC, 0x6B),
2903a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCE, 0xE1, 0xF7, 0x5C, 0x29, 0x16, 0x84, 0x95),
2904a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBF, 0x7C, 0xD7, 0xBB, 0xD9, 0xB5, 0x30, 0xF3),
2905a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x44, 0x4B, 0x4A, 0xE9, 0x6C, 0x5C, 0xDC, 0x26),
2906a8e1175bSopenharmony_ci};
2907a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP256r1_gx[] = {
2908a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x62, 0x32, 0xCE, 0x9A, 0xBD, 0x53, 0x44, 0x3A),
2909a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC2, 0x23, 0xBD, 0xE3, 0xE1, 0x27, 0xDE, 0xB9),
2910a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAF, 0xB7, 0x81, 0xFC, 0x2F, 0x48, 0x4B, 0x2C),
2911a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCB, 0x57, 0x7E, 0xCB, 0xB9, 0xAE, 0xD2, 0x8B),
2912a8e1175bSopenharmony_ci};
2913a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP256r1_gy[] = {
2914a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x97, 0x69, 0x04, 0x2F, 0xC7, 0x54, 0x1D, 0x5C),
2915a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x54, 0x8E, 0xED, 0x2D, 0x13, 0x45, 0x77, 0xC2),
2916a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0x1D, 0x61, 0x14, 0x1A, 0x46, 0xF8, 0x97),
2917a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFD, 0xC4, 0xDA, 0xC3, 0x35, 0xF8, 0x7E, 0x54),
2918a8e1175bSopenharmony_ci};
2919a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP256r1_n[] = {
2920a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA7, 0x56, 0x48, 0x97, 0x82, 0x0E, 0x1E, 0x90),
2921a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF7, 0xA6, 0x61, 0xB5, 0xA3, 0x7A, 0x39, 0x8C),
2922a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x71, 0x8D, 0x83, 0x9D, 0x90, 0x0A, 0x66, 0x3E),
2923a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBC, 0xA9, 0xEE, 0xA1, 0xDB, 0x57, 0xFB, 0xA9),
2924a8e1175bSopenharmony_ci};
2925a8e1175bSopenharmony_ci
2926a8e1175bSopenharmony_ci#if MBEDTLS_ECP_FIXED_POINT_OPTIM == 1
2927a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP256r1_T_0_X[] = {
2928a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x62, 0x32, 0xCE, 0x9A, 0xBD, 0x53, 0x44, 0x3A),
2929a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC2, 0x23, 0xBD, 0xE3, 0xE1, 0x27, 0xDE, 0xB9),
2930a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAF, 0xB7, 0x81, 0xFC, 0x2F, 0x48, 0x4B, 0x2C),
2931a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCB, 0x57, 0x7E, 0xCB, 0xB9, 0xAE, 0xD2, 0x8B),
2932a8e1175bSopenharmony_ci};
2933a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP256r1_T_0_Y[] = {
2934a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x97, 0x69, 0x04, 0x2F, 0xC7, 0x54, 0x1D, 0x5C),
2935a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x54, 0x8E, 0xED, 0x2D, 0x13, 0x45, 0x77, 0xC2),
2936a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0x1D, 0x61, 0x14, 0x1A, 0x46, 0xF8, 0x97),
2937a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFD, 0xC4, 0xDA, 0xC3, 0x35, 0xF8, 0x7E, 0x54),
2938a8e1175bSopenharmony_ci};
2939a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP256r1_T_1_X[] = {
2940a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3C, 0xA2, 0xED, 0x52, 0xC9, 0x8C, 0xE3, 0xA5),
2941a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x72, 0xC9, 0xC4, 0x87, 0x3F, 0x93, 0x7A, 0xD1),
2942a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x96, 0x12, 0x53, 0x61, 0x3E, 0x76, 0x08, 0xCB),
2943a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x09, 0x8C, 0x74, 0xF4, 0x08, 0xC3, 0x76, 0x80),
2944a8e1175bSopenharmony_ci};
2945a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP256r1_T_1_Y[] = {
2946a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x05, 0xDD, 0x09, 0xA6, 0xED, 0xEE, 0xC4, 0x38),
2947a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x74, 0xD9, 0xBE, 0x4B, 0xA5, 0xB7, 0x2B, 0x6E),
2948a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x42, 0x20, 0x12, 0xCA, 0x0A, 0x38, 0x24, 0xAB),
2949a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x72, 0x71, 0x90, 0x7A, 0x2E, 0xB7, 0x23),
2950a8e1175bSopenharmony_ci};
2951a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP256r1_T_2_X[] = {
2952a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x2C, 0x66, 0xA1, 0x93, 0x10, 0x2A, 0x51, 0x17),
2953a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x88, 0x10, 0x11, 0x12, 0xBC, 0xB0, 0xB6, 0x93),
2954a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3C, 0x58, 0xD7, 0x0A, 0x84, 0x05, 0xA3, 0x9C),
2955a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF7, 0x8E, 0x95, 0x61, 0xD3, 0x0B, 0xDF, 0x36),
2956a8e1175bSopenharmony_ci};
2957a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP256r1_T_2_Y[] = {
2958a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF9, 0x92, 0x12, 0x0F, 0x5E, 0x87, 0x70, 0x1B),
2959a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x38, 0xE9, 0x9B, 0xEB, 0x3A, 0xFB, 0xCF, 0xC4),
2960a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDC, 0x92, 0xB9, 0xF7, 0x45, 0xD3, 0x06, 0xB6),
2961a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x82, 0x28, 0x65, 0xE1, 0xC5, 0x6C, 0x57, 0x18),
2962a8e1175bSopenharmony_ci};
2963a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP256r1_T_3_X[] = {
2964a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x28, 0x0E, 0x77, 0x01, 0x81, 0x9E, 0x38, 0x5C),
2965a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x71, 0xF0, 0xD5, 0xA5, 0x91, 0x2B, 0xDF, 0xC0),
2966a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD8, 0xEE, 0xB6, 0x25, 0xD6, 0x98, 0xDE, 0x2D),
2967a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x7B, 0xA1, 0x55, 0x63, 0x39, 0xEB, 0xB5, 0x47),
2968a8e1175bSopenharmony_ci};
2969a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP256r1_T_3_Y[] = {
2970a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0xD6, 0xB8, 0xE3, 0x13, 0xED, 0x7F, 0xA3),
2971a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0xE8, 0xAE, 0x36, 0xB8, 0xCD, 0x19, 0x02),
2972a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF9, 0x82, 0x83, 0x7A, 0x7B, 0x46, 0x56, 0xE8),
2973a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x4E, 0x60, 0x46, 0x15, 0x5A, 0xAC, 0x99, 0x30),
2974a8e1175bSopenharmony_ci};
2975a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP256r1_T_4_X[] = {
2976a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBF, 0x61, 0x50, 0xC6, 0xFF, 0x10, 0x7D, 0x04),
2977a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x92, 0x51, 0xDF, 0xA9, 0x7D, 0x78, 0x26, 0x74),
2978a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x56, 0x15, 0x9A, 0xF7, 0x01, 0xC1, 0xBB, 0x40),
2979a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x26, 0x0F, 0xE6, 0x2A, 0xBD, 0x4A, 0x9E, 0x87),
2980a8e1175bSopenharmony_ci};
2981a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP256r1_T_4_Y[] = {
2982a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x57, 0xF8, 0xD1, 0x77, 0xD2, 0x49, 0xB3, 0xDD),
2983a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x36, 0x86, 0xFB, 0x9E, 0x1F, 0x5A, 0x60, 0x47),
2984a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x98, 0xC4, 0x8D, 0xCD, 0x86, 0x61, 0x2F, 0xF9),
2985a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x41, 0xF6, 0xB9, 0xAC, 0x37, 0x9D, 0xE9, 0x28),
2986a8e1175bSopenharmony_ci};
2987a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP256r1_T_5_X[] = {
2988a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0x77, 0xAA, 0x97, 0x9C, 0x0B, 0x04, 0x20),
2989a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x80, 0xA6, 0x60, 0x81, 0xCE, 0x25, 0x13, 0x3E),
2990a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x24, 0x00, 0xF3, 0xBB, 0x82, 0x99, 0x95, 0xB7),
2991a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x47, 0x5A, 0xCE, 0x90, 0x71, 0x38, 0x2F, 0x10),
2992a8e1175bSopenharmony_ci};
2993a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP256r1_T_5_Y[] = {
2994a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA7, 0x1A, 0xC0, 0x84, 0x27, 0xD6, 0x9D, 0xB7),
2995a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0x37, 0x52, 0x16, 0x13, 0x0E, 0xCE, 0x92),
2996a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0xBF, 0x5A, 0xDB, 0xDB, 0x6E, 0x1E, 0x69),
2997a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3E, 0xB7, 0x5E, 0xF9, 0x86, 0xDD, 0x8A, 0x5C),
2998a8e1175bSopenharmony_ci};
2999a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP256r1_T_6_X[] = {
3000a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3D, 0xAB, 0x5C, 0x8D, 0x1D, 0xF2, 0x2D, 0x1E),
3001a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x65, 0xC5, 0xF8, 0xF7, 0x1D, 0x96, 0x0B, 0x4D),
3002a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0x4C, 0xA7, 0x45, 0x20, 0x6A, 0x1E, 0x5B),
3003a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0x5D, 0xEF, 0xDE, 0xEE, 0x39, 0x44, 0x19),
3004a8e1175bSopenharmony_ci};
3005a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP256r1_T_6_Y[] = {
3006a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x4B, 0x2F, 0x6D, 0x52, 0xC9, 0x58, 0x60, 0xE8),
3007a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC3, 0xC9, 0x62, 0xCB, 0x38, 0x3C, 0x55, 0xCA),
3008a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xA5, 0x09, 0x10, 0x88, 0xDB, 0xE3, 0xBD),
3009a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x52, 0xE0, 0x3C, 0xCE, 0x06, 0x0B, 0x4B, 0x5D),
3010a8e1175bSopenharmony_ci};
3011a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP256r1_T_7_X[] = {
3012a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB1, 0x1D, 0xB4, 0x10, 0x76, 0x8F, 0xBA, 0x09),
3013a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x57, 0x70, 0x5A, 0x07, 0xF5, 0x1A, 0x74, 0xC7),
3014a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x0B, 0xE9, 0x94, 0xA8, 0xC0, 0xD5, 0x4A, 0x4A),
3015a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3E, 0x6D, 0xD4, 0xE8, 0x9B, 0xE9, 0x6D, 0x0E),
3016a8e1175bSopenharmony_ci};
3017a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP256r1_T_7_Y[] = {
3018a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x65, 0x00, 0x32, 0x41, 0x57, 0x84, 0x89, 0x52),
3019a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xEE, 0xC7, 0x14, 0xEC, 0xE9, 0x27, 0xFF, 0xF3),
3020a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9A, 0x67, 0x9E, 0xFB, 0xB6, 0xB8, 0x96, 0xF3),
3021a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE5, 0x4A, 0xE3, 0x97, 0x4B, 0x58, 0xDE, 0x30),
3022a8e1175bSopenharmony_ci};
3023a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP256r1_T_8_X[] = {
3024a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA6, 0x1E, 0x5C, 0xF5, 0x7F, 0xD5, 0xD4, 0xAA),
3025a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5D, 0x08, 0x7A, 0xF1, 0xBD, 0x89, 0xC7, 0x1E),
3026a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3A, 0xF9, 0x11, 0x1B, 0xF5, 0x3C, 0x6D, 0x8C),
3027a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x19, 0x50, 0xE5, 0x69, 0x1D, 0x59, 0xFC, 0x0C),
3028a8e1175bSopenharmony_ci};
3029a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP256r1_T_8_Y[] = {
3030a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF1, 0x2F, 0xF8, 0x3F, 0xEC, 0x55, 0x99, 0x57),
3031a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x41, 0xA7, 0x29, 0x90, 0x43, 0x81, 0x31, 0x4C),
3032a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC3, 0x18, 0x44, 0x50, 0x5D, 0x76, 0xCB, 0xDD),
3033a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF0, 0xC5, 0x5B, 0x9A, 0x03, 0xE6, 0x17, 0x39),
3034a8e1175bSopenharmony_ci};
3035a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP256r1_T_9_X[] = {
3036a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0x89, 0xFC, 0x55, 0x94, 0x91, 0x6A, 0xA2),
3037a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x74, 0x46, 0x35, 0xF2, 0x3A, 0x42, 0x08, 0x2F),
3038a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD3, 0xD2, 0x76, 0x49, 0x42, 0x87, 0xD3, 0x7F),
3039a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x90, 0xEA, 0xA0, 0x52, 0xF1, 0x6A, 0x30, 0x57),
3040a8e1175bSopenharmony_ci};
3041a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP256r1_T_9_Y[] = {
3042a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0xB2, 0x57, 0xA3, 0x8A, 0x4D, 0x1B, 0x3C),
3043a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFC, 0xA3, 0x99, 0x94, 0xB5, 0x3D, 0x64, 0x09),
3044a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x35, 0xC3, 0xD7, 0x53, 0xF6, 0x49, 0x1C, 0x60),
3045a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x27, 0x23, 0x41, 0x4D, 0xFB, 0x7A, 0x5C, 0x53),
3046a8e1175bSopenharmony_ci};
3047a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP256r1_T_10_X[] = {
3048a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCA, 0xB8, 0x15, 0x65, 0x5C, 0x85, 0x94, 0xD7),
3049a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0x37, 0xC7, 0xF8, 0x7E, 0xAE, 0x6C, 0x10),
3050a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x53, 0xD8, 0x11, 0x54, 0x98, 0x44, 0xE3, 0xF1),
3051a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE4, 0x4D, 0xA6, 0x4B, 0x28, 0xF2, 0x57, 0x9E),
3052a8e1175bSopenharmony_ci};
3053a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP256r1_T_10_Y[] = {
3054a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF6, 0xD0, 0xEB, 0x1E, 0xAA, 0x30, 0xD3, 0x6A),
3055a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x58, 0x9B, 0x4D, 0xA7, 0x73, 0x6E, 0xB6, 0x45),
3056a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5D, 0x47, 0xF6, 0xED, 0x37, 0xEF, 0x71, 0x4D),
3057a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA8, 0xB5, 0x49, 0x61, 0x5E, 0x45, 0xF6, 0x4A),
3058a8e1175bSopenharmony_ci};
3059a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP256r1_T_11_X[] = {
3060a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xEF, 0x0E, 0xB3, 0x84, 0x3A, 0x63, 0x72, 0x84),
3061a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0x53, 0x5C, 0xA7, 0xC6, 0x2E, 0xAB, 0x9E),
3062a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xEB, 0x0F, 0x8F, 0x87, 0x50, 0x28, 0xB4, 0xAE),
3063a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5C, 0x98, 0x4A, 0x98, 0x31, 0x86, 0xCA, 0x51),
3064a8e1175bSopenharmony_ci};
3065a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP256r1_T_11_Y[] = {
3066a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBE, 0xC9, 0xE2, 0xFD, 0x5D, 0x1F, 0xE8, 0xC2),
3067a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD5, 0x90, 0x91, 0xC4, 0x84, 0xF0, 0xBA, 0xC5),
3068a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x5A, 0xB3, 0x4E, 0xFB, 0xE0, 0x57, 0xE8),
3069a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6B, 0x0B, 0x90, 0xA6, 0xFD, 0x9D, 0x8E, 0x02),
3070a8e1175bSopenharmony_ci};
3071a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP256r1_T_12_X[] = {
3072a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF8, 0x41, 0x8F, 0x31, 0xFA, 0x5A, 0xF6, 0x33),
3073a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0xE9, 0xE3, 0xF6, 0xE0, 0x4A, 0xE7, 0xD2),
3074a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x84, 0x4E, 0xCD, 0xA2, 0x22, 0x14, 0xD4, 0x12),
3075a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x7C, 0xED, 0x21, 0xB7, 0x0F, 0x53, 0x10, 0x17),
3076a8e1175bSopenharmony_ci};
3077a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP256r1_T_12_Y[] = {
3078a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x05, 0x06, 0x24, 0x2C, 0x4E, 0xD1, 0x1E, 0x9F),
3079a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD7, 0x3F, 0xC1, 0x9F, 0xAB, 0xF0, 0x37, 0x95),
3080a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x03, 0x5E, 0x12, 0xCE, 0x83, 0x1B, 0x2A, 0x18),
3081a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x61, 0x65, 0xCF, 0xE8, 0x5C, 0xA5, 0xA2, 0x70),
3082a8e1175bSopenharmony_ci};
3083a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP256r1_T_13_X[] = {
3084a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB8, 0x86, 0x76, 0x3A, 0x94, 0xF6, 0x1D, 0xC1),
3085a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1D, 0xDA, 0xC9, 0xA6, 0x29, 0x93, 0x15, 0x10),
3086a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0x61, 0x6A, 0x7D, 0xC7, 0xA9, 0xF3, 0x76),
3087a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x4A, 0x03, 0x71, 0xA2, 0x15, 0xCE, 0x50, 0x72),
3088a8e1175bSopenharmony_ci};
3089a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP256r1_T_13_Y[] = {
3090a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0xD0, 0xA8, 0x1E, 0x91, 0xC4, 0x4F, 0x24),
3091a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x2D, 0x4B, 0x7E, 0xD7, 0x71, 0x58, 0x7E, 0x1E),
3092a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x93, 0x45, 0xAF, 0x2A, 0x18, 0x93, 0x95, 0x3B),
3093a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1B, 0x8F, 0xC7, 0xFA, 0x4C, 0x7A, 0x86, 0x54),
3094a8e1175bSopenharmony_ci};
3095a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP256r1_T_14_X[] = {
3096a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x97, 0xAF, 0x68, 0x3A, 0x23, 0xC1, 0x2E, 0xBF),
3097a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x89, 0x50, 0x11, 0x67, 0x39, 0xB9, 0xAF, 0x48),
3098a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x19, 0x86, 0xAA, 0x1E, 0x88, 0x21, 0x29, 0x8B),
3099a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCD, 0x28, 0xA4, 0x9D, 0x89, 0xA9, 0x9A, 0x10),
3100a8e1175bSopenharmony_ci};
3101a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP256r1_T_14_Y[] = {
3102a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x91, 0xBA, 0x04, 0x67, 0xB7, 0x01, 0x40, 0x38),
3103a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x08, 0xE9, 0x09, 0xA3, 0xCA, 0xA6, 0x37, 0xF6),
3104a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x97, 0xA8, 0xB6, 0x3C, 0xEE, 0x90, 0x3D),
3105a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDC, 0xED, 0xC4, 0xF7, 0xC3, 0x95, 0xEC, 0x85),
3106a8e1175bSopenharmony_ci};
3107a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP256r1_T_15_X[] = {
3108a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0x84, 0xBD, 0xEB, 0xD5, 0x64, 0xBB, 0x9D),
3109a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDB, 0x9B, 0xE2, 0x28, 0x50, 0xC2, 0x72, 0x40),
3110a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x39, 0xF2, 0x74, 0xD1, 0x26, 0xBF, 0x32, 0x68),
3111a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x36, 0xCB, 0xAF, 0x72, 0xDB, 0x6D, 0x30, 0x98),
3112a8e1175bSopenharmony_ci};
3113a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP256r1_T_15_Y[] = {
3114a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB3, 0x50, 0x85, 0xF4, 0x2B, 0x48, 0xC1, 0xAD),
3115a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC0, 0x28, 0xBB, 0x11, 0xBA, 0x5B, 0x22, 0x6C),
3116a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAD, 0xA1, 0xE5, 0x5C, 0xC9, 0x1D, 0x44, 0x45),
3117a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD4, 0xE8, 0xE6, 0x6F, 0xBB, 0xC1, 0x81, 0x7F),
3118a8e1175bSopenharmony_ci};
3119a8e1175bSopenharmony_cistatic const mbedtls_ecp_point brainpoolP256r1_T[16] = {
3120a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z1(brainpoolP256r1_T_0_X, brainpoolP256r1_T_0_Y),
3121a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP256r1_T_1_X, brainpoolP256r1_T_1_Y),
3122a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP256r1_T_2_X, brainpoolP256r1_T_2_Y),
3123a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP256r1_T_3_X, brainpoolP256r1_T_3_Y),
3124a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP256r1_T_4_X, brainpoolP256r1_T_4_Y),
3125a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP256r1_T_5_X, brainpoolP256r1_T_5_Y),
3126a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP256r1_T_6_X, brainpoolP256r1_T_6_Y),
3127a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP256r1_T_7_X, brainpoolP256r1_T_7_Y),
3128a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP256r1_T_8_X, brainpoolP256r1_T_8_Y),
3129a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP256r1_T_9_X, brainpoolP256r1_T_9_Y),
3130a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP256r1_T_10_X, brainpoolP256r1_T_10_Y),
3131a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP256r1_T_11_X, brainpoolP256r1_T_11_Y),
3132a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP256r1_T_12_X, brainpoolP256r1_T_12_Y),
3133a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP256r1_T_13_X, brainpoolP256r1_T_13_Y),
3134a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP256r1_T_14_X, brainpoolP256r1_T_14_Y),
3135a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP256r1_T_15_X, brainpoolP256r1_T_15_Y),
3136a8e1175bSopenharmony_ci};
3137a8e1175bSopenharmony_ci#else
3138a8e1175bSopenharmony_ci#define brainpoolP256r1_T NULL
3139a8e1175bSopenharmony_ci#endif
3140a8e1175bSopenharmony_ci
3141a8e1175bSopenharmony_ci#endif /* MBEDTLS_ECP_DP_BP256R1_ENABLED */
3142a8e1175bSopenharmony_ci
3143a8e1175bSopenharmony_ci/*
3144a8e1175bSopenharmony_ci * Domain parameters for brainpoolP384r1 (RFC 5639 3.6)
3145a8e1175bSopenharmony_ci */
3146a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_BP384R1_ENABLED)
3147a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_p[] = {
3148a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x53, 0xEC, 0x07, 0x31, 0x13, 0x00, 0x47, 0x87),
3149a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x71, 0x1A, 0x1D, 0x90, 0x29, 0xA7, 0xD3, 0xAC),
3150a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x23, 0x11, 0xB7, 0x7F, 0x19, 0xDA, 0xB1, 0x12),
3151a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB4, 0x56, 0x54, 0xED, 0x09, 0x71, 0x2F, 0x15),
3152a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDF, 0x41, 0xE6, 0x50, 0x7E, 0x6F, 0x5D, 0x0F),
3153a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x28, 0x6D, 0x38, 0xA3, 0x82, 0x1E, 0xB9, 0x8C),
3154a8e1175bSopenharmony_ci};
3155a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_a[] = {
3156a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x26, 0x28, 0xCE, 0x22, 0xDD, 0xC7, 0xA8, 0x04),
3157a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xEB, 0xD4, 0x3A, 0x50, 0x4A, 0x81, 0xA5, 0x8A),
3158a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x0F, 0xF9, 0x91, 0xBA, 0xEF, 0x65, 0x91, 0x13),
3159a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x87, 0x27, 0xB2, 0x4F, 0x8E, 0xA2, 0xBE, 0xC2),
3160a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA0, 0xAF, 0x05, 0xCE, 0x0A, 0x08, 0x72, 0x3C),
3161a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x0C, 0x15, 0x8C, 0x3D, 0xC6, 0x82, 0xC3, 0x7B),
3162a8e1175bSopenharmony_ci};
3163a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_b[] = {
3164a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x11, 0x4C, 0x50, 0xFA, 0x96, 0x86, 0xB7, 0x3A),
3165a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x94, 0xC9, 0xDB, 0x95, 0x02, 0x39, 0xB4, 0x7C),
3166a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD5, 0x62, 0xEB, 0x3E, 0xA5, 0x0E, 0x88, 0x2E),
3167a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA6, 0xD2, 0xDC, 0x07, 0xE1, 0x7D, 0xB7, 0x2F),
3168a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x7C, 0x44, 0xF0, 0x16, 0x54, 0xB5, 0x39, 0x8B),
3169a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x26, 0x28, 0xCE, 0x22, 0xDD, 0xC7, 0xA8, 0x04),
3170a8e1175bSopenharmony_ci};
3171a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_gx[] = {
3172a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0xAF, 0xD4, 0x47, 0xE2, 0xB2, 0x87, 0xEF),
3173a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAA, 0x46, 0xD6, 0x36, 0x34, 0xE0, 0x26, 0xE8),
3174a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE8, 0x10, 0xBD, 0x0C, 0xFE, 0xCA, 0x7F, 0xDB),
3175a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE3, 0x4F, 0xF1, 0x7E, 0xE7, 0xA3, 0x47, 0x88),
3176a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6B, 0x3F, 0xC1, 0xB7, 0x81, 0x3A, 0xA6, 0xA2),
3177a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0x45, 0xCF, 0x68, 0xF0, 0x64, 0x1C, 0x1D),
3178a8e1175bSopenharmony_ci};
3179a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_gy[] = {
3180a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0x53, 0x3C, 0x26, 0x41, 0x03, 0x82, 0x42),
3181a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x11, 0x81, 0x91, 0x77, 0x21, 0x46, 0x46, 0x0E),
3182a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x28, 0x29, 0x91, 0xF9, 0x4F, 0x05, 0x9C, 0xE1),
3183a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x64, 0x58, 0xEC, 0xFE, 0x29, 0x0B, 0xB7, 0x62),
3184a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x52, 0xD5, 0xCF, 0x95, 0x8E, 0xEB, 0xB1, 0x5C),
3185a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA4, 0xC2, 0xF9, 0x20, 0x75, 0x1D, 0xBE, 0x8A),
3186a8e1175bSopenharmony_ci};
3187a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_n[] = {
3188a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x65, 0x65, 0x04, 0xE9, 0x02, 0x32, 0x88, 0x3B),
3189a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x10, 0xC3, 0x7F, 0x6B, 0xAF, 0xB6, 0x3A, 0xCF),
3190a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA7, 0x25, 0x04, 0xAC, 0x6C, 0x6E, 0x16, 0x1F),
3191a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB3, 0x56, 0x54, 0xED, 0x09, 0x71, 0x2F, 0x15),
3192a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDF, 0x41, 0xE6, 0x50, 0x7E, 0x6F, 0x5D, 0x0F),
3193a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x28, 0x6D, 0x38, 0xA3, 0x82, 0x1E, 0xB9, 0x8C),
3194a8e1175bSopenharmony_ci};
3195a8e1175bSopenharmony_ci
3196a8e1175bSopenharmony_ci#if MBEDTLS_ECP_FIXED_POINT_OPTIM == 1
3197a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_0_X[] = {
3198a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0xAF, 0xD4, 0x47, 0xE2, 0xB2, 0x87, 0xEF),
3199a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAA, 0x46, 0xD6, 0x36, 0x34, 0xE0, 0x26, 0xE8),
3200a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE8, 0x10, 0xBD, 0x0C, 0xFE, 0xCA, 0x7F, 0xDB),
3201a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE3, 0x4F, 0xF1, 0x7E, 0xE7, 0xA3, 0x47, 0x88),
3202a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6B, 0x3F, 0xC1, 0xB7, 0x81, 0x3A, 0xA6, 0xA2),
3203a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0x45, 0xCF, 0x68, 0xF0, 0x64, 0x1C, 0x1D),
3204a8e1175bSopenharmony_ci};
3205a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_0_Y[] = {
3206a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0x53, 0x3C, 0x26, 0x41, 0x03, 0x82, 0x42),
3207a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x11, 0x81, 0x91, 0x77, 0x21, 0x46, 0x46, 0x0E),
3208a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x28, 0x29, 0x91, 0xF9, 0x4F, 0x05, 0x9C, 0xE1),
3209a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x64, 0x58, 0xEC, 0xFE, 0x29, 0x0B, 0xB7, 0x62),
3210a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x52, 0xD5, 0xCF, 0x95, 0x8E, 0xEB, 0xB1, 0x5C),
3211a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA4, 0xC2, 0xF9, 0x20, 0x75, 0x1D, 0xBE, 0x8A),
3212a8e1175bSopenharmony_ci};
3213a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_1_X[] = {
3214a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x93, 0xD8, 0x8A, 0x54, 0x41, 0xD6, 0x6B, 0x1D),
3215a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE2, 0x3B, 0xF1, 0x22, 0xFD, 0x2D, 0x4B, 0x03),
3216a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x01, 0x55, 0xE3, 0x33, 0xF0, 0x73, 0x52, 0x5A),
3217a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC1, 0x3F, 0x30, 0x26, 0xCA, 0x7F, 0x52, 0xA3),
3218a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD3, 0x6E, 0x17, 0x9B, 0xD5, 0x2A, 0x4A, 0x31),
3219a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x86, 0xDA, 0x6B, 0xE5, 0x03, 0x07, 0x1D, 0x2E),
3220a8e1175bSopenharmony_ci};
3221a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_1_Y[] = {
3222a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x51, 0x7A, 0xAF, 0x98, 0xE3, 0xA4, 0xF6, 0x19),
3223a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xEC, 0x7D, 0xFE, 0x51, 0x40, 0x3B, 0x47, 0xD2),
3224a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFC, 0x88, 0xEC, 0xC4, 0xE2, 0x8F, 0xCB, 0xA4),
3225a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x30, 0xE2, 0x88, 0x2D, 0x4E, 0x50, 0xEB, 0x9A),
3226a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x13, 0x54, 0x94, 0x5E, 0xF4, 0x7F, 0x3A, 0x04),
3227a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCD, 0x07, 0x1C, 0xE1, 0xBD, 0x0F, 0xF8, 0x63),
3228a8e1175bSopenharmony_ci};
3229a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_2_X[] = {
3230a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x94, 0x92, 0x28, 0x2E, 0x32, 0x04, 0xB1, 0x4D),
3231a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x25, 0x82, 0x44, 0x43, 0x76, 0x0D, 0x55, 0xBF),
3232a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5B, 0xE3, 0xFF, 0x89, 0x46, 0xDE, 0x4E, 0xFE),
3233a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5B, 0x22, 0xBB, 0x67, 0x1A, 0x81, 0xEE, 0x27),
3234a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC8, 0x54, 0xE2, 0x7A, 0xAE, 0xDA, 0x2C, 0xD0),
3235a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x74, 0x9A, 0x90, 0xAA, 0x6E, 0x8B, 0xCC, 0x5F),
3236a8e1175bSopenharmony_ci};
3237a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_2_Y[] = {
3238a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x16, 0x40, 0xAC, 0xED, 0x7D, 0x37, 0x87, 0xAC),
3239a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x98, 0xF8, 0xB1, 0x80, 0x4C, 0x8C, 0x04, 0x42),
3240a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC2, 0x98, 0x2C, 0xAD, 0x30, 0x69, 0x35, 0xC0),
3241a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x32, 0x2E, 0x00, 0x2F, 0x44, 0x8C, 0xF0, 0xC0),
3242a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x16, 0x58, 0x07, 0xD7, 0xCD, 0x60, 0xA1, 0x5B),
3243a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAF, 0xFB, 0x7B, 0x03, 0x05, 0x5E, 0x79, 0x73),
3244a8e1175bSopenharmony_ci};
3245a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_3_X[] = {
3246a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC8, 0x17, 0xCE, 0x38, 0x4B, 0x5E, 0x5B, 0xC8),
3247a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x60, 0x0E, 0x0A, 0x61, 0x9D, 0x7C, 0x62, 0x08),
3248a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x25, 0xF0, 0x98, 0x71, 0x7F, 0x17, 0x26, 0xD7),
3249a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x83, 0xD3, 0xFA, 0x3C, 0xF0, 0x70, 0x07, 0x82),
3250a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x29, 0x47, 0x5C, 0x09, 0x43, 0xB7, 0x65, 0x15),
3251a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x0E, 0xA9, 0xA7, 0x3E, 0xFA, 0xF3, 0xEC, 0x22),
3252a8e1175bSopenharmony_ci};
3253a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_3_Y[] = {
3254a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDA, 0x78, 0x22, 0x2B, 0x58, 0x71, 0xFA, 0xAA),
3255a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x30, 0xCE, 0x6A, 0xB3, 0xB0, 0x4F, 0x83),
3256a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCF, 0x95, 0x20, 0xA9, 0x23, 0xC2, 0x65, 0xE7),
3257a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x55, 0xCF, 0x03, 0x5B, 0x8A, 0x80, 0x44, 0xBB),
3258a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5C, 0xF8, 0x91, 0xF7, 0xD5, 0xED, 0xEA, 0x81),
3259a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x40, 0x5B, 0x16, 0x10, 0x25, 0xAC, 0x2A, 0x17),
3260a8e1175bSopenharmony_ci};
3261a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_4_X[] = {
3262a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF2, 0xEC, 0xDC, 0xC4, 0x7B, 0x8C, 0x6B, 0xE9),
3263a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x2B, 0xBB, 0x1C, 0xD3, 0x5A, 0xEE, 0xD9, 0x97),
3264a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x64, 0x5D, 0x30, 0x5E, 0xF7, 0xB2, 0x41, 0x9D),
3265a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xED, 0xCE, 0x0F, 0x1A, 0xC6, 0x41, 0x64, 0x62),
3266a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF2, 0x18, 0xE1, 0xE3, 0x82, 0x15, 0x66, 0x4B),
3267a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9B, 0xE2, 0x24, 0x04, 0x72, 0x39, 0xA0, 0x7C),
3268a8e1175bSopenharmony_ci};
3269a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_4_Y[] = {
3270a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x2B, 0x51, 0xA2, 0x58, 0x88, 0x62, 0xE1, 0x02),
3271a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x58, 0xD2, 0x65, 0x14, 0xE9, 0x4C, 0x82, 0x30),
3272a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDC, 0xE1, 0xAC, 0x87, 0xAE, 0x31, 0x1A, 0x7A),
3273a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x85, 0x4F, 0x96, 0x1E, 0x85, 0x7A, 0xC3, 0x2B),
3274a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF0, 0x86, 0xBB, 0xF0, 0xC0, 0x9D, 0x08, 0x7B),
3275a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBD, 0x53, 0x03, 0x09, 0x80, 0x91, 0xEF, 0x68),
3276a8e1175bSopenharmony_ci};
3277a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_5_X[] = {
3278a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x2D, 0xD7, 0xAF, 0x6F, 0x69, 0x7B, 0x88, 0xA1),
3279a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAF, 0x13, 0xE4, 0x30, 0xA2, 0x47, 0xB5, 0xC1),
3280a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x0F, 0xD2, 0xC0, 0xDD, 0x8A, 0x1C, 0x3C, 0xF2),
3281a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF9, 0x8C, 0xB3, 0x4C, 0xBA, 0x8B, 0x6D, 0xCF),
3282a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6B, 0xC7, 0xA1, 0xA8, 0x6E, 0x3C, 0x4F, 0xF1),
3283a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x94, 0x4A, 0x97, 0xC8, 0x03, 0x6F, 0x01, 0x82),
3284a8e1175bSopenharmony_ci};
3285a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_5_Y[] = {
3286a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x74, 0x18, 0x12, 0xA9, 0x39, 0xD5, 0x22, 0x26),
3287a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x47, 0xA7, 0xC0, 0xBD, 0x9D, 0x8D, 0x78, 0x38),
3288a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA9, 0xB3, 0xD0, 0x7F, 0xDF, 0xD0, 0x30, 0xDE),
3289a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x37, 0x25, 0x73, 0x96, 0xEC, 0xA8, 0x1D, 0x7C),
3290a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x91, 0xD1, 0x65, 0x66, 0xDC, 0xD9, 0xCF, 0xDF),
3291a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x95, 0xED, 0x7B, 0x37, 0xAD, 0xE2, 0xBE, 0x2D),
3292a8e1175bSopenharmony_ci};
3293a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_6_X[] = {
3294a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x50, 0x79, 0x42, 0x6A, 0x07, 0x66, 0xB1, 0xBD),
3295a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x45, 0x53, 0x62, 0x65, 0x92, 0x09, 0x4C, 0xA1),
3296a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x06, 0xAF, 0xC3, 0x03, 0xF6, 0xF4, 0x2D, 0x9B),
3297a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE8, 0xCA, 0x41, 0xD9, 0xA2, 0x69, 0x9B, 0xC9),
3298a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x4B, 0xB2, 0xA6, 0x8D, 0xE1, 0xAA, 0x61, 0x76),
3299a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x11, 0xBA, 0x4D, 0x12, 0xB6, 0xBE, 0xF3, 0x7E),
3300a8e1175bSopenharmony_ci};
3301a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_6_Y[] = {
3302a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCA, 0xD9, 0x92, 0x22, 0x07, 0xCE, 0xC9, 0x26),
3303a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x62, 0xA1, 0x7C, 0x91, 0xDB, 0x32, 0xF7, 0xE5),
3304a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0x49, 0x4B, 0x6D, 0xFB, 0xD9, 0x70, 0x3B),
3305a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1C, 0xFB, 0x4E, 0x4C, 0x5E, 0x66, 0x81, 0x1D),
3306a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA5, 0xB3, 0xE1, 0x00, 0xB7, 0xD9, 0xCC, 0x58),
3307a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF3, 0x36, 0x8B, 0xC4, 0x39, 0x20, 0xFD, 0x30),
3308a8e1175bSopenharmony_ci};
3309a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_7_X[] = {
3310a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x94, 0x1F, 0x60, 0x03, 0xBB, 0xD7, 0x60, 0x57),
3311a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x72, 0x3C, 0x62, 0xDD, 0x71, 0x95, 0xE9, 0x61),
3312a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB0, 0x5B, 0x7A, 0x5F, 0x68, 0x81, 0xC5, 0x90),
3313a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0xAF, 0xB5, 0xB9, 0x98, 0x42, 0x28, 0xA5),
3314a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x0C, 0x29, 0x8E, 0x11, 0x49, 0xB4, 0xD7, 0x20),
3315a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9B, 0x3E, 0xD2, 0x30, 0xA1, 0xBA, 0xCA, 0x03),
3316a8e1175bSopenharmony_ci};
3317a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_7_Y[] = {
3318a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x29, 0x37, 0x64, 0x44, 0x2F, 0x03, 0xE5, 0x41),
3319a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x4A, 0x42, 0xBC, 0xFF, 0xA2, 0x1A, 0x5F, 0x06),
3320a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1D, 0x04, 0xAB, 0x04, 0xE0, 0x24, 0xAD, 0x2A),
3321a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3D, 0x45, 0x17, 0x67, 0x1F, 0x3E, 0x53, 0xF8),
3322a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xED, 0x0F, 0xB3, 0x1B, 0x57, 0x54, 0xC2, 0x03),
3323a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x59, 0xD3, 0xF8, 0xC4, 0x1B, 0x9B, 0xFA, 0x30),
3324a8e1175bSopenharmony_ci};
3325a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_8_X[] = {
3326a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x37, 0x90, 0xFD, 0xFB, 0xCA, 0x49, 0x38, 0x4E),
3327a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC3, 0xCF, 0xC6, 0xDD, 0xF0, 0xFF, 0x8C, 0x11),
3328a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD7, 0x69, 0x9D, 0xBD, 0x5F, 0x33, 0xE9, 0xB4),
3329a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x47, 0x19, 0x82, 0x3D, 0xAC, 0x1C, 0x40, 0x23),
3330a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x40, 0xC7, 0x02, 0x46, 0x14, 0x77, 0x00, 0xBE),
3331a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0x05, 0xF2, 0x77, 0x3A, 0x66, 0x5C, 0x39),
3332a8e1175bSopenharmony_ci};
3333a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_8_Y[] = {
3334a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0xE6, 0x17, 0xDE, 0xB2, 0xA1, 0xE5, 0xB8),
3335a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC7, 0x71, 0xEC, 0x9D, 0xD8, 0xF5, 0xD4, 0x66),
3336a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAA, 0xC6, 0x42, 0x5E, 0xE7, 0x18, 0xBA, 0xD0),
3337a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC5, 0x21, 0x68, 0x5A, 0x26, 0xFB, 0xD7, 0x17),
3338a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x26, 0x00, 0x5C, 0xBA, 0x8A, 0x34, 0xEC, 0x75),
3339a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC3, 0x9C, 0x3C, 0xAF, 0x53, 0xE8, 0x65, 0x35),
3340a8e1175bSopenharmony_ci};
3341a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_9_X[] = {
3342a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBE, 0xEF, 0x28, 0xDC, 0x67, 0x05, 0xC8, 0xDF),
3343a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x0B, 0x78, 0xC3, 0x85, 0x49, 0xA0, 0xBC, 0x0F),
3344a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x10, 0x3E, 0x2D, 0xA0, 0xCF, 0xD4, 0x7A, 0xF5),
3345a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x36, 0x93, 0xFE, 0x60, 0xB3, 0x6E, 0x99, 0xE2),
3346a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x62, 0xAD, 0x04, 0xE7, 0x49, 0xAF, 0x5E, 0xE3),
3347a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x54, 0x7A, 0xED, 0xA6, 0x9E, 0x18, 0x09, 0x31),
3348a8e1175bSopenharmony_ci};
3349a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_9_Y[] = {
3350a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE8, 0x05, 0x94, 0x44, 0xDC, 0xB8, 0x85, 0x94),
3351a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x14, 0xB7, 0x37, 0xC2, 0x50, 0x75, 0x15, 0xDA),
3352a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD6, 0xC6, 0x0F, 0xB2, 0xA9, 0x91, 0x3E, 0xE8),
3353a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB9, 0x81, 0xAD, 0x25, 0xA1, 0x26, 0x73, 0x15),
3354a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFD, 0xF1, 0xD1, 0x61, 0x7C, 0x76, 0x8F, 0x13),
3355a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x06, 0xDB, 0x4A, 0xFF, 0x14, 0xA7, 0x48, 0x0B),
3356a8e1175bSopenharmony_ci};
3357a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_10_X[] = {
3358a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x2A, 0x73, 0xC6, 0xC2, 0xCC, 0xF1, 0x57, 0x04),
3359a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0xED, 0x73, 0x27, 0x70, 0x82, 0xB6, 0x5E),
3360a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x0B, 0xBA, 0xAC, 0x3A, 0xCF, 0xF4, 0xEA, 0xA6),
3361a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x99, 0xD6, 0xB1, 0x8F, 0x0E, 0x08, 0x2C, 0x5E),
3362a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x17, 0xE3, 0x8F, 0x2F, 0x0E, 0xA1, 0xF3, 0x07),
3363a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1A, 0xF5, 0x7C, 0x9B, 0x29, 0x0A, 0xF6, 0x28),
3364a8e1175bSopenharmony_ci};
3365a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_10_Y[] = {
3366a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBD, 0xEE, 0x17, 0x47, 0x34, 0x15, 0xA3, 0xAF),
3367a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFB, 0xBE, 0x88, 0x48, 0xE7, 0xA2, 0xBB, 0xDE),
3368a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC5, 0xAD, 0xDC, 0x65, 0x61, 0x37, 0x0F, 0xC1),
3369a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0x67, 0xAD, 0xA2, 0x3A, 0x1C, 0x91, 0x78),
3370a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x55, 0x07, 0x0C, 0x3A, 0x41, 0x6E, 0x13, 0x28),
3371a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x73, 0xBD, 0x7E, 0xED, 0xAA, 0x14, 0xDD, 0x61),
3372a8e1175bSopenharmony_ci};
3373a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_11_X[] = {
3374a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC3, 0xDC, 0x20, 0x01, 0x72, 0x11, 0x48, 0x55),
3375a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0xC4, 0x7B, 0xF8, 0x62, 0x3D, 0xF0, 0x9F),
3376a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE8, 0xC2, 0x3D, 0x2E, 0x52, 0xA3, 0x4A, 0x89),
3377a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCE, 0xE2, 0x53, 0x46, 0x5E, 0x21, 0xF8, 0xCE),
3378a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC2, 0xC7, 0x8F, 0xA9, 0x26, 0x42, 0x32, 0x3A),
3379a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFB, 0xA6, 0xA0, 0x8D, 0x4B, 0x9A, 0x19, 0x03),
3380a8e1175bSopenharmony_ci};
3381a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_11_Y[] = {
3382a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xEA, 0xAB, 0x6D, 0x1E, 0xFB, 0xEE, 0x60, 0x0C),
3383a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0x56, 0x3C, 0xC5, 0x5D, 0x10, 0x79, 0x1C),
3384a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x25, 0xBC, 0x41, 0x9F, 0x71, 0xEF, 0x02, 0xF9),
3385a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA2, 0x36, 0xC4, 0xD0, 0x88, 0x9B, 0x32, 0xFC),
3386a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9C, 0xD4, 0x5D, 0x17, 0x39, 0xE6, 0x22, 0x2C),
3387a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x7B, 0x26, 0x01, 0xCE, 0xBE, 0x4A, 0x9C, 0x27),
3388a8e1175bSopenharmony_ci};
3389a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_12_X[] = {
3390a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xEF, 0x6D, 0x11, 0xCA, 0x6C, 0x5A, 0x93, 0x0C),
3391a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xEB, 0x96, 0x26, 0xAF, 0x2F, 0xE4, 0x30, 0x98),
3392a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x35, 0xC1, 0x4C, 0xC6, 0x30, 0x1F, 0x5C, 0x04),
3393a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x59, 0xB3, 0xE8, 0xFC, 0x35, 0xEB, 0x63, 0x6C),
3394a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9C, 0x1D, 0xCA, 0xFC, 0x50, 0x36, 0x4B, 0x96),
3395a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE4, 0x0E, 0x23, 0x5B, 0xAF, 0xEB, 0x2D, 0x31),
3396a8e1175bSopenharmony_ci};
3397a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_12_Y[] = {
3398a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC6, 0x88, 0xB6, 0xD7, 0x74, 0x4A, 0x23, 0xB6),
3399a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xEF, 0x66, 0xE2, 0xBB, 0x29, 0xA6, 0x4F, 0x55),
3400a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE9, 0x6F, 0x7E, 0x68, 0x6E, 0xA0, 0x14, 0x94),
3401a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3B, 0x73, 0xD4, 0xE8, 0xAB, 0x5B, 0xF6, 0x0D),
3402a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x46, 0xE0, 0x3C, 0x24, 0x00, 0x95, 0xE9, 0xAD),
3403a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x37, 0x0D, 0x4F, 0x81, 0xD0, 0xF2, 0x3F, 0x00),
3404a8e1175bSopenharmony_ci};
3405a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_13_X[] = {
3406a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x99, 0x1D, 0xCD, 0x78, 0x39, 0xC4, 0x6B, 0xD9),
3407a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x81, 0x45, 0xC7, 0xB8, 0x2F, 0xAA, 0x5D, 0xE3),
3408a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x33, 0x8C, 0x6E, 0xA3, 0x24, 0xB2, 0xDB, 0x4B),
3409a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x69, 0x2D, 0xD9, 0xF1, 0xC7, 0x9B, 0x8A, 0xAF),
3410a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x67, 0xE1, 0x2C, 0xB9, 0x40, 0x37, 0x91, 0x75),
3411a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x81, 0x2C, 0xB5, 0x23, 0x03, 0x2B, 0xAF, 0x2F),
3412a8e1175bSopenharmony_ci};
3413a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_13_Y[] = {
3414a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x2F, 0x9D, 0x5A, 0x20, 0x10, 0xA9, 0x84, 0xDA),
3415a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x61, 0x30, 0x89, 0x20, 0x13, 0xE9, 0xB2, 0xCA),
3416a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0x6E, 0x52, 0xEB, 0x03, 0x18, 0x1F, 0xA6),
3417a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x9E, 0x1C, 0x35, 0x87, 0x92, 0x69, 0xC7),
3418a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA1, 0xC9, 0x88, 0xAF, 0xC6, 0x6C, 0x83, 0x72),
3419a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCB, 0xD5, 0x7A, 0x54, 0x34, 0x99, 0xB6, 0x6F),
3420a8e1175bSopenharmony_ci};
3421a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_14_X[] = {
3422a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDF, 0xAD, 0x45, 0x9B, 0x4B, 0x41, 0x4D, 0x50),
3423a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1B, 0x5D, 0xAB, 0x7F, 0x35, 0x34, 0xE9, 0x29),
3424a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x73, 0xBE, 0x78, 0x34, 0x44, 0xF3, 0x4A, 0x87),
3425a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFB, 0xDE, 0xE3, 0xC4, 0xEE, 0x0B, 0xF9, 0xEB),
3426a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5E, 0x86, 0x16, 0x48, 0x32, 0xB8, 0x74, 0x41),
3427a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF2, 0xEE, 0x7C, 0xBA, 0xBD, 0x81, 0xE3, 0x55),
3428a8e1175bSopenharmony_ci};
3429a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_14_Y[] = {
3430a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF8, 0x6A, 0xFA, 0x84, 0xDA, 0xB8, 0xD5, 0x14),
3431a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB2, 0x9F, 0x8A, 0xD5, 0x1B, 0x2E, 0x1A, 0x0B),
3432a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5F, 0x0C, 0x61, 0xE2, 0xFF, 0x5B, 0xE6, 0xD5),
3433a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x0E, 0x62, 0xC1, 0x87, 0x53, 0x1B, 0x92, 0xA3),
3434a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x54, 0x90, 0x00, 0xD1, 0x6A, 0x0C, 0x0E, 0x28),
3435a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x8B, 0x2E, 0xB5, 0x3B, 0x44, 0xB5, 0xA0, 0x78),
3436a8e1175bSopenharmony_ci};
3437a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_15_X[] = {
3438a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB8, 0x5D, 0x02, 0x58, 0xB5, 0xBE, 0x45, 0x14),
3439a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAD, 0xEF, 0x8E, 0x90, 0x4D, 0x2A, 0x32, 0xAC),
3440a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x48, 0x99, 0x75, 0x5C, 0x0A, 0x33, 0x8F, 0x36),
3441a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC8, 0x6C, 0x95, 0xD4, 0x1F, 0xF3, 0xEB, 0xDA),
3442a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC2, 0xE4, 0x4C, 0x91, 0x20, 0xF3, 0x25, 0xEB),
3443a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF1, 0x95, 0xEB, 0x29, 0x6F, 0x20, 0x34, 0x81),
3444a8e1175bSopenharmony_ci};
3445a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_15_Y[] = {
3446a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x2D, 0x15, 0xE5, 0x13, 0x7E, 0x64, 0x8B, 0xAD),
3447a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA7, 0xBC, 0x0D, 0x18, 0x7E, 0x37, 0x9E, 0xFA),
3448a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE8, 0x82, 0x20, 0xF7, 0x2D, 0x7A, 0x77, 0x52),
3449a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCB, 0x29, 0xA2, 0xDB, 0x7A, 0xE6, 0x6F, 0xA5),
3450a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA0, 0xC6, 0x50, 0x5C, 0xBC, 0xE6, 0x4F, 0xBD),
3451a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0x9F, 0xD5, 0xE8, 0xC5, 0x3D, 0xB7, 0x30),
3452a8e1175bSopenharmony_ci};
3453a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_16_X[] = {
3454a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x45, 0x03, 0x55, 0x10, 0xDB, 0xA6, 0x8B, 0x22),
3455a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x4E, 0x17, 0xAE, 0x78, 0xC9, 0x1D, 0x43, 0xCA),
3456a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x4E, 0x35, 0x49, 0xD4, 0x47, 0x84, 0x8D, 0x20),
3457a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF3, 0x95, 0x2F, 0xEA, 0xBC, 0xB4, 0x18, 0xB3),
3458a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD4, 0x48, 0xAE, 0x89, 0xF5, 0x65, 0x3D, 0x89),
3459a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x86, 0xF2, 0x2B, 0x20, 0xD1, 0x75, 0x50, 0x63),
3460a8e1175bSopenharmony_ci};
3461a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_16_Y[] = {
3462a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAD, 0xE6, 0x5C, 0x2C, 0xE0, 0x7D, 0xDF, 0x2D),
3463a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3E, 0x07, 0x3E, 0xCE, 0x9F, 0x18, 0xB6, 0x05),
3464a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9A, 0xF8, 0xF0, 0xD5, 0xFA, 0x42, 0x1D, 0x6D),
3465a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x41, 0x6C, 0x1D, 0x03, 0xC9, 0x0E, 0x2B, 0x2F),
3466a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x43, 0x18, 0x52, 0xA5, 0xB4, 0x63, 0xE1, 0x06),
3467a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB7, 0x0A, 0xD9, 0xC4, 0xFD, 0x16, 0x60, 0x54),
3468a8e1175bSopenharmony_ci};
3469a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_17_X[] = {
3470a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x43, 0x7D, 0xDE, 0xDF, 0x4B, 0x4A, 0xB0, 0xCB),
3471a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB0, 0x4E, 0x8C, 0x94, 0xC1, 0xE2, 0x85, 0xDF),
3472a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x4F, 0xF0, 0xEA, 0xB5, 0x9B, 0x70, 0xEF, 0x10),
3473a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x56, 0xC2, 0x39, 0x5D, 0xF3, 0x2C, 0xD9, 0x2C),
3474a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x0D, 0x1C, 0x2E, 0xCC, 0x2F, 0x54, 0x87, 0x80),
3475a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB0, 0x72, 0xC7, 0xB5, 0x50, 0xA3, 0x84, 0x77),
3476a8e1175bSopenharmony_ci};
3477a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_17_Y[] = {
3478a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB7, 0xD1, 0xAF, 0xA9, 0xB4, 0x8B, 0x5D, 0xFA),
3479a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC8, 0xF6, 0x52, 0x8A, 0xC3, 0x56, 0xA5, 0x5E),
3480a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3B, 0x52, 0xFF, 0xEA, 0x05, 0x42, 0x77, 0x83),
3481a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x29, 0x08, 0x90, 0x72, 0x86, 0xC4, 0xC3, 0xB8),
3482a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x4D, 0x15, 0xF8, 0xF1, 0x16, 0x67, 0xC6, 0xD5),
3483a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x75, 0x87, 0xAC, 0x8F, 0x71, 0xEC, 0x83, 0x81),
3484a8e1175bSopenharmony_ci};
3485a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_18_X[] = {
3486a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x91, 0xE1, 0xE6, 0x2D, 0x0E, 0x11, 0xA1, 0x62),
3487a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x74, 0xE2, 0xA8, 0x32, 0xE6, 0xE3, 0x83, 0xD1),
3488a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x50, 0x56, 0xE5, 0xCD, 0xB7, 0x2B, 0x67, 0x6F),
3489a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE5, 0xED, 0xC9, 0x65, 0x6D, 0x87, 0xE1, 0x8E),
3490a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x50, 0x8E, 0xFD, 0x9A, 0x53, 0x0E, 0xFA, 0xA3),
3491a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x49, 0x4C, 0x4A, 0xE2, 0x23, 0x84, 0xFA, 0x01),
3492a8e1175bSopenharmony_ci};
3493a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_18_Y[] = {
3494a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB4, 0xFE, 0x49, 0x81, 0xD1, 0x3E, 0xF4, 0x7C),
3495a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x45, 0x72, 0xE0, 0xEF, 0x0D, 0xB8, 0x3E, 0x6F),
3496a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3C, 0x00, 0x0F, 0x5F, 0xCE, 0x60, 0x72, 0x2C),
3497a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB7, 0xCC, 0xD8, 0x03, 0x07, 0x6E, 0x5A, 0xCD),
3498a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x27, 0x3A, 0x35, 0x50, 0x4E, 0x1F, 0xCA, 0x5F),
3499a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x58, 0xEA, 0x88, 0x55, 0xBD, 0x6E, 0x05, 0x7F),
3500a8e1175bSopenharmony_ci};
3501a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_19_X[] = {
3502a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB1, 0x6D, 0xF1, 0x97, 0xA6, 0x69, 0x39, 0x24),
3503a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x0B, 0x41, 0x99, 0xFF, 0x3B, 0xA1, 0x26, 0xEC),
3504a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x95, 0x2F, 0x95, 0x80, 0x12, 0x4A, 0x1B, 0xCB),
3505a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xEA, 0xBF, 0x51, 0xAA, 0xAE, 0x2D, 0xDA, 0xCF),
3506a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x0C, 0x1C, 0xB3, 0x52, 0x36, 0x49, 0xD4, 0x86),
3507a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x99, 0xC1, 0x1F, 0x3A, 0xD3, 0x3E, 0x5C, 0x1A),
3508a8e1175bSopenharmony_ci};
3509a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_19_Y[] = {
3510a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x73, 0x51, 0xF7, 0x2B, 0xC8, 0xA9, 0xA7, 0x15),
3511a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x12, 0x4E, 0x7F, 0x98, 0x41, 0x66, 0xB0, 0x03),
3512a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x91, 0x1D, 0xC0, 0x42, 0xCD, 0xF8, 0xC3, 0x2B),
3513a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCC, 0x41, 0x91, 0x7D, 0xCC, 0x8B, 0xCC, 0x41),
3514a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x2A, 0xAE, 0x76, 0xED, 0x56, 0x18, 0xC5, 0xAB),
3515a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAB, 0x6A, 0x06, 0xA3, 0x7F, 0x65, 0x10, 0x1F),
3516a8e1175bSopenharmony_ci};
3517a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_20_X[] = {
3518a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x0C, 0xEC, 0x3C, 0x05, 0x05, 0xCA, 0xF6, 0xED),
3519a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x48, 0xCD, 0x02, 0x51, 0x12, 0x16, 0x3C, 0x63),
3520a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA8, 0xEB, 0xB3, 0x43, 0x7B, 0xDD, 0xB2, 0x7C),
3521a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x59, 0x90, 0x41, 0xDB, 0xE4, 0xF5, 0x91),
3522a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD0, 0x0E, 0x18, 0x2A, 0x5A, 0x83, 0x7C, 0x2F),
3523a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE1, 0x37, 0xA1, 0x0D, 0xF1, 0x2F, 0x63, 0x79),
3524a8e1175bSopenharmony_ci};
3525a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_20_Y[] = {
3526a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0xC0, 0xFA, 0x6F, 0x1F, 0x67, 0xCF, 0xEC),
3527a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x98, 0x34, 0x45, 0xBB, 0xF4, 0xF9, 0x9B, 0x89),
3528a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0x69, 0xFE, 0x67, 0x1D, 0x64, 0x8F, 0xB9),
3529a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDB, 0x39, 0xBF, 0xD8, 0xB3, 0xC7, 0xAD, 0x8A),
3530a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x8C, 0x93, 0xFF, 0xF3, 0x28, 0xFA, 0x39, 0xF6),
3531a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0xF9, 0xC3, 0x85, 0x26, 0x7A, 0x88, 0x89),
3532a8e1175bSopenharmony_ci};
3533a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_21_X[] = {
3534a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x4D, 0xD5, 0x79, 0xD8, 0x11, 0xDE, 0xEB, 0x4E),
3535a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1C, 0x46, 0xA4, 0x6A, 0xDA, 0x74, 0x34, 0xA8),
3536a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0xBD, 0xD3, 0xF5, 0x14, 0xEE, 0xFE, 0xAE),
3537a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x19, 0x4C, 0xA3, 0x71, 0x43, 0x65, 0xF8, 0x94),
3538a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x72, 0x6C, 0x35, 0xFA, 0x90, 0x25, 0xD8, 0xE2),
3539a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBB, 0x34, 0x84, 0x96, 0xA1, 0x43, 0x03, 0x4D),
3540a8e1175bSopenharmony_ci};
3541a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_21_Y[] = {
3542a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF1, 0x3B, 0x3B, 0x2F, 0xCA, 0x59, 0xF2, 0x42),
3543a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCD, 0x48, 0x24, 0x74, 0xD8, 0x72, 0x90, 0xA3),
3544a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x83, 0x42, 0x74, 0x8C, 0x6F, 0x52, 0x19, 0x3D),
3545a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x40, 0x9E, 0x41, 0x63, 0x68, 0x78, 0x4C, 0x2F),
3546a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x53, 0x94, 0xB6, 0x6B, 0x38, 0x52, 0xA8, 0x9F),
3547a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x81, 0x30, 0x25, 0x93, 0xA1, 0x6F, 0x6E, 0x68),
3548a8e1175bSopenharmony_ci};
3549a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_22_X[] = {
3550a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFC, 0x2F, 0x4B, 0x64, 0x79, 0x50, 0xFF, 0x01),
3551a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD4, 0x36, 0xED, 0x57, 0x39, 0x3B, 0xE7, 0xF3),
3552a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF1, 0x85, 0xEA, 0x35, 0xD6, 0xC0, 0xA0, 0x52),
3553a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBA, 0x89, 0x3A, 0xCC, 0x22, 0x1C, 0x46, 0x02),
3554a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x7A, 0xB0, 0xA1, 0x1B, 0x69, 0x62, 0x55),
3555a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x57, 0xB8, 0x8A, 0x6C, 0x18, 0x85, 0x0D, 0x88),
3556a8e1175bSopenharmony_ci};
3557a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_22_Y[] = {
3558a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFD, 0xB6, 0x50, 0xE9, 0x4E, 0x7F, 0xE8, 0x07),
3559a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x92, 0x5B, 0x5C, 0xD1, 0x4B, 0x11, 0x9A, 0xD8),
3560a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x96, 0x25, 0x56, 0x74, 0x51, 0x9C, 0xEC, 0x9C),
3561a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x55, 0x7F, 0xB6, 0x8A, 0xCB, 0x3A, 0x10, 0x6A),
3562a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x60, 0x33, 0x07, 0x01, 0xE9, 0x49, 0x59, 0xE6),
3563a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC6, 0xA5, 0x2E, 0xF2, 0xBA, 0x32, 0x63, 0x44),
3564a8e1175bSopenharmony_ci};
3565a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_23_X[] = {
3566a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF8, 0x06, 0x0B, 0xA5, 0x44, 0x27, 0x7F, 0x22),
3567a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x30, 0x74, 0xAC, 0x0F, 0xCC, 0x4F, 0x13, 0x61),
3568a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFD, 0xB1, 0xBF, 0x97, 0x49, 0xA5, 0x1C, 0x1D),
3569a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x8A, 0x64, 0x68, 0x7B, 0x0F, 0xCC, 0x77, 0xF8),
3570a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBB, 0x39, 0xF9, 0x4E, 0x84, 0x9C, 0xF6, 0x96),
3571a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBC, 0xCF, 0x6D, 0xE2, 0xA1, 0x2D, 0xF9, 0x2B),
3572a8e1175bSopenharmony_ci};
3573a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_23_Y[] = {
3574a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x95, 0xC4, 0x90, 0x57, 0x31, 0x01, 0x05, 0x5E),
3575a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCC, 0x1E, 0xBB, 0xBF, 0x98, 0xA4, 0x7C, 0xE3),
3576a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x89, 0xE3, 0xA0, 0xB2, 0xCD, 0x39, 0x9A, 0x3F),
3577a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x92, 0x34, 0x60, 0x7A, 0x89, 0x98, 0xB5, 0x52),
3578a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x8D, 0x20, 0x3D, 0x3A, 0x04, 0x8F, 0x5A, 0xAC),
3579a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA3, 0x26, 0xB6, 0x49, 0x09, 0x9C, 0x0F, 0x59),
3580a8e1175bSopenharmony_ci};
3581a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_24_X[] = {
3582a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x72, 0x66, 0xD2, 0x38, 0x2A, 0x62, 0x81, 0xCA),
3583a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC5, 0xC8, 0x20, 0x5E, 0x28, 0xA3, 0x81, 0xA7),
3584a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x20, 0x31, 0xA4, 0xF1, 0xEA, 0x7D, 0x87, 0x45),
3585a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x8F, 0x2C, 0x99, 0x09, 0x6F, 0x63, 0xEB, 0x2F),
3586a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x73, 0x76, 0xDA, 0x1A, 0x06, 0xBE, 0xDE, 0xA2),
3587a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x29, 0x09, 0x2E, 0x75, 0x39, 0x30, 0x2D, 0x42),
3588a8e1175bSopenharmony_ci};
3589a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_24_Y[] = {
3590a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x41, 0x9B, 0xC1, 0x5A, 0x17, 0xC3, 0x8C, 0x31),
3591a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x58, 0x8D, 0x94, 0x4D, 0x3D, 0xAB, 0x60, 0xD4),
3592a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFD, 0x1E, 0x0F, 0x43, 0xAE, 0x9D, 0x62),
3593a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x8E, 0xF2, 0xF3, 0x20, 0x1B, 0xAA, 0xB7, 0x41),
3594a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9D, 0x5B, 0xA4, 0xF4, 0x90, 0x3B, 0xE3, 0x71),
3595a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF7, 0x78, 0x72, 0xBD, 0x65, 0x09, 0x0B, 0x01),
3596a8e1175bSopenharmony_ci};
3597a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_25_X[] = {
3598a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCA, 0x37, 0x2A, 0x6C, 0x16, 0x4F, 0x64, 0x59),
3599a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5A, 0xCE, 0xA3, 0x90, 0xB4, 0x9A, 0xBC, 0xF7),
3600a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x27, 0x38, 0x55, 0x63, 0x1D, 0x3A, 0x6E, 0x18),
3601a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x37, 0xB4, 0xAA, 0x99, 0x22, 0x45, 0x89, 0x2C),
3602a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB7, 0x7C, 0x8C, 0xA6, 0x3D, 0xA7, 0x3E, 0xE8),
3603a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x70, 0x06, 0x42, 0xDC, 0xA6, 0xE3, 0xC6, 0x12),
3604a8e1175bSopenharmony_ci};
3605a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_25_Y[] = {
3606a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x55, 0x8C, 0x3D, 0x5D, 0x47, 0x31, 0x7C, 0xEB),
3607a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x46, 0x85, 0xEE, 0x46, 0x7E, 0x13, 0x04, 0x41),
3608a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9E, 0x3C, 0x8B, 0x43, 0x2E, 0x74, 0xF5, 0xF6),
3609a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBA, 0x88, 0x8E, 0x07, 0x29, 0x08, 0x03, 0x26),
3610a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xEA, 0x9B, 0x89, 0xEB, 0x08, 0xE8, 0x43, 0xB5),
3611a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x17, 0x07, 0x67, 0xFD, 0xD9, 0x73, 0x6F, 0x18),
3612a8e1175bSopenharmony_ci};
3613a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_26_X[] = {
3614a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x29, 0xEB, 0x21, 0x8D, 0x98, 0x43, 0x74, 0x98),
3615a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x88, 0xCC, 0x14, 0xD8, 0x08, 0xBB, 0xA6, 0xE3),
3616a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC4, 0x98, 0xF2, 0x6A, 0x18, 0xC3, 0xDD, 0x9E),
3617a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC7, 0x38, 0x91, 0xA0, 0x03, 0xF2, 0x04, 0x62),
3618a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x7A, 0xAF, 0xE8, 0xFD, 0xFB, 0x13, 0x70, 0x74),
3619a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD0, 0x93, 0x87, 0x98, 0x4A, 0xE0, 0x00, 0x12),
3620a8e1175bSopenharmony_ci};
3621a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_26_Y[] = {
3622a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x97, 0x2E, 0x69, 0x9C, 0xA2, 0x2D, 0x03, 0x3F),
3623a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x79, 0xFE, 0xF3, 0xB9, 0xC1, 0x85, 0x2A, 0xEE),
3624a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCE, 0xFD, 0x86, 0xB1, 0xCD, 0xBF, 0x41, 0xB7),
3625a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA0, 0xD8, 0x9A, 0x21, 0xF3, 0xFE, 0xCB, 0xF1),
3626a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x95, 0x78, 0x04, 0x60, 0xB7, 0xA9, 0xA2, 0x84),
3627a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE8, 0x1E, 0x66, 0x2A, 0x54, 0x51, 0xBD, 0x8B),
3628a8e1175bSopenharmony_ci};
3629a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_27_X[] = {
3630a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x8E, 0x16, 0x36, 0xEF, 0x61, 0x2D, 0xEE, 0x3B),
3631a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x45, 0x5F, 0x88, 0xA0, 0x13, 0x12, 0xF7, 0x23),
3632a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA9, 0xC6, 0xAD, 0x4A, 0x4A, 0x07, 0x01, 0x5B),
3633a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB8, 0x74, 0xB1, 0x4F, 0xEB, 0xBD, 0xD5, 0x6B),
3634a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x57, 0xF9, 0x71, 0xA2, 0x06, 0x4F, 0xD7, 0xBC),
3635a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0x8B, 0x4D, 0x48, 0xE0, 0x98, 0xFB, 0x6A),
3636a8e1175bSopenharmony_ci};
3637a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_27_Y[] = {
3638a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC4, 0xBA, 0x10, 0xA3, 0x0D, 0x52, 0xAC, 0x3A),
3639a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x11, 0xD0, 0xE0, 0x36, 0xE6, 0x07, 0x3A, 0x30),
3640a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x7E, 0x80, 0xF0, 0xAA, 0x49, 0x22, 0x4B, 0xDD),
3641a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xC7, 0xAB, 0x1C, 0x89, 0xCD, 0x24, 0x40),
3642a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x82, 0x2A, 0xFC, 0xB3, 0x6D, 0x45, 0x96, 0x49),
3643a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x63, 0xE4, 0xDB, 0x52, 0x3F, 0xC4, 0xB4, 0x19),
3644a8e1175bSopenharmony_ci};
3645a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_28_X[] = {
3646a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5B, 0xCC, 0xC8, 0x7F, 0xBB, 0x6B, 0x87, 0x47),
3647a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC0, 0x21, 0x3C, 0x69, 0x7D, 0x38, 0x57, 0x50),
3648a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x52, 0x4C, 0x18, 0x3C, 0x53, 0xA5, 0x48, 0x6D),
3649a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0xC3, 0x64, 0x45, 0xDB, 0xC4, 0x6D, 0x15),
3650a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x49, 0xCC, 0xD1, 0xBB, 0x17, 0xB8, 0x34, 0x2D),
3651a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x69, 0x71, 0xFA, 0xA0, 0x28, 0x4A, 0x3D),
3652a8e1175bSopenharmony_ci};
3653a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_28_Y[] = {
3654a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xED, 0xE8, 0x9E, 0x39, 0xEA, 0x8D, 0x38, 0xDB),
3655a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCC, 0x9C, 0xBB, 0xCD, 0x80, 0x1A, 0xEE, 0xB7),
3656a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBC, 0xA0, 0x45, 0xBF, 0xD9, 0x22, 0x11, 0x32),
3657a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDA, 0x7C, 0x5C, 0xD9, 0xC0, 0x9F, 0x69, 0xF5),
3658a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBC, 0x8A, 0xA6, 0x79, 0x4E, 0x35, 0xB9, 0xD5),
3659a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCC, 0x8B, 0x9A, 0x3E, 0xA1, 0xB8, 0x28, 0x10),
3660a8e1175bSopenharmony_ci};
3661a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_29_X[] = {
3662a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x55, 0x2F, 0xEF, 0xBB, 0xA9, 0x72, 0x7F, 0xEA),
3663a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB5, 0x34, 0xB7, 0x12, 0xB9, 0xE7, 0xC3, 0x2A),
3664a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF8, 0x1D, 0xD9, 0x42, 0x77, 0x0C, 0x71, 0x6E),
3665a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xEC, 0x01, 0x59, 0xA7, 0x56, 0x03, 0x91, 0x8D),
3666a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x91, 0x99, 0x33, 0x30, 0x3E, 0xEF, 0x13),
3667a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x87, 0xC9, 0x5A, 0x9A, 0x54, 0x66, 0xF1, 0x70),
3668a8e1175bSopenharmony_ci};
3669a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_29_Y[] = {
3670a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x64, 0x2C, 0xB7, 0x6E, 0x71, 0x7D, 0x35, 0x30),
3671a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1A, 0x0D, 0xEF, 0xD1, 0x2D, 0x99, 0x63, 0x2F),
3672a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE4, 0x31, 0xAF, 0x2D, 0xC9, 0xC6, 0xC2, 0xAE),
3673a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x19, 0xC0, 0xDF, 0x80, 0x54, 0xC4, 0xAC, 0xF3),
3674a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE3, 0x6B, 0xA0, 0x84, 0x96, 0xF7, 0x31, 0xC8),
3675a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x93, 0xE2, 0x7C, 0x7A, 0x41, 0x45, 0x75, 0x6A),
3676a8e1175bSopenharmony_ci};
3677a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_30_X[] = {
3678a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAE, 0xEE, 0x58, 0x31, 0xE8, 0x68, 0xD6, 0x76),
3679a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD2, 0x2E, 0x48, 0xB7, 0x09, 0x9F, 0xD4, 0xCA),
3680a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0xA9, 0x5C, 0xE7, 0x64, 0x43, 0x5D, 0xC9),
3681a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9E, 0x58, 0x9F, 0x50, 0xAB, 0x68, 0xFF, 0x6D),
3682a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x87, 0x88, 0x2D, 0xBA, 0x12, 0xBF, 0x8D, 0x7D),
3683a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD4, 0xDF, 0x6F, 0xB3, 0x75, 0xA4, 0x55, 0x73),
3684a8e1175bSopenharmony_ci};
3685a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_30_Y[] = {
3686a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0x17, 0x92, 0x39, 0xB7, 0x13, 0x37, 0x6F),
3687a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5E, 0x43, 0x71, 0xA7, 0xCA, 0x17, 0x1B, 0x32),
3688a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE7, 0xB9, 0xB0, 0x78, 0xEF, 0xA0, 0xDA, 0x83),
3689a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9A, 0x84, 0xF2, 0x0F, 0x85, 0xA2, 0xB6, 0x1F),
3690a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x72, 0x65, 0x2E, 0x6E, 0x45, 0xB9, 0x4C, 0x3C),
3691a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFE, 0x6A, 0x8C, 0x2B, 0x77, 0x96, 0x36, 0x22),
3692a8e1175bSopenharmony_ci};
3693a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_31_X[] = {
3694a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x68, 0x7A, 0x13, 0x4A, 0x97, 0x63, 0x02, 0x10),
3695a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBC, 0x1E, 0x06, 0x03, 0x8F, 0xB9, 0xEE, 0x64),
3696a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x68, 0xEE, 0x8B, 0x89, 0xA9, 0x70, 0xDB, 0xCE),
3697a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0x7B, 0x81, 0xC9, 0x70, 0x8D, 0x62, 0x32),
3698a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x75, 0xDA, 0x46, 0xF8, 0xF9, 0x3A, 0xBE, 0x55),
3699a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9F, 0x9C, 0x7A, 0x97, 0x62, 0xEB, 0xFA, 0x0F),
3700a8e1175bSopenharmony_ci};
3701a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP384r1_T_31_Y[] = {
3702a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB2, 0x03, 0x3D, 0x3C, 0x46, 0x27, 0x9E, 0x65),
3703a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA4, 0x08, 0x1C, 0xD5, 0x25, 0xAF, 0xE9, 0x40),
3704a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFE, 0x69, 0xDC, 0x59, 0xF4, 0x8A, 0x7C, 0x1F),
3705a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFC, 0x9A, 0x7A, 0x99, 0x21, 0x0C, 0x4E, 0xE3),
3706a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0xCE, 0x85, 0x5F, 0xAC, 0xAA, 0x82, 0x10),
3707a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x83, 0x57, 0x69, 0x90, 0x76, 0xF3, 0x53, 0x3F),
3708a8e1175bSopenharmony_ci};
3709a8e1175bSopenharmony_cistatic const mbedtls_ecp_point brainpoolP384r1_T[32] = {
3710a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z1(brainpoolP384r1_T_0_X, brainpoolP384r1_T_0_Y),
3711a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_1_X, brainpoolP384r1_T_1_Y),
3712a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_2_X, brainpoolP384r1_T_2_Y),
3713a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_3_X, brainpoolP384r1_T_3_Y),
3714a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_4_X, brainpoolP384r1_T_4_Y),
3715a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_5_X, brainpoolP384r1_T_5_Y),
3716a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_6_X, brainpoolP384r1_T_6_Y),
3717a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_7_X, brainpoolP384r1_T_7_Y),
3718a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_8_X, brainpoolP384r1_T_8_Y),
3719a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_9_X, brainpoolP384r1_T_9_Y),
3720a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_10_X, brainpoolP384r1_T_10_Y),
3721a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_11_X, brainpoolP384r1_T_11_Y),
3722a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_12_X, brainpoolP384r1_T_12_Y),
3723a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_13_X, brainpoolP384r1_T_13_Y),
3724a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_14_X, brainpoolP384r1_T_14_Y),
3725a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_15_X, brainpoolP384r1_T_15_Y),
3726a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_16_X, brainpoolP384r1_T_16_Y),
3727a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_17_X, brainpoolP384r1_T_17_Y),
3728a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_18_X, brainpoolP384r1_T_18_Y),
3729a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_19_X, brainpoolP384r1_T_19_Y),
3730a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_20_X, brainpoolP384r1_T_20_Y),
3731a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_21_X, brainpoolP384r1_T_21_Y),
3732a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_22_X, brainpoolP384r1_T_22_Y),
3733a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_23_X, brainpoolP384r1_T_23_Y),
3734a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_24_X, brainpoolP384r1_T_24_Y),
3735a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_25_X, brainpoolP384r1_T_25_Y),
3736a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_26_X, brainpoolP384r1_T_26_Y),
3737a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_27_X, brainpoolP384r1_T_27_Y),
3738a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_28_X, brainpoolP384r1_T_28_Y),
3739a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_29_X, brainpoolP384r1_T_29_Y),
3740a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_30_X, brainpoolP384r1_T_30_Y),
3741a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP384r1_T_31_X, brainpoolP384r1_T_31_Y),
3742a8e1175bSopenharmony_ci};
3743a8e1175bSopenharmony_ci#else
3744a8e1175bSopenharmony_ci#define brainpoolP384r1_T NULL
3745a8e1175bSopenharmony_ci#endif
3746a8e1175bSopenharmony_ci
3747a8e1175bSopenharmony_ci#endif /* MBEDTLS_ECP_DP_BP384R1_ENABLED */
3748a8e1175bSopenharmony_ci
3749a8e1175bSopenharmony_ci/*
3750a8e1175bSopenharmony_ci * Domain parameters for brainpoolP512r1 (RFC 5639 3.7)
3751a8e1175bSopenharmony_ci */
3752a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_BP512R1_ENABLED)
3753a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_p[] = {
3754a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF3, 0x48, 0x3A, 0x58, 0x56, 0x60, 0xAA, 0x28),
3755a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x85, 0xC6, 0x82, 0x2D, 0x2F, 0xFF, 0x81, 0x28),
3756a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE6, 0x80, 0xA3, 0xE6, 0x2A, 0xA1, 0xCD, 0xAE),
3757a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x42, 0x68, 0xC6, 0x9B, 0x00, 0x9B, 0x4D, 0x7D),
3758a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x71, 0x08, 0x33, 0x70, 0xCA, 0x9C, 0x63, 0xD6),
3759a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x0E, 0xD2, 0xC9, 0xB3, 0xB3, 0x8D, 0x30, 0xCB),
3760a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x07, 0xFC, 0xC9, 0x33, 0xAE, 0xE6, 0xD4, 0x3F),
3761a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x8B, 0xC4, 0xE9, 0xDB, 0xB8, 0x9D, 0xDD, 0xAA),
3762a8e1175bSopenharmony_ci};
3763a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_a[] = {
3764a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCA, 0x94, 0xFC, 0x77, 0x4D, 0xAC, 0xC1, 0xE7),
3765a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB9, 0xC7, 0xF2, 0x2B, 0xA7, 0x17, 0x11, 0x7F),
3766a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB5, 0xC8, 0x9A, 0x8B, 0xC9, 0xF1, 0x2E, 0x0A),
3767a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA1, 0x3A, 0x25, 0xA8, 0x5A, 0x5D, 0xED, 0x2D),
3768a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBC, 0x63, 0x98, 0xEA, 0xCA, 0x41, 0x34, 0xA8),
3769a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x10, 0x16, 0xF9, 0x3D, 0x8D, 0xDD, 0xCB, 0x94),
3770a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC5, 0x4C, 0x23, 0xAC, 0x45, 0x71, 0x32, 0xE2),
3771a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x89, 0x3B, 0x60, 0x8B, 0x31, 0xA3, 0x30, 0x78),
3772a8e1175bSopenharmony_ci};
3773a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_b[] = {
3774a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x23, 0xF7, 0x16, 0x80, 0x63, 0xBD, 0x09, 0x28),
3775a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDD, 0xE5, 0xBA, 0x5E, 0xB7, 0x50, 0x40, 0x98),
3776a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x67, 0x3E, 0x08, 0xDC, 0xCA, 0x94, 0xFC, 0x77),
3777a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x4D, 0xAC, 0xC1, 0xE7, 0xB9, 0xC7, 0xF2, 0x2B),
3778a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA7, 0x17, 0x11, 0x7F, 0xB5, 0xC8, 0x9A, 0x8B),
3779a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0xF1, 0x2E, 0x0A, 0xA1, 0x3A, 0x25, 0xA8),
3780a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5A, 0x5D, 0xED, 0x2D, 0xBC, 0x63, 0x98, 0xEA),
3781a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCA, 0x41, 0x34, 0xA8, 0x10, 0x16, 0xF9, 0x3D),
3782a8e1175bSopenharmony_ci};
3783a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_gx[] = {
3784a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x22, 0xF8, 0xB9, 0xBC, 0x09, 0x22, 0x35, 0x8B),
3785a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x68, 0x5E, 0x6A, 0x40, 0x47, 0x50, 0x6D, 0x7C),
3786a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5F, 0x7D, 0xB9, 0x93, 0x7B, 0x68, 0xD1, 0x50),
3787a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x8D, 0xD4, 0xD0, 0xE2, 0x78, 0x1F, 0x3B, 0xFF),
3788a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x8E, 0x09, 0xD0, 0xF4, 0xEE, 0x62, 0x3B, 0xB4),
3789a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC1, 0x16, 0xD9, 0xB5, 0x70, 0x9F, 0xED, 0x85),
3790a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x93, 0x6A, 0x4C, 0x9C, 0x2E, 0x32, 0x21, 0x5A),
3791a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x64, 0xD9, 0x2E, 0xD8, 0xBD, 0xE4, 0xAE, 0x81),
3792a8e1175bSopenharmony_ci};
3793a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_gy[] = {
3794a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x92, 0x08, 0xD8, 0x3A, 0x0F, 0x1E, 0xCD, 0x78),
3795a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x06, 0x54, 0xF0, 0xA8, 0x2F, 0x2B, 0xCA, 0xD1),
3796a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAE, 0x63, 0x27, 0x8A, 0xD8, 0x4B, 0xCA, 0x5B),
3797a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5E, 0x48, 0x5F, 0x4A, 0x49, 0xDE, 0xDC, 0xB2),
3798a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x11, 0x81, 0x1F, 0x88, 0x5B, 0xC5, 0x00, 0xA0),
3799a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1A, 0x7B, 0xA5, 0x24, 0x00, 0xF7, 0x09, 0xF2),
3800a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFD, 0x22, 0x78, 0xCF, 0xA9, 0xBF, 0xEA, 0xC0),
3801a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xEC, 0x32, 0x63, 0x56, 0x5D, 0x38, 0xDE, 0x7D),
3802a8e1175bSopenharmony_ci};
3803a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_n[] = {
3804a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x69, 0x00, 0xA9, 0x9C, 0x82, 0x96, 0x87, 0xB5),
3805a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDD, 0xDA, 0x5D, 0x08, 0x81, 0xD3, 0xB1, 0x1D),
3806a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x47, 0x10, 0xAC, 0x7F, 0x19, 0x61, 0x86, 0x41),
3807a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x19, 0x26, 0xA9, 0x4C, 0x41, 0x5C, 0x3E, 0x55),
3808a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x70, 0x08, 0x33, 0x70, 0xCA, 0x9C, 0x63, 0xD6),
3809a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x0E, 0xD2, 0xC9, 0xB3, 0xB3, 0x8D, 0x30, 0xCB),
3810a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x07, 0xFC, 0xC9, 0x33, 0xAE, 0xE6, 0xD4, 0x3F),
3811a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x8B, 0xC4, 0xE9, 0xDB, 0xB8, 0x9D, 0xDD, 0xAA),
3812a8e1175bSopenharmony_ci};
3813a8e1175bSopenharmony_ci
3814a8e1175bSopenharmony_ci#if MBEDTLS_ECP_FIXED_POINT_OPTIM == 1
3815a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_0_X[] = {
3816a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x22, 0xF8, 0xB9, 0xBC, 0x09, 0x22, 0x35, 0x8B),
3817a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x68, 0x5E, 0x6A, 0x40, 0x47, 0x50, 0x6D, 0x7C),
3818a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5F, 0x7D, 0xB9, 0x93, 0x7B, 0x68, 0xD1, 0x50),
3819a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x8D, 0xD4, 0xD0, 0xE2, 0x78, 0x1F, 0x3B, 0xFF),
3820a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x8E, 0x09, 0xD0, 0xF4, 0xEE, 0x62, 0x3B, 0xB4),
3821a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC1, 0x16, 0xD9, 0xB5, 0x70, 0x9F, 0xED, 0x85),
3822a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x93, 0x6A, 0x4C, 0x9C, 0x2E, 0x32, 0x21, 0x5A),
3823a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x64, 0xD9, 0x2E, 0xD8, 0xBD, 0xE4, 0xAE, 0x81),
3824a8e1175bSopenharmony_ci};
3825a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_0_Y[] = {
3826a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x92, 0x08, 0xD8, 0x3A, 0x0F, 0x1E, 0xCD, 0x78),
3827a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x06, 0x54, 0xF0, 0xA8, 0x2F, 0x2B, 0xCA, 0xD1),
3828a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAE, 0x63, 0x27, 0x8A, 0xD8, 0x4B, 0xCA, 0x5B),
3829a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5E, 0x48, 0x5F, 0x4A, 0x49, 0xDE, 0xDC, 0xB2),
3830a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x11, 0x81, 0x1F, 0x88, 0x5B, 0xC5, 0x00, 0xA0),
3831a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1A, 0x7B, 0xA5, 0x24, 0x00, 0xF7, 0x09, 0xF2),
3832a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFD, 0x22, 0x78, 0xCF, 0xA9, 0xBF, 0xEA, 0xC0),
3833a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xEC, 0x32, 0x63, 0x56, 0x5D, 0x38, 0xDE, 0x7D),
3834a8e1175bSopenharmony_ci};
3835a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_1_X[] = {
3836a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xEA, 0xE9, 0x6B, 0x8C, 0x6F, 0x9D, 0x88, 0x43),
3837a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBB, 0x4F, 0x86, 0x96, 0xA7, 0x56, 0xD1, 0x37),
3838a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9D, 0xAB, 0xFA, 0xEE, 0xA7, 0xF5, 0x0E, 0xA6),
3839a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE3, 0x40, 0xEF, 0x9E, 0x6D, 0xD6, 0x32, 0x33),
3840a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE3, 0xED, 0x56, 0x14, 0x57, 0x1A, 0x8D, 0x69),
3841a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA4, 0xED, 0x4D, 0x3A, 0xFA, 0x71, 0x75, 0x6B),
3842a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x66, 0xC5, 0x76, 0x1C, 0x14, 0xBE, 0xB5, 0xCD),
3843a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE1, 0x5A, 0xCB, 0xE7, 0x36, 0x1D, 0x52, 0x1C),
3844a8e1175bSopenharmony_ci};
3845a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_1_Y[] = {
3846a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6B, 0x8D, 0x7A, 0xEB, 0xA3, 0x8B, 0xD5, 0xB0),
3847a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1F, 0xA3, 0x41, 0xF8, 0xAC, 0x9E, 0xAB, 0x74),
3848a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x12, 0xE3, 0x65, 0x0D, 0x1C, 0xFE, 0x09, 0x2B),
3849a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3F, 0xCA, 0x13, 0x3F, 0xC5, 0xF9, 0x7E, 0xEC),
3850a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x2C, 0x5D, 0x63, 0x28, 0xA6, 0x89, 0xD3, 0x91),
3851a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0x95, 0x3F, 0x7A, 0x82, 0xD4, 0x77, 0xE3),
3852a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0xBB, 0x92, 0x32, 0x00, 0xF4, 0x66, 0x42),
3853a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBA, 0x58, 0x31, 0xD1, 0x17, 0x9F, 0x2A, 0x22),
3854a8e1175bSopenharmony_ci};
3855a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_2_X[] = {
3856a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x52, 0x36, 0xA9, 0xCD, 0x80, 0xA5, 0x2D, 0x78),
3857a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x91, 0x44, 0xAB, 0xCE, 0x71, 0xFF, 0x0C, 0x9B),
3858a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x18, 0x24, 0x58, 0x35, 0x5A, 0x21, 0x32, 0x93),
3859a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1B, 0xA6, 0x28, 0xF8, 0x7A, 0x97, 0xAE, 0x8B),
3860a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x84, 0xE7, 0x08, 0xFA, 0x47, 0xC9, 0x55, 0x09),
3861a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x8D, 0xAC, 0x2E, 0x84, 0xA4, 0xF5, 0x52, 0xC4),
3862a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD9, 0x58, 0x05, 0x9D, 0xA7, 0xC8, 0x71, 0xBF),
3863a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB3, 0x92, 0xB4, 0x92, 0xC1, 0x92, 0xEC, 0x6B),
3864a8e1175bSopenharmony_ci};
3865a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_2_Y[] = {
3866a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x4A, 0x48, 0x2D, 0x79, 0x5E, 0x58, 0xE5, 0x69),
3867a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB4, 0x85, 0x26, 0xEC, 0xE9, 0x6E, 0xD4, 0x06),
3868a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x98, 0x68, 0x26, 0x87, 0x38, 0xA2, 0xD2, 0x0B),
3869a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF7, 0x17, 0x60, 0xCE, 0x75, 0xF8, 0xA5, 0x6F),
3870a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x20, 0x51, 0xDB, 0xA9, 0xAE, 0x87, 0xF1, 0x15),
3871a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDD, 0x49, 0x92, 0x3B, 0x19, 0x96, 0xF5, 0xB0),
3872a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC4, 0xD5, 0x52, 0x52, 0x8C, 0xCE, 0xFD, 0xFA),
3873a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x24, 0x18, 0x0A, 0xE6, 0xF6, 0xAE, 0x08, 0x41),
3874a8e1175bSopenharmony_ci};
3875a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_3_X[] = {
3876a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x7E, 0x2B, 0xD8, 0x54, 0xCE, 0xB0, 0x57, 0xFE),
3877a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x8A, 0xB0, 0xF8, 0x9E, 0x03, 0x03, 0x3C, 0x5D),
3878a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x93, 0x0E, 0x29, 0x29, 0x00, 0xF3, 0x70, 0xBF),
3879a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x54, 0x33, 0x99, 0x0E, 0x00, 0x5D, 0xFE, 0x4B),
3880a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x46, 0x2D, 0xF2, 0x59, 0x32, 0xCF, 0x03, 0xF4),
3881a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3B, 0xC9, 0x72, 0xAE, 0x0C, 0xEF, 0xD1, 0x5B),
3882a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0x5A, 0x27, 0xBF, 0x2F, 0x45, 0xF9, 0x51),
3883a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD4, 0xBE, 0xE5, 0x2C, 0xFF, 0x5B, 0x1E, 0x88),
3884a8e1175bSopenharmony_ci};
3885a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_3_Y[] = {
3886a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAA, 0xAC, 0xBB, 0xD8, 0x83, 0xC2, 0x46, 0xF6),
3887a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCF, 0xDC, 0xCE, 0x15, 0xB4, 0xEF, 0xCF, 0x46),
3888a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x46, 0xDB, 0x5E, 0x94, 0x31, 0x0B, 0xB2, 0x7A),
3889a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3C, 0xB9, 0xE3, 0xE3, 0x11, 0x71, 0x41, 0x1E),
3890a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x36, 0xE3, 0x01, 0xB7, 0x7D, 0xBC, 0x65, 0xBE),
3891a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFC, 0x07, 0x65, 0x87, 0xA7, 0xE8, 0x48, 0xE3),
3892a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x66, 0x48, 0x8F, 0xD4, 0x30, 0x8E, 0xB4, 0x6C),
3893a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x86, 0xE0, 0x73, 0xBE, 0x1E, 0xBF, 0x56, 0x36),
3894a8e1175bSopenharmony_ci};
3895a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_4_X[] = {
3896a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFE, 0x0E, 0x5E, 0x87, 0xC5, 0xAB, 0x0E, 0x3C),
3897a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB9, 0xF9, 0x5F, 0x80, 0x24, 0x4C, 0x2A, 0xF1),
3898a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDE, 0x15, 0x21, 0x54, 0x92, 0x84, 0x8D, 0x6A),
3899a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA8, 0x8A, 0x47, 0x74, 0xDC, 0x42, 0xB1, 0xF8),
3900a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x81, 0xF7, 0x30, 0xFD, 0xC1, 0x9B, 0x0C, 0x5B),
3901a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x4E, 0x6C, 0xCC, 0xDF, 0xC5, 0xE3, 0xA9, 0xD5),
3902a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD6, 0x67, 0x59, 0x10, 0x5C, 0x51, 0x54, 0x40),
3903a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA0, 0x37, 0xFB, 0x6E, 0xB0, 0x78, 0x63, 0x8E),
3904a8e1175bSopenharmony_ci};
3905a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_4_Y[] = {
3906a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA5, 0xEF, 0xC4, 0x39, 0x20, 0xF1, 0x46, 0x66),
3907a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE2, 0x62, 0xAE, 0xFF, 0x10, 0xE4, 0xE2, 0xE9),
3908a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0x5C, 0xF5, 0x2E, 0x22, 0x89, 0xE5, 0x82),
3909a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x89, 0x0C, 0x29, 0xA8, 0x62, 0xAE, 0xDB, 0x65),
3910a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD7, 0x9E, 0x0F, 0xCA, 0x87, 0x2A, 0x6F, 0x7B),
3911a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCE, 0xDC, 0x9B, 0x9F, 0x65, 0xD4, 0xAD, 0x27),
3912a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xED, 0xC3, 0x08, 0x0F, 0xCF, 0x67, 0xE9, 0xF4),
3913a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x92, 0x5C, 0xD7, 0xFF, 0x41, 0x9C, 0xCB, 0x26),
3914a8e1175bSopenharmony_ci};
3915a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_5_X[] = {
3916a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x37, 0x25, 0x05, 0x12, 0xAD, 0x73, 0x63, 0x90),
3917a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC7, 0x99, 0x07, 0x86, 0x57, 0xE7, 0x94, 0xB1),
3918a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x4B, 0xA5, 0xBF, 0x18, 0xA9, 0xEF, 0x6A),
3919a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0x4C, 0xC4, 0x09, 0xF2, 0x2F, 0x0C, 0xAA),
3920a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x8C, 0x3A, 0x04, 0xEA, 0x89, 0x6C, 0x91, 0xB9),
3921a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x7D, 0x6C, 0x3A, 0xE7, 0xA3, 0xEC, 0x24, 0x7B),
3922a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x16, 0xA1, 0x26, 0x21, 0x04, 0xE3, 0xB9, 0x40),
3923a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x53, 0x71, 0x4B, 0x7B, 0xC2, 0x89, 0xCD, 0xA2),
3924a8e1175bSopenharmony_ci};
3925a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_5_Y[] = {
3926a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB7, 0xB9, 0xA8, 0x9D, 0xFD, 0x00, 0x3A, 0x1F),
3927a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x63, 0x41, 0x6C, 0xBB, 0x5A, 0xCA, 0x1F, 0x74),
3928a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x2A, 0xD7, 0xE2, 0x6C, 0x6B, 0xA7, 0x48, 0xC9),
3929a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0x19, 0xAD, 0xA7, 0xC1, 0x7E, 0x4F, 0x6E),
3930a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD1, 0xF7, 0x19, 0x3C, 0x06, 0x74, 0x2C, 0x3A),
3931a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC5, 0x23, 0x4F, 0x0C, 0x09, 0xB0, 0x80, 0x4A),
3932a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x4E, 0x74, 0x34, 0x08, 0x44, 0x7E, 0xA3, 0xDD),
3933a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFB, 0xCC, 0x8D, 0x12, 0x6E, 0xE1, 0x3D, 0x0B),
3934a8e1175bSopenharmony_ci};
3935a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_6_X[] = {
3936a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x38, 0x18, 0xB1, 0x71, 0x02, 0x93, 0xC2, 0xA4),
3937a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0x89, 0x40, 0xE2, 0x1F, 0xE7, 0x5E, 0x68),
3938a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x50, 0x8E, 0xAE, 0x89, 0x01, 0xD4, 0x0C, 0xEB),
3939a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAE, 0xDA, 0x58, 0x70, 0x24, 0xF2, 0xE4, 0x5F),
3940a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6F, 0xC7, 0x1D, 0xD6, 0x4A, 0x6F, 0x66, 0x4F),
3941a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x92, 0x1D, 0x7E, 0x4A, 0x2C, 0xCA, 0xEC, 0x3B),
3942a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA1, 0x06, 0x7F, 0xA8, 0x99, 0xE4, 0xD3, 0x4E),
3943a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x2A, 0x1D, 0x5A, 0xDF, 0x5E, 0x58, 0x36, 0x49),
3944a8e1175bSopenharmony_ci};
3945a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_6_Y[] = {
3946a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9C, 0xB9, 0x32, 0x69, 0x1F, 0x72, 0x2A, 0xB3),
3947a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1C, 0x73, 0xE2, 0x03, 0x39, 0x35, 0xAA, 0xA8),
3948a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xEB, 0x5E, 0x5D, 0x48, 0xEF, 0xAE, 0x30, 0xF5),
3949a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x77, 0x7F, 0x60, 0x19, 0xAF, 0xEC, 0x9D, 0xFC),
3950a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCA, 0xD9, 0x19, 0xE4, 0x1B, 0x56, 0x15, 0x5F),
3951a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBC, 0xD7, 0x33, 0x59, 0x1F, 0x43, 0x59, 0x2C),
3952a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC6, 0xCE, 0xEE, 0xCA, 0xA4, 0x7F, 0x63, 0xD4),
3953a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBD, 0x40, 0xC0, 0xF6, 0x19, 0x89, 0x43, 0x20),
3954a8e1175bSopenharmony_ci};
3955a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_7_X[] = {
3956a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xEB, 0x92, 0xEA, 0x07, 0x65, 0x79, 0x86, 0xD3),
3957a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xB7, 0x13, 0x75, 0xD3, 0xC5, 0x0A, 0xC9),
3958a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x26, 0x9E, 0xFA, 0xE1, 0x1F, 0x0C, 0xF9, 0x74),
3959a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB4, 0x8C, 0xED, 0x5C, 0x21, 0xE9, 0x09, 0xDD),
3960a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF4, 0x4D, 0xD8, 0x18, 0xC4, 0xF6, 0x36, 0x39),
3961a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC7, 0xC9, 0xAC, 0x5C, 0xFA, 0x69, 0xA4, 0xA0),
3962a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6B, 0x8C, 0x94, 0x1C, 0x7B, 0x71, 0x36, 0x58),
3963a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x7C, 0xBD, 0x46, 0xCE, 0xB7, 0x1D, 0x9C, 0x5E),
3964a8e1175bSopenharmony_ci};
3965a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_7_Y[] = {
3966a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xEA, 0xD6, 0x96, 0x4B, 0xA6, 0x47, 0xEB, 0xE5),
3967a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5F, 0xF1, 0x5F, 0x15, 0xDE, 0x99, 0x6F, 0x66),
3968a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0xBD, 0xE5, 0x04, 0xB8, 0xE6, 0xC0, 0x0B),
3969a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x49, 0xD3, 0xF0, 0x04, 0x00, 0xE4, 0x05, 0xDB),
3970a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x96, 0xF3, 0x06, 0xA3, 0x1A, 0xFF, 0xEA, 0x73),
3971a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x08, 0x32, 0xAA, 0x99, 0x33, 0x09, 0xB6, 0x34),
3972a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6E, 0xEF, 0xFC, 0x61, 0x10, 0x42, 0x31, 0x94),
3973a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0xF1, 0xF4, 0x33, 0xCF, 0x28, 0x90, 0x9C),
3974a8e1175bSopenharmony_ci};
3975a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_8_X[] = {
3976a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x10, 0xDE, 0xF9, 0x88, 0x87, 0x7B, 0xEB, 0xC9),
3977a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x66, 0xB8, 0xDA, 0xFA, 0xDA, 0x3D, 0xA6, 0x17),
3978a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA0, 0xF0, 0x62, 0x82, 0x53, 0x32, 0x55, 0x03),
3979a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x2F, 0xA5, 0x32, 0x4A, 0x19, 0x11, 0x9C, 0x10),
3980a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x16, 0xB3, 0x27, 0xE9, 0x75, 0x90, 0x05, 0x2D),
3981a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x63, 0x1C, 0x90, 0x48, 0x77, 0x01, 0x85, 0x1B),
3982a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC7, 0xD6, 0x9B, 0x84, 0xA8, 0xD7, 0xC5, 0x28),
3983a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE1, 0x7A, 0xCB, 0xB3, 0x11, 0x46, 0xD7, 0x99),
3984a8e1175bSopenharmony_ci};
3985a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_8_Y[] = {
3986a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x8B, 0x23, 0xBF, 0x75, 0x75, 0xA1, 0x95, 0x90),
3987a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x4B, 0x66, 0x5D, 0x34, 0x13, 0xA9, 0x03, 0xBE),
3988a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x29, 0x80, 0x9D, 0x5F, 0xD2, 0x44, 0xE1, 0x62),
3989a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x96, 0x5D, 0xBD, 0xA8, 0xBF, 0xB4, 0x25, 0x1F),
3990a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6A, 0x99, 0x1F, 0x53, 0xF1, 0x57, 0xDB, 0xE7),
3991a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0x7C, 0xE5, 0xC5, 0x51, 0x0B, 0x4C, 0x9B),
3992a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6B, 0xB0, 0x1A, 0x9C, 0x16, 0xB0, 0x32, 0x1F),
3993a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF4, 0xE3, 0xCF, 0xDD, 0x48, 0xB4, 0x7B, 0x33),
3994a8e1175bSopenharmony_ci};
3995a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_9_X[] = {
3996a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC0, 0xDD, 0x9E, 0x3C, 0x98, 0x0E, 0x77, 0x65),
3997a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0xAB, 0x01, 0xD3, 0x87, 0x74, 0x25, 0x4A),
3998a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x87, 0xA3, 0xE3, 0x76, 0x43, 0x87, 0x12, 0xBD),
3999a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x54, 0xB1, 0x3B, 0x60, 0x66, 0xEB, 0x98, 0x54),
4000a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD2, 0x78, 0xC8, 0xD7, 0x4E, 0x75, 0xCA, 0x69),
4001a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x07, 0xDF, 0x71, 0x19, 0xE7, 0x07, 0x36, 0xB5),
4002a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0xC9, 0xA8, 0x5F, 0x91, 0xBF, 0x47, 0xB2),
4003a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x80, 0x96, 0x58, 0x96, 0x18, 0xB6, 0xFA, 0x01),
4004a8e1175bSopenharmony_ci};
4005a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_9_Y[] = {
4006a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD0, 0x2D, 0xA9, 0x9B, 0x86, 0xDB, 0x0C, 0x4C),
4007a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE4, 0x0B, 0x2D, 0x56, 0x4A, 0xD3, 0x93, 0x8A),
4008a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB5, 0x15, 0xE2, 0x65, 0x12, 0x86, 0x0E, 0xB2),
4009a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB4, 0x41, 0x4D, 0xC1, 0xCB, 0xE4, 0xC3, 0xD7),
4010a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6A, 0x53, 0x10, 0xCA, 0xA3, 0xAC, 0x83, 0x26),
4011a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3E, 0x01, 0x22, 0x96, 0x10, 0xAD, 0x69, 0xDB),
4012a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x42, 0x46, 0x4E, 0xD8, 0xEA, 0xD6, 0x9D, 0xF3),
4013a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x43, 0x2F, 0x7F, 0x62, 0x62, 0x80, 0xD0, 0x14),
4014a8e1175bSopenharmony_ci};
4015a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_10_X[] = {
4016a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB2, 0xDA, 0x00, 0x63, 0x09, 0xBD, 0x6A, 0x83),
4017a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x0F, 0xD4, 0x6E, 0x48, 0x05, 0xB7, 0xF7, 0x17),
4018a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x14, 0x4D, 0xD7, 0x00, 0x4A, 0x15, 0x27, 0x7A),
4019a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3A, 0x15, 0xAA, 0x37, 0x27, 0x34, 0x18, 0x24),
4020a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3A, 0x20, 0x2C, 0x84, 0x1B, 0x88, 0xBA, 0x05),
4021a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0x09, 0xD6, 0x04, 0xA2, 0x60, 0x84, 0x72),
4022a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC8, 0x04, 0x94, 0x08, 0xD4, 0xED, 0x47, 0xDB),
4023a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x8B, 0xF3, 0xE4, 0x3E, 0xB9, 0x5B, 0x35, 0x42),
4024a8e1175bSopenharmony_ci};
4025a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_10_Y[] = {
4026a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5F, 0xD8, 0xB6, 0x80, 0xD6, 0xF1, 0x30, 0xDD),
4027a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD6, 0x14, 0xA6, 0x85, 0xEE, 0xA7, 0xD8, 0x61),
4028a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE4, 0x49, 0x2A, 0x1E, 0x7C, 0xE9, 0x2D, 0xEC),
4029a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3A, 0x87, 0x56, 0x91, 0x03, 0x77, 0x4D, 0x55),
4030a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x0E, 0x52, 0xD4, 0xAA, 0xF7, 0xFA, 0xB0, 0xC5),
4031a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x04, 0x5D, 0x11, 0x39, 0xB1, 0xE7, 0x76, 0xAD),
4032a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD6, 0x13, 0xBC, 0x37, 0x5D, 0x74, 0xCD, 0xC2),
4033a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0x48, 0x14, 0x23, 0x30, 0xF8, 0x46, 0x37),
4034a8e1175bSopenharmony_ci};
4035a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_11_X[] = {
4036a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0x27, 0xB0, 0xD9, 0xB2, 0x74, 0xB4, 0xC0),
4037a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xEA, 0xA6, 0xB9, 0x6F, 0x9F, 0x64, 0x36, 0x92),
4038a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x2E, 0x2B, 0x78, 0x40, 0x05, 0x2B, 0x7B, 0xA9),
4039a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB3, 0x68, 0x3A, 0xB6, 0x4A, 0xE2, 0xDB, 0xB8),
4040a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0x33, 0xD7, 0x34, 0x8B, 0x25, 0x45, 0xEF),
4041a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x89, 0xCE, 0xA8, 0xC9, 0x01, 0xFB, 0x0E, 0x7B),
4042a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE2, 0xF9, 0x51, 0x4C, 0x12, 0x9F, 0x60, 0xE4),
4043a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x67, 0x85, 0xBD, 0x30, 0x37, 0x84, 0x39, 0x44),
4044a8e1175bSopenharmony_ci};
4045a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_11_Y[] = {
4046a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x26, 0x33, 0xAF, 0x2E, 0xB8, 0x2E, 0xCC, 0x3C),
4047a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA4, 0xB1, 0x73, 0x59, 0x4E, 0x0C, 0x09, 0x4A),
4048a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x8A, 0x24, 0x89, 0x81, 0x12, 0xFF, 0xBB, 0x6E),
4049a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x71, 0x37, 0x1A, 0x66, 0xEE, 0xED, 0xB6, 0x9B),
4050a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x16, 0xBD, 0x04, 0x20, 0x5D, 0xFB, 0xBF, 0x95),
4051a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA0, 0xF8, 0x34, 0xA3, 0xFF, 0x45, 0xDE, 0x92),
4052a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9B, 0x18, 0x73, 0xF1, 0x32, 0x25, 0x58, 0xEB),
4053a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x63, 0xC1, 0x14, 0xE3, 0x9E, 0x40, 0x0F, 0x12),
4054a8e1175bSopenharmony_ci};
4055a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_12_X[] = {
4056a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x61, 0x07, 0x9D, 0x9C, 0x00, 0xF7, 0x56, 0x19),
4057a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFB, 0xBA, 0x87, 0xF9, 0x15, 0x0C, 0x66, 0x5D),
4058a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x7E, 0x1F, 0xC1, 0x28, 0xB0, 0x47, 0x0D, 0xF5),
4059a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x96, 0xCA, 0x27, 0xEE, 0x4B, 0x23, 0x2B, 0x89),
4060a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x7E, 0xB5, 0x68, 0xC8, 0x17, 0x5D, 0xC3, 0xAA),
4061a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x17, 0x02, 0x08, 0xEE, 0x20, 0x9D, 0xEA, 0x64),
4062a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA7, 0x14, 0x50, 0xD4, 0x7D, 0x5F, 0xCF, 0xA0),
4063a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD5, 0xFA, 0xF8, 0xA7, 0xC6, 0xDC, 0x14, 0x8C),
4064a8e1175bSopenharmony_ci};
4065a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_12_Y[] = {
4066a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x76, 0xBD, 0x0A, 0x1A, 0x18, 0x98, 0xDC, 0xB0),
4067a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x63, 0x63, 0x02, 0xB7, 0xD5, 0x5B, 0x5A, 0xC6),
4068a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x51, 0xB1, 0xD7, 0x4B, 0x15, 0x39, 0x61, 0x5D),
4069a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5C, 0x32, 0xE1, 0x9E, 0x70, 0x1B, 0xCE, 0x51),
4070a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x64, 0xD8, 0x18, 0x83, 0x52, 0x9B, 0x6D, 0xA2),
4071a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA4, 0x55, 0x56, 0x19, 0x34, 0xA4, 0xEA, 0xFC),
4072a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x30, 0xA9, 0x55, 0x80, 0xE3, 0x15, 0x36, 0x8B),
4073a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBB, 0x06, 0xC8, 0x1D, 0x17, 0x0D, 0xAD, 0x16),
4074a8e1175bSopenharmony_ci};
4075a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_13_X[] = {
4076a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x20, 0xD6, 0xF0, 0xCC, 0xF3, 0x63, 0x53, 0xD2),
4077a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x27, 0x5A, 0xDC, 0x46, 0xBD, 0x0D, 0xAD, 0x96),
4078a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0x2F, 0x11, 0x60, 0x15, 0x51, 0x4A, 0xEA),
4079a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x33, 0xE3, 0x93, 0x38, 0xD5, 0x83, 0xAA, 0x0D),
4080a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x90, 0xA6, 0xCC, 0xB1, 0xFD, 0xBB, 0x1A, 0x0F),
4081a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3B, 0x54, 0xC8, 0x54, 0x6F, 0x79, 0x1A, 0x59),
4082a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3F, 0x4A, 0xDA, 0x28, 0x92, 0x97, 0x9D, 0x7F),
4083a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD6, 0x4B, 0xDB, 0xC7, 0x52, 0xC5, 0x66, 0x34),
4084a8e1175bSopenharmony_ci};
4085a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_13_Y[] = {
4086a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x05, 0x7E, 0x92, 0x53, 0x30, 0x93, 0xFD, 0xFF),
4087a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA0, 0x16, 0x6A, 0xB1, 0x91, 0x0A, 0xB4, 0x52),
4088a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0x9D, 0x40, 0x3F, 0xE3, 0xF1, 0x01, 0x46),
4089a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x13, 0x0E, 0xD8, 0xED, 0x11, 0x8E, 0x4C, 0xED),
4090a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x86, 0x4A, 0x1B, 0x88, 0xDF, 0x8D, 0x29, 0xE7),
4091a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x97, 0x23, 0x21, 0x11, 0xAB, 0x77, 0x81, 0x62),
4092a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x0B, 0xAF, 0x11, 0xFA, 0xBA, 0x40, 0x63, 0xE7),
4093a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x2B, 0x6F, 0x8D, 0x80, 0xDF, 0x67, 0xF5, 0x44),
4094a8e1175bSopenharmony_ci};
4095a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_14_X[] = {
4096a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB2, 0x8B, 0xB7, 0x08, 0xF4, 0xD7, 0x2D, 0xA8),
4097a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC7, 0x2B, 0x30, 0x02, 0x45, 0x71, 0x08, 0x49),
4098a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x97, 0x3A, 0xCA, 0x50, 0xF6, 0xC2, 0x19, 0x8C),
4099a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x17, 0xB9, 0x9B, 0x3E, 0x73, 0x95, 0x1D, 0x49),
4100a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0x60, 0x59, 0x48, 0xCB, 0xD8, 0xD6, 0xAA),
4101a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF0, 0xB9, 0x6C, 0x89, 0xAB, 0x99, 0xA8, 0xF8),
4102a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xEF, 0xA1, 0x8B, 0x4E, 0x06, 0x19, 0xEC, 0x99),
4103a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x70, 0x95, 0x04, 0xCF, 0xD5, 0x94, 0xB3, 0x02),
4104a8e1175bSopenharmony_ci};
4105a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_14_Y[] = {
4106a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x29, 0x35, 0x93, 0x7C, 0xB3, 0xB8, 0x9E, 0x1B),
4107a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC4, 0x45, 0x5C, 0x7E, 0xBF, 0x75, 0x81, 0x0F),
4108a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDC, 0xE8, 0x24, 0xDF, 0xEC, 0x2F, 0x7D, 0xB9),
4109a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF2, 0x8B, 0xD5, 0x6A, 0x9B, 0xA0, 0xE0, 0x4F),
4110a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x32, 0xE3, 0x27, 0x82, 0xDE, 0xDD, 0xCA, 0x4B),
4111a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA7, 0x57, 0x56, 0x46, 0x05, 0x06, 0x01, 0x2E),
4112a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x74, 0x35, 0xA7, 0x47, 0xE2, 0x6B, 0x2C, 0x4F),
4113a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x38, 0x9D, 0x4C, 0xEC, 0x1F, 0x11, 0x75, 0x2B),
4114a8e1175bSopenharmony_ci};
4115a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_15_X[] = {
4116a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0xAA, 0x41, 0xC1, 0xE9, 0x0E, 0xE9, 0xAA),
4117a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x0A, 0xCF, 0x9C, 0x4B, 0xE8, 0xED, 0x0A, 0x49),
4118a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3D, 0x73, 0xCA, 0x0C, 0x46, 0x0A, 0x9C, 0xE4),
4119a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x99, 0xE1, 0x9E, 0xBC, 0xFE, 0x44, 0x63, 0x6D),
4120a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x31, 0x43, 0x71, 0xEE, 0xF8, 0xC1, 0x8C, 0x5C),
4121a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6A, 0x4B, 0xF0, 0x69, 0x25, 0xBD, 0x71, 0x1A),
4122a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFD, 0x9A, 0xFE, 0x82, 0xE7, 0xC1, 0xC1, 0xEE),
4123a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFC, 0x5A, 0x6E, 0x5E, 0x97, 0x6A, 0x35, 0x8D),
4124a8e1175bSopenharmony_ci};
4125a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_15_Y[] = {
4126a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA2, 0x18, 0x6C, 0x7E, 0xB8, 0x9E, 0x57, 0x32),
4127a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x35, 0xB9, 0xC1, 0xD0, 0xFE, 0x78, 0xFB, 0x32),
4128a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x7C, 0x08, 0xAE, 0x46, 0x34, 0xEA, 0x7A, 0x7F),
4129a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE8, 0x1C, 0x56, 0xA9, 0x18, 0x37, 0xD4, 0x9E),
4130a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x28, 0x63, 0xE9, 0x0A, 0xB6, 0x38, 0x3C, 0xC1),
4131a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3E, 0x4F, 0xA4, 0x6E, 0x85, 0x31, 0x23, 0x52),
4132a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x0D, 0xAD, 0xC4, 0xC3, 0xB1, 0x4B, 0x1C, 0x82),
4133a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x30, 0x56, 0x4A, 0x38, 0xB3, 0x6B, 0x6F, 0x2C),
4134a8e1175bSopenharmony_ci};
4135a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_16_X[] = {
4136a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x67, 0xC7, 0x19, 0xDE, 0x21, 0xED, 0x89, 0xD0),
4137a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x2F, 0xBE, 0xA6, 0xAE, 0xEB, 0x9D, 0xA7, 0x2A),
4138a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x04, 0x0E, 0x13, 0x1E, 0x86, 0x57, 0xC3, 0x3B),
4139a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1F, 0x4B, 0x30, 0x46, 0x52, 0xC1, 0xEC, 0x52),
4140a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6E, 0xD5, 0x44, 0x31, 0x96, 0x3B, 0x26, 0x27),
4141a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x77, 0x68, 0xA8, 0x67, 0x78, 0x39, 0xE8, 0x68),
4142a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x8E, 0x78, 0xB7, 0xDD, 0xF2, 0x58, 0xB6, 0x3D),
4143a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x81, 0x3C, 0xB3, 0x26, 0xC4, 0x2C, 0x8C, 0xA5),
4144a8e1175bSopenharmony_ci};
4145a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_16_Y[] = {
4146a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB9, 0x24, 0xE5, 0x73, 0xEE, 0x9A, 0x02, 0xA9),
4147a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD9, 0x6A, 0x65, 0x60, 0xF3, 0x62, 0xE3, 0xE9),
4148a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFB, 0x07, 0x84, 0xE6, 0x3B, 0x46, 0x65, 0x9F),
4149a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE1, 0x8F, 0x0C, 0xB0, 0xE1, 0x04, 0x82, 0x9D),
4150a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xEB, 0x13, 0xBF, 0x3D, 0xA0, 0x48, 0xA2, 0x74),
4151a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x08, 0x26, 0x76, 0x74, 0xAB, 0x0B, 0x29, 0xE8),
4152a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x30, 0x6E, 0x5F, 0x03, 0x34, 0x7C, 0x38, 0xCE),
4153a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x4D, 0x72, 0xF9, 0x3B, 0x3C, 0xA4, 0xBC, 0x7C),
4154a8e1175bSopenharmony_ci};
4155a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_17_X[] = {
4156a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5C, 0xCE, 0x18, 0x80, 0xB8, 0x24, 0x45, 0x81),
4157a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF1, 0x09, 0x03, 0xB8, 0x06, 0x64, 0xF7, 0xEC),
4158a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF1, 0x26, 0xB1, 0x10, 0x6D, 0x71, 0x12, 0x2E),
4159a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAD, 0x12, 0xC6, 0x6E, 0x1E, 0x6A, 0xC3, 0x80),
4160a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE5, 0xD3, 0x0A, 0xDE, 0xD8, 0x6B, 0x04, 0x5C),
4161a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x96, 0x87, 0x5B, 0xAE, 0xDB, 0x3C, 0xC0, 0xC5),
4162a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x8E, 0xF5, 0xF9, 0xC1, 0x9A, 0x89, 0xBB, 0x7E),
4163a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xED, 0x69, 0x72, 0x8B, 0xAE, 0x32, 0x13, 0x11),
4164a8e1175bSopenharmony_ci};
4165a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_17_Y[] = {
4166a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF9, 0x16, 0x07, 0x50, 0xFA, 0x4C, 0xCF, 0xE8),
4167a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF8, 0x50, 0x21, 0xE9, 0xDE, 0xEC, 0x7E, 0xDF),
4168a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x7C, 0x2F, 0xE8, 0x83, 0x30, 0x0B, 0x65, 0x0E),
4169a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA5, 0x0B, 0x99, 0xAC, 0xC9, 0xBA, 0x6C, 0x2A),
4170a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA7, 0x59, 0x5A, 0x0D, 0x7B, 0x9E, 0x08, 0xAD),
4171a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0x91, 0xB2, 0xDC, 0x90, 0xCE, 0x67, 0xED),
4172a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE3, 0x93, 0x60, 0x0C, 0xD7, 0x1F, 0x2F, 0x17),
4173a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x19, 0x7F, 0x9D, 0x40, 0xF8, 0x78, 0x7A, 0x54),
4174a8e1175bSopenharmony_ci};
4175a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_18_X[] = {
4176a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x13, 0x22, 0x95, 0xE8, 0xEF, 0x31, 0x57, 0x35),
4177a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x2D, 0x88, 0x53, 0xFE, 0xAF, 0x7C, 0x47, 0x14),
4178a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x0E, 0xCE, 0xCC, 0x79, 0xE8, 0x9F, 0x8C, 0xC4),
4179a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDB, 0x16, 0xDD, 0x77, 0x6E, 0x8A, 0x73, 0x97),
4180a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC0, 0x07, 0x97, 0x21, 0x3B, 0xF8, 0x5F, 0xA8),
4181a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC6, 0xB5, 0xD2, 0x81, 0x84, 0xF0, 0xE7, 0x9F),
4182a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCB, 0x8F, 0x75, 0x09, 0x6A, 0x0E, 0x53, 0xAD),
4183a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE6, 0x4F, 0x70, 0x97, 0xC7, 0xAC, 0x7D, 0x3F),
4184a8e1175bSopenharmony_ci};
4185a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_18_Y[] = {
4186a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF9, 0x3C, 0x6A, 0xB4, 0x10, 0xA9, 0xC8, 0x1D),
4187a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xEE, 0xC5, 0xD6, 0x69, 0x16, 0xB8, 0xAC, 0x25),
4188a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0x44, 0xDC, 0xEB, 0x48, 0x54, 0x5D, 0x5F),
4189a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6F, 0x48, 0x9B, 0xD7, 0x72, 0x69, 0xA4, 0x8A),
4190a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB4, 0x0D, 0x36, 0x9A, 0x66, 0x0B, 0xEC, 0x24),
4191a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBE, 0xC6, 0xD4, 0xB6, 0x60, 0xE5, 0xC3, 0x3A),
4192a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBA, 0x29, 0x42, 0xE0, 0x9D, 0xFD, 0x7C, 0x3E),
4193a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x43, 0x10, 0xBA, 0x55, 0xBC, 0x3B, 0x38, 0x5D),
4194a8e1175bSopenharmony_ci};
4195a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_19_X[] = {
4196a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x25, 0x66, 0xFA, 0x05, 0x73, 0x03, 0x1B, 0x69),
4197a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x11, 0xA4, 0x66, 0x12, 0x96, 0x7B, 0x02, 0x4C),
4198a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x44, 0xB5, 0xDE, 0x6D, 0x98, 0xD1, 0xD5, 0xA8),
4199a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE2, 0xF5, 0x44, 0xB8, 0x8E, 0xF6, 0x8C, 0x05),
4200a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x68, 0x15, 0x2B, 0x72, 0xBC, 0x49, 0xE5, 0xDF),
4201a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x44, 0xD7, 0xDF, 0x8F, 0xEB, 0x8D, 0x80),
4202a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x05, 0x64, 0x88, 0xAA, 0xB7, 0xE4, 0x70, 0x1D),
4203a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9C, 0x14, 0xBB, 0xE9, 0x9B, 0xB9, 0x65, 0x5D),
4204a8e1175bSopenharmony_ci};
4205a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_19_Y[] = {
4206a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x66, 0x8E, 0x88, 0xF5, 0xF1, 0xC1, 0x89, 0xA2),
4207a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x16, 0x30, 0x53, 0xE6, 0xFB, 0x2D, 0x82, 0xB4),
4208a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA7, 0xE4, 0xFF, 0xBA, 0x31, 0x79, 0xAB, 0xC2),
4209a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x45, 0x09, 0xF7, 0xB7, 0x09, 0x78, 0x4C, 0x90),
4210a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x10, 0xAE, 0xC2, 0x44, 0xDC, 0x17, 0x78, 0x47),
4211a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC7, 0xD4, 0x17, 0x43, 0x19, 0x74, 0x9E, 0x23),
4212a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0x64, 0x3B, 0x73, 0xA2, 0x99, 0x27, 0x76),
4213a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x05, 0x74, 0x36, 0x5F, 0xD3, 0x14, 0xB1, 0x31),
4214a8e1175bSopenharmony_ci};
4215a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_20_X[] = {
4216a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0x07, 0xAB, 0xFD, 0x9B, 0x03, 0xC5, 0xD5),
4217a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC7, 0xBE, 0xB0, 0x1D, 0xF2, 0x0C, 0x73, 0x73),
4218a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x99, 0xE7, 0x7B, 0x87, 0xD3, 0x34, 0xFD, 0xE2),
4219a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9A, 0x25, 0x3D, 0xC7, 0x36, 0x83, 0x53, 0xDC),
4220a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x22, 0x7C, 0xCF, 0x63, 0x55, 0x12, 0x11, 0xB0),
4221a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC0, 0x34, 0x4D, 0x27, 0x92, 0xAC, 0x18, 0x16),
4222a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x98, 0x42, 0x61, 0x9D, 0x2E, 0xFF, 0x13, 0x16),
4223a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF4, 0xDE, 0x92, 0x65, 0x57, 0x0D, 0xBC, 0x0A),
4224a8e1175bSopenharmony_ci};
4225a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_20_Y[] = {
4226a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xEF, 0x7B, 0x6E, 0xC6, 0x2A, 0x21, 0x74, 0x0A),
4227a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x37, 0xA7, 0x53, 0x4D, 0x29, 0x36, 0xEF, 0xE5),
4228a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE1, 0xD6, 0x41, 0xC7, 0x99, 0xAD, 0x50, 0x53),
4229a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x99, 0xAC, 0x41, 0x9F, 0xFB, 0x4C, 0x86, 0xF1),
4230a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x8B, 0xBB, 0xE6, 0x25, 0x28, 0xAA, 0xEB, 0x1E),
4231a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x92, 0x04, 0xA2, 0xC3, 0xAA, 0x08, 0x8A, 0xCC),
4232a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5A, 0x2B, 0x5B, 0xE2, 0x8D, 0x76, 0xEA, 0x34),
4233a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB3, 0x33, 0xD2, 0x21, 0x4D, 0x62, 0xE3, 0x8E),
4234a8e1175bSopenharmony_ci};
4235a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_21_X[] = {
4236a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF6, 0x06, 0x8B, 0x2B, 0xC2, 0xC4, 0xB1, 0xD2),
4237a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0xF5, 0xA1, 0xC0, 0x03, 0x6A, 0x29, 0x12),
4238a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0xA9, 0xEF, 0x55, 0xB6, 0x1A, 0x9F, 0x6B),
4239a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9B, 0x54, 0x32, 0xBE, 0x06, 0x43, 0xB5, 0xFD),
4240a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF7, 0xD6, 0xD9, 0x20, 0x89, 0xBE, 0xD4, 0x1B),
4241a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE8, 0x26, 0x95, 0x10, 0xCE, 0xB4, 0x88, 0x79),
4242a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE6, 0xA6, 0x27, 0xAC, 0x32, 0xBA, 0xBD, 0xC7),
4243a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA3, 0xA6, 0xAE, 0x9C, 0x7B, 0xBE, 0xA1, 0x63),
4244a8e1175bSopenharmony_ci};
4245a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_21_Y[] = {
4246a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x8B, 0xCD, 0x4D, 0x3D, 0xDF, 0x96, 0xBB, 0x7D),
4247a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x77, 0xA7, 0x11, 0x06, 0xCC, 0x0E, 0x31, 0x81),
4248a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x20, 0xE4, 0xF4, 0xAD, 0x7B, 0x5F, 0xF1, 0xEF),
4249a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE4, 0x54, 0xBE, 0xF4, 0x8A, 0x03, 0x47, 0xDF),
4250a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB4, 0x53, 0x00, 0x7F, 0xB0, 0x8A, 0x68, 0xA6),
4251a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA0, 0x16, 0xB1, 0x73, 0x6F, 0x5B, 0x0E, 0xC3),
4252a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x2A, 0x32, 0xE3, 0x43, 0x64, 0x75, 0xFB, 0xFB),
4253a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA0, 0x18, 0x55, 0x8A, 0x4E, 0x6E, 0x35, 0x54),
4254a8e1175bSopenharmony_ci};
4255a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_22_X[] = {
4256a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x80, 0x97, 0x15, 0x1E, 0xCB, 0xF2, 0x9C, 0xA5),
4257a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x2B, 0xD1, 0xBB, 0xF3, 0x70, 0xAD, 0x13, 0xAD),
4258a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD8, 0x96, 0xA4, 0xC5, 0x5E, 0xDA, 0xD5, 0x57),
4259a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x07, 0x81, 0xE9, 0x65, 0x66, 0x76, 0x47, 0x45),
4260a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0x35, 0x87, 0x06, 0x73, 0xCF, 0x34, 0xD2),
4261a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5A, 0x81, 0x15, 0x42, 0xA2, 0x79, 0x5B, 0x42),
4262a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x08, 0xA2, 0x7D, 0x09, 0x14, 0x64, 0xC6, 0xAE),
4263a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5E, 0x6D, 0xC4, 0xED, 0xF1, 0xD6, 0xE9, 0x24),
4264a8e1175bSopenharmony_ci};
4265a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_22_Y[] = {
4266a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB4, 0xD5, 0xBB, 0x25, 0xA3, 0xDD, 0xA3, 0x88),
4267a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x46, 0xF2, 0x68, 0x67, 0x39, 0x8F, 0x73, 0x93),
4268a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF0, 0x76, 0x28, 0x89, 0xAD, 0x32, 0xE0, 0xDF),
4269a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF8, 0x90, 0xCC, 0x57, 0x58, 0xAA, 0xC9, 0x75),
4270a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5E, 0xD7, 0x43, 0xD2, 0xCE, 0x5E, 0xA0, 0x08),
4271a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x33, 0xB0, 0xB8, 0xA4, 0x9E, 0x96, 0x26, 0x86),
4272a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x94, 0x61, 0x1D, 0xF3, 0x65, 0x5E, 0x60, 0xCA),
4273a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC7, 0x1E, 0x65, 0xED, 0xCF, 0x07, 0x60, 0x20),
4274a8e1175bSopenharmony_ci};
4275a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_23_X[] = {
4276a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA4, 0x30, 0x17, 0x8A, 0x91, 0x88, 0x0A, 0xA4),
4277a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x05, 0x7D, 0x18, 0xA4, 0xAC, 0x59, 0xFC, 0x5F),
4278a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA4, 0x31, 0x8B, 0x25, 0x65, 0x39, 0x9A, 0xDC),
4279a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0x16, 0x4B, 0x68, 0xBA, 0x59, 0x13, 0x2F),
4280a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x8D, 0xFD, 0xD3, 0xC5, 0x56, 0xC9, 0x8C, 0x5E),
4281a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBC, 0xC6, 0x9F, 0xF4, 0xE6, 0xF7, 0xB4, 0x01),
4282a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x2D, 0x7C, 0x03, 0x00, 0x26, 0x9F, 0xD8, 0x7B),
4283a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x24, 0x1D, 0x6E, 0x00, 0xB9, 0x00, 0x6E, 0x93),
4284a8e1175bSopenharmony_ci};
4285a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_23_Y[] = {
4286a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x75, 0x63, 0xDA, 0x03, 0x2B, 0xD5, 0x0B, 0xFE),
4287a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x46, 0xFC, 0xE2, 0xC8, 0x47, 0xF0, 0xAE, 0xF2),
4288a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x51, 0x4C, 0xF7, 0x50, 0x0C, 0x48, 0x06, 0x2A),
4289a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDF, 0x2B, 0x32, 0x98, 0x0E, 0x7E, 0x61, 0x41),
4290a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5D, 0x02, 0x27, 0xFE, 0x75, 0x86, 0xDF, 0x24),
4291a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x2B, 0x30, 0xB1, 0x22, 0x32, 0x1B, 0xFE, 0x24),
4292a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC2, 0x27, 0xF7, 0x78, 0x6F, 0xD7, 0xFD, 0xE4),
4293a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA0, 0x78, 0xCC, 0xEA, 0xC0, 0x50, 0x24, 0x44),
4294a8e1175bSopenharmony_ci};
4295a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_24_X[] = {
4296a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x37, 0x2B, 0x4F, 0x7F, 0x58, 0xE6, 0xC2, 0x70),
4297a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x37, 0x43, 0xD5, 0xA7, 0x35, 0x3C, 0x80, 0xB8),
4298a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1A, 0x6D, 0x4B, 0x12, 0x00, 0x7B, 0xE6, 0xA6),
4299a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x37, 0x15, 0xBD, 0xD0, 0x9B, 0xCA, 0xAA, 0x81),
4300a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xCF, 0xCE, 0x9C, 0xE3, 0x8B, 0x60, 0x7A, 0x53),
4301a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x0C, 0xDA, 0x4B, 0x03, 0xA7, 0x8D, 0x43, 0x22),
4302a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x57, 0xAF, 0x00, 0x2B, 0x32, 0xF0, 0x22, 0x68),
4303a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDC, 0xD9, 0x99, 0x99, 0xBE, 0x43, 0x99, 0x3E),
4304a8e1175bSopenharmony_ci};
4305a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_24_Y[] = {
4306a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1F, 0x71, 0x41, 0xF4, 0xB5, 0xFD, 0xDD, 0x36),
4307a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9D, 0xE2, 0x20, 0x4C, 0xD1, 0x2E, 0x1F, 0x06),
4308a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x96, 0x43, 0x48, 0x76, 0x8A, 0x49, 0xAC, 0x87),
4309a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x0C, 0x1A, 0x55, 0xA8, 0xA3, 0xD4, 0x57, 0x75),
4310a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x7C, 0xA6, 0x84, 0x39, 0xC9, 0x13, 0xBB, 0x60),
4311a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD9, 0xFA, 0xA9, 0x70, 0xDE, 0x83, 0xDD, 0xC9),
4312a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xEC, 0xC9, 0xD9, 0x3E, 0x44, 0x91, 0x68, 0x7B),
4313a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0x9F, 0x85, 0x6D, 0xF7, 0x54, 0x36, 0x82),
4314a8e1175bSopenharmony_ci};
4315a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_25_X[] = {
4316a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x68, 0x6B, 0xA6, 0xA3, 0xE5, 0xD4, 0x46, 0xDB),
4317a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x23, 0x3E, 0xDC, 0x84, 0x7C, 0x7B, 0x24, 0x34),
4318a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x14, 0xED, 0x7F, 0x86, 0x07, 0x6C, 0x57, 0xCA),
4319a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x95, 0x06, 0xFE, 0x52, 0x12, 0x79, 0x69, 0x56),
4320a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x84, 0xD1, 0x44, 0x5F, 0x21, 0x3A, 0xC3, 0x84),
4321a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5E, 0xD9, 0x4A, 0xC0, 0x75, 0xAB, 0x17, 0xAC),
4322a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0x81, 0x94, 0xB6, 0x80, 0x6B, 0x6F, 0xC3),
4323a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x07, 0xBE, 0x8E, 0xA5, 0xAA, 0xBC, 0x1E, 0x3E),
4324a8e1175bSopenharmony_ci};
4325a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_25_Y[] = {
4326a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x89, 0xC7, 0x85, 0xA6, 0x59, 0x9B, 0xB1, 0x52),
4327a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1C, 0xCE, 0x40, 0xD1, 0xFB, 0xDF, 0x94, 0xF7),
4328a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x18, 0xB8, 0x5E, 0xBF, 0x45, 0xA8, 0x2D, 0x2D),
4329a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x98, 0x9C, 0x06, 0x1B, 0xA9, 0x57, 0xB9, 0x79),
4330a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x53, 0xE9, 0xCE, 0xA2, 0xD3, 0x74, 0xA1, 0x3C),
4331a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAA, 0x5F, 0x34, 0x78, 0xDB, 0xAE, 0x3A, 0x14),
4332a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x7D, 0x32, 0x84, 0x3E, 0x68, 0x6A, 0x43, 0x0F),
4333a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x8C, 0xBC, 0x39, 0x36, 0xA4, 0xC5, 0xBB, 0x11),
4334a8e1175bSopenharmony_ci};
4335a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_26_X[] = {
4336a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x8C, 0x07, 0xA2, 0xB5, 0xC9, 0x0F, 0x4D, 0x0F),
4337a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE3, 0x1D, 0x67, 0xE6, 0xF1, 0x46, 0xEB, 0x71),
4338a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD7, 0x41, 0x23, 0x95, 0xE7, 0xE0, 0x10, 0xDD),
4339a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBE, 0x69, 0xFE, 0x68, 0x8C, 0xC6, 0x5F, 0xB6),
4340a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE3, 0xB9, 0x2B, 0x3D, 0xD2, 0x4F, 0xD8, 0x1A),
4341a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA3, 0x09, 0xF5, 0x5F, 0xCF, 0xF6, 0x91, 0x57),
4342a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x65, 0x15, 0x42, 0x6B, 0x6D, 0xB5, 0xF3, 0xB6),
4343a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBF, 0x56, 0x9D, 0xC5, 0xFF, 0xCA, 0x13, 0x9B),
4344a8e1175bSopenharmony_ci};
4345a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_26_Y[] = {
4346a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x4D, 0x38, 0xE6, 0x23, 0x63, 0x48, 0x3C, 0xCA),
4347a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD2, 0x68, 0x3C, 0xD1, 0x3B, 0xE9, 0x3B, 0x82),
4348a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB5, 0x08, 0x54, 0x49, 0xD1, 0x46, 0x45, 0x13),
4349a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x07, 0x70, 0x52, 0x6E, 0x79, 0xC4, 0x5E, 0x95),
4350a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x36, 0xDF, 0xE8, 0x5A, 0x32, 0x81, 0xDA, 0xD3),
4351a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3C, 0x2D, 0x94, 0x5B, 0xB5, 0x35, 0x9F, 0x0A),
4352a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x2A, 0x12, 0x8D, 0xC3, 0x36, 0x36, 0xB2, 0x2A),
4353a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x39, 0x2F, 0x22, 0x38, 0x5B, 0x18, 0x4C, 0x35),
4354a8e1175bSopenharmony_ci};
4355a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_27_X[] = {
4356a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x10, 0xC1, 0x22, 0x0E, 0xF0, 0x73, 0x11, 0x05),
4357a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB2, 0xAE, 0xA4, 0x56, 0x18, 0x61, 0x66, 0x12),
4358a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x79, 0xFB, 0x72, 0x08, 0x84, 0x38, 0x51, 0xB0),
4359a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDA, 0x86, 0xA8, 0xB9, 0x31, 0x99, 0x29, 0xC3),
4360a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x8A, 0xFB, 0xC3, 0x42, 0xB3, 0xC7, 0x6F, 0x3A),
4361a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD8, 0xF8, 0xE1, 0x09, 0xBE, 0x75, 0xB0, 0x22),
4362a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5A, 0x7D, 0xFF, 0xF4, 0x99, 0xFC, 0x13, 0xAB),
4363a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE6, 0x1B, 0x84, 0x81, 0x42, 0x22, 0xC6, 0x3D),
4364a8e1175bSopenharmony_ci};
4365a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_27_Y[] = {
4366a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0xE0, 0x37, 0xA4, 0xA0, 0x2F, 0x38, 0x7F),
4367a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD0, 0x3D, 0xB7, 0x40, 0x2F, 0x39, 0x3C, 0x7A),
4368a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x7A, 0x3B, 0x8A, 0x51, 0xAE, 0x40, 0x49, 0x7A),
4369a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x36, 0x20, 0x9F, 0xDD, 0xA9, 0xD0, 0x77, 0xC7),
4370a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x78, 0x1D, 0x64, 0xDA, 0xA0, 0x53, 0xC7, 0x7D),
4371a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x37, 0x7B, 0x66, 0x55, 0x94, 0xD1, 0x51, 0x44),
4372a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x0E, 0xA9, 0xB5, 0x5B, 0x38, 0x35, 0x40, 0xC0),
4373a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC8, 0xC9, 0x0F, 0xF0, 0x73, 0x79, 0x43, 0x61),
4374a8e1175bSopenharmony_ci};
4375a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_28_X[] = {
4376a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x10, 0x47, 0x45, 0x69, 0x80, 0x72, 0x72, 0x42),
4377a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x70, 0x11, 0x99, 0x59, 0xDB, 0x48, 0x80, 0x39),
4378a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x75, 0x6E, 0x3D, 0xFC, 0x37, 0x15, 0xF4, 0xBF),
4379a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x17, 0xBB, 0x5B, 0xA6, 0x35, 0x8D, 0x28, 0x20),
4380a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAB, 0x1A, 0x3B, 0x2C, 0x8F, 0xD3, 0xAA, 0x2D),
4381a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x55, 0x1C, 0x1A, 0xF8, 0x02, 0xD9, 0x7B, 0x41),
4382a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAF, 0x69, 0xAC, 0xF8, 0x54, 0x31, 0x14, 0xA1),
4383a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x41, 0x8A, 0xE6, 0xDE, 0x58, 0xB9, 0xC4, 0x7A),
4384a8e1175bSopenharmony_ci};
4385a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_28_Y[] = {
4386a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x57, 0x83, 0x52, 0xFE, 0xF9, 0x7B, 0xE9, 0x1F),
4387a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x07, 0xA2, 0x55, 0x46, 0x15, 0x49, 0xC1, 0x3A),
4388a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1D, 0xBC, 0x5C, 0x91, 0xBD, 0xB9, 0x9C, 0xF4),
4389a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBB, 0xFD, 0xB1, 0x4E, 0x5F, 0x74, 0xEE, 0x53),
4390a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xB1, 0x8B, 0xD8, 0x8B, 0x17, 0x73, 0x1B, 0x96),
4391a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x22, 0x92, 0xD7, 0x67, 0x06, 0xAD, 0x25, 0xCD),
4392a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x01, 0x0F, 0x80, 0x24, 0xE2, 0x27, 0x5F, 0x8B),
4393a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x61, 0x1C, 0xCE, 0xD0, 0x67, 0xCA, 0xD4, 0x0B),
4394a8e1175bSopenharmony_ci};
4395a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_29_X[] = {
4396a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x87, 0xF1, 0xDD, 0x33, 0x66, 0xF9, 0x05, 0xD6),
4397a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1D, 0xE5, 0x6B, 0x79, 0xBD, 0x48, 0x42, 0xAA),
4398a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD1, 0x14, 0x52, 0xE3, 0x53, 0xB4, 0x50, 0xD4),
4399a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x32, 0x84, 0x6C, 0xCF, 0xDA, 0xB2, 0x20, 0x0A),
4400a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x70, 0xD6, 0x1A, 0xE5, 0xE2, 0x29, 0x70, 0xCE),
4401a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD5, 0x61, 0xFE, 0xBB, 0x21, 0x82, 0xD1, 0xFE),
4402a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x2C, 0xF0, 0x9C, 0x8B, 0x1A, 0x42, 0x30, 0x06),
4403a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x43, 0xD6, 0x49, 0x81, 0x92, 0xF1, 0xD0, 0x90),
4404a8e1175bSopenharmony_ci};
4405a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_29_Y[] = {
4406a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0x91, 0x93, 0x6A, 0xA6, 0x22, 0xE9, 0xD6),
4407a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x09, 0xDC, 0xC3, 0x69, 0x11, 0x95, 0x7D, 0xEC),
4408a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x1C, 0xA3, 0x9D, 0x87, 0x5E, 0x64, 0x41, 0xA2),
4409a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xBE, 0x87, 0x5A, 0x15, 0xBD, 0x6E, 0x3C, 0x8D),
4410a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD0, 0x8D, 0x50, 0xCC, 0xCF, 0xB7, 0x8F, 0x0B),
4411a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x38, 0x65, 0xCD, 0x31, 0x30, 0xF1, 0x68, 0x13),
4412a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x10, 0x5C, 0x66, 0x67, 0x92, 0x30, 0x57, 0x95),
4413a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x23, 0x9B, 0x01, 0x3D, 0x20, 0x8B, 0xD1, 0x0D),
4414a8e1175bSopenharmony_ci};
4415a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_30_X[] = {
4416a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAB, 0xC0, 0xE6, 0x4F, 0xDE, 0x62, 0xAB, 0xB3),
4417a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA4, 0x48, 0xB3, 0x1C, 0x0F, 0x16, 0x93, 0x45),
4418a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x77, 0x63, 0xBD, 0x1F, 0x16, 0x50, 0x56, 0x98),
4419a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x5D, 0x06, 0xBC, 0xE9, 0x27, 0x1C, 0x9A, 0x7B),
4420a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF8, 0xFE, 0x21, 0xC5, 0x39, 0x55, 0xE1, 0xFD),
4421a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF6, 0xA8, 0xD0, 0x96, 0x0E, 0xB5, 0xB2, 0x84),
4422a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3D, 0xE7, 0x4B, 0xF3, 0x11, 0x0C, 0xC9, 0x5B),
4423a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x43, 0x3A, 0xC4, 0x87, 0x71, 0xEE, 0xFA, 0x18),
4424a8e1175bSopenharmony_ci};
4425a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_30_Y[] = {
4426a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA7, 0x77, 0xEE, 0x81, 0x5E, 0x96, 0xEA, 0x4B),
4427a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xEE, 0xDF, 0xA9, 0xF4, 0x4F, 0x7C, 0xB2, 0x43),
4428a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x9F, 0xD4, 0xDF, 0x35, 0x63, 0x47, 0x25, 0x8A),
4429a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xA5, 0x3D, 0xFF, 0xA4, 0x02, 0xC3, 0x95, 0x11),
4430a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xD5, 0x10, 0x78, 0xD1, 0x2B, 0xB7, 0xBE, 0x0E),
4431a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x0A, 0xE9, 0x57, 0xF9, 0xE0, 0xD8, 0xFC, 0xBC),
4432a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF3, 0xC4, 0x01, 0xD6, 0xB4, 0xE7, 0x78, 0xE2),
4433a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x02, 0x6C, 0xB9, 0x13, 0xA4, 0xE8, 0x6D, 0x6F),
4434a8e1175bSopenharmony_ci};
4435a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_31_X[] = {
4436a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE8, 0xB0, 0xC9, 0xCD, 0xBF, 0xA2, 0x1E, 0x63),
4437a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xDD, 0x4F, 0x86, 0x22, 0x9B, 0xEA, 0xE8, 0xBB),
4438a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x50, 0x46, 0xDF, 0x43, 0xB9, 0x82, 0x2D, 0x0A),
4439a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x07, 0x32, 0xF1, 0x4E, 0x95, 0x41, 0xAE, 0x8E),
4440a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x52, 0x93, 0x26, 0xFC, 0xD3, 0x90, 0xDC, 0xEB),
4441a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x04, 0x05, 0x45, 0xCA, 0xF9, 0x5A, 0x89, 0x93),
4442a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xC5, 0x82, 0x63, 0x4E, 0x55, 0x1D, 0x3A, 0x08),
4443a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x7C, 0x69, 0x52, 0x49, 0xE9, 0xED, 0x57, 0x34),
4444a8e1175bSopenharmony_ci};
4445a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint brainpoolP512r1_T_31_Y[] = {
4446a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x70, 0x64, 0xE9, 0xAC, 0x4C, 0x4A, 0xEA, 0x25),
4447a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xE9, 0xE9, 0x0B, 0x99, 0xE7, 0xF9, 0xA9, 0x2C),
4448a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x24, 0x0C, 0xC1, 0xF4, 0x8D, 0x07, 0xB6, 0xB1),
4449a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xAD, 0x68, 0xFA, 0x35, 0xE4, 0x9E, 0xAE, 0xD9),
4450a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xF0, 0x2D, 0x1A, 0x13, 0x8E, 0x02, 0xE2, 0x63),
4451a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x27, 0x38, 0x28, 0x86, 0x46, 0x7B, 0x3A, 0xE1),
4452a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x3F, 0x4C, 0x64, 0x59, 0x0A, 0xF9, 0x02, 0xC4),
4453a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x41, 0x4F, 0x23, 0xA2, 0xC3, 0xD5, 0xEF, 0x42),
4454a8e1175bSopenharmony_ci};
4455a8e1175bSopenharmony_cistatic const mbedtls_ecp_point brainpoolP512r1_T[32] = {
4456a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z1(brainpoolP512r1_T_0_X, brainpoolP512r1_T_0_Y),
4457a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_1_X, brainpoolP512r1_T_1_Y),
4458a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_2_X, brainpoolP512r1_T_2_Y),
4459a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_3_X, brainpoolP512r1_T_3_Y),
4460a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_4_X, brainpoolP512r1_T_4_Y),
4461a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_5_X, brainpoolP512r1_T_5_Y),
4462a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_6_X, brainpoolP512r1_T_6_Y),
4463a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_7_X, brainpoolP512r1_T_7_Y),
4464a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_8_X, brainpoolP512r1_T_8_Y),
4465a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_9_X, brainpoolP512r1_T_9_Y),
4466a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_10_X, brainpoolP512r1_T_10_Y),
4467a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_11_X, brainpoolP512r1_T_11_Y),
4468a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_12_X, brainpoolP512r1_T_12_Y),
4469a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_13_X, brainpoolP512r1_T_13_Y),
4470a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_14_X, brainpoolP512r1_T_14_Y),
4471a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_15_X, brainpoolP512r1_T_15_Y),
4472a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_16_X, brainpoolP512r1_T_16_Y),
4473a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_17_X, brainpoolP512r1_T_17_Y),
4474a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_18_X, brainpoolP512r1_T_18_Y),
4475a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_19_X, brainpoolP512r1_T_19_Y),
4476a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_20_X, brainpoolP512r1_T_20_Y),
4477a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_21_X, brainpoolP512r1_T_21_Y),
4478a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_22_X, brainpoolP512r1_T_22_Y),
4479a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_23_X, brainpoolP512r1_T_23_Y),
4480a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_24_X, brainpoolP512r1_T_24_Y),
4481a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_25_X, brainpoolP512r1_T_25_Y),
4482a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_26_X, brainpoolP512r1_T_26_Y),
4483a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_27_X, brainpoolP512r1_T_27_Y),
4484a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_28_X, brainpoolP512r1_T_28_Y),
4485a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_29_X, brainpoolP512r1_T_29_Y),
4486a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_30_X, brainpoolP512r1_T_30_Y),
4487a8e1175bSopenharmony_ci    ECP_POINT_INIT_XY_Z0(brainpoolP512r1_T_31_X, brainpoolP512r1_T_31_Y),
4488a8e1175bSopenharmony_ci};
4489a8e1175bSopenharmony_ci#else
4490a8e1175bSopenharmony_ci#define brainpoolP512r1_T NULL
4491a8e1175bSopenharmony_ci#endif
4492a8e1175bSopenharmony_ci#endif /* MBEDTLS_ECP_DP_BP512R1_ENABLED */
4493a8e1175bSopenharmony_ci
4494a8e1175bSopenharmony_ci
4495a8e1175bSopenharmony_ci#if defined(ECP_LOAD_GROUP) || defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED) || \
4496a8e1175bSopenharmony_ci    defined(MBEDTLS_ECP_DP_CURVE448_ENABLED)
4497a8e1175bSopenharmony_ci/*
4498a8e1175bSopenharmony_ci * Create an MPI from embedded constants
4499a8e1175bSopenharmony_ci * (assumes len is an exact multiple of sizeof(mbedtls_mpi_uint) and
4500a8e1175bSopenharmony_ci * len < 1048576)
4501a8e1175bSopenharmony_ci */
4502a8e1175bSopenharmony_cistatic inline void ecp_mpi_load(mbedtls_mpi *X, const mbedtls_mpi_uint *p, size_t len)
4503a8e1175bSopenharmony_ci{
4504a8e1175bSopenharmony_ci    X->s = 1;
4505a8e1175bSopenharmony_ci    X->n = (unsigned short) (len / sizeof(mbedtls_mpi_uint));
4506a8e1175bSopenharmony_ci    X->p = (mbedtls_mpi_uint *) p;
4507a8e1175bSopenharmony_ci}
4508a8e1175bSopenharmony_ci#endif
4509a8e1175bSopenharmony_ci
4510a8e1175bSopenharmony_ci#if defined(ECP_LOAD_GROUP)
4511a8e1175bSopenharmony_ci/*
4512a8e1175bSopenharmony_ci * Set an MPI to static value 1
4513a8e1175bSopenharmony_ci */
4514a8e1175bSopenharmony_cistatic inline void ecp_mpi_set1(mbedtls_mpi *X)
4515a8e1175bSopenharmony_ci{
4516a8e1175bSopenharmony_ci    X->s = 1;
4517a8e1175bSopenharmony_ci    X->n = 1;
4518a8e1175bSopenharmony_ci    X->p = mpi_one;
4519a8e1175bSopenharmony_ci}
4520a8e1175bSopenharmony_ci
4521a8e1175bSopenharmony_ci/*
4522a8e1175bSopenharmony_ci * Make group available from embedded constants
4523a8e1175bSopenharmony_ci */
4524a8e1175bSopenharmony_cistatic int ecp_group_load(mbedtls_ecp_group *grp,
4525a8e1175bSopenharmony_ci                          const mbedtls_mpi_uint *p,  size_t plen,
4526a8e1175bSopenharmony_ci                          const mbedtls_mpi_uint *a,  size_t alen,
4527a8e1175bSopenharmony_ci                          const mbedtls_mpi_uint *b,  size_t blen,
4528a8e1175bSopenharmony_ci                          const mbedtls_mpi_uint *gx, size_t gxlen,
4529a8e1175bSopenharmony_ci                          const mbedtls_mpi_uint *gy, size_t gylen,
4530a8e1175bSopenharmony_ci                          const mbedtls_mpi_uint *n,  size_t nlen,
4531a8e1175bSopenharmony_ci                          const mbedtls_ecp_point *T)
4532a8e1175bSopenharmony_ci{
4533a8e1175bSopenharmony_ci    ecp_mpi_load(&grp->P, p, plen);
4534a8e1175bSopenharmony_ci    if (a != NULL) {
4535a8e1175bSopenharmony_ci        ecp_mpi_load(&grp->A, a, alen);
4536a8e1175bSopenharmony_ci    }
4537a8e1175bSopenharmony_ci    ecp_mpi_load(&grp->B, b, blen);
4538a8e1175bSopenharmony_ci    ecp_mpi_load(&grp->N, n, nlen);
4539a8e1175bSopenharmony_ci
4540a8e1175bSopenharmony_ci    ecp_mpi_load(&grp->G.X, gx, gxlen);
4541a8e1175bSopenharmony_ci    ecp_mpi_load(&grp->G.Y, gy, gylen);
4542a8e1175bSopenharmony_ci    ecp_mpi_set1(&grp->G.Z);
4543a8e1175bSopenharmony_ci
4544a8e1175bSopenharmony_ci    grp->pbits = mbedtls_mpi_bitlen(&grp->P);
4545a8e1175bSopenharmony_ci    grp->nbits = mbedtls_mpi_bitlen(&grp->N);
4546a8e1175bSopenharmony_ci
4547a8e1175bSopenharmony_ci    grp->h = 1;
4548a8e1175bSopenharmony_ci
4549a8e1175bSopenharmony_ci    grp->T = (mbedtls_ecp_point *) T;
4550a8e1175bSopenharmony_ci    /*
4551a8e1175bSopenharmony_ci     * Set T_size to 0 to prevent T free by mbedtls_ecp_group_free.
4552a8e1175bSopenharmony_ci     */
4553a8e1175bSopenharmony_ci    grp->T_size = 0;
4554a8e1175bSopenharmony_ci
4555a8e1175bSopenharmony_ci    return 0;
4556a8e1175bSopenharmony_ci}
4557a8e1175bSopenharmony_ci#endif /* ECP_LOAD_GROUP */
4558a8e1175bSopenharmony_ci
4559a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_NIST_OPTIM)
4560a8e1175bSopenharmony_ci/* Forward declarations */
4561a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED)
4562a8e1175bSopenharmony_cistatic int ecp_mod_p192(mbedtls_mpi *);
4563a8e1175bSopenharmony_ciMBEDTLS_STATIC_TESTABLE
4564a8e1175bSopenharmony_ciint mbedtls_ecp_mod_p192_raw(mbedtls_mpi_uint *Np, size_t Nn);
4565a8e1175bSopenharmony_ci#endif
4566a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED)
4567a8e1175bSopenharmony_cistatic int ecp_mod_p224(mbedtls_mpi *);
4568a8e1175bSopenharmony_ciMBEDTLS_STATIC_TESTABLE
4569a8e1175bSopenharmony_ciint mbedtls_ecp_mod_p224_raw(mbedtls_mpi_uint *X, size_t X_limbs);
4570a8e1175bSopenharmony_ci#endif
4571a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED)
4572a8e1175bSopenharmony_cistatic int ecp_mod_p256(mbedtls_mpi *);
4573a8e1175bSopenharmony_ciMBEDTLS_STATIC_TESTABLE
4574a8e1175bSopenharmony_ciint mbedtls_ecp_mod_p256_raw(mbedtls_mpi_uint *X, size_t X_limbs);
4575a8e1175bSopenharmony_ci#endif
4576a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED)
4577a8e1175bSopenharmony_cistatic int ecp_mod_p384(mbedtls_mpi *);
4578a8e1175bSopenharmony_ciMBEDTLS_STATIC_TESTABLE
4579a8e1175bSopenharmony_ciint mbedtls_ecp_mod_p384_raw(mbedtls_mpi_uint *X, size_t X_limbs);
4580a8e1175bSopenharmony_ci#endif
4581a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED)
4582a8e1175bSopenharmony_cistatic int ecp_mod_p521(mbedtls_mpi *);
4583a8e1175bSopenharmony_ciMBEDTLS_STATIC_TESTABLE
4584a8e1175bSopenharmony_ciint mbedtls_ecp_mod_p521_raw(mbedtls_mpi_uint *N_p, size_t N_n);
4585a8e1175bSopenharmony_ci#endif
4586a8e1175bSopenharmony_ci
4587a8e1175bSopenharmony_ci#define NIST_MODP(P)      grp->modp = ecp_mod_ ## P;
4588a8e1175bSopenharmony_ci#else
4589a8e1175bSopenharmony_ci#define NIST_MODP(P)
4590a8e1175bSopenharmony_ci#endif /* MBEDTLS_ECP_NIST_OPTIM */
4591a8e1175bSopenharmony_ci
4592a8e1175bSopenharmony_ci/* Additional forward declarations */
4593a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED)
4594a8e1175bSopenharmony_cistatic int ecp_mod_p255(mbedtls_mpi *);
4595a8e1175bSopenharmony_ciMBEDTLS_STATIC_TESTABLE
4596a8e1175bSopenharmony_ciint mbedtls_ecp_mod_p255_raw(mbedtls_mpi_uint *X, size_t X_limbs);
4597a8e1175bSopenharmony_ci#endif
4598a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_CURVE448_ENABLED)
4599a8e1175bSopenharmony_cistatic int ecp_mod_p448(mbedtls_mpi *);
4600a8e1175bSopenharmony_ciMBEDTLS_STATIC_TESTABLE
4601a8e1175bSopenharmony_ciint mbedtls_ecp_mod_p448_raw(mbedtls_mpi_uint *, size_t);
4602a8e1175bSopenharmony_ci#endif
4603a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED)
4604a8e1175bSopenharmony_cistatic int ecp_mod_p192k1(mbedtls_mpi *);
4605a8e1175bSopenharmony_ciMBEDTLS_STATIC_TESTABLE
4606a8e1175bSopenharmony_ciint mbedtls_ecp_mod_p192k1_raw(mbedtls_mpi_uint *X, size_t X_limbs);
4607a8e1175bSopenharmony_ci#endif
4608a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED)
4609a8e1175bSopenharmony_cistatic int ecp_mod_p224k1(mbedtls_mpi *);
4610a8e1175bSopenharmony_ciMBEDTLS_STATIC_TESTABLE
4611a8e1175bSopenharmony_ciint mbedtls_ecp_mod_p224k1_raw(mbedtls_mpi_uint *X, size_t X_limbs);
4612a8e1175bSopenharmony_ci#endif
4613a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED)
4614a8e1175bSopenharmony_cistatic int ecp_mod_p256k1(mbedtls_mpi *);
4615a8e1175bSopenharmony_ciMBEDTLS_STATIC_TESTABLE
4616a8e1175bSopenharmony_ciint mbedtls_ecp_mod_p256k1_raw(mbedtls_mpi_uint *X, size_t X_limbs);
4617a8e1175bSopenharmony_ci#endif
4618a8e1175bSopenharmony_ci
4619a8e1175bSopenharmony_ci#if defined(ECP_LOAD_GROUP)
4620a8e1175bSopenharmony_ci#define LOAD_GROUP_A(G)   ecp_group_load(grp,            \
4621a8e1175bSopenharmony_ci                                         G ## _p,  sizeof(G ## _p),   \
4622a8e1175bSopenharmony_ci                                         G ## _a,  sizeof(G ## _a),   \
4623a8e1175bSopenharmony_ci                                         G ## _b,  sizeof(G ## _b),   \
4624a8e1175bSopenharmony_ci                                         G ## _gx, sizeof(G ## _gx),   \
4625a8e1175bSopenharmony_ci                                         G ## _gy, sizeof(G ## _gy),   \
4626a8e1175bSopenharmony_ci                                         G ## _n,  sizeof(G ## _n),   \
4627a8e1175bSopenharmony_ci                                         G ## _T                         \
4628a8e1175bSopenharmony_ci                                         )
4629a8e1175bSopenharmony_ci
4630a8e1175bSopenharmony_ci#define LOAD_GROUP(G)     ecp_group_load(grp,            \
4631a8e1175bSopenharmony_ci                                         G ## _p,  sizeof(G ## _p),   \
4632a8e1175bSopenharmony_ci                                         NULL,     0,                    \
4633a8e1175bSopenharmony_ci                                         G ## _b,  sizeof(G ## _b),   \
4634a8e1175bSopenharmony_ci                                         G ## _gx, sizeof(G ## _gx),   \
4635a8e1175bSopenharmony_ci                                         G ## _gy, sizeof(G ## _gy),   \
4636a8e1175bSopenharmony_ci                                         G ## _n,  sizeof(G ## _n),   \
4637a8e1175bSopenharmony_ci                                         G ## _T                         \
4638a8e1175bSopenharmony_ci                                         )
4639a8e1175bSopenharmony_ci#endif /* ECP_LOAD_GROUP */
4640a8e1175bSopenharmony_ci
4641a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED)
4642a8e1175bSopenharmony_ci/* Constants used by ecp_use_curve25519() */
4643a8e1175bSopenharmony_cistatic const mbedtls_mpi_sint curve25519_a24 = 0x01DB42;
4644a8e1175bSopenharmony_ci
4645a8e1175bSopenharmony_ci/* P = 2^255 - 19 */
4646a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint curve25519_p[] = {
4647a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0xED, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF),
4648a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF),
4649a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF),
4650a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0X7F)
4651a8e1175bSopenharmony_ci};
4652a8e1175bSopenharmony_ci
4653a8e1175bSopenharmony_ci/* N = 2^252 + 27742317777372353535851937790883648493 */
4654a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint curve25519_n[] = {
4655a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0XED, 0XD3, 0XF5, 0X5C, 0X1A, 0X63, 0X12, 0X58),
4656a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0XD6, 0X9C, 0XF7, 0XA2, 0XDE, 0XF9, 0XDE, 0X14),
4657a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0X00, 0X00, 0X00, 0X00, 0x00, 0x00, 0x00, 0x00),
4658a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10)
4659a8e1175bSopenharmony_ci};
4660a8e1175bSopenharmony_ci
4661a8e1175bSopenharmony_ci/*
4662a8e1175bSopenharmony_ci * Specialized function for creating the Curve25519 group
4663a8e1175bSopenharmony_ci */
4664a8e1175bSopenharmony_cistatic int ecp_use_curve25519(mbedtls_ecp_group *grp)
4665a8e1175bSopenharmony_ci{
4666a8e1175bSopenharmony_ci    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
4667a8e1175bSopenharmony_ci
4668a8e1175bSopenharmony_ci    /* Actually ( A + 2 ) / 4 */
4669a8e1175bSopenharmony_ci    MBEDTLS_MPI_CHK(mbedtls_mpi_lset(&grp->A, curve25519_a24));
4670a8e1175bSopenharmony_ci
4671a8e1175bSopenharmony_ci    ecp_mpi_load(&grp->P, curve25519_p, sizeof(curve25519_p));
4672a8e1175bSopenharmony_ci
4673a8e1175bSopenharmony_ci    grp->pbits = mbedtls_mpi_bitlen(&grp->P);
4674a8e1175bSopenharmony_ci
4675a8e1175bSopenharmony_ci    ecp_mpi_load(&grp->N, curve25519_n, sizeof(curve25519_n));
4676a8e1175bSopenharmony_ci
4677a8e1175bSopenharmony_ci    /* Y intentionally not set, since we use x/z coordinates.
4678a8e1175bSopenharmony_ci     * This is used as a marker to identify Montgomery curves! */
4679a8e1175bSopenharmony_ci    MBEDTLS_MPI_CHK(mbedtls_mpi_lset(&grp->G.X, 9));
4680a8e1175bSopenharmony_ci    MBEDTLS_MPI_CHK(mbedtls_mpi_lset(&grp->G.Z, 1));
4681a8e1175bSopenharmony_ci    mbedtls_mpi_free(&grp->G.Y);
4682a8e1175bSopenharmony_ci
4683a8e1175bSopenharmony_ci    /* Actually, the required msb for private keys */
4684a8e1175bSopenharmony_ci    grp->nbits = 254;
4685a8e1175bSopenharmony_ci
4686a8e1175bSopenharmony_cicleanup:
4687a8e1175bSopenharmony_ci    if (ret != 0) {
4688a8e1175bSopenharmony_ci        mbedtls_ecp_group_free(grp);
4689a8e1175bSopenharmony_ci    }
4690a8e1175bSopenharmony_ci
4691a8e1175bSopenharmony_ci    return ret;
4692a8e1175bSopenharmony_ci}
4693a8e1175bSopenharmony_ci#endif /* MBEDTLS_ECP_DP_CURVE25519_ENABLED */
4694a8e1175bSopenharmony_ci
4695a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_CURVE448_ENABLED)
4696a8e1175bSopenharmony_ci/* Constants used by ecp_use_curve448() */
4697a8e1175bSopenharmony_cistatic const mbedtls_mpi_sint curve448_a24 = 0x98AA;
4698a8e1175bSopenharmony_ci
4699a8e1175bSopenharmony_ci/* P = 2^448 - 2^224 - 1 */
4700a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint curve448_p[] = {
4701a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF),
4702a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF),
4703a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF),
4704a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0XFF, 0XFF, 0XFF, 0XFF, 0XFE, 0XFF, 0XFF, 0XFF),
4705a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF),
4706a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF),
4707a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF),
4708a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0X00, 0X00, 0X00, 0X00, 0X00, 0X00, 0X00, 0X00)
4709a8e1175bSopenharmony_ci};
4710a8e1175bSopenharmony_ci
4711a8e1175bSopenharmony_ci/* N = 2^446 - 13818066809895115352007386748515426880336692474882178609894547503885 */
4712a8e1175bSopenharmony_cistatic const mbedtls_mpi_uint curve448_n[] = {
4713a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0XF3, 0X44, 0X58, 0XAB, 0X92, 0XC2, 0X78, 0X23),
4714a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0X55, 0X8F, 0XC5, 0X8D, 0X72, 0XC2, 0X6C, 0X21),
4715a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0X90, 0X36, 0XD6, 0XAE, 0X49, 0XDB, 0X4E, 0XC4),
4716a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0XE9, 0X23, 0XCA, 0X7C, 0XFF, 0XFF, 0XFF, 0XFF),
4717a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF),
4718a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF),
4719a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0X3F),
4720a8e1175bSopenharmony_ci    MBEDTLS_BYTES_TO_T_UINT_8(0X00, 0X00, 0X00, 0X00, 0X00, 0X00, 0X00, 0X00)
4721a8e1175bSopenharmony_ci};
4722a8e1175bSopenharmony_ci
4723a8e1175bSopenharmony_ci/*
4724a8e1175bSopenharmony_ci * Specialized function for creating the Curve448 group
4725a8e1175bSopenharmony_ci */
4726a8e1175bSopenharmony_cistatic int ecp_use_curve448(mbedtls_ecp_group *grp)
4727a8e1175bSopenharmony_ci{
4728a8e1175bSopenharmony_ci    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
4729a8e1175bSopenharmony_ci
4730a8e1175bSopenharmony_ci    /* Actually ( A + 2 ) / 4 */
4731a8e1175bSopenharmony_ci    MBEDTLS_MPI_CHK(mbedtls_mpi_lset(&grp->A, curve448_a24));
4732a8e1175bSopenharmony_ci
4733a8e1175bSopenharmony_ci    ecp_mpi_load(&grp->P, curve448_p, sizeof(curve448_p));
4734a8e1175bSopenharmony_ci    grp->pbits = mbedtls_mpi_bitlen(&grp->P);
4735a8e1175bSopenharmony_ci
4736a8e1175bSopenharmony_ci    /* Y intentionally not set, since we use x/z coordinates.
4737a8e1175bSopenharmony_ci     * This is used as a marker to identify Montgomery curves! */
4738a8e1175bSopenharmony_ci    MBEDTLS_MPI_CHK(mbedtls_mpi_lset(&grp->G.X, 5));
4739a8e1175bSopenharmony_ci    MBEDTLS_MPI_CHK(mbedtls_mpi_lset(&grp->G.Z, 1));
4740a8e1175bSopenharmony_ci    mbedtls_mpi_free(&grp->G.Y);
4741a8e1175bSopenharmony_ci
4742a8e1175bSopenharmony_ci    ecp_mpi_load(&grp->N, curve448_n, sizeof(curve448_n));
4743a8e1175bSopenharmony_ci
4744a8e1175bSopenharmony_ci    /* Actually, the required msb for private keys */
4745a8e1175bSopenharmony_ci    grp->nbits = 447;
4746a8e1175bSopenharmony_ci
4747a8e1175bSopenharmony_cicleanup:
4748a8e1175bSopenharmony_ci    if (ret != 0) {
4749a8e1175bSopenharmony_ci        mbedtls_ecp_group_free(grp);
4750a8e1175bSopenharmony_ci    }
4751a8e1175bSopenharmony_ci
4752a8e1175bSopenharmony_ci    return ret;
4753a8e1175bSopenharmony_ci}
4754a8e1175bSopenharmony_ci#endif /* MBEDTLS_ECP_DP_CURVE448_ENABLED */
4755a8e1175bSopenharmony_ci
4756a8e1175bSopenharmony_ci/*
4757a8e1175bSopenharmony_ci * Set a group using well-known domain parameters
4758a8e1175bSopenharmony_ci */
4759a8e1175bSopenharmony_ciint mbedtls_ecp_group_load(mbedtls_ecp_group *grp, mbedtls_ecp_group_id id)
4760a8e1175bSopenharmony_ci{
4761a8e1175bSopenharmony_ci    mbedtls_ecp_group_free(grp);
4762a8e1175bSopenharmony_ci
4763a8e1175bSopenharmony_ci    mbedtls_ecp_group_init(grp);
4764a8e1175bSopenharmony_ci
4765a8e1175bSopenharmony_ci    grp->id = id;
4766a8e1175bSopenharmony_ci
4767a8e1175bSopenharmony_ci    switch (id) {
4768a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED)
4769a8e1175bSopenharmony_ci        case MBEDTLS_ECP_DP_SECP192R1:
4770a8e1175bSopenharmony_ci            NIST_MODP(p192);
4771a8e1175bSopenharmony_ci            return LOAD_GROUP(secp192r1);
4772a8e1175bSopenharmony_ci#endif /* MBEDTLS_ECP_DP_SECP192R1_ENABLED */
4773a8e1175bSopenharmony_ci
4774a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED)
4775a8e1175bSopenharmony_ci        case MBEDTLS_ECP_DP_SECP224R1:
4776a8e1175bSopenharmony_ci            NIST_MODP(p224);
4777a8e1175bSopenharmony_ci            return LOAD_GROUP(secp224r1);
4778a8e1175bSopenharmony_ci#endif /* MBEDTLS_ECP_DP_SECP224R1_ENABLED */
4779a8e1175bSopenharmony_ci
4780a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED)
4781a8e1175bSopenharmony_ci        case MBEDTLS_ECP_DP_SECP256R1:
4782a8e1175bSopenharmony_ci            NIST_MODP(p256);
4783a8e1175bSopenharmony_ci            return LOAD_GROUP(secp256r1);
4784a8e1175bSopenharmony_ci#endif /* MBEDTLS_ECP_DP_SECP256R1_ENABLED */
4785a8e1175bSopenharmony_ci
4786a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED)
4787a8e1175bSopenharmony_ci        case MBEDTLS_ECP_DP_SECP384R1:
4788a8e1175bSopenharmony_ci            NIST_MODP(p384);
4789a8e1175bSopenharmony_ci            return LOAD_GROUP(secp384r1);
4790a8e1175bSopenharmony_ci#endif /* MBEDTLS_ECP_DP_SECP384R1_ENABLED */
4791a8e1175bSopenharmony_ci
4792a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED)
4793a8e1175bSopenharmony_ci        case MBEDTLS_ECP_DP_SECP521R1:
4794a8e1175bSopenharmony_ci            NIST_MODP(p521);
4795a8e1175bSopenharmony_ci            return LOAD_GROUP(secp521r1);
4796a8e1175bSopenharmony_ci#endif /* MBEDTLS_ECP_DP_SECP521R1_ENABLED */
4797a8e1175bSopenharmony_ci
4798a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED)
4799a8e1175bSopenharmony_ci        case MBEDTLS_ECP_DP_SECP192K1:
4800a8e1175bSopenharmony_ci            grp->modp = ecp_mod_p192k1;
4801a8e1175bSopenharmony_ci            return LOAD_GROUP_A(secp192k1);
4802a8e1175bSopenharmony_ci#endif /* MBEDTLS_ECP_DP_SECP192K1_ENABLED */
4803a8e1175bSopenharmony_ci
4804a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED)
4805a8e1175bSopenharmony_ci        case MBEDTLS_ECP_DP_SECP224K1:
4806a8e1175bSopenharmony_ci            grp->modp = ecp_mod_p224k1;
4807a8e1175bSopenharmony_ci            return LOAD_GROUP_A(secp224k1);
4808a8e1175bSopenharmony_ci#endif /* MBEDTLS_ECP_DP_SECP224K1_ENABLED */
4809a8e1175bSopenharmony_ci
4810a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED)
4811a8e1175bSopenharmony_ci        case MBEDTLS_ECP_DP_SECP256K1:
4812a8e1175bSopenharmony_ci            grp->modp = ecp_mod_p256k1;
4813a8e1175bSopenharmony_ci            return LOAD_GROUP_A(secp256k1);
4814a8e1175bSopenharmony_ci#endif /* MBEDTLS_ECP_DP_SECP256K1_ENABLED */
4815a8e1175bSopenharmony_ci
4816a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_BP256R1_ENABLED)
4817a8e1175bSopenharmony_ci        case MBEDTLS_ECP_DP_BP256R1:
4818a8e1175bSopenharmony_ci            return LOAD_GROUP_A(brainpoolP256r1);
4819a8e1175bSopenharmony_ci#endif /* MBEDTLS_ECP_DP_BP256R1_ENABLED */
4820a8e1175bSopenharmony_ci
4821a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_BP384R1_ENABLED)
4822a8e1175bSopenharmony_ci        case MBEDTLS_ECP_DP_BP384R1:
4823a8e1175bSopenharmony_ci            return LOAD_GROUP_A(brainpoolP384r1);
4824a8e1175bSopenharmony_ci#endif /* MBEDTLS_ECP_DP_BP384R1_ENABLED */
4825a8e1175bSopenharmony_ci
4826a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_BP512R1_ENABLED)
4827a8e1175bSopenharmony_ci        case MBEDTLS_ECP_DP_BP512R1:
4828a8e1175bSopenharmony_ci            return LOAD_GROUP_A(brainpoolP512r1);
4829a8e1175bSopenharmony_ci#endif /* MBEDTLS_ECP_DP_BP512R1_ENABLED */
4830a8e1175bSopenharmony_ci
4831a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED)
4832a8e1175bSopenharmony_ci        case MBEDTLS_ECP_DP_CURVE25519:
4833a8e1175bSopenharmony_ci            grp->modp = ecp_mod_p255;
4834a8e1175bSopenharmony_ci            return ecp_use_curve25519(grp);
4835a8e1175bSopenharmony_ci#endif /* MBEDTLS_ECP_DP_CURVE25519_ENABLED */
4836a8e1175bSopenharmony_ci
4837a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_CURVE448_ENABLED)
4838a8e1175bSopenharmony_ci        case MBEDTLS_ECP_DP_CURVE448:
4839a8e1175bSopenharmony_ci            grp->modp = ecp_mod_p448;
4840a8e1175bSopenharmony_ci            return ecp_use_curve448(grp);
4841a8e1175bSopenharmony_ci#endif /* MBEDTLS_ECP_DP_CURVE448_ENABLED */
4842a8e1175bSopenharmony_ci
4843a8e1175bSopenharmony_ci        default:
4844a8e1175bSopenharmony_ci            grp->id = MBEDTLS_ECP_DP_NONE;
4845a8e1175bSopenharmony_ci            return MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE;
4846a8e1175bSopenharmony_ci    }
4847a8e1175bSopenharmony_ci}
4848a8e1175bSopenharmony_ci
4849a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_NIST_OPTIM)
4850a8e1175bSopenharmony_ci/*
4851a8e1175bSopenharmony_ci * Fast reduction modulo the primes used by the NIST curves.
4852a8e1175bSopenharmony_ci *
4853a8e1175bSopenharmony_ci * These functions are critical for speed, but not needed for correct
4854a8e1175bSopenharmony_ci * operations. So, we make the choice to heavily rely on the internals of our
4855a8e1175bSopenharmony_ci * bignum library, which creates a tight coupling between these functions and
4856a8e1175bSopenharmony_ci * our MPI implementation.  However, the coupling between the ECP module and
4857a8e1175bSopenharmony_ci * MPI remains loose, since these functions can be deactivated at will.
4858a8e1175bSopenharmony_ci */
4859a8e1175bSopenharmony_ci
4860a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED)
4861a8e1175bSopenharmony_ci/*
4862a8e1175bSopenharmony_ci * Compared to the way things are presented in FIPS 186-3 D.2,
4863a8e1175bSopenharmony_ci * we proceed in columns, from right (least significant chunk) to left,
4864a8e1175bSopenharmony_ci * adding chunks to N in place, and keeping a carry for the next chunk.
4865a8e1175bSopenharmony_ci * This avoids moving things around in memory, and uselessly adding zeros,
4866a8e1175bSopenharmony_ci * compared to the more straightforward, line-oriented approach.
4867a8e1175bSopenharmony_ci *
4868a8e1175bSopenharmony_ci * For this prime we need to handle data in chunks of 64 bits.
4869a8e1175bSopenharmony_ci * Since this is always a multiple of our basic mbedtls_mpi_uint, we can
4870a8e1175bSopenharmony_ci * use a mbedtls_mpi_uint * to designate such a chunk, and small loops to handle it.
4871a8e1175bSopenharmony_ci */
4872a8e1175bSopenharmony_ci
4873a8e1175bSopenharmony_ci/* Add 64-bit chunks (dst += src) and update carry */
4874a8e1175bSopenharmony_cistatic inline void add64(mbedtls_mpi_uint *dst, mbedtls_mpi_uint *src, mbedtls_mpi_uint *carry)
4875a8e1175bSopenharmony_ci{
4876a8e1175bSopenharmony_ci    unsigned char i;
4877a8e1175bSopenharmony_ci    mbedtls_mpi_uint c = 0;
4878a8e1175bSopenharmony_ci    for (i = 0; i < 8 / sizeof(mbedtls_mpi_uint); i++, dst++, src++) {
4879a8e1175bSopenharmony_ci        *dst += c;      c  = (*dst < c);
4880a8e1175bSopenharmony_ci        *dst += *src;   c += (*dst < *src);
4881a8e1175bSopenharmony_ci    }
4882a8e1175bSopenharmony_ci    *carry += c;
4883a8e1175bSopenharmony_ci}
4884a8e1175bSopenharmony_ci
4885a8e1175bSopenharmony_ci/* Add carry to a 64-bit chunk and update carry */
4886a8e1175bSopenharmony_cistatic inline void carry64(mbedtls_mpi_uint *dst, mbedtls_mpi_uint *carry)
4887a8e1175bSopenharmony_ci{
4888a8e1175bSopenharmony_ci    unsigned char i;
4889a8e1175bSopenharmony_ci    for (i = 0; i < 8 / sizeof(mbedtls_mpi_uint); i++, dst++) {
4890a8e1175bSopenharmony_ci        *dst += *carry;
4891a8e1175bSopenharmony_ci        *carry  = (*dst < *carry);
4892a8e1175bSopenharmony_ci    }
4893a8e1175bSopenharmony_ci}
4894a8e1175bSopenharmony_ci
4895a8e1175bSopenharmony_ci#define WIDTH       8 / sizeof(mbedtls_mpi_uint)
4896a8e1175bSopenharmony_ci#define A(i)        Np + (i) * WIDTH
4897a8e1175bSopenharmony_ci#define ADD(i)      add64(p, A(i), &c)
4898a8e1175bSopenharmony_ci#define NEXT        p += WIDTH; carry64(p, &c)
4899a8e1175bSopenharmony_ci#define LAST        p += WIDTH; do *p = 0; while (++p < end)
4900a8e1175bSopenharmony_ci#define RESET       last_carry[0] = c; c = 0; p = Np
4901a8e1175bSopenharmony_ci#define ADD_LAST    add64(p, last_carry, &c)
4902a8e1175bSopenharmony_ci
4903a8e1175bSopenharmony_ci/*
4904a8e1175bSopenharmony_ci * Fast quasi-reduction modulo p192 (FIPS 186-3 D.2.1)
4905a8e1175bSopenharmony_ci */
4906a8e1175bSopenharmony_cistatic int ecp_mod_p192(mbedtls_mpi *N)
4907a8e1175bSopenharmony_ci{
4908a8e1175bSopenharmony_ci    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
4909a8e1175bSopenharmony_ci    size_t expected_width = BITS_TO_LIMBS(192) * 2;
4910a8e1175bSopenharmony_ci    MBEDTLS_MPI_CHK(mbedtls_mpi_grow(N, expected_width));
4911a8e1175bSopenharmony_ci    ret = mbedtls_ecp_mod_p192_raw(N->p, expected_width);
4912a8e1175bSopenharmony_ci
4913a8e1175bSopenharmony_cicleanup:
4914a8e1175bSopenharmony_ci    return ret;
4915a8e1175bSopenharmony_ci}
4916a8e1175bSopenharmony_ci
4917a8e1175bSopenharmony_ciMBEDTLS_STATIC_TESTABLE
4918a8e1175bSopenharmony_ciint mbedtls_ecp_mod_p192_raw(mbedtls_mpi_uint *Np, size_t Nn)
4919a8e1175bSopenharmony_ci{
4920a8e1175bSopenharmony_ci    mbedtls_mpi_uint c = 0, last_carry[WIDTH] = { 0 };
4921a8e1175bSopenharmony_ci    mbedtls_mpi_uint *p, *end;
4922a8e1175bSopenharmony_ci
4923a8e1175bSopenharmony_ci    if (Nn != BITS_TO_LIMBS(192) * 2) {
4924a8e1175bSopenharmony_ci        return MBEDTLS_ERR_ECP_BAD_INPUT_DATA;
4925a8e1175bSopenharmony_ci    }
4926a8e1175bSopenharmony_ci
4927a8e1175bSopenharmony_ci    p = Np;
4928a8e1175bSopenharmony_ci    end = p + Nn;
4929a8e1175bSopenharmony_ci
4930a8e1175bSopenharmony_ci    ADD(3); ADD(5);         NEXT;   // A0 += A3 + A5
4931a8e1175bSopenharmony_ci    ADD(3); ADD(4); ADD(5); NEXT;   // A1 += A3 + A4 + A5
4932a8e1175bSopenharmony_ci    ADD(4); ADD(5);                 // A2 += A4 + A5
4933a8e1175bSopenharmony_ci
4934a8e1175bSopenharmony_ci    RESET;
4935a8e1175bSopenharmony_ci
4936a8e1175bSopenharmony_ci    /* Use the reduction for the carry as well:
4937a8e1175bSopenharmony_ci     * 2^192 * last_carry = 2^64 * last_carry + last_carry mod P192
4938a8e1175bSopenharmony_ci     * It can generate a carry. */
4939a8e1175bSopenharmony_ci    ADD_LAST; NEXT;                 // A0 += last_carry
4940a8e1175bSopenharmony_ci    ADD_LAST; NEXT;                 // A1 += last_carry
4941a8e1175bSopenharmony_ci                                    // A2 += carry
4942a8e1175bSopenharmony_ci
4943a8e1175bSopenharmony_ci    RESET;
4944a8e1175bSopenharmony_ci
4945a8e1175bSopenharmony_ci    /* Use the reduction for the carry as well:
4946a8e1175bSopenharmony_ci     * 2^192 * last_carry = 2^64 * last_carry + last_carry mod P192
4947a8e1175bSopenharmony_ci     */
4948a8e1175bSopenharmony_ci    ADD_LAST; NEXT;                 // A0 += last_carry
4949a8e1175bSopenharmony_ci    ADD_LAST; NEXT;                 // A1 += last_carry
4950a8e1175bSopenharmony_ci                                    // A2 += carry
4951a8e1175bSopenharmony_ci
4952a8e1175bSopenharmony_ci    LAST;
4953a8e1175bSopenharmony_ci
4954a8e1175bSopenharmony_ci    return 0;
4955a8e1175bSopenharmony_ci}
4956a8e1175bSopenharmony_ci
4957a8e1175bSopenharmony_ci#undef WIDTH
4958a8e1175bSopenharmony_ci#undef A
4959a8e1175bSopenharmony_ci#undef ADD
4960a8e1175bSopenharmony_ci#undef NEXT
4961a8e1175bSopenharmony_ci#undef LAST
4962a8e1175bSopenharmony_ci#undef RESET
4963a8e1175bSopenharmony_ci#undef ADD_LAST
4964a8e1175bSopenharmony_ci#endif /* MBEDTLS_ECP_DP_SECP192R1_ENABLED */
4965a8e1175bSopenharmony_ci
4966a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED) ||   \
4967a8e1175bSopenharmony_ci    defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) ||   \
4968a8e1175bSopenharmony_ci    defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED)
4969a8e1175bSopenharmony_ci
4970a8e1175bSopenharmony_ci/*
4971a8e1175bSopenharmony_ci * The reader is advised to first understand ecp_mod_p192() since the same
4972a8e1175bSopenharmony_ci * general structure is used here, but with additional complications:
4973a8e1175bSopenharmony_ci * (1) chunks of 32 bits, and (2) subtractions.
4974a8e1175bSopenharmony_ci */
4975a8e1175bSopenharmony_ci
4976a8e1175bSopenharmony_ci/*
4977a8e1175bSopenharmony_ci * For these primes, we need to handle data in chunks of 32 bits.
4978a8e1175bSopenharmony_ci * This makes it more complicated if we use 64 bits limbs in MPI,
4979a8e1175bSopenharmony_ci * which prevents us from using a uniform access method as for p192.
4980a8e1175bSopenharmony_ci *
4981a8e1175bSopenharmony_ci * So, we define a mini abstraction layer to access 32 bit chunks,
4982a8e1175bSopenharmony_ci * load them in 'cur' for work, and store them back from 'cur' when done.
4983a8e1175bSopenharmony_ci *
4984a8e1175bSopenharmony_ci * While at it, also define the size of N in terms of 32-bit chunks.
4985a8e1175bSopenharmony_ci */
4986a8e1175bSopenharmony_ci#define LOAD32      cur = A(i);
4987a8e1175bSopenharmony_ci
4988a8e1175bSopenharmony_ci#if defined(MBEDTLS_HAVE_INT32)  /* 32 bit */
4989a8e1175bSopenharmony_ci
4990a8e1175bSopenharmony_ci#define MAX32       X_limbs
4991a8e1175bSopenharmony_ci#define A(j)        X[j]
4992a8e1175bSopenharmony_ci#define STORE32     X[i] = (mbedtls_mpi_uint) cur;
4993a8e1175bSopenharmony_ci#define STORE0      X[i] = 0;
4994a8e1175bSopenharmony_ci
4995a8e1175bSopenharmony_ci#else /* 64 bit */
4996a8e1175bSopenharmony_ci
4997a8e1175bSopenharmony_ci#define MAX32   X_limbs * 2
4998a8e1175bSopenharmony_ci#define A(j)                                                \
4999a8e1175bSopenharmony_ci    (j) % 2 ?                                               \
5000a8e1175bSopenharmony_ci    (uint32_t) (X[(j) / 2] >> 32) :                         \
5001a8e1175bSopenharmony_ci    (uint32_t) (X[(j) / 2])
5002a8e1175bSopenharmony_ci#define STORE32                                             \
5003a8e1175bSopenharmony_ci    if (i % 2) {                                            \
5004a8e1175bSopenharmony_ci        X[i/2] &= 0x00000000FFFFFFFF;                       \
5005a8e1175bSopenharmony_ci        X[i/2] |= (uint64_t) (cur) << 32;                   \
5006a8e1175bSopenharmony_ci    } else {                                                \
5007a8e1175bSopenharmony_ci        X[i/2] &= 0xFFFFFFFF00000000;                       \
5008a8e1175bSopenharmony_ci        X[i/2] |= (uint32_t) cur;                           \
5009a8e1175bSopenharmony_ci    }
5010a8e1175bSopenharmony_ci
5011a8e1175bSopenharmony_ci#define STORE0                                              \
5012a8e1175bSopenharmony_ci    if (i % 2) {                                            \
5013a8e1175bSopenharmony_ci        X[i/2] &= 0x00000000FFFFFFFF;                       \
5014a8e1175bSopenharmony_ci    } else {                                                \
5015a8e1175bSopenharmony_ci        X[i/2] &= 0xFFFFFFFF00000000;                       \
5016a8e1175bSopenharmony_ci    }
5017a8e1175bSopenharmony_ci
5018a8e1175bSopenharmony_ci#endif
5019a8e1175bSopenharmony_ci
5020a8e1175bSopenharmony_cistatic inline int8_t extract_carry(int64_t cur)
5021a8e1175bSopenharmony_ci{
5022a8e1175bSopenharmony_ci    return (int8_t) (cur >> 32);
5023a8e1175bSopenharmony_ci}
5024a8e1175bSopenharmony_ci
5025a8e1175bSopenharmony_ci#define ADD(j)    cur += A(j)
5026a8e1175bSopenharmony_ci#define SUB(j)    cur -= A(j)
5027a8e1175bSopenharmony_ci
5028a8e1175bSopenharmony_ci#define ADD_CARRY(cc) cur += (cc)
5029a8e1175bSopenharmony_ci#define SUB_CARRY(cc) cur -= (cc)
5030a8e1175bSopenharmony_ci
5031a8e1175bSopenharmony_ci#define ADD_LAST ADD_CARRY(last_c)
5032a8e1175bSopenharmony_ci#define SUB_LAST SUB_CARRY(last_c)
5033a8e1175bSopenharmony_ci
5034a8e1175bSopenharmony_ci/*
5035a8e1175bSopenharmony_ci * Helpers for the main 'loop'
5036a8e1175bSopenharmony_ci */
5037a8e1175bSopenharmony_ci#define INIT(b)                                         \
5038a8e1175bSopenharmony_ci    int8_t c = 0, last_c;                               \
5039a8e1175bSopenharmony_ci    int64_t cur;                                        \
5040a8e1175bSopenharmony_ci    size_t i = 0;                                       \
5041a8e1175bSopenharmony_ci    LOAD32;
5042a8e1175bSopenharmony_ci
5043a8e1175bSopenharmony_ci#define NEXT                                            \
5044a8e1175bSopenharmony_ci    c = extract_carry(cur);                             \
5045a8e1175bSopenharmony_ci    STORE32; i++; LOAD32;                               \
5046a8e1175bSopenharmony_ci    ADD_CARRY(c);
5047a8e1175bSopenharmony_ci
5048a8e1175bSopenharmony_ci#define RESET                                           \
5049a8e1175bSopenharmony_ci    c = extract_carry(cur);                             \
5050a8e1175bSopenharmony_ci    last_c = c;                                         \
5051a8e1175bSopenharmony_ci    STORE32; i = 0; LOAD32;                             \
5052a8e1175bSopenharmony_ci    c = 0;                                              \
5053a8e1175bSopenharmony_ci
5054a8e1175bSopenharmony_ci#define LAST                                            \
5055a8e1175bSopenharmony_ci    c = extract_carry(cur);                             \
5056a8e1175bSopenharmony_ci    STORE32; i++;                                       \
5057a8e1175bSopenharmony_ci    if (c != 0)                                         \
5058a8e1175bSopenharmony_ci    return MBEDTLS_ERR_ECP_BAD_INPUT_DATA;              \
5059a8e1175bSopenharmony_ci    while (i < MAX32) { STORE0; i++; }
5060a8e1175bSopenharmony_ci
5061a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED)
5062a8e1175bSopenharmony_ci
5063a8e1175bSopenharmony_ci/*
5064a8e1175bSopenharmony_ci * Fast quasi-reduction modulo p224 (FIPS 186-3 D.2.2)
5065a8e1175bSopenharmony_ci */
5066a8e1175bSopenharmony_cistatic int ecp_mod_p224(mbedtls_mpi *N)
5067a8e1175bSopenharmony_ci{
5068a8e1175bSopenharmony_ci    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
5069a8e1175bSopenharmony_ci    size_t expected_width = BITS_TO_LIMBS(224) * 2;
5070a8e1175bSopenharmony_ci    MBEDTLS_MPI_CHK(mbedtls_mpi_grow(N, expected_width));
5071a8e1175bSopenharmony_ci    ret = mbedtls_ecp_mod_p224_raw(N->p, expected_width);
5072a8e1175bSopenharmony_cicleanup:
5073a8e1175bSopenharmony_ci    return ret;
5074a8e1175bSopenharmony_ci}
5075a8e1175bSopenharmony_ci
5076a8e1175bSopenharmony_ciMBEDTLS_STATIC_TESTABLE
5077a8e1175bSopenharmony_ciint mbedtls_ecp_mod_p224_raw(mbedtls_mpi_uint *X, size_t X_limbs)
5078a8e1175bSopenharmony_ci{
5079a8e1175bSopenharmony_ci    if (X_limbs != BITS_TO_LIMBS(224) * 2) {
5080a8e1175bSopenharmony_ci        return MBEDTLS_ERR_ECP_BAD_INPUT_DATA;
5081a8e1175bSopenharmony_ci    }
5082a8e1175bSopenharmony_ci
5083a8e1175bSopenharmony_ci    INIT(224);
5084a8e1175bSopenharmony_ci
5085a8e1175bSopenharmony_ci    SUB(7);  SUB(11);           NEXT;   // A0 += -A7  - A11
5086a8e1175bSopenharmony_ci    SUB(8);  SUB(12);           NEXT;   // A1 += -A8  - A12
5087a8e1175bSopenharmony_ci    SUB(9);  SUB(13);           NEXT;   // A2 += -A9  - A13
5088a8e1175bSopenharmony_ci    SUB(10); ADD(7);  ADD(11);  NEXT;   // A3 += -A10 + A7 + A11
5089a8e1175bSopenharmony_ci    SUB(11); ADD(8);  ADD(12);  NEXT;   // A4 += -A11 + A8 + A12
5090a8e1175bSopenharmony_ci    SUB(12); ADD(9);  ADD(13);  NEXT;   // A5 += -A12 + A9 + A13
5091a8e1175bSopenharmony_ci    SUB(13); ADD(10);                   // A6 += -A13 + A10
5092a8e1175bSopenharmony_ci
5093a8e1175bSopenharmony_ci    RESET;
5094a8e1175bSopenharmony_ci
5095a8e1175bSopenharmony_ci    /* Use 2^224 = P + 2^96 - 1 to modulo reduce the final carry */
5096a8e1175bSopenharmony_ci    SUB_LAST; NEXT;                     // A0 -= last_c
5097a8e1175bSopenharmony_ci    ;         NEXT;                     // A1
5098a8e1175bSopenharmony_ci    ;         NEXT;                     // A2
5099a8e1175bSopenharmony_ci    ADD_LAST; NEXT;                     // A3 += last_c
5100a8e1175bSopenharmony_ci    ;         NEXT;                     // A4
5101a8e1175bSopenharmony_ci    ;         NEXT;                     // A5
5102a8e1175bSopenharmony_ci                                        // A6
5103a8e1175bSopenharmony_ci
5104a8e1175bSopenharmony_ci    /* The carry reduction cannot generate a carry
5105a8e1175bSopenharmony_ci     * (see commit 73e8553 for details)*/
5106a8e1175bSopenharmony_ci
5107a8e1175bSopenharmony_ci    LAST;
5108a8e1175bSopenharmony_ci
5109a8e1175bSopenharmony_ci    return 0;
5110a8e1175bSopenharmony_ci}
5111a8e1175bSopenharmony_ci
5112a8e1175bSopenharmony_ci#endif /* MBEDTLS_ECP_DP_SECP224R1_ENABLED */
5113a8e1175bSopenharmony_ci
5114a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED)
5115a8e1175bSopenharmony_ci
5116a8e1175bSopenharmony_ci/*
5117a8e1175bSopenharmony_ci * Fast quasi-reduction modulo p256 (FIPS 186-3 D.2.3)
5118a8e1175bSopenharmony_ci */
5119a8e1175bSopenharmony_cistatic int ecp_mod_p256(mbedtls_mpi *N)
5120a8e1175bSopenharmony_ci{
5121a8e1175bSopenharmony_ci    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
5122a8e1175bSopenharmony_ci    size_t expected_width = BITS_TO_LIMBS(256) * 2;
5123a8e1175bSopenharmony_ci    MBEDTLS_MPI_CHK(mbedtls_mpi_grow(N, expected_width));
5124a8e1175bSopenharmony_ci    ret = mbedtls_ecp_mod_p256_raw(N->p, expected_width);
5125a8e1175bSopenharmony_cicleanup:
5126a8e1175bSopenharmony_ci    return ret;
5127a8e1175bSopenharmony_ci}
5128a8e1175bSopenharmony_ci
5129a8e1175bSopenharmony_ciMBEDTLS_STATIC_TESTABLE
5130a8e1175bSopenharmony_ciint mbedtls_ecp_mod_p256_raw(mbedtls_mpi_uint *X, size_t X_limbs)
5131a8e1175bSopenharmony_ci{
5132a8e1175bSopenharmony_ci    if (X_limbs != BITS_TO_LIMBS(256) * 2) {
5133a8e1175bSopenharmony_ci        return MBEDTLS_ERR_ECP_BAD_INPUT_DATA;
5134a8e1175bSopenharmony_ci    }
5135a8e1175bSopenharmony_ci
5136a8e1175bSopenharmony_ci    INIT(256);
5137a8e1175bSopenharmony_ci
5138a8e1175bSopenharmony_ci    ADD(8);  ADD(9);
5139a8e1175bSopenharmony_ci    SUB(11); SUB(12); SUB(13); SUB(14);                   NEXT; // A0
5140a8e1175bSopenharmony_ci
5141a8e1175bSopenharmony_ci    ADD(9);  ADD(10);
5142a8e1175bSopenharmony_ci    SUB(12); SUB(13); SUB(14); SUB(15);                   NEXT; // A1
5143a8e1175bSopenharmony_ci
5144a8e1175bSopenharmony_ci    ADD(10); ADD(11);
5145a8e1175bSopenharmony_ci    SUB(13); SUB(14); SUB(15);                            NEXT; // A2
5146a8e1175bSopenharmony_ci
5147a8e1175bSopenharmony_ci    ADD(11); ADD(11); ADD(12); ADD(12); ADD(13);
5148a8e1175bSopenharmony_ci    SUB(15); SUB(8);  SUB(9);                             NEXT; // A3
5149a8e1175bSopenharmony_ci
5150a8e1175bSopenharmony_ci    ADD(12); ADD(12); ADD(13); ADD(13); ADD(14);
5151a8e1175bSopenharmony_ci    SUB(9);  SUB(10);                                     NEXT; // A4
5152a8e1175bSopenharmony_ci
5153a8e1175bSopenharmony_ci    ADD(13); ADD(13); ADD(14); ADD(14); ADD(15);
5154a8e1175bSopenharmony_ci    SUB(10); SUB(11);                                     NEXT; // A5
5155a8e1175bSopenharmony_ci
5156a8e1175bSopenharmony_ci    ADD(14); ADD(14); ADD(15); ADD(15); ADD(14); ADD(13);
5157a8e1175bSopenharmony_ci    SUB(8);  SUB(9);                                      NEXT; // A6
5158a8e1175bSopenharmony_ci
5159a8e1175bSopenharmony_ci    ADD(15); ADD(15); ADD(15); ADD(8);
5160a8e1175bSopenharmony_ci    SUB(10); SUB(11); SUB(12); SUB(13);                         // A7
5161a8e1175bSopenharmony_ci
5162a8e1175bSopenharmony_ci    RESET;
5163a8e1175bSopenharmony_ci
5164a8e1175bSopenharmony_ci    /* Use 2^224 * (2^32 - 1) + 2^192 + 2^96 - 1
5165a8e1175bSopenharmony_ci     * to modulo reduce the final carry. */
5166a8e1175bSopenharmony_ci    ADD_LAST; NEXT;                                             // A0
5167a8e1175bSopenharmony_ci    ;         NEXT;                                             // A1
5168a8e1175bSopenharmony_ci    ;         NEXT;                                             // A2
5169a8e1175bSopenharmony_ci    SUB_LAST; NEXT;                                             // A3
5170a8e1175bSopenharmony_ci    ;         NEXT;                                             // A4
5171a8e1175bSopenharmony_ci    ;         NEXT;                                             // A5
5172a8e1175bSopenharmony_ci    SUB_LAST; NEXT;                                             // A6
5173a8e1175bSopenharmony_ci    ADD_LAST;                                                   // A7
5174a8e1175bSopenharmony_ci
5175a8e1175bSopenharmony_ci    RESET;
5176a8e1175bSopenharmony_ci
5177a8e1175bSopenharmony_ci    /* Use 2^224 * (2^32 - 1) + 2^192 + 2^96 - 1
5178a8e1175bSopenharmony_ci     * to modulo reduce the carry generated by the previous reduction. */
5179a8e1175bSopenharmony_ci    ADD_LAST; NEXT;                                             // A0
5180a8e1175bSopenharmony_ci    ;         NEXT;                                             // A1
5181a8e1175bSopenharmony_ci    ;         NEXT;                                             // A2
5182a8e1175bSopenharmony_ci    SUB_LAST; NEXT;                                             // A3
5183a8e1175bSopenharmony_ci    ;         NEXT;                                             // A4
5184a8e1175bSopenharmony_ci    ;         NEXT;                                             // A5
5185a8e1175bSopenharmony_ci    SUB_LAST; NEXT;                                             // A6
5186a8e1175bSopenharmony_ci    ADD_LAST;                                                   // A7
5187a8e1175bSopenharmony_ci
5188a8e1175bSopenharmony_ci    LAST;
5189a8e1175bSopenharmony_ci
5190a8e1175bSopenharmony_ci    return 0;
5191a8e1175bSopenharmony_ci}
5192a8e1175bSopenharmony_ci
5193a8e1175bSopenharmony_ci#endif /* MBEDTLS_ECP_DP_SECP256R1_ENABLED */
5194a8e1175bSopenharmony_ci
5195a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED)
5196a8e1175bSopenharmony_ci/*
5197a8e1175bSopenharmony_ci * Fast quasi-reduction modulo p384 (FIPS 186-3 D.2.4)
5198a8e1175bSopenharmony_ci */
5199a8e1175bSopenharmony_cistatic int ecp_mod_p384(mbedtls_mpi *N)
5200a8e1175bSopenharmony_ci{
5201a8e1175bSopenharmony_ci    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
5202a8e1175bSopenharmony_ci    size_t expected_width = BITS_TO_LIMBS(384) * 2;
5203a8e1175bSopenharmony_ci    MBEDTLS_MPI_CHK(mbedtls_mpi_grow(N, expected_width));
5204a8e1175bSopenharmony_ci    ret = mbedtls_ecp_mod_p384_raw(N->p, expected_width);
5205a8e1175bSopenharmony_cicleanup:
5206a8e1175bSopenharmony_ci    return ret;
5207a8e1175bSopenharmony_ci}
5208a8e1175bSopenharmony_ci
5209a8e1175bSopenharmony_ciMBEDTLS_STATIC_TESTABLE
5210a8e1175bSopenharmony_ciint mbedtls_ecp_mod_p384_raw(mbedtls_mpi_uint *X, size_t X_limbs)
5211a8e1175bSopenharmony_ci{
5212a8e1175bSopenharmony_ci    if (X_limbs != BITS_TO_LIMBS(384) * 2) {
5213a8e1175bSopenharmony_ci        return MBEDTLS_ERR_ECP_BAD_INPUT_DATA;
5214a8e1175bSopenharmony_ci    }
5215a8e1175bSopenharmony_ci
5216a8e1175bSopenharmony_ci    INIT(384);
5217a8e1175bSopenharmony_ci
5218a8e1175bSopenharmony_ci    ADD(12); ADD(21); ADD(20);
5219a8e1175bSopenharmony_ci    SUB(23);                                                NEXT; // A0
5220a8e1175bSopenharmony_ci
5221a8e1175bSopenharmony_ci    ADD(13); ADD(22); ADD(23);
5222a8e1175bSopenharmony_ci    SUB(12); SUB(20);                                       NEXT; // A1
5223a8e1175bSopenharmony_ci
5224a8e1175bSopenharmony_ci    ADD(14); ADD(23);
5225a8e1175bSopenharmony_ci    SUB(13); SUB(21);                                       NEXT; // A2
5226a8e1175bSopenharmony_ci
5227a8e1175bSopenharmony_ci    ADD(15); ADD(12); ADD(20); ADD(21);
5228a8e1175bSopenharmony_ci    SUB(14); SUB(22); SUB(23);                              NEXT; // A3
5229a8e1175bSopenharmony_ci
5230a8e1175bSopenharmony_ci    ADD(21); ADD(21); ADD(16); ADD(13); ADD(12); ADD(20); ADD(22);
5231a8e1175bSopenharmony_ci    SUB(15); SUB(23); SUB(23);                              NEXT; // A4
5232a8e1175bSopenharmony_ci
5233a8e1175bSopenharmony_ci    ADD(22); ADD(22); ADD(17); ADD(14); ADD(13); ADD(21); ADD(23);
5234a8e1175bSopenharmony_ci    SUB(16);                                                NEXT; // A5
5235a8e1175bSopenharmony_ci
5236a8e1175bSopenharmony_ci    ADD(23); ADD(23); ADD(18); ADD(15); ADD(14); ADD(22);
5237a8e1175bSopenharmony_ci    SUB(17);                                                NEXT; // A6
5238a8e1175bSopenharmony_ci
5239a8e1175bSopenharmony_ci    ADD(19); ADD(16); ADD(15); ADD(23);
5240a8e1175bSopenharmony_ci    SUB(18);                                                NEXT; // A7
5241a8e1175bSopenharmony_ci
5242a8e1175bSopenharmony_ci    ADD(20); ADD(17); ADD(16);
5243a8e1175bSopenharmony_ci    SUB(19);                                                NEXT; // A8
5244a8e1175bSopenharmony_ci
5245a8e1175bSopenharmony_ci    ADD(21); ADD(18); ADD(17);
5246a8e1175bSopenharmony_ci    SUB(20);                                                NEXT; // A9
5247a8e1175bSopenharmony_ci
5248a8e1175bSopenharmony_ci    ADD(22); ADD(19); ADD(18);
5249a8e1175bSopenharmony_ci    SUB(21);                                                NEXT; // A10
5250a8e1175bSopenharmony_ci
5251a8e1175bSopenharmony_ci    ADD(23); ADD(20); ADD(19);
5252a8e1175bSopenharmony_ci    SUB(22);                                                      // A11
5253a8e1175bSopenharmony_ci
5254a8e1175bSopenharmony_ci    RESET;
5255a8e1175bSopenharmony_ci
5256a8e1175bSopenharmony_ci    /* Use 2^384 = P + 2^128 + 2^96 - 2^32 + 1 to modulo reduce the final carry */
5257a8e1175bSopenharmony_ci    ADD_LAST; NEXT;                                               // A0
5258a8e1175bSopenharmony_ci    SUB_LAST; NEXT;                                               // A1
5259a8e1175bSopenharmony_ci    ;         NEXT;                                               // A2
5260a8e1175bSopenharmony_ci    ADD_LAST; NEXT;                                               // A3
5261a8e1175bSopenharmony_ci    ADD_LAST; NEXT;                                               // A4
5262a8e1175bSopenharmony_ci    ;         NEXT;                                               // A5
5263a8e1175bSopenharmony_ci    ;         NEXT;                                               // A6
5264a8e1175bSopenharmony_ci    ;         NEXT;                                               // A7
5265a8e1175bSopenharmony_ci    ;         NEXT;                                               // A8
5266a8e1175bSopenharmony_ci    ;         NEXT;                                               // A9
5267a8e1175bSopenharmony_ci    ;         NEXT;                                               // A10
5268a8e1175bSopenharmony_ci                                                                  // A11
5269a8e1175bSopenharmony_ci
5270a8e1175bSopenharmony_ci    RESET;
5271a8e1175bSopenharmony_ci
5272a8e1175bSopenharmony_ci    ADD_LAST; NEXT;                                               // A0
5273a8e1175bSopenharmony_ci    SUB_LAST; NEXT;                                               // A1
5274a8e1175bSopenharmony_ci    ;         NEXT;                                               // A2
5275a8e1175bSopenharmony_ci    ADD_LAST; NEXT;                                               // A3
5276a8e1175bSopenharmony_ci    ADD_LAST; NEXT;                                               // A4
5277a8e1175bSopenharmony_ci    ;         NEXT;                                               // A5
5278a8e1175bSopenharmony_ci    ;         NEXT;                                               // A6
5279a8e1175bSopenharmony_ci    ;         NEXT;                                               // A7
5280a8e1175bSopenharmony_ci    ;         NEXT;                                               // A8
5281a8e1175bSopenharmony_ci    ;         NEXT;                                               // A9
5282a8e1175bSopenharmony_ci    ;         NEXT;                                               // A10
5283a8e1175bSopenharmony_ci                                                                  // A11
5284a8e1175bSopenharmony_ci
5285a8e1175bSopenharmony_ci    LAST;
5286a8e1175bSopenharmony_ci
5287a8e1175bSopenharmony_ci    return 0;
5288a8e1175bSopenharmony_ci}
5289a8e1175bSopenharmony_ci#endif /* MBEDTLS_ECP_DP_SECP384R1_ENABLED */
5290a8e1175bSopenharmony_ci
5291a8e1175bSopenharmony_ci#undef LOAD32
5292a8e1175bSopenharmony_ci#undef MAX32
5293a8e1175bSopenharmony_ci#undef A
5294a8e1175bSopenharmony_ci#undef STORE32
5295a8e1175bSopenharmony_ci#undef STORE0
5296a8e1175bSopenharmony_ci#undef ADD
5297a8e1175bSopenharmony_ci#undef SUB
5298a8e1175bSopenharmony_ci#undef ADD_CARRY
5299a8e1175bSopenharmony_ci#undef SUB_CARRY
5300a8e1175bSopenharmony_ci#undef ADD_LAST
5301a8e1175bSopenharmony_ci#undef SUB_LAST
5302a8e1175bSopenharmony_ci#undef INIT
5303a8e1175bSopenharmony_ci#undef NEXT
5304a8e1175bSopenharmony_ci#undef RESET
5305a8e1175bSopenharmony_ci#undef LAST
5306a8e1175bSopenharmony_ci
5307a8e1175bSopenharmony_ci#endif /* MBEDTLS_ECP_DP_SECP224R1_ENABLED ||
5308a8e1175bSopenharmony_ci          MBEDTLS_ECP_DP_SECP256R1_ENABLED ||
5309a8e1175bSopenharmony_ci          MBEDTLS_ECP_DP_SECP384R1_ENABLED */
5310a8e1175bSopenharmony_ci
5311a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED)
5312a8e1175bSopenharmony_ci/* Size of p521 in terms of mbedtls_mpi_uint */
5313a8e1175bSopenharmony_ci#define P521_WIDTH      (521 / 8 / sizeof(mbedtls_mpi_uint) + 1)
5314a8e1175bSopenharmony_ci
5315a8e1175bSopenharmony_ci/* Bits to keep in the most significant mbedtls_mpi_uint */
5316a8e1175bSopenharmony_ci#define P521_MASK       0x01FF
5317a8e1175bSopenharmony_ci
5318a8e1175bSopenharmony_ci/*
5319a8e1175bSopenharmony_ci * Fast quasi-reduction modulo p521 = 2^521 - 1 (FIPS 186-3 D.2.5)
5320a8e1175bSopenharmony_ci */
5321a8e1175bSopenharmony_cistatic int ecp_mod_p521(mbedtls_mpi *N)
5322a8e1175bSopenharmony_ci{
5323a8e1175bSopenharmony_ci    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
5324a8e1175bSopenharmony_ci    size_t expected_width = BITS_TO_LIMBS(521) * 2;
5325a8e1175bSopenharmony_ci    MBEDTLS_MPI_CHK(mbedtls_mpi_grow(N, expected_width));
5326a8e1175bSopenharmony_ci    ret = mbedtls_ecp_mod_p521_raw(N->p, expected_width);
5327a8e1175bSopenharmony_cicleanup:
5328a8e1175bSopenharmony_ci    return ret;
5329a8e1175bSopenharmony_ci}
5330a8e1175bSopenharmony_ci
5331a8e1175bSopenharmony_ciMBEDTLS_STATIC_TESTABLE
5332a8e1175bSopenharmony_ciint mbedtls_ecp_mod_p521_raw(mbedtls_mpi_uint *X, size_t X_limbs)
5333a8e1175bSopenharmony_ci{
5334a8e1175bSopenharmony_ci    mbedtls_mpi_uint carry = 0;
5335a8e1175bSopenharmony_ci
5336a8e1175bSopenharmony_ci    if (X_limbs != BITS_TO_LIMBS(521) * 2) {
5337a8e1175bSopenharmony_ci        return MBEDTLS_ERR_ECP_BAD_INPUT_DATA;
5338a8e1175bSopenharmony_ci    }
5339a8e1175bSopenharmony_ci
5340a8e1175bSopenharmony_ci    /* Step 1: Reduction to P521_WIDTH limbs */
5341a8e1175bSopenharmony_ci    /* Helper references for bottom part of X */
5342a8e1175bSopenharmony_ci    mbedtls_mpi_uint *X0 = X;
5343a8e1175bSopenharmony_ci    size_t X0_limbs = P521_WIDTH;
5344a8e1175bSopenharmony_ci    /* Helper references for top part of X */
5345a8e1175bSopenharmony_ci    mbedtls_mpi_uint *X1 = X + X0_limbs;
5346a8e1175bSopenharmony_ci    size_t X1_limbs = X_limbs - X0_limbs;
5347a8e1175bSopenharmony_ci    /* Split X as X0 + 2^P521_WIDTH X1 and compute X0 + 2^(biL - 9) X1.
5348a8e1175bSopenharmony_ci     * (We are using that 2^P521_WIDTH = 2^(512 + biL) and that
5349a8e1175bSopenharmony_ci     * 2^(512 + biL) X1 = 2^(biL - 9) X1 mod P521.)
5350a8e1175bSopenharmony_ci     * The high order limb of the result will be held in carry and the rest
5351a8e1175bSopenharmony_ci     * in X0 (that is the result will be represented as
5352a8e1175bSopenharmony_ci     * 2^P521_WIDTH carry + X0).
5353a8e1175bSopenharmony_ci     *
5354a8e1175bSopenharmony_ci     * Also, note that the resulting carry is either 0 or 1:
5355a8e1175bSopenharmony_ci     * X0 < 2^P521_WIDTH = 2^(512 + biL) and X1 < 2^(P521_WIDTH-biL) = 2^512
5356a8e1175bSopenharmony_ci     * therefore
5357a8e1175bSopenharmony_ci     * X0 + 2^(biL - 9) X1 < 2^(512 + biL) + 2^(512 + biL - 9)
5358a8e1175bSopenharmony_ci     * which in turn is less than 2 * 2^(512 + biL).
5359a8e1175bSopenharmony_ci     */
5360a8e1175bSopenharmony_ci    mbedtls_mpi_uint shift = ((mbedtls_mpi_uint) 1u) << (biL - 9);
5361a8e1175bSopenharmony_ci    carry = mbedtls_mpi_core_mla(X0, X0_limbs, X1, X1_limbs, shift);
5362a8e1175bSopenharmony_ci    /* Set X to X0 (by clearing the top part). */
5363a8e1175bSopenharmony_ci    memset(X1, 0, X1_limbs * sizeof(mbedtls_mpi_uint));
5364a8e1175bSopenharmony_ci
5365a8e1175bSopenharmony_ci    /* Step 2: Reduction modulo P521
5366a8e1175bSopenharmony_ci     *
5367a8e1175bSopenharmony_ci     * At this point X is reduced to P521_WIDTH limbs. What remains is to add
5368a8e1175bSopenharmony_ci     * the carry (that is 2^P521_WIDTH carry) and to reduce mod P521. */
5369a8e1175bSopenharmony_ci
5370a8e1175bSopenharmony_ci    /* 2^P521_WIDTH carry = 2^(512 + biL) carry = 2^(biL - 9) carry mod P521.
5371a8e1175bSopenharmony_ci     * Also, recall that carry is either 0 or 1. */
5372a8e1175bSopenharmony_ci    mbedtls_mpi_uint addend = carry << (biL - 9);
5373a8e1175bSopenharmony_ci    /* Keep the top 9 bits and reduce the rest, using 2^521 = 1 mod P521. */
5374a8e1175bSopenharmony_ci    addend += (X[P521_WIDTH - 1] >> 9);
5375a8e1175bSopenharmony_ci    X[P521_WIDTH - 1] &= P521_MASK;
5376a8e1175bSopenharmony_ci
5377a8e1175bSopenharmony_ci    /* Reuse the top part of X (already zeroed) as a helper array for
5378a8e1175bSopenharmony_ci     * carrying out the addition. */
5379a8e1175bSopenharmony_ci    mbedtls_mpi_uint *addend_arr = X + P521_WIDTH;
5380a8e1175bSopenharmony_ci    addend_arr[0] = addend;
5381a8e1175bSopenharmony_ci    (void) mbedtls_mpi_core_add(X, X, addend_arr, P521_WIDTH);
5382a8e1175bSopenharmony_ci    /* Both addends were less than P521 therefore X < 2 * P521. (This also means
5383a8e1175bSopenharmony_ci     * that the result fit in P521_WIDTH limbs and there won't be any carry.) */
5384a8e1175bSopenharmony_ci
5385a8e1175bSopenharmony_ci    /* Clear the reused part of X. */
5386a8e1175bSopenharmony_ci    addend_arr[0] = 0;
5387a8e1175bSopenharmony_ci
5388a8e1175bSopenharmony_ci    return 0;
5389a8e1175bSopenharmony_ci}
5390a8e1175bSopenharmony_ci
5391a8e1175bSopenharmony_ci#undef P521_WIDTH
5392a8e1175bSopenharmony_ci#undef P521_MASK
5393a8e1175bSopenharmony_ci
5394a8e1175bSopenharmony_ci#endif /* MBEDTLS_ECP_DP_SECP521R1_ENABLED */
5395a8e1175bSopenharmony_ci
5396a8e1175bSopenharmony_ci#endif /* MBEDTLS_ECP_NIST_OPTIM */
5397a8e1175bSopenharmony_ci
5398a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED)
5399a8e1175bSopenharmony_ci
5400a8e1175bSopenharmony_ci/* Size of p255 in terms of mbedtls_mpi_uint */
5401a8e1175bSopenharmony_ci#define P255_WIDTH      (255 / 8 / sizeof(mbedtls_mpi_uint) + 1)
5402a8e1175bSopenharmony_ci
5403a8e1175bSopenharmony_ci/*
5404a8e1175bSopenharmony_ci * Fast quasi-reduction modulo p255 = 2^255 - 19
5405a8e1175bSopenharmony_ci * Write N as A0 + 2^256 A1, return A0 + 38 * A1
5406a8e1175bSopenharmony_ci */
5407a8e1175bSopenharmony_cistatic int ecp_mod_p255(mbedtls_mpi *N)
5408a8e1175bSopenharmony_ci{
5409a8e1175bSopenharmony_ci    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
5410a8e1175bSopenharmony_ci    size_t expected_width = BITS_TO_LIMBS(255) * 2;
5411a8e1175bSopenharmony_ci    MBEDTLS_MPI_CHK(mbedtls_mpi_grow(N, expected_width));
5412a8e1175bSopenharmony_ci    ret = mbedtls_ecp_mod_p255_raw(N->p, expected_width);
5413a8e1175bSopenharmony_cicleanup:
5414a8e1175bSopenharmony_ci    return ret;
5415a8e1175bSopenharmony_ci}
5416a8e1175bSopenharmony_ci
5417a8e1175bSopenharmony_ciMBEDTLS_STATIC_TESTABLE
5418a8e1175bSopenharmony_ciint mbedtls_ecp_mod_p255_raw(mbedtls_mpi_uint *X, size_t X_Limbs)
5419a8e1175bSopenharmony_ci{
5420a8e1175bSopenharmony_ci
5421a8e1175bSopenharmony_ci    if (X_Limbs != BITS_TO_LIMBS(255) * 2) {
5422a8e1175bSopenharmony_ci        return MBEDTLS_ERR_ECP_BAD_INPUT_DATA;
5423a8e1175bSopenharmony_ci    }
5424a8e1175bSopenharmony_ci
5425a8e1175bSopenharmony_ci    mbedtls_mpi_uint *carry = mbedtls_calloc(P255_WIDTH, ciL);
5426a8e1175bSopenharmony_ci    if (carry == NULL) {
5427a8e1175bSopenharmony_ci        return MBEDTLS_ERR_ECP_ALLOC_FAILED;
5428a8e1175bSopenharmony_ci    }
5429a8e1175bSopenharmony_ci
5430a8e1175bSopenharmony_ci    /* Step 1: Reduction to P255_WIDTH limbs */
5431a8e1175bSopenharmony_ci    if (X_Limbs > P255_WIDTH) {
5432a8e1175bSopenharmony_ci        /* Helper references for top part of X */
5433a8e1175bSopenharmony_ci        mbedtls_mpi_uint * const A1 = X + P255_WIDTH;
5434a8e1175bSopenharmony_ci        const size_t A1_limbs = X_Limbs - P255_WIDTH;
5435a8e1175bSopenharmony_ci
5436a8e1175bSopenharmony_ci        /* X = A0 + 38 * A1, capture carry out */
5437a8e1175bSopenharmony_ci        *carry = mbedtls_mpi_core_mla(X, P255_WIDTH, A1, A1_limbs, 38);
5438a8e1175bSopenharmony_ci        /* Clear top part */
5439a8e1175bSopenharmony_ci        memset(A1, 0, sizeof(mbedtls_mpi_uint) * A1_limbs);
5440a8e1175bSopenharmony_ci    }
5441a8e1175bSopenharmony_ci
5442a8e1175bSopenharmony_ci    /* Step 2: Reduce to <2p
5443a8e1175bSopenharmony_ci     * Split as A0 + 2^255*c, with c a scalar, and compute A0 + 19*c */
5444a8e1175bSopenharmony_ci    *carry <<= 1;
5445a8e1175bSopenharmony_ci    *carry += (X[P255_WIDTH - 1] >> (biL - 1));
5446a8e1175bSopenharmony_ci    *carry *= 19;
5447a8e1175bSopenharmony_ci
5448a8e1175bSopenharmony_ci    /* Clear top bit */
5449a8e1175bSopenharmony_ci    X[P255_WIDTH - 1] <<= 1; X[P255_WIDTH - 1] >>= 1;
5450a8e1175bSopenharmony_ci    /* Since the top bit for X has been cleared 0 + 0 + Carry
5451a8e1175bSopenharmony_ci     * will not overflow.
5452a8e1175bSopenharmony_ci     *
5453a8e1175bSopenharmony_ci     * Furthermore for 2p = 2^256-38. When a carry propagation on the highest
5454a8e1175bSopenharmony_ci     * limb occurs, X > 2^255 and all the remaining bits on the limb are zero.
5455a8e1175bSopenharmony_ci     *   - If X < 2^255 ==> X < 2p
5456a8e1175bSopenharmony_ci     *   - If X > 2^255 ==> X < 2^256 - 2^255 < 2p  */
5457a8e1175bSopenharmony_ci    (void) mbedtls_mpi_core_add(X, X, carry, P255_WIDTH);
5458a8e1175bSopenharmony_ci
5459a8e1175bSopenharmony_ci    mbedtls_free(carry);
5460a8e1175bSopenharmony_ci    return 0;
5461a8e1175bSopenharmony_ci}
5462a8e1175bSopenharmony_ci#endif /* MBEDTLS_ECP_DP_CURVE25519_ENABLED */
5463a8e1175bSopenharmony_ci
5464a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_CURVE448_ENABLED)
5465a8e1175bSopenharmony_ci
5466a8e1175bSopenharmony_ci/* Size of p448 in terms of mbedtls_mpi_uint */
5467a8e1175bSopenharmony_ci#define P448_WIDTH      (448 / 8 / sizeof(mbedtls_mpi_uint))
5468a8e1175bSopenharmony_ci
5469a8e1175bSopenharmony_ci/* Number of limbs fully occupied by 2^224 (max), and limbs used by it (min) */
5470a8e1175bSopenharmony_ci#define DIV_ROUND_UP(X, Y) (((X) + (Y) -1) / (Y))
5471a8e1175bSopenharmony_ci#define P224_SIZE        (224 / 8)
5472a8e1175bSopenharmony_ci#define P224_WIDTH_MIN   (P224_SIZE / sizeof(mbedtls_mpi_uint))
5473a8e1175bSopenharmony_ci#define P224_WIDTH_MAX   DIV_ROUND_UP(P224_SIZE, sizeof(mbedtls_mpi_uint))
5474a8e1175bSopenharmony_ci#define P224_UNUSED_BITS ((P224_WIDTH_MAX * sizeof(mbedtls_mpi_uint) * 8) - 224)
5475a8e1175bSopenharmony_ci
5476a8e1175bSopenharmony_cistatic int ecp_mod_p448(mbedtls_mpi *N)
5477a8e1175bSopenharmony_ci{
5478a8e1175bSopenharmony_ci    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
5479a8e1175bSopenharmony_ci    size_t expected_width = BITS_TO_LIMBS(448) * 2;
5480a8e1175bSopenharmony_ci
5481a8e1175bSopenharmony_ci    /* This is required as some tests and use cases do not pass in a Bignum of
5482a8e1175bSopenharmony_ci     * the correct size, and expect the growth to be done automatically, which
5483a8e1175bSopenharmony_ci     * will no longer happen. */
5484a8e1175bSopenharmony_ci    MBEDTLS_MPI_CHK(mbedtls_mpi_grow(N, expected_width));
5485a8e1175bSopenharmony_ci
5486a8e1175bSopenharmony_ci    ret = mbedtls_ecp_mod_p448_raw(N->p, N->n);
5487a8e1175bSopenharmony_ci
5488a8e1175bSopenharmony_cicleanup:
5489a8e1175bSopenharmony_ci    return ret;
5490a8e1175bSopenharmony_ci}
5491a8e1175bSopenharmony_ci
5492a8e1175bSopenharmony_ci/*
5493a8e1175bSopenharmony_ci * Fast quasi-reduction modulo p448 = 2^448 - 2^224 - 1
5494a8e1175bSopenharmony_ci * Write X as A0 + 2^448 A1 and A1 as B0 + 2^224 B1, and return A0 + A1 + B1 +
5495a8e1175bSopenharmony_ci * (B0 + B1) * 2^224.  This is different to the reference implementation of
5496a8e1175bSopenharmony_ci * Curve448, which uses its own special 56-bit limbs rather than a generic
5497a8e1175bSopenharmony_ci * bignum library.  We could squeeze some extra speed out on 32-bit machines by
5498a8e1175bSopenharmony_ci * splitting N up into 32-bit limbs and doing the arithmetic using the limbs
5499a8e1175bSopenharmony_ci * directly as we do for the NIST primes above, but for 64-bit targets it should
5500a8e1175bSopenharmony_ci * use half the number of operations if we do the reduction with 224-bit limbs,
5501a8e1175bSopenharmony_ci * since mpi_core_add will then use 64-bit adds.
5502a8e1175bSopenharmony_ci */
5503a8e1175bSopenharmony_ciMBEDTLS_STATIC_TESTABLE
5504a8e1175bSopenharmony_ciint mbedtls_ecp_mod_p448_raw(mbedtls_mpi_uint *X, size_t X_limbs)
5505a8e1175bSopenharmony_ci{
5506a8e1175bSopenharmony_ci    size_t round;
5507a8e1175bSopenharmony_ci    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
5508a8e1175bSopenharmony_ci
5509a8e1175bSopenharmony_ci    if (X_limbs != BITS_TO_LIMBS(448) * 2) {
5510a8e1175bSopenharmony_ci        return 0;
5511a8e1175bSopenharmony_ci    }
5512a8e1175bSopenharmony_ci
5513a8e1175bSopenharmony_ci    size_t M_limbs = X_limbs - (P448_WIDTH);
5514a8e1175bSopenharmony_ci
5515a8e1175bSopenharmony_ci    if (M_limbs > P448_WIDTH) {
5516a8e1175bSopenharmony_ci        /* Shouldn't be called with X larger than 2^896! */
5517a8e1175bSopenharmony_ci        return MBEDTLS_ERR_ECP_BAD_INPUT_DATA;
5518a8e1175bSopenharmony_ci    }
5519a8e1175bSopenharmony_ci
5520a8e1175bSopenharmony_ci    /* Both M and Q require an extra limb to catch carries. */
5521a8e1175bSopenharmony_ci    M_limbs++;
5522a8e1175bSopenharmony_ci
5523a8e1175bSopenharmony_ci    const size_t Q_limbs = M_limbs;
5524a8e1175bSopenharmony_ci    mbedtls_mpi_uint *M = NULL;
5525a8e1175bSopenharmony_ci    mbedtls_mpi_uint *Q = NULL;
5526a8e1175bSopenharmony_ci
5527a8e1175bSopenharmony_ci    M = mbedtls_calloc(M_limbs, ciL);
5528a8e1175bSopenharmony_ci
5529a8e1175bSopenharmony_ci    if (M == NULL) {
5530a8e1175bSopenharmony_ci        return MBEDTLS_ERR_ECP_ALLOC_FAILED;
5531a8e1175bSopenharmony_ci    }
5532a8e1175bSopenharmony_ci
5533a8e1175bSopenharmony_ci    Q = mbedtls_calloc(Q_limbs, ciL);
5534a8e1175bSopenharmony_ci
5535a8e1175bSopenharmony_ci    if (Q == NULL) {
5536a8e1175bSopenharmony_ci        ret =  MBEDTLS_ERR_ECP_ALLOC_FAILED;
5537a8e1175bSopenharmony_ci        goto cleanup;
5538a8e1175bSopenharmony_ci    }
5539a8e1175bSopenharmony_ci
5540a8e1175bSopenharmony_ci    /* M = A1 */
5541a8e1175bSopenharmony_ci    memset(M, 0, (M_limbs * ciL));
5542a8e1175bSopenharmony_ci    /* Do not copy into the overflow limb, as this would read past the end of
5543a8e1175bSopenharmony_ci     * X. */
5544a8e1175bSopenharmony_ci    memcpy(M, X + P448_WIDTH, ((M_limbs - 1) * ciL));
5545a8e1175bSopenharmony_ci
5546a8e1175bSopenharmony_ci    /* X = A0 */
5547a8e1175bSopenharmony_ci    memset(X + P448_WIDTH, 0, ((M_limbs - 1) * ciL));
5548a8e1175bSopenharmony_ci
5549a8e1175bSopenharmony_ci    /* X = X + M = A0 + A1 */
5550a8e1175bSopenharmony_ci    /* Carry here fits in oversize X. Oversize M means it will get
5551a8e1175bSopenharmony_ci     * added in, not returned as carry. */
5552a8e1175bSopenharmony_ci    (void) mbedtls_mpi_core_add(X, X, M, M_limbs);
5553a8e1175bSopenharmony_ci
5554a8e1175bSopenharmony_ci    /* Q = B1 = M >> 224 */
5555a8e1175bSopenharmony_ci    memcpy(Q, (char *) M + P224_SIZE, P224_SIZE);
5556a8e1175bSopenharmony_ci    memset((char *) Q + P224_SIZE, 0, P224_SIZE);
5557a8e1175bSopenharmony_ci
5558a8e1175bSopenharmony_ci    /* X = X + Q = (A0 + A1) + B1
5559a8e1175bSopenharmony_ci     * Oversize Q catches potential carry here when X is already max 448 bits.
5560a8e1175bSopenharmony_ci     */
5561a8e1175bSopenharmony_ci    (void) mbedtls_mpi_core_add(X, X, Q, Q_limbs);
5562a8e1175bSopenharmony_ci
5563a8e1175bSopenharmony_ci    /* M = B0 */
5564a8e1175bSopenharmony_ci#ifdef MBEDTLS_HAVE_INT64
5565a8e1175bSopenharmony_ci    M[P224_WIDTH_MIN] &= ((mbedtls_mpi_uint)-1) >> (P224_UNUSED_BITS);
5566a8e1175bSopenharmony_ci #endif
5567a8e1175bSopenharmony_ci    memset(M + P224_WIDTH_MAX, 0, ((M_limbs - P224_WIDTH_MAX) * ciL));
5568a8e1175bSopenharmony_ci
5569a8e1175bSopenharmony_ci    /* M = M + Q = B0 + B1 */
5570a8e1175bSopenharmony_ci    (void) mbedtls_mpi_core_add(M, M, Q, Q_limbs);
5571a8e1175bSopenharmony_ci
5572a8e1175bSopenharmony_ci    /* M = (B0 + B1) * 2^224 */
5573a8e1175bSopenharmony_ci    /* Shifted carry bit from the addition fits in oversize M. */
5574a8e1175bSopenharmony_ci    memmove((char *) M + P224_SIZE, M, P224_SIZE + ciL);
5575a8e1175bSopenharmony_ci    memset(M, 0, P224_SIZE);
5576a8e1175bSopenharmony_ci
5577a8e1175bSopenharmony_ci    /* X = X + M = (A0 + A1 + B1) + (B0 + B1) * 2^224 */
5578a8e1175bSopenharmony_ci    (void) mbedtls_mpi_core_add(X, X, M, M_limbs);
5579a8e1175bSopenharmony_ci
5580a8e1175bSopenharmony_ci    /* In the second and third rounds A1 and B0 have at most 1 non-zero limb and
5581a8e1175bSopenharmony_ci     * B1=0.
5582a8e1175bSopenharmony_ci     * Using this we need to calculate:
5583a8e1175bSopenharmony_ci     * A0 + A1 + B1 + (B0 + B1) * 2^224 = A0 + A1 + B0 * 2^224. */
5584a8e1175bSopenharmony_ci    for (round = 0; round < 2; ++round) {
5585a8e1175bSopenharmony_ci
5586a8e1175bSopenharmony_ci        /* M = A1 */
5587a8e1175bSopenharmony_ci        memset(M, 0, (M_limbs * ciL));
5588a8e1175bSopenharmony_ci        memcpy(M, X + P448_WIDTH, ((M_limbs - 1) * ciL));
5589a8e1175bSopenharmony_ci
5590a8e1175bSopenharmony_ci        /* X = A0 */
5591a8e1175bSopenharmony_ci        memset(X + P448_WIDTH, 0, ((M_limbs - 1) * ciL));
5592a8e1175bSopenharmony_ci
5593a8e1175bSopenharmony_ci        /* M = A1 + B0 * 2^224
5594a8e1175bSopenharmony_ci         * We know that only one limb of A1 will be non-zero and that it will be
5595a8e1175bSopenharmony_ci         * limb 0. We also know that B0 is the bottom 224 bits of A1 (which is
5596a8e1175bSopenharmony_ci         * then shifted up 224 bits), so, given M is currently A1 this turns
5597a8e1175bSopenharmony_ci         * into:
5598a8e1175bSopenharmony_ci         * M = M + (M << 224)
5599a8e1175bSopenharmony_ci         * As the single non-zero limb in B0 will be A1 limb 0 shifted up by 224
5600a8e1175bSopenharmony_ci         * bits, we can just move that into the right place, shifted up
5601a8e1175bSopenharmony_ci         * accordingly.*/
5602a8e1175bSopenharmony_ci        M[P224_WIDTH_MIN] = M[0] << (224 & (biL - 1));
5603a8e1175bSopenharmony_ci
5604a8e1175bSopenharmony_ci        /* X = A0 + (A1 + B0 * 2^224) */
5605a8e1175bSopenharmony_ci        (void) mbedtls_mpi_core_add(X, X, M, M_limbs);
5606a8e1175bSopenharmony_ci    }
5607a8e1175bSopenharmony_ci
5608a8e1175bSopenharmony_ci    ret = 0;
5609a8e1175bSopenharmony_ci
5610a8e1175bSopenharmony_cicleanup:
5611a8e1175bSopenharmony_ci    mbedtls_free(M);
5612a8e1175bSopenharmony_ci    mbedtls_free(Q);
5613a8e1175bSopenharmony_ci
5614a8e1175bSopenharmony_ci    return ret;
5615a8e1175bSopenharmony_ci}
5616a8e1175bSopenharmony_ci#endif /* MBEDTLS_ECP_DP_CURVE448_ENABLED */
5617a8e1175bSopenharmony_ci
5618a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED) ||   \
5619a8e1175bSopenharmony_ci    defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED) ||   \
5620a8e1175bSopenharmony_ci    defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED)
5621a8e1175bSopenharmony_ci
5622a8e1175bSopenharmony_ci/*
5623a8e1175bSopenharmony_ci * Fast quasi-reduction modulo P = 2^s - R,
5624a8e1175bSopenharmony_ci * with R about 33 bits, used by the Koblitz curves.
5625a8e1175bSopenharmony_ci *
5626a8e1175bSopenharmony_ci * Write X as A0 + 2^224 A1, return A0 + R * A1.
5627a8e1175bSopenharmony_ci */
5628a8e1175bSopenharmony_ci#define P_KOBLITZ_R     (8 / sizeof(mbedtls_mpi_uint))            // Limbs in R
5629a8e1175bSopenharmony_ci
5630a8e1175bSopenharmony_cistatic inline int ecp_mod_koblitz(mbedtls_mpi_uint *X,
5631a8e1175bSopenharmony_ci                                  size_t X_limbs,
5632a8e1175bSopenharmony_ci                                  mbedtls_mpi_uint *R,
5633a8e1175bSopenharmony_ci                                  size_t bits)
5634a8e1175bSopenharmony_ci{
5635a8e1175bSopenharmony_ci    int ret = 0;
5636a8e1175bSopenharmony_ci
5637a8e1175bSopenharmony_ci    /* Determine if A1 is aligned to limb bitsize. If not then the used limbs
5638a8e1175bSopenharmony_ci     * of P, A0 and A1 must be set accordingly and there is a middle limb
5639a8e1175bSopenharmony_ci     * which is shared by A0 and A1 and need to handle accordingly.
5640a8e1175bSopenharmony_ci     */
5641a8e1175bSopenharmony_ci    size_t shift   = bits % biL;
5642a8e1175bSopenharmony_ci    size_t adjust  = (shift + biL - 1) / biL;
5643a8e1175bSopenharmony_ci    size_t P_limbs = bits / biL + adjust;
5644a8e1175bSopenharmony_ci
5645a8e1175bSopenharmony_ci    mbedtls_mpi_uint *A1 = mbedtls_calloc(P_limbs, ciL);
5646a8e1175bSopenharmony_ci    if (A1 == NULL) {
5647a8e1175bSopenharmony_ci        return MBEDTLS_ERR_ECP_ALLOC_FAILED;
5648a8e1175bSopenharmony_ci    }
5649a8e1175bSopenharmony_ci
5650a8e1175bSopenharmony_ci    /* Create a buffer to store the value of `R * A1` */
5651a8e1175bSopenharmony_ci    size_t R_limbs = P_KOBLITZ_R;
5652a8e1175bSopenharmony_ci    size_t M_limbs = P_limbs + R_limbs;
5653a8e1175bSopenharmony_ci    mbedtls_mpi_uint *M = mbedtls_calloc(M_limbs, ciL);
5654a8e1175bSopenharmony_ci    if (M == NULL) {
5655a8e1175bSopenharmony_ci        ret = MBEDTLS_ERR_ECP_ALLOC_FAILED;
5656a8e1175bSopenharmony_ci        goto cleanup;
5657a8e1175bSopenharmony_ci    }
5658a8e1175bSopenharmony_ci
5659a8e1175bSopenharmony_ci    mbedtls_mpi_uint mask = 0;
5660a8e1175bSopenharmony_ci    if (adjust != 0) {
5661a8e1175bSopenharmony_ci        mask  = ((mbedtls_mpi_uint) 1 << shift) - 1;
5662a8e1175bSopenharmony_ci    }
5663a8e1175bSopenharmony_ci
5664a8e1175bSopenharmony_ci    /* Two passes are needed to reduce the value of `A0 + R * A1` and then
5665a8e1175bSopenharmony_ci     * we need an additional one to reduce the possible overflow during
5666a8e1175bSopenharmony_ci     * the addition.
5667a8e1175bSopenharmony_ci     */
5668a8e1175bSopenharmony_ci    for (size_t pass = 0; pass < 3; pass++) {
5669a8e1175bSopenharmony_ci        /* Copy A1 */
5670a8e1175bSopenharmony_ci        memcpy(A1, X + P_limbs - adjust, P_limbs * ciL);
5671a8e1175bSopenharmony_ci
5672a8e1175bSopenharmony_ci        /* Shift A1 to be aligned */
5673a8e1175bSopenharmony_ci        if (shift != 0) {
5674a8e1175bSopenharmony_ci            mbedtls_mpi_core_shift_r(A1, P_limbs, shift);
5675a8e1175bSopenharmony_ci        }
5676a8e1175bSopenharmony_ci
5677a8e1175bSopenharmony_ci        /* Zeroize the A1 part of the shared limb */
5678a8e1175bSopenharmony_ci        if (mask != 0) {
5679a8e1175bSopenharmony_ci            X[P_limbs - 1] &= mask;
5680a8e1175bSopenharmony_ci        }
5681a8e1175bSopenharmony_ci
5682a8e1175bSopenharmony_ci        /* X = A0
5683a8e1175bSopenharmony_ci         * Zeroize the A1 part of X to keep only the A0 part.
5684a8e1175bSopenharmony_ci         */
5685a8e1175bSopenharmony_ci        for (size_t i = P_limbs; i < X_limbs; i++) {
5686a8e1175bSopenharmony_ci            X[i] = 0;
5687a8e1175bSopenharmony_ci        }
5688a8e1175bSopenharmony_ci
5689a8e1175bSopenharmony_ci        /* X = A0 + R * A1 */
5690a8e1175bSopenharmony_ci        mbedtls_mpi_core_mul(M, A1, P_limbs, R, R_limbs);
5691a8e1175bSopenharmony_ci        (void) mbedtls_mpi_core_add(X, X, M, P_limbs + R_limbs);
5692a8e1175bSopenharmony_ci
5693a8e1175bSopenharmony_ci        /* Carry can not be generated since R is a 33-bit value and stored in
5694a8e1175bSopenharmony_ci         * 64 bits. The result value of the multiplication is at most
5695a8e1175bSopenharmony_ci         * P length + 33 bits in length and the result value of the addition
5696a8e1175bSopenharmony_ci         * is at most P length + 34 bits in length. So the result of the
5697a8e1175bSopenharmony_ci         * addition always fits in P length + 64 bits.
5698a8e1175bSopenharmony_ci         */
5699a8e1175bSopenharmony_ci    }
5700a8e1175bSopenharmony_ci
5701a8e1175bSopenharmony_cicleanup:
5702a8e1175bSopenharmony_ci    mbedtls_free(M);
5703a8e1175bSopenharmony_ci    mbedtls_free(A1);
5704a8e1175bSopenharmony_ci
5705a8e1175bSopenharmony_ci    return ret;
5706a8e1175bSopenharmony_ci}
5707a8e1175bSopenharmony_ci
5708a8e1175bSopenharmony_ci#endif /* MBEDTLS_ECP_DP_SECP192K1_ENABLED) ||
5709a8e1175bSopenharmony_ci          MBEDTLS_ECP_DP_SECP224K1_ENABLED) ||
5710a8e1175bSopenharmony_ci          MBEDTLS_ECP_DP_SECP256K1_ENABLED) */
5711a8e1175bSopenharmony_ci
5712a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED)
5713a8e1175bSopenharmony_ci
5714a8e1175bSopenharmony_ci/*
5715a8e1175bSopenharmony_ci * Fast quasi-reduction modulo p192k1 = 2^192 - R,
5716a8e1175bSopenharmony_ci * with R = 2^32 + 2^12 + 2^8 + 2^7 + 2^6 + 2^3 + 1 = 0x01000011C9
5717a8e1175bSopenharmony_ci */
5718a8e1175bSopenharmony_cistatic int ecp_mod_p192k1(mbedtls_mpi *N)
5719a8e1175bSopenharmony_ci{
5720a8e1175bSopenharmony_ci    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
5721a8e1175bSopenharmony_ci    size_t expected_width = BITS_TO_LIMBS(192) * 2;
5722a8e1175bSopenharmony_ci    MBEDTLS_MPI_CHK(mbedtls_mpi_grow(N, expected_width));
5723a8e1175bSopenharmony_ci    ret = mbedtls_ecp_mod_p192k1_raw(N->p, expected_width);
5724a8e1175bSopenharmony_ci
5725a8e1175bSopenharmony_cicleanup:
5726a8e1175bSopenharmony_ci    return ret;
5727a8e1175bSopenharmony_ci}
5728a8e1175bSopenharmony_ci
5729a8e1175bSopenharmony_ciMBEDTLS_STATIC_TESTABLE
5730a8e1175bSopenharmony_ciint mbedtls_ecp_mod_p192k1_raw(mbedtls_mpi_uint *X, size_t X_limbs)
5731a8e1175bSopenharmony_ci{
5732a8e1175bSopenharmony_ci    static mbedtls_mpi_uint Rp[] = {
5733a8e1175bSopenharmony_ci        MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0x11, 0x00, 0x00,
5734a8e1175bSopenharmony_ci                                  0x01, 0x00, 0x00, 0x00)
5735a8e1175bSopenharmony_ci    };
5736a8e1175bSopenharmony_ci
5737a8e1175bSopenharmony_ci    if (X_limbs != BITS_TO_LIMBS(192) * 2) {
5738a8e1175bSopenharmony_ci        return MBEDTLS_ERR_ECP_BAD_INPUT_DATA;
5739a8e1175bSopenharmony_ci    }
5740a8e1175bSopenharmony_ci
5741a8e1175bSopenharmony_ci    return ecp_mod_koblitz(X, X_limbs, Rp, 192);
5742a8e1175bSopenharmony_ci}
5743a8e1175bSopenharmony_ci
5744a8e1175bSopenharmony_ci#endif /* MBEDTLS_ECP_DP_SECP192K1_ENABLED */
5745a8e1175bSopenharmony_ci
5746a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED)
5747a8e1175bSopenharmony_ci
5748a8e1175bSopenharmony_ci/*
5749a8e1175bSopenharmony_ci * Fast quasi-reduction modulo p224k1 = 2^224 - R,
5750a8e1175bSopenharmony_ci * with R = 2^32 + 2^12 + 2^11 + 2^9 + 2^7 + 2^4 + 2 + 1 = 0x0100001A93
5751a8e1175bSopenharmony_ci */
5752a8e1175bSopenharmony_cistatic int ecp_mod_p224k1(mbedtls_mpi *N)
5753a8e1175bSopenharmony_ci{
5754a8e1175bSopenharmony_ci    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
5755a8e1175bSopenharmony_ci    size_t expected_width = BITS_TO_LIMBS(224) * 2;
5756a8e1175bSopenharmony_ci    MBEDTLS_MPI_CHK(mbedtls_mpi_grow(N, expected_width));
5757a8e1175bSopenharmony_ci    ret = mbedtls_ecp_mod_p224k1_raw(N->p, expected_width);
5758a8e1175bSopenharmony_ci
5759a8e1175bSopenharmony_cicleanup:
5760a8e1175bSopenharmony_ci    return ret;
5761a8e1175bSopenharmony_ci}
5762a8e1175bSopenharmony_ci
5763a8e1175bSopenharmony_ciMBEDTLS_STATIC_TESTABLE
5764a8e1175bSopenharmony_ciint mbedtls_ecp_mod_p224k1_raw(mbedtls_mpi_uint *X, size_t X_limbs)
5765a8e1175bSopenharmony_ci{
5766a8e1175bSopenharmony_ci    static mbedtls_mpi_uint Rp[] = {
5767a8e1175bSopenharmony_ci        MBEDTLS_BYTES_TO_T_UINT_8(0x93, 0x1A, 0x00, 0x00,
5768a8e1175bSopenharmony_ci                                  0x01, 0x00, 0x00, 0x00)
5769a8e1175bSopenharmony_ci    };
5770a8e1175bSopenharmony_ci
5771a8e1175bSopenharmony_ci    if (X_limbs !=  BITS_TO_LIMBS(224) * 2) {
5772a8e1175bSopenharmony_ci        return MBEDTLS_ERR_ECP_BAD_INPUT_DATA;
5773a8e1175bSopenharmony_ci    }
5774a8e1175bSopenharmony_ci
5775a8e1175bSopenharmony_ci    return ecp_mod_koblitz(X, X_limbs, Rp, 224);
5776a8e1175bSopenharmony_ci}
5777a8e1175bSopenharmony_ci
5778a8e1175bSopenharmony_ci#endif /* MBEDTLS_ECP_DP_SECP224K1_ENABLED */
5779a8e1175bSopenharmony_ci
5780a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED)
5781a8e1175bSopenharmony_ci
5782a8e1175bSopenharmony_ci/*
5783a8e1175bSopenharmony_ci * Fast quasi-reduction modulo p256k1 = 2^256 - R,
5784a8e1175bSopenharmony_ci * with R = 2^32 + 2^9 + 2^8 + 2^7 + 2^6 + 2^4 + 1 = 0x01000003D1
5785a8e1175bSopenharmony_ci */
5786a8e1175bSopenharmony_cistatic int ecp_mod_p256k1(mbedtls_mpi *N)
5787a8e1175bSopenharmony_ci{
5788a8e1175bSopenharmony_ci    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
5789a8e1175bSopenharmony_ci    size_t expected_width = BITS_TO_LIMBS(256) * 2;
5790a8e1175bSopenharmony_ci    MBEDTLS_MPI_CHK(mbedtls_mpi_grow(N, expected_width));
5791a8e1175bSopenharmony_ci    ret = mbedtls_ecp_mod_p256k1_raw(N->p, expected_width);
5792a8e1175bSopenharmony_ci
5793a8e1175bSopenharmony_cicleanup:
5794a8e1175bSopenharmony_ci    return ret;
5795a8e1175bSopenharmony_ci}
5796a8e1175bSopenharmony_ci
5797a8e1175bSopenharmony_ciMBEDTLS_STATIC_TESTABLE
5798a8e1175bSopenharmony_ciint mbedtls_ecp_mod_p256k1_raw(mbedtls_mpi_uint *X, size_t X_limbs)
5799a8e1175bSopenharmony_ci{
5800a8e1175bSopenharmony_ci    static mbedtls_mpi_uint Rp[] = {
5801a8e1175bSopenharmony_ci        MBEDTLS_BYTES_TO_T_UINT_8(0xD1, 0x03, 0x00, 0x00,
5802a8e1175bSopenharmony_ci                                  0x01, 0x00, 0x00, 0x00)
5803a8e1175bSopenharmony_ci    };
5804a8e1175bSopenharmony_ci
5805a8e1175bSopenharmony_ci    if (X_limbs != BITS_TO_LIMBS(256) * 2) {
5806a8e1175bSopenharmony_ci        return MBEDTLS_ERR_ECP_BAD_INPUT_DATA;
5807a8e1175bSopenharmony_ci    }
5808a8e1175bSopenharmony_ci
5809a8e1175bSopenharmony_ci    return ecp_mod_koblitz(X, X_limbs, Rp, 256);
5810a8e1175bSopenharmony_ci}
5811a8e1175bSopenharmony_ci
5812a8e1175bSopenharmony_ci#endif /* MBEDTLS_ECP_DP_SECP256K1_ENABLED */
5813a8e1175bSopenharmony_ci
5814a8e1175bSopenharmony_ci#if defined(MBEDTLS_TEST_HOOKS)
5815a8e1175bSopenharmony_ciMBEDTLS_STATIC_TESTABLE
5816a8e1175bSopenharmony_ciint mbedtls_ecp_modulus_setup(mbedtls_mpi_mod_modulus *N,
5817a8e1175bSopenharmony_ci                              const mbedtls_ecp_group_id id,
5818a8e1175bSopenharmony_ci                              const mbedtls_ecp_modulus_type ctype)
5819a8e1175bSopenharmony_ci{
5820a8e1175bSopenharmony_ci    mbedtls_mpi_modp_fn modp = NULL;
5821a8e1175bSopenharmony_ci    mbedtls_mpi_uint *p = NULL;
5822a8e1175bSopenharmony_ci    size_t p_limbs;
5823a8e1175bSopenharmony_ci
5824a8e1175bSopenharmony_ci    if (!(ctype == (mbedtls_ecp_modulus_type) MBEDTLS_ECP_MOD_COORDINATE || \
5825a8e1175bSopenharmony_ci          ctype == (mbedtls_ecp_modulus_type) MBEDTLS_ECP_MOD_SCALAR)) {
5826a8e1175bSopenharmony_ci        return MBEDTLS_ERR_ECP_BAD_INPUT_DATA;
5827a8e1175bSopenharmony_ci    }
5828a8e1175bSopenharmony_ci
5829a8e1175bSopenharmony_ci    switch (id) {
5830a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED)
5831a8e1175bSopenharmony_ci        case MBEDTLS_ECP_DP_SECP192R1:
5832a8e1175bSopenharmony_ci            if (ctype == (mbedtls_ecp_modulus_type) MBEDTLS_ECP_MOD_COORDINATE) {
5833a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_NIST_OPTIM)
5834a8e1175bSopenharmony_ci                modp = &mbedtls_ecp_mod_p192_raw;
5835a8e1175bSopenharmony_ci#endif
5836a8e1175bSopenharmony_ci                p = (mbedtls_mpi_uint *) secp192r1_p;
5837a8e1175bSopenharmony_ci                p_limbs = CHARS_TO_LIMBS(sizeof(secp192r1_p));
5838a8e1175bSopenharmony_ci            } else {
5839a8e1175bSopenharmony_ci                p = (mbedtls_mpi_uint *) secp192r1_n;
5840a8e1175bSopenharmony_ci                p_limbs = CHARS_TO_LIMBS(sizeof(secp192r1_n));
5841a8e1175bSopenharmony_ci            }
5842a8e1175bSopenharmony_ci            break;
5843a8e1175bSopenharmony_ci#endif
5844a8e1175bSopenharmony_ci
5845a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED)
5846a8e1175bSopenharmony_ci        case MBEDTLS_ECP_DP_SECP224R1:
5847a8e1175bSopenharmony_ci            if (ctype == (mbedtls_ecp_modulus_type) MBEDTLS_ECP_MOD_COORDINATE) {
5848a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_NIST_OPTIM)
5849a8e1175bSopenharmony_ci                modp = &mbedtls_ecp_mod_p224_raw;
5850a8e1175bSopenharmony_ci#endif
5851a8e1175bSopenharmony_ci                p = (mbedtls_mpi_uint *) secp224r1_p;
5852a8e1175bSopenharmony_ci                p_limbs = CHARS_TO_LIMBS(sizeof(secp224r1_p));
5853a8e1175bSopenharmony_ci            } else {
5854a8e1175bSopenharmony_ci                p = (mbedtls_mpi_uint *) secp224r1_n;
5855a8e1175bSopenharmony_ci                p_limbs = CHARS_TO_LIMBS(sizeof(secp224r1_n));
5856a8e1175bSopenharmony_ci            }
5857a8e1175bSopenharmony_ci            break;
5858a8e1175bSopenharmony_ci#endif
5859a8e1175bSopenharmony_ci
5860a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED)
5861a8e1175bSopenharmony_ci        case MBEDTLS_ECP_DP_SECP256R1:
5862a8e1175bSopenharmony_ci            if (ctype == (mbedtls_ecp_modulus_type) MBEDTLS_ECP_MOD_COORDINATE) {
5863a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_NIST_OPTIM)
5864a8e1175bSopenharmony_ci                modp = &mbedtls_ecp_mod_p256_raw;
5865a8e1175bSopenharmony_ci#endif
5866a8e1175bSopenharmony_ci                p = (mbedtls_mpi_uint *) secp256r1_p;
5867a8e1175bSopenharmony_ci                p_limbs = CHARS_TO_LIMBS(sizeof(secp256r1_p));
5868a8e1175bSopenharmony_ci            } else {
5869a8e1175bSopenharmony_ci                p = (mbedtls_mpi_uint *) secp256r1_n;
5870a8e1175bSopenharmony_ci                p_limbs = CHARS_TO_LIMBS(sizeof(secp256r1_n));
5871a8e1175bSopenharmony_ci            }
5872a8e1175bSopenharmony_ci            break;
5873a8e1175bSopenharmony_ci#endif
5874a8e1175bSopenharmony_ci
5875a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED)
5876a8e1175bSopenharmony_ci        case MBEDTLS_ECP_DP_SECP384R1:
5877a8e1175bSopenharmony_ci            if (ctype == (mbedtls_ecp_modulus_type) MBEDTLS_ECP_MOD_COORDINATE) {
5878a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_NIST_OPTIM)
5879a8e1175bSopenharmony_ci                modp = &mbedtls_ecp_mod_p384_raw;
5880a8e1175bSopenharmony_ci#endif
5881a8e1175bSopenharmony_ci                p = (mbedtls_mpi_uint *) secp384r1_p;
5882a8e1175bSopenharmony_ci                p_limbs = CHARS_TO_LIMBS(sizeof(secp384r1_p));
5883a8e1175bSopenharmony_ci            } else {
5884a8e1175bSopenharmony_ci                p = (mbedtls_mpi_uint *) secp384r1_n;
5885a8e1175bSopenharmony_ci                p_limbs = CHARS_TO_LIMBS(sizeof(secp384r1_n));
5886a8e1175bSopenharmony_ci            }
5887a8e1175bSopenharmony_ci            break;
5888a8e1175bSopenharmony_ci#endif
5889a8e1175bSopenharmony_ci
5890a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED)
5891a8e1175bSopenharmony_ci        case MBEDTLS_ECP_DP_SECP521R1:
5892a8e1175bSopenharmony_ci            if (ctype == (mbedtls_ecp_modulus_type) MBEDTLS_ECP_MOD_COORDINATE) {
5893a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_NIST_OPTIM)
5894a8e1175bSopenharmony_ci                modp = &mbedtls_ecp_mod_p521_raw;
5895a8e1175bSopenharmony_ci#endif
5896a8e1175bSopenharmony_ci                p = (mbedtls_mpi_uint *) secp521r1_p;
5897a8e1175bSopenharmony_ci                p_limbs = CHARS_TO_LIMBS(sizeof(secp521r1_p));
5898a8e1175bSopenharmony_ci            } else {
5899a8e1175bSopenharmony_ci                p = (mbedtls_mpi_uint *) secp521r1_n;
5900a8e1175bSopenharmony_ci                p_limbs = CHARS_TO_LIMBS(sizeof(secp521r1_n));
5901a8e1175bSopenharmony_ci            }
5902a8e1175bSopenharmony_ci            break;
5903a8e1175bSopenharmony_ci#endif
5904a8e1175bSopenharmony_ci
5905a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_BP256R1_ENABLED)
5906a8e1175bSopenharmony_ci        case MBEDTLS_ECP_DP_BP256R1:
5907a8e1175bSopenharmony_ci            if (ctype == (mbedtls_ecp_modulus_type) MBEDTLS_ECP_MOD_COORDINATE) {
5908a8e1175bSopenharmony_ci                p = (mbedtls_mpi_uint *) brainpoolP256r1_p;
5909a8e1175bSopenharmony_ci                p_limbs = CHARS_TO_LIMBS(sizeof(brainpoolP256r1_p));
5910a8e1175bSopenharmony_ci            } else {
5911a8e1175bSopenharmony_ci                p = (mbedtls_mpi_uint *) brainpoolP256r1_n;
5912a8e1175bSopenharmony_ci                p_limbs = CHARS_TO_LIMBS(sizeof(brainpoolP256r1_n));
5913a8e1175bSopenharmony_ci            }
5914a8e1175bSopenharmony_ci            break;
5915a8e1175bSopenharmony_ci#endif
5916a8e1175bSopenharmony_ci
5917a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_BP384R1_ENABLED)
5918a8e1175bSopenharmony_ci        case MBEDTLS_ECP_DP_BP384R1:
5919a8e1175bSopenharmony_ci            if (ctype == (mbedtls_ecp_modulus_type) MBEDTLS_ECP_MOD_COORDINATE) {
5920a8e1175bSopenharmony_ci                p = (mbedtls_mpi_uint *) brainpoolP384r1_p;
5921a8e1175bSopenharmony_ci                p_limbs = CHARS_TO_LIMBS(sizeof(brainpoolP384r1_p));
5922a8e1175bSopenharmony_ci            } else {
5923a8e1175bSopenharmony_ci                p = (mbedtls_mpi_uint *) brainpoolP384r1_n;
5924a8e1175bSopenharmony_ci                p_limbs = CHARS_TO_LIMBS(sizeof(brainpoolP384r1_n));
5925a8e1175bSopenharmony_ci            }
5926a8e1175bSopenharmony_ci            break;
5927a8e1175bSopenharmony_ci#endif
5928a8e1175bSopenharmony_ci
5929a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_BP512R1_ENABLED)
5930a8e1175bSopenharmony_ci        case MBEDTLS_ECP_DP_BP512R1:
5931a8e1175bSopenharmony_ci            if (ctype == (mbedtls_ecp_modulus_type) MBEDTLS_ECP_MOD_COORDINATE) {
5932a8e1175bSopenharmony_ci                p = (mbedtls_mpi_uint *) brainpoolP512r1_p;
5933a8e1175bSopenharmony_ci                p_limbs = CHARS_TO_LIMBS(sizeof(brainpoolP512r1_p));
5934a8e1175bSopenharmony_ci            } else {
5935a8e1175bSopenharmony_ci                p = (mbedtls_mpi_uint *) brainpoolP512r1_n;
5936a8e1175bSopenharmony_ci                p_limbs = CHARS_TO_LIMBS(sizeof(brainpoolP512r1_n));
5937a8e1175bSopenharmony_ci            }
5938a8e1175bSopenharmony_ci            break;
5939a8e1175bSopenharmony_ci#endif
5940a8e1175bSopenharmony_ci
5941a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED)
5942a8e1175bSopenharmony_ci        case MBEDTLS_ECP_DP_CURVE25519:
5943a8e1175bSopenharmony_ci            if (ctype == (mbedtls_ecp_modulus_type) MBEDTLS_ECP_MOD_COORDINATE) {
5944a8e1175bSopenharmony_ci                modp = &mbedtls_ecp_mod_p255_raw;
5945a8e1175bSopenharmony_ci                p = (mbedtls_mpi_uint *) curve25519_p;
5946a8e1175bSopenharmony_ci                p_limbs = CHARS_TO_LIMBS(sizeof(curve25519_p));
5947a8e1175bSopenharmony_ci            } else {
5948a8e1175bSopenharmony_ci                p = (mbedtls_mpi_uint *) curve25519_n;
5949a8e1175bSopenharmony_ci                p_limbs = CHARS_TO_LIMBS(sizeof(curve25519_n));
5950a8e1175bSopenharmony_ci            }
5951a8e1175bSopenharmony_ci            break;
5952a8e1175bSopenharmony_ci#endif
5953a8e1175bSopenharmony_ci
5954a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED)
5955a8e1175bSopenharmony_ci        case MBEDTLS_ECP_DP_SECP192K1:
5956a8e1175bSopenharmony_ci            if (ctype == (mbedtls_ecp_modulus_type) MBEDTLS_ECP_MOD_COORDINATE) {
5957a8e1175bSopenharmony_ci                modp = &mbedtls_ecp_mod_p192k1_raw;
5958a8e1175bSopenharmony_ci                p = (mbedtls_mpi_uint *) secp192k1_p;
5959a8e1175bSopenharmony_ci                p_limbs = CHARS_TO_LIMBS(sizeof(secp192k1_p));
5960a8e1175bSopenharmony_ci            } else {
5961a8e1175bSopenharmony_ci                p = (mbedtls_mpi_uint *) secp192k1_n;
5962a8e1175bSopenharmony_ci                p_limbs = CHARS_TO_LIMBS(sizeof(secp192k1_n));
5963a8e1175bSopenharmony_ci            }
5964a8e1175bSopenharmony_ci            break;
5965a8e1175bSopenharmony_ci#endif
5966a8e1175bSopenharmony_ci
5967a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED)
5968a8e1175bSopenharmony_ci        case MBEDTLS_ECP_DP_SECP224K1:
5969a8e1175bSopenharmony_ci            if (ctype == (mbedtls_ecp_modulus_type) MBEDTLS_ECP_MOD_COORDINATE) {
5970a8e1175bSopenharmony_ci                modp = &mbedtls_ecp_mod_p224k1_raw;
5971a8e1175bSopenharmony_ci                p = (mbedtls_mpi_uint *) secp224k1_p;
5972a8e1175bSopenharmony_ci                p_limbs = CHARS_TO_LIMBS(sizeof(secp224k1_p));
5973a8e1175bSopenharmony_ci            } else {
5974a8e1175bSopenharmony_ci                p = (mbedtls_mpi_uint *) secp224k1_n;
5975a8e1175bSopenharmony_ci                p_limbs = CHARS_TO_LIMBS(sizeof(secp224k1_n));
5976a8e1175bSopenharmony_ci            }
5977a8e1175bSopenharmony_ci            break;
5978a8e1175bSopenharmony_ci#endif
5979a8e1175bSopenharmony_ci
5980a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED)
5981a8e1175bSopenharmony_ci        case MBEDTLS_ECP_DP_SECP256K1:
5982a8e1175bSopenharmony_ci            if (ctype == (mbedtls_ecp_modulus_type) MBEDTLS_ECP_MOD_COORDINATE) {
5983a8e1175bSopenharmony_ci                modp = &mbedtls_ecp_mod_p256k1_raw;
5984a8e1175bSopenharmony_ci                p = (mbedtls_mpi_uint *) secp256k1_p;
5985a8e1175bSopenharmony_ci                p_limbs = CHARS_TO_LIMBS(sizeof(secp256k1_p));
5986a8e1175bSopenharmony_ci            } else {
5987a8e1175bSopenharmony_ci                p = (mbedtls_mpi_uint *) secp256k1_n;
5988a8e1175bSopenharmony_ci                p_limbs = CHARS_TO_LIMBS(sizeof(secp256k1_n));
5989a8e1175bSopenharmony_ci            }
5990a8e1175bSopenharmony_ci            break;
5991a8e1175bSopenharmony_ci#endif
5992a8e1175bSopenharmony_ci
5993a8e1175bSopenharmony_ci#if defined(MBEDTLS_ECP_DP_CURVE448_ENABLED)
5994a8e1175bSopenharmony_ci        case MBEDTLS_ECP_DP_CURVE448:
5995a8e1175bSopenharmony_ci            if (ctype == (mbedtls_ecp_modulus_type) MBEDTLS_ECP_MOD_COORDINATE) {
5996a8e1175bSopenharmony_ci                modp = &mbedtls_ecp_mod_p448_raw;
5997a8e1175bSopenharmony_ci                p = (mbedtls_mpi_uint *) curve448_p;
5998a8e1175bSopenharmony_ci                p_limbs = CHARS_TO_LIMBS(sizeof(curve448_p));
5999a8e1175bSopenharmony_ci            } else {
6000a8e1175bSopenharmony_ci                p = (mbedtls_mpi_uint *) curve448_n;
6001a8e1175bSopenharmony_ci                p_limbs = CHARS_TO_LIMBS(sizeof(curve448_n));
6002a8e1175bSopenharmony_ci            }
6003a8e1175bSopenharmony_ci            break;
6004a8e1175bSopenharmony_ci#endif
6005a8e1175bSopenharmony_ci
6006a8e1175bSopenharmony_ci        default:
6007a8e1175bSopenharmony_ci        case MBEDTLS_ECP_DP_NONE:
6008a8e1175bSopenharmony_ci            return MBEDTLS_ERR_ECP_BAD_INPUT_DATA;
6009a8e1175bSopenharmony_ci    }
6010a8e1175bSopenharmony_ci
6011a8e1175bSopenharmony_ci    if (modp != NULL) {
6012a8e1175bSopenharmony_ci        if (mbedtls_mpi_mod_optred_modulus_setup(N, p, p_limbs, modp)) {
6013a8e1175bSopenharmony_ci            return MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
6014a8e1175bSopenharmony_ci        }
6015a8e1175bSopenharmony_ci    } else {
6016a8e1175bSopenharmony_ci        if (mbedtls_mpi_mod_modulus_setup(N, p, p_limbs)) {
6017a8e1175bSopenharmony_ci            return MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
6018a8e1175bSopenharmony_ci        }
6019a8e1175bSopenharmony_ci    }
6020a8e1175bSopenharmony_ci    return 0;
6021a8e1175bSopenharmony_ci}
6022a8e1175bSopenharmony_ci#endif /* MBEDTLS_TEST_HOOKS */
6023a8e1175bSopenharmony_ci
6024a8e1175bSopenharmony_ci#if defined(MBEDTLS_TEST_HOOKS)
6025a8e1175bSopenharmony_ci
6026a8e1175bSopenharmony_ciMBEDTLS_STATIC_TESTABLE
6027a8e1175bSopenharmony_cimbedtls_ecp_variant mbedtls_ecp_get_variant(void)
6028a8e1175bSopenharmony_ci{
6029a8e1175bSopenharmony_ci    return MBEDTLS_ECP_VARIANT_WITH_MPI_UINT;
6030a8e1175bSopenharmony_ci}
6031a8e1175bSopenharmony_ci
6032a8e1175bSopenharmony_ci#endif /* MBEDTLS_TEST_HOOKS */
6033a8e1175bSopenharmony_ci
6034a8e1175bSopenharmony_ci#endif /* !MBEDTLS_ECP_ALT */
6035a8e1175bSopenharmony_ci#endif /* MBEDTLS_ECP_LIGHT */
6036a8e1175bSopenharmony_ci#endif /* MBEDTLS_ECP_WITH_MPI_UINT */
6037