Go to the documentation of this file.
77 #include "../../internal.h"
93 group->a_is_minus3 = 0;
200 group->meth->felem_sqr;
212 if (
group->a_is_minus3) {
237 return 1 & ~(not_infinity & not_equal);
260 group->meth->felem_sqr;
263 felem_sqr(
group, &Zb23, &
b->Z);
264 felem_mul(
group, &tmp1, &
a->X, &Zb23);
265 felem_sqr(
group, &Za23, &
a->Z);
266 felem_mul(
group, &tmp2, &
b->X, &Za23);
270 felem_mul(
group, &Zb23, &Zb23, &
b->Z);
271 felem_mul(
group, &tmp1, &
a->Y, &Zb23);
272 felem_mul(
group, &Za23, &Za23, &
a->Z);
273 felem_mul(
group, &tmp2, &
b->Y, &Za23);
276 const BN_ULONG x_and_y_equal = ~(x_not_equal | y_not_equal);
280 const BN_ULONG a_and_b_infinity = ~(a_not_infinity | b_not_infinity);
282 const BN_ULONG
equal =
283 a_and_b_infinity | (a_not_infinity & b_not_infinity & x_and_y_equal);
297 group->meth->felem_sqr;
300 felem_sqr(
group, &Zb2, &
b->Z);
309 const BN_ULONG x_and_y_equal = ~(x_not_equal | y_not_equal);
313 const BN_ULONG
equal = b_not_infinity & x_and_y_equal;
333 for (
size_t i = 0;
i <
len;
i++) {
347 for (
size_t i = 0;
i <
len;
i++) {
#define ec_get_x_coordinate_as_scalar
#define EC_R_INVALID_FIELD
#define bn_set_minimal_width
int ec_GFp_simple_group_set_curve(EC_GROUP *group, const BIGNUM *p, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx)
void ec_GFp_simple_felem_to_bytes(const EC_GROUP *group, uint8_t *out, size_t *out_len, const EC_FELEM *in)
#define OPENSSL_PUT_ERROR(library, reason)
static uint8_t equal(signed char b, signed char c)
int ec_GFp_simple_cmp_x_coordinate(const EC_GROUP *group, const EC_RAW_POINT *p, const EC_SCALAR *r)
int ec_GFp_simple_group_init(EC_GROUP *group)
int ec_GFp_simple_felem_from_bytes(const EC_GROUP *group, EC_FELEM *out, const uint8_t *in, size_t len)
void ec_GFp_simple_group_finish(EC_GROUP *group)
static void * OPENSSL_memset(void *dst, int c, size_t n)
const OPENSSL_EXPORT BIGNUM * BN_value_one(void)
#define ec_scalar_equal_vartime
int ec_affine_jacobian_equal(const EC_GROUP *group, const EC_AFFINE *a, const EC_RAW_POINT *b)
#define ec_felem_to_bignum
int ec_GFp_simple_group_get_curve(const EC_GROUP *group, BIGNUM *p, BIGNUM *a, BIGNUM *b)
int ec_GFp_simple_points_equal(const EC_GROUP *group, const EC_RAW_POINT *a, const EC_RAW_POINT *b)
static void * OPENSSL_memcpy(void *dst, const void *src, size_t n)
void ec_GFp_simple_point_copy(EC_RAW_POINT *dest, const EC_RAW_POINT *src)
int ec_GFp_simple_is_on_curve(const EC_GROUP *group, const EC_RAW_POINT *point)
void ec_GFp_simple_invert(const EC_GROUP *group, EC_RAW_POINT *point)
void ec_GFp_simple_point_init(EC_RAW_POINT *point)
#define ec_felem_non_zero_mask
#define bn_less_than_words
UniquePtr< SSL_SESSION > ret
#define EC_R_DECODE_ERROR
int ec_GFp_simple_is_at_infinity(const EC_GROUP *group, const EC_RAW_POINT *point)
void ec_GFp_simple_point_set_to_infinity(const EC_GROUP *group, EC_RAW_POINT *point)
#define ec_bignum_to_felem
grpc
Author(s):
autogenerated on Thu Mar 13 2025 03:01:18