NCBI C++ ToolKit
|
#include "common.h"
#include "mbedtls/ecp.h"
#include "mbedtls/platform_util.h"
#include "mbedtls/error.h"
#include "mbedtls/bn_mul.h"
#include "ecp_invasive.h"
#include <string.h>
Go to the source code of this file.
Go to the SVN repository for this file.
Macros | |
#define | ECP_VALIDATE_RET(cond) MBEDTLS_INTERNAL_VALIDATE_RET(cond, MBEDTLS_ERR_ECP_BAD_INPUT_DATA) |
#define | ECP_VALIDATE(cond) MBEDTLS_INTERNAL_VALIDATE(cond) |
#define | ECP_MPI_INIT(s, n, p) { s, (n), (mbedtls_mpi_uint *) (p) } |
#define | ECP_MPI_INIT_ARRAY(x) ECP_MPI_INIT(1, sizeof(x) / sizeof(mbedtls_mpi_uint), x) |
#define | ECP_LOAD_GROUP |
#define | NIST_MODP(P) grp->modp = ecp_mod_ ## P; |
#define | LOAD_GROUP_A(G) |
#define | LOAD_GROUP(G) |
#define | WIDTH 8 / sizeof(mbedtls_mpi_uint) |
#define | A(i) N->p + (i) * WIDTH |
#define | ADD(i) add64(p, A(i), &c) |
#define | NEXT p += WIDTH; carry64(p, &c) |
#define | LAST p += WIDTH; *p = c; while (++p < end) *p = 0 |
#define | LOAD32 cur = A(i); |
#define | MAX32 N->n |
#define | A(j) N->p[j] |
#define | STORE32 N->p[i] = cur; |
#define | ADD(j) add32(&cur, A(j), &c); |
#define | SUB(j) sub32(&cur, A(j), &c); |
#define | ciL (sizeof(mbedtls_mpi_uint)) /* chars in limb */ |
#define | biL (ciL << 3) /* bits in limb */ |
#define | INIT(b) |
#define | NEXT |
#define | LAST |
#define | P521_WIDTH (521 / 8 / sizeof(mbedtls_mpi_uint) + 1) |
#define | P521_MASK 0x01FF |
#define | P255_WIDTH (255 / 8 / sizeof(mbedtls_mpi_uint) + 1) |
#define | P448_WIDTH (448 / 8 / sizeof(mbedtls_mpi_uint)) |
#define | DIV_ROUND_UP(X, Y) (((X) + (Y) -1) / (Y)) |
#define | P224_WIDTH_MIN (28 / sizeof(mbedtls_mpi_uint)) |
#define | P224_WIDTH_MAX DIV_ROUND_UP(28, sizeof(mbedtls_mpi_uint)) |
#define | P224_UNUSED_BITS ((P224_WIDTH_MAX * sizeof(mbedtls_mpi_uint) * 8) - 224) |
#define | P_KOBLITZ_MAX (256 / 8 / sizeof(mbedtls_mpi_uint)) |
#define | P_KOBLITZ_R (8 / sizeof(mbedtls_mpi_uint)) |
#define A | ( | j | ) | N->p[j] |
Definition at line 948 of file ecp_curves.c.
Definition at line 982 of file ecp_curves.c.
Definition at line 986 of file ecp_curves.c.
#define ciL (sizeof(mbedtls_mpi_uint)) /* chars in limb */ |
Definition at line 985 of file ecp_curves.c.
#define DIV_ROUND_UP | ( | X, | |
Y | |||
) | (((X) + (Y) -1) / (Y)) |
Definition at line 1281 of file ecp_curves.c.
#define ECP_LOAD_GROUP |
Definition at line 530 of file ecp_curves.c.
#define ECP_MPI_INIT | ( | s, | |
n, | |||
p | |||
) | { s, (n), (mbedtls_mpi_uint *) (p) } |
Definition at line 41 of file ecp_curves.c.
#define ECP_MPI_INIT_ARRAY | ( | x | ) | ECP_MPI_INIT(1, sizeof(x) / sizeof(mbedtls_mpi_uint), x) |
Definition at line 43 of file ecp_curves.c.
#define ECP_VALIDATE | ( | cond | ) | MBEDTLS_INTERNAL_VALIDATE(cond) |
Definition at line 38 of file ecp_curves.c.
#define ECP_VALIDATE_RET | ( | cond | ) | MBEDTLS_INTERNAL_VALIDATE_RET(cond, MBEDTLS_ERR_ECP_BAD_INPUT_DATA) |
Definition at line 36 of file ecp_curves.c.
#define INIT | ( | b | ) |
Definition at line 991 of file ecp_curves.c.
Definition at line 1009 of file ecp_curves.c.
#define LAST |
Definition at line 1009 of file ecp_curves.c.
Definition at line 943 of file ecp_curves.c.
#define LOAD_GROUP | ( | G | ) |
Definition at line 636 of file ecp_curves.c.
#define LOAD_GROUP_A | ( | G | ) |
Definition at line 947 of file ecp_curves.c.
Definition at line 1001 of file ecp_curves.c.
#define NEXT |
Definition at line 1001 of file ecp_curves.c.
Definition at line 605 of file ecp_curves.c.
#define P224_UNUSED_BITS ((P224_WIDTH_MAX * sizeof(mbedtls_mpi_uint) * 8) - 224) |
Definition at line 1284 of file ecp_curves.c.
#define P224_WIDTH_MAX DIV_ROUND_UP(28, sizeof(mbedtls_mpi_uint)) |
Definition at line 1283 of file ecp_curves.c.
#define P224_WIDTH_MIN (28 / sizeof(mbedtls_mpi_uint)) |
Definition at line 1282 of file ecp_curves.c.
#define P255_WIDTH (255 / 8 / sizeof(mbedtls_mpi_uint) + 1) |
Definition at line 1231 of file ecp_curves.c.
#define P448_WIDTH (448 / 8 / sizeof(mbedtls_mpi_uint)) |
Definition at line 1278 of file ecp_curves.c.
#define P521_MASK 0x01FF |
Definition at line 1179 of file ecp_curves.c.
#define P521_WIDTH (521 / 8 / sizeof(mbedtls_mpi_uint) + 1) |
Definition at line 1176 of file ecp_curves.c.
#define P_KOBLITZ_MAX (256 / 8 / sizeof(mbedtls_mpi_uint)) |
Definition at line 1361 of file ecp_curves.c.
#define P_KOBLITZ_R (8 / sizeof(mbedtls_mpi_uint)) |
Definition at line 1362 of file ecp_curves.c.
Definition at line 949 of file ecp_curves.c.
Definition at line 983 of file ecp_curves.c.
#define WIDTH 8 / sizeof(mbedtls_mpi_uint) |
Definition at line 888 of file ecp_curves.c.
Definition at line 970 of file ecp_curves.c.
|
inlinestatic |
Definition at line 867 of file ecp_curves.c.
References i.
|
inlinestatic |
Definition at line 879 of file ecp_curves.c.
References i.
|
static |
Definition at line 559 of file ecp_curves.c.
References mbedtls_ecp_group::A, a, b, mbedtls_ecp_group::B, ecp_mpi_load(), ecp_mpi_set1(), mbedtls_ecp_group::G, mbedtls_ecp_group::h, mbedtls_mpi_bitlen(), n, mbedtls_ecp_group::N, mbedtls_ecp_group::nbits, NULL, mbedtls_ecp_group::P, mbedtls_ecp_group::pbits, mbedtls_ecp_point::X, mbedtls_ecp_point::Y, and mbedtls_ecp_point::Z.
|
inlinestatic |
Definition at line 1363 of file ecp_curves.c.
References cleanup(), i, mask, MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED, mbedtls_mpi_add_abs(), MBEDTLS_MPI_CHK, mbedtls_mpi_mul_mpi(), mbedtls_mpi_shift_r(), mbedtls_mpi::n, N, mbedtls_mpi::p, P_KOBLITZ_MAX, P_KOBLITZ_R, R, and mbedtls_mpi::s.
Referenced by ecp_mod_p192k1(), ecp_mod_p224k1(), and ecp_mod_p256k1().
|
static |
Definition at line 897 of file ecp_curves.c.
References ADD, cleanup(), LAST, MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED, MBEDTLS_MPI_CHK, mbedtls_mpi_grow(), N, NEXT, and WIDTH.
|
static |
Definition at line 1446 of file ecp_curves.c.
References ecp_mod_koblitz(), MBEDTLS_BYTES_TO_T_UINT_8, and N.
Referenced by mbedtls_ecp_group_load_ncbicxx_2_28_3().
|
static |
|
static |
Definition at line 1463 of file ecp_curves.c.
References ecp_mod_koblitz(), MBEDTLS_BYTES_TO_T_UINT_8, and N.
Referenced by mbedtls_ecp_group_load_ncbicxx_2_28_3().
|
static |
Definition at line 1237 of file ecp_curves.c.
References cleanup(), i, MBEDTLS_ERR_ECP_BAD_INPUT_DATA, MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED, mbedtls_mpi_add_abs(), MBEDTLS_MPI_CHK, mbedtls_mpi_mul_int(), mbedtls_mpi_set_bit(), mbedtls_mpi_shift_r(), mbedtls_mpi::n, N, mbedtls_mpi::p, P255_WIDTH, and mbedtls_mpi::s.
Referenced by mbedtls_ecp_group_load_ncbicxx_2_28_3().
|
static |
|
static |
Definition at line 1485 of file ecp_curves.c.
References ecp_mod_koblitz(), MBEDTLS_BYTES_TO_T_UINT_8, and N.
Referenced by mbedtls_ecp_group_load_ncbicxx_2_28_3().
|
static |
|
static |
Definition at line 1297 of file ecp_curves.c.
References cleanup(), i, MBEDTLS_ERR_ECP_BAD_INPUT_DATA, MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED, mbedtls_mpi_add_mpi(), MBEDTLS_MPI_CHK, mbedtls_mpi_shift_l(), mbedtls_mpi_shift_r(), mbedtls_mpi::n, N, mbedtls_mpi::p, P224_UNUSED_BITS, P224_WIDTH_MAX, P224_WIDTH_MIN, P448_WIDTH, and mbedtls_mpi::s.
Referenced by mbedtls_ecp_group_load_ncbicxx_2_28_3().
|
static |
Definition at line 1185 of file ecp_curves.c.
References cleanup(), i, MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED, mbedtls_mpi_add_abs(), MBEDTLS_MPI_CHK, mbedtls_mpi_shift_r(), mbedtls_mpi::n, N, mbedtls_mpi::p, P521_MASK, P521_WIDTH, and mbedtls_mpi::s.
|
inlinestatic |
Definition at line 538 of file ecp_curves.c.
References len, mbedtls_mpi::n, mbedtls_mpi::p, and mbedtls_mpi::s.
Referenced by ecp_group_load().
|
inlinestatic |
Definition at line 548 of file ecp_curves.c.
References mbedtls_mpi::n, mbedtls_mpi::p, and mbedtls_mpi::s.
Referenced by ecp_group_load().
|
static |
Definition at line 656 of file ecp_curves.c.
References mbedtls_ecp_group::A, cleanup(), curve25519_a24, curve25519_part_of_n, mbedtls_ecp_group::G, mbedtls_ecp_group_free(), MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED, mbedtls_mpi_bitlen(), MBEDTLS_MPI_CHK, mbedtls_mpi_free(), mbedtls_mpi_lset(), mbedtls_mpi_read_binary(), mbedtls_mpi_set_bit(), mbedtls_mpi_shift_l(), mbedtls_mpi_sub_int(), mbedtls_ecp_group::N, mbedtls_ecp_group::nbits, mbedtls_ecp_group::P, mbedtls_ecp_group::pbits, mbedtls_ecp_point::X, mbedtls_ecp_point::Y, and mbedtls_ecp_point::Z.
Referenced by mbedtls_ecp_group_load_ncbicxx_2_28_3().
|
static |
Definition at line 705 of file ecp_curves.c.
References mbedtls_ecp_group::A, cleanup(), curve448_a24, curve448_part_of_n, mbedtls_ecp_group::G, mbedtls_ecp_group_free(), MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED, mbedtls_mpi_bitlen(), MBEDTLS_MPI_CHK, mbedtls_mpi_free(), mbedtls_mpi_init(), mbedtls_mpi_lset(), mbedtls_mpi_read_binary(), mbedtls_mpi_set_bit(), mbedtls_mpi_shift_l(), mbedtls_mpi_sub_int(), mbedtls_mpi_sub_mpi(), mbedtls_ecp_group::N, mbedtls_ecp_group::nbits, mbedtls_ecp_group::P, mbedtls_ecp_group::pbits, mbedtls_ecp_point::X, mbedtls_ecp_point::Y, and mbedtls_ecp_point::Z.
Referenced by mbedtls_ecp_group_load_ncbicxx_2_28_3().
|
static |
Definition at line 1020 of file ecp_curves.c.
int mbedtls_ecp_group_load_ncbicxx_2_28_3 | ( | mbedtls_ecp_group * | grp, |
mbedtls_ecp_group_id | id | ||
) |
Definition at line 751 of file ecp_curves.c.
References ecp_mod_p192k1(), ecp_mod_p224k1(), ecp_mod_p255(), ecp_mod_p256k1(), ecp_mod_p448(), ecp_use_curve25519(), ecp_use_curve448(), ECP_VALIDATE_RET, mbedtls_ecp_group::id, LOAD_GROUP, LOAD_GROUP_A, MBEDTLS_ECP_DP_BP256R1, MBEDTLS_ECP_DP_BP384R1, MBEDTLS_ECP_DP_BP512R1, MBEDTLS_ECP_DP_CURVE25519, MBEDTLS_ECP_DP_CURVE448, MBEDTLS_ECP_DP_NONE, MBEDTLS_ECP_DP_SECP192K1, MBEDTLS_ECP_DP_SECP192R1, MBEDTLS_ECP_DP_SECP224K1, MBEDTLS_ECP_DP_SECP224R1, MBEDTLS_ECP_DP_SECP256K1, MBEDTLS_ECP_DP_SECP256R1, MBEDTLS_ECP_DP_SECP384R1, MBEDTLS_ECP_DP_SECP521R1, mbedtls_ecp_group_free(), mbedtls_ecp_group_init(), MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE, mbedtls_ecp_group::modp, NIST_MODP, and NULL.
Definition at line 976 of file ecp_curves.c.
|
static |
Definition at line 366 of file ecp_curves.c.
|
static |
Definition at line 372 of file ecp_curves.c.
|
static |
Definition at line 378 of file ecp_curves.c.
|
static |
Definition at line 384 of file ecp_curves.c.
|
static |
Definition at line 390 of file ecp_curves.c.
|
static |
Definition at line 360 of file ecp_curves.c.
|
static |
Definition at line 410 of file ecp_curves.c.
|
static |
Definition at line 418 of file ecp_curves.c.
|
static |
Definition at line 426 of file ecp_curves.c.
|
static |
Definition at line 434 of file ecp_curves.c.
|
static |
Definition at line 442 of file ecp_curves.c.
|
static |
Definition at line 402 of file ecp_curves.c.
|
static |
Definition at line 466 of file ecp_curves.c.
|
static |
Definition at line 476 of file ecp_curves.c.
|
static |
Definition at line 486 of file ecp_curves.c.
|
static |
Definition at line 496 of file ecp_curves.c.
|
static |
Definition at line 506 of file ecp_curves.c.
|
static |
Definition at line 456 of file ecp_curves.c.
|
static |
Definition at line 647 of file ecp_curves.c.
Referenced by ecp_use_curve25519().
|
static |
Definition at line 648 of file ecp_curves.c.
Referenced by ecp_use_curve25519().
|
static |
Definition at line 694 of file ecp_curves.c.
Referenced by ecp_use_curve448().
|
static |
Definition at line 695 of file ecp_curves.c.
Referenced by ecp_use_curve448().
|
static |
Definition at line 267 of file ecp_curves.c.
|
static |
Definition at line 270 of file ecp_curves.c.
|
static |
Definition at line 273 of file ecp_curves.c.
|
static |
Definition at line 278 of file ecp_curves.c.
|
static |
Definition at line 283 of file ecp_curves.c.
|
static |
Definition at line 262 of file ecp_curves.c.
|
static |
Definition at line 60 of file ecp_curves.c.
|
static |
Definition at line 65 of file ecp_curves.c.
|
static |
Definition at line 70 of file ecp_curves.c.
|
static |
Definition at line 75 of file ecp_curves.c.
|
static |
Definition at line 55 of file ecp_curves.c.
|
static |
Definition at line 297 of file ecp_curves.c.
|
static |
Definition at line 300 of file ecp_curves.c.
|
static |
Definition at line 303 of file ecp_curves.c.
|
static |
Definition at line 309 of file ecp_curves.c.
|
static |
Definition at line 315 of file ecp_curves.c.
|
static |
Definition at line 291 of file ecp_curves.c.
|
static |
Definition at line 92 of file ecp_curves.c.
|
static |
Definition at line 98 of file ecp_curves.c.
|
static |
Definition at line 104 of file ecp_curves.c.
|
static |
Definition at line 110 of file ecp_curves.c.
|
static |
Definition at line 86 of file ecp_curves.c.
|
static |
Definition at line 330 of file ecp_curves.c.
|
static |
Definition at line 333 of file ecp_curves.c.
|
static |
Definition at line 336 of file ecp_curves.c.
|
static |
Definition at line 342 of file ecp_curves.c.
|
static |
Definition at line 348 of file ecp_curves.c.
|
static |
Definition at line 324 of file ecp_curves.c.
|
static |
Definition at line 128 of file ecp_curves.c.
|
static |
Definition at line 134 of file ecp_curves.c.
|
static |
Definition at line 140 of file ecp_curves.c.
|
static |
Definition at line 146 of file ecp_curves.c.
|
static |
Definition at line 122 of file ecp_curves.c.
|
static |
Definition at line 166 of file ecp_curves.c.
|
static |
Definition at line 174 of file ecp_curves.c.
|
static |
Definition at line 182 of file ecp_curves.c.
|
static |
Definition at line 190 of file ecp_curves.c.
|
static |
Definition at line 158 of file ecp_curves.c.
|
static |
Definition at line 215 of file ecp_curves.c.
|
static |
Definition at line 226 of file ecp_curves.c.
|
static |
Definition at line 237 of file ecp_curves.c.
|
static |
Definition at line 248 of file ecp_curves.c.
|
static |
Definition at line 204 of file ecp_curves.c.