XenevaOS
Loading...
Searching...
No Matches
ecp_invasive.h
Go to the documentation of this file.
1
10/*
11 * Copyright The Mbed TLS Contributors
12 * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
13 */
14#ifndef MBEDTLS_ECP_INVASIVE_H
15#define MBEDTLS_ECP_INVASIVE_H
16
17#include "common.h"
18#include "mbedtls/bignum.h"
19#include "bignum_mod.h"
20#include "mbedtls/ecp.h"
21
22/*
23 * Curve modulus types
24 */
30
36
37#if defined(MBEDTLS_TEST_HOOKS) && defined(MBEDTLS_ECP_LIGHT)
38
44mbedtls_ecp_variant mbedtls_ecp_get_variant(void);
45
46#if defined(MBEDTLS_ECP_MONTGOMERY_ENABLED)
68int mbedtls_ecp_gen_privkey_mx(size_t high_bit,
70 int (*f_rng)(void *, unsigned char *, size_t),
71 void *p_rng);
72
73#endif /* MBEDTLS_ECP_MONTGOMERY_ENABLED */
74
75#if defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED)
76
90int mbedtls_ecp_mod_p192_raw(mbedtls_mpi_uint *Np, size_t Nn);
91
92#endif /* MBEDTLS_ECP_DP_SECP192R1_ENABLED */
93
94#if defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED)
95
112int mbedtls_ecp_mod_p224_raw(mbedtls_mpi_uint *X, size_t X_limbs);
113
114#endif /* MBEDTLS_ECP_DP_SECP224R1_ENABLED */
115
116#if defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED)
117
134int mbedtls_ecp_mod_p256_raw(mbedtls_mpi_uint *X, size_t X_limbs);
135
136#endif
137
138#if defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED)
139
156int mbedtls_ecp_mod_p521_raw(mbedtls_mpi_uint *X, size_t X_limbs);
157
158#endif /* MBEDTLS_ECP_DP_SECP521R1_ENABLED */
159
160#if defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED)
161
178int mbedtls_ecp_mod_p384_raw(mbedtls_mpi_uint *X, size_t X_limbs);
179
180#endif /* MBEDTLS_ECP_DP_SECP384R1_ENABLED */
181
182#if defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED)
183
202int mbedtls_ecp_mod_p192k1_raw(mbedtls_mpi_uint *X, size_t X_limbs);
203
204#endif /* MBEDTLS_ECP_DP_SECP192K1_ENABLED */
205
206#if defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED)
207
226int mbedtls_ecp_mod_p224k1_raw(mbedtls_mpi_uint *X, size_t X_limbs);
227
228#endif /* MBEDTLS_ECP_DP_SECP224K1_ENABLED */
229
230#if defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED)
231
250int mbedtls_ecp_mod_p256k1_raw(mbedtls_mpi_uint *X, size_t X_limbs);
251
252#endif /* MBEDTLS_ECP_DP_SECP256K1_ENABLED */
253
254#if defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED)
255
271int mbedtls_ecp_mod_p255_raw(mbedtls_mpi_uint *X, size_t X_limbs);
272
273#endif /* MBEDTLS_ECP_DP_CURVE25519_ENABLED */
274
275#if defined(MBEDTLS_ECP_DP_CURVE448_ENABLED)
276
297int mbedtls_ecp_mod_p448_raw(mbedtls_mpi_uint *X, size_t X_limbs);
298
299#endif /* MBEDTLS_ECP_DP_CURVE448_ENABLED */
300
319int mbedtls_ecp_modulus_setup(mbedtls_mpi_mod_modulus *N,
320 const mbedtls_ecp_group_id id,
321 const mbedtls_ecp_modulus_type ctype);
322
323#endif /* MBEDTLS_TEST_HOOKS && MBEDTLS_ECP_C */
324
325#endif /* MBEDTLS_ECP_INVASIVE_H */
#define X(a)
Multi-precision integer library.
uint32_t mbedtls_mpi_uint
The type of machine digits in a bignum, called limbs.
Definition bignum.h:170
Utility macros for internal use in the library.
#define MBEDTLS_STATIC_TESTABLE
Definition common.h:48
This file provides an API for Elliptic Curves over GF(P) (ECP).
mbedtls_ecp_group_id
Definition ecp.h:102
mbedtls_ecp_modulus_type
Definition ecp_invasive.h:25
@ MBEDTLS_ECP_MOD_SCALAR
Definition ecp_invasive.h:28
@ MBEDTLS_ECP_MOD_COORDINATE
Definition ecp_invasive.h:27
@ MBEDTLS_ECP_MOD_NONE
Definition ecp_invasive.h:26
mbedtls_ecp_variant
Definition ecp_invasive.h:31
@ MBEDTLS_ECP_VARIANT_NONE
Definition ecp_invasive.h:32
@ MBEDTLS_ECP_VARIANT_WITH_MPI_STRUCT
Definition ecp_invasive.h:33
@ MBEDTLS_ECP_VARIANT_WITH_MPI_UINT
Definition ecp_invasive.h:34
#define d
Definition libunicode.c:1833
Definition bignum_mod.h:121
MPI structure.
Definition bignum.h:208