Changeset View
Changeset View
Standalone View
Standalone View
src/secp256k1/src/field_10x26_impl.h
Show First 20 Lines • Show All 1,091 Lines • ▼ Show 20 Lines | #ifdef VERIFY | ||||
r->magnitude = 1; | r->magnitude = 1; | ||||
r->normalized = 0; | r->normalized = 0; | ||||
secp256k1_fe_verify(r); | secp256k1_fe_verify(r); | ||||
#endif | #endif | ||||
} | } | ||||
static SECP256K1_INLINE void secp256k1_fe_cmov(secp256k1_fe *r, const secp256k1_fe *a, int flag) { | static SECP256K1_INLINE void secp256k1_fe_cmov(secp256k1_fe *r, const secp256k1_fe *a, int flag) { | ||||
uint32_t mask0, mask1; | uint32_t mask0, mask1; | ||||
VG_CHECK_VERIFY(r->n, sizeof(r->n)); | |||||
mask0 = flag + ~((uint32_t)0); | mask0 = flag + ~((uint32_t)0); | ||||
mask1 = ~mask0; | mask1 = ~mask0; | ||||
r->n[0] = (r->n[0] & mask0) | (a->n[0] & mask1); | r->n[0] = (r->n[0] & mask0) | (a->n[0] & mask1); | ||||
r->n[1] = (r->n[1] & mask0) | (a->n[1] & mask1); | r->n[1] = (r->n[1] & mask0) | (a->n[1] & mask1); | ||||
r->n[2] = (r->n[2] & mask0) | (a->n[2] & mask1); | r->n[2] = (r->n[2] & mask0) | (a->n[2] & mask1); | ||||
r->n[3] = (r->n[3] & mask0) | (a->n[3] & mask1); | r->n[3] = (r->n[3] & mask0) | (a->n[3] & mask1); | ||||
r->n[4] = (r->n[4] & mask0) | (a->n[4] & mask1); | r->n[4] = (r->n[4] & mask0) | (a->n[4] & mask1); | ||||
r->n[5] = (r->n[5] & mask0) | (a->n[5] & mask1); | r->n[5] = (r->n[5] & mask0) | (a->n[5] & mask1); | ||||
r->n[6] = (r->n[6] & mask0) | (a->n[6] & mask1); | r->n[6] = (r->n[6] & mask0) | (a->n[6] & mask1); | ||||
r->n[7] = (r->n[7] & mask0) | (a->n[7] & mask1); | r->n[7] = (r->n[7] & mask0) | (a->n[7] & mask1); | ||||
r->n[8] = (r->n[8] & mask0) | (a->n[8] & mask1); | r->n[8] = (r->n[8] & mask0) | (a->n[8] & mask1); | ||||
r->n[9] = (r->n[9] & mask0) | (a->n[9] & mask1); | r->n[9] = (r->n[9] & mask0) | (a->n[9] & mask1); | ||||
#ifdef VERIFY | #ifdef VERIFY | ||||
if (flag) { | if (flag) { | ||||
r->magnitude = a->magnitude; | r->magnitude = a->magnitude; | ||||
r->normalized = a->normalized; | r->normalized = a->normalized; | ||||
} | } | ||||
#endif | #endif | ||||
} | } | ||||
static SECP256K1_INLINE void secp256k1_fe_storage_cmov(secp256k1_fe_storage *r, const secp256k1_fe_storage *a, int flag) { | static SECP256K1_INLINE void secp256k1_fe_storage_cmov(secp256k1_fe_storage *r, const secp256k1_fe_storage *a, int flag) { | ||||
uint32_t mask0, mask1; | uint32_t mask0, mask1; | ||||
VG_CHECK_VERIFY(r->n, sizeof(r->n)); | |||||
mask0 = flag + ~((uint32_t)0); | mask0 = flag + ~((uint32_t)0); | ||||
mask1 = ~mask0; | mask1 = ~mask0; | ||||
r->n[0] = (r->n[0] & mask0) | (a->n[0] & mask1); | r->n[0] = (r->n[0] & mask0) | (a->n[0] & mask1); | ||||
r->n[1] = (r->n[1] & mask0) | (a->n[1] & mask1); | r->n[1] = (r->n[1] & mask0) | (a->n[1] & mask1); | ||||
r->n[2] = (r->n[2] & mask0) | (a->n[2] & mask1); | r->n[2] = (r->n[2] & mask0) | (a->n[2] & mask1); | ||||
r->n[3] = (r->n[3] & mask0) | (a->n[3] & mask1); | r->n[3] = (r->n[3] & mask0) | (a->n[3] & mask1); | ||||
r->n[4] = (r->n[4] & mask0) | (a->n[4] & mask1); | r->n[4] = (r->n[4] & mask0) | (a->n[4] & mask1); | ||||
r->n[5] = (r->n[5] & mask0) | (a->n[5] & mask1); | r->n[5] = (r->n[5] & mask0) | (a->n[5] & mask1); | ||||
Show All 36 Lines |