Go to the documentation of this file.
74 #include "../bn/internal.h"
75 #include "../delocate.h"
97 if (
group->mont == NULL) {
160 const BN_ULONG *
words,
size_t num) {
214 for (
size_t i = 1;
i <
num;
i++) {
319 BN_ULONG is_nontrivial_double = ~xneq & ~yneq & z1nz & z2nz;
320 if (is_nontrivial_double) {
362 if (
group->a_is_minus3) {
369 EC_FELEM delta, gamma,
beta, ftmp, ftmp2, tmptmp, alpha, fourbeta;
458 if (!
group->field_greater_than_order ||
488 group->field.width)) {
521 out->scalar_to_montgomery_inv_vartime =
DEFINE_METHOD_FUNCTION(EC_METHOD, EC_GFp_mont_method)
void ec_GFp_mont_felem_to_bytes(const EC_GROUP *group, uint8_t *out, size_t *out_len, const EC_FELEM *in)
static int ec_GFp_mont_jacobian_to_affine_batch(const EC_GROUP *group, EC_AFFINE *out, const EC_RAW_POINT *in, size_t num)
#define ec_GFp_simple_group_set_curve
#define ec_GFp_simple_felem_to_bytes
int ec_GFp_mont_felem_from_bytes(const EC_GROUP *group, EC_FELEM *out, const uint8_t *in, size_t len)
#define ec_GFp_simple_is_at_infinity
static int ec_GFp_mont_cmp_x_coordinate(const EC_GROUP *group, const EC_RAW_POINT *p, const EC_SCALAR *r)
#define bn_mod_inverse0_prime_mont_small
#define bn_from_montgomery_small
#define OPENSSL_PUT_ERROR(library, reason)
BN_ULONG words[EC_MAX_WORDS]
void ec_GFp_mont_felem_mul(const EC_GROUP *group, EC_FELEM *r, const EC_FELEM *a, const EC_FELEM *b)
std::vector< std::string > words
void ec_GFp_mont_add(const EC_GROUP *group, EC_RAW_POINT *out, const EC_RAW_POINT *a, const EC_RAW_POINT *b)
static void ec_GFp_mont_felem_exp(const EC_GROUP *group, EC_FELEM *out, const EC_FELEM *a, const BN_ULONG *exp, size_t num_exp)
const EC_METHOD * EC_GFp_mont_method(void)
void ec_GFp_mont_group_finish(EC_GROUP *group)
#define ec_GFp_simple_group_init
#define ec_GFp_mont_mul_public_batch
#define ec_GFp_simple_group_finish
int ec_GFp_mont_group_init(EC_GROUP *group)
static void * OPENSSL_memcpy(void *dst, const void *src, size_t n)
#define ec_GFp_mont_init_precomp
#define ec_simple_scalar_inv0_montgomery
#define bn_mod_mul_montgomery_small
static void ec_GFp_mont_felem_to_montgomery(const EC_GROUP *group, EC_FELEM *out, const EC_FELEM *in)
#define BN_MONT_CTX_new_for_modulus
static void ec_GFp_mont_felem_reduce(const EC_GROUP *group, EC_FELEM *out, const BN_ULONG *words, size_t num)
#define ec_GFp_mont_mul_batch
#define ec_felem_non_zero_mask
#define bn_less_than_words
#define ec_simple_scalar_to_montgomery_inv_vartime
static int ec_GFp_mont_point_get_affine_coordinates(const EC_GROUP *group, const EC_RAW_POINT *point, EC_FELEM *x, EC_FELEM *y)
#define ec_GFp_mont_mul_base
static void ec_GFp_mont_felem_from_montgomery(const EC_GROUP *group, EC_FELEM *out, const EC_FELEM *in)
#define EC_R_POINT_AT_INFINITY
#define bn_mod_exp_mont_small
static void ec_GFp_mont_felem_inv0(const EC_GROUP *group, EC_FELEM *out, const EC_FELEM *a)
#define ec_GFp_mont_mul_precomp
#define bn_to_montgomery_small
#define ec_GFp_simple_cmp_x_coordinate
int ec_GFp_mont_group_set_curve(EC_GROUP *group, const BIGNUM *p, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx)
void ec_GFp_mont_dbl(const EC_GROUP *group, EC_RAW_POINT *r, const EC_RAW_POINT *a)
#define ec_GFp_simple_felem_from_bytes
void ec_GFp_mont_felem_sqr(const EC_GROUP *group, EC_FELEM *r, const EC_FELEM *a)
grpc
Author(s):
autogenerated on Fri May 16 2025 02:58:18