|
purify
C++ Purify implementation with native circuit and BPP support
|
Go to the source code of this file.
Functions | |
| void | purify_fe_set_zero (purify_fe *out) |
| void | purify_fe_set_u64 (purify_fe *out, uint64_t value) |
| void | purify_fe_set_i64 (purify_fe *out, int64_t value) |
| int | purify_fe_set_b32 (purify_fe *out, const unsigned char input32[32]) |
| int | purify_fe_set_u256 (purify_fe *out, const uint64_t value[4]) |
| void | purify_fe_get_b32 (unsigned char output32[32], const purify_fe *value) |
| void | purify_fe_get_u256 (uint64_t out[4], const purify_fe *value) |
| int | purify_fe_is_zero (const purify_fe *value) |
| int | purify_fe_is_one (const purify_fe *value) |
| int | purify_fe_is_odd (const purify_fe *value) |
| int | purify_fe_eq (const purify_fe *lhs, const purify_fe *rhs) |
| void | purify_fe_negate (purify_fe *out, const purify_fe *value) |
| void | purify_fe_cmov (purify_fe *dst, const purify_fe *src, int flag) |
| void | purify_fe_inverse (purify_fe *out, const purify_fe *value) |
| void | purify_fe_inverse_var (purify_fe *out, const purify_fe *value) |
| void | purify_fe_add (purify_fe *out, const purify_fe *lhs, const purify_fe *rhs) |
| void | purify_fe_sub (purify_fe *out, const purify_fe *lhs, const purify_fe *rhs) |
| void | purify_fe_mul (purify_fe *out, const purify_fe *lhs, const purify_fe *rhs) |
| void | purify_fe_square (purify_fe *out, const purify_fe *value) |
| void | purify_fe_pow (purify_fe *out, const purify_fe *value, const uint64_t exponent[4]) |
| int | purify_fe_is_square (const purify_fe *value) |
| int | purify_fe_legendre_symbol (const purify_fe *value) |
| int | purify_fe_sqrt (purify_fe *out, const purify_fe *value) |
Variables | |
| static const uint64_t | kPurifyFieldPrime [4] |
| static const uint64_t | kPurifyU256One [4] |
Definition at line 100 of file field.c.
References purify_scalar_add(), and purify_fe::value.
Referenced by purify_curve_combine(), purify_curve_complete_add(), purify_curve_complete_double(), purify_curve_double(), purify_curve_is_x_coord(), purify_curve_lift_x(), purify_fe_sqrt(), and purify_fe_sub().
Definition at line 86 of file field.c.
References purify_scalar_cmov(), and purify_fe::value.
Referenced by purify_curve_complete_assign().
Definition at line 77 of file field.c.
References purify_scalar_eq(), and purify_fe::value.
Referenced by purify_curve_add(), purify_curve_add_mixed(), and purify_fe_sqrt().
| void purify_fe_get_b32 | ( | unsigned char | output32[32], |
| const purify_fe * | value | ||
| ) |
Definition at line 55 of file field.c.
References purify_scalar_get_b32(), and purify_fe::value.
Referenced by purify_fe_get_u256().
| void purify_fe_get_u256 | ( | uint64_t | out[4], |
| const purify_fe * | value | ||
| ) |
Definition at line 59 of file field.c.
References purify_fe_get_b32().
Definition at line 90 of file field.c.
References purify_scalar_inverse(), and purify_fe::value.
Referenced by purify_curve_combine(), and purify_curve_mul_secret_affine().
Definition at line 95 of file field.c.
References purify_scalar_inverse_var(), and purify_fe::value.
Referenced by purify_curve_affine().
| int purify_fe_is_odd | ( | const purify_fe * | value | ) |
Definition at line 73 of file field.c.
References purify_scalar_is_even(), and purify_fe::value.
| int purify_fe_is_one | ( | const purify_fe * | value | ) |
Definition at line 69 of file field.c.
References purify_scalar_is_one(), and purify_fe::value.
Referenced by purify_curve_add(), purify_curve_secret_input_point(), and purify_fe_is_square().
| int purify_fe_is_square | ( | const purify_fe * | value | ) |
Definition at line 139 of file field.c.
References kPurifyFieldPrime, kPurifyU256One, purify_fe_is_one(), purify_fe_is_zero(), and purify_fe_pow().
Referenced by purify::FieldElement::is_square(), purify_fe_legendre_symbol(), and purify_fe_sqrt().
| int purify_fe_is_zero | ( | const purify_fe * | value | ) |
Definition at line 65 of file field.c.
References purify_scalar_is_zero(), and purify_fe::value.
Referenced by purify_curve_add(), purify_curve_add_mixed(), purify_curve_affine(), purify_curve_double(), purify_curve_mul_secret_affine(), purify_curve_secret_input_point(), purify_fe_is_square(), purify_fe_legendre_symbol(), and purify_fe_sqrt().
| int purify_fe_legendre_symbol | ( | const purify_fe * | value | ) |
Definition at line 154 of file field.c.
References purify_fe_is_square(), and purify_fe_is_zero().
Referenced by purify::legendre_symbol(), purify_curve_is_x_coord(), and purify_fe_sqrt().
Definition at line 112 of file field.c.
References purify_scalar_mul(), and purify_fe::value.
Referenced by purify_curve_add(), purify_curve_add_mixed(), purify_curve_affine(), purify_curve_combine(), purify_curve_complete_add(), purify_curve_complete_double(), purify_curve_double(), purify_curve_is_x_coord(), purify_curve_lift_x(), purify_curve_mul_secret_affine(), purify_fe_pow(), purify_fe_sqrt(), and purify_fe_square().
Definition at line 81 of file field.c.
References purify_scalar_negate(), and purify_fe::value.
Referenced by purify_curve_negate(), purify_fe_set_i64(), and purify_fe_sub().
Definition at line 122 of file field.c.
References purify_fe_mul(), purify_fe_set_u64(), and purify_fe_square().
Referenced by purify::FieldElement::pow(), purify_fe_is_square(), and purify_fe_sqrt().
| int purify_fe_set_b32 | ( | purify_fe * | out, |
| const unsigned char | input32[32] | ||
| ) |
Definition at line 43 of file field.c.
References purify_scalar_set_b32(), and purify_fe::value.
Referenced by purify_fe_set_u256().
| void purify_fe_set_i64 | ( | purify_fe * | out, |
| int64_t | value | ||
| ) |
Definition at line 33 of file field.c.
References purify_fe_negate(), and purify_fe_set_u64().
| int purify_fe_set_u256 | ( | purify_fe * | out, |
| const uint64_t | value[4] | ||
| ) |
Definition at line 49 of file field.c.
References purify_fe_set_b32().
Referenced by purify_curve_field_di(), and purify_curve_hash_to_curve().
| void purify_fe_set_u64 | ( | purify_fe * | out, |
| uint64_t | value | ||
| ) |
Definition at line 29 of file field.c.
References purify_scalar_set_u64(), and purify_fe::value.
Referenced by purify_curve_add(), purify_curve_add_mixed(), purify_curve_combine(), purify_curve_complete_identity(), purify_curve_double(), purify_curve_field_a(), purify_curve_field_b(), purify_curve_field_d(), purify_curve_jacobian_infinity(), purify_curve_lift_x(), purify_curve_secret_input_point(), purify_fe_pow(), purify_fe_set_i64(), and purify_fe_sqrt().
| void purify_fe_set_zero | ( | purify_fe * | out | ) |
Definition at line 25 of file field.c.
References purify_scalar_set_int(), and purify_fe::value.
Referenced by purify_curve_affine(), purify_curve_complete_identity(), purify_curve_jacobian_infinity(), and purify_fe_sqrt().
Definition at line 161 of file field.c.
References kPurifyFieldPrime, kPurifyU256One, purify_fe_add(), purify_fe_eq(), purify_fe_is_square(), purify_fe_is_zero(), purify_fe_legendre_symbol(), purify_fe_mul(), purify_fe_pow(), purify_fe_set_u64(), purify_fe_set_zero(), and purify_fe_square().
Referenced by purify_curve_lift_x(), and purify::FieldElement::sqrt().
Definition at line 118 of file field.c.
References purify_fe_mul().
Referenced by purify_fe_pow(), purify_fe_sqrt(), and purify::square().
Definition at line 106 of file field.c.
References purify_fe_add(), and purify_fe_negate().
Referenced by purify_curve_add(), purify_curve_add_mixed(), purify_curve_combine(), purify_curve_complete_add(), purify_curve_complete_double(), and purify_curve_double().
|
static |
Definition at line 9 of file field.c.
Referenced by purify_fe_is_square(), and purify_fe_sqrt().
|
static |
Definition at line 21 of file field.c.
Referenced by purify_fe_is_square(), and purify_fe_sqrt().