Changeset View
Changeset View
Standalone View
Standalone View
src/secp256k1/src/group_impl.h
Show All 32 Lines | |||||
* assert(P.order() == order) | * assert(P.order() == order) | ||||
* | * | ||||
* 3. Print the values. You'll need to use a vim macro or something to | * 3. Print the values. You'll need to use a vim macro or something to | ||||
* split the hex output into 4-byte chunks. | * split the hex output into 4-byte chunks. | ||||
* print "%x %x" % P.xy() | * print "%x %x" % P.xy() | ||||
*/ | */ | ||||
#if defined(EXHAUSTIVE_TEST_ORDER) | #if defined(EXHAUSTIVE_TEST_ORDER) | ||||
# if EXHAUSTIVE_TEST_ORDER == 199 | # if EXHAUSTIVE_TEST_ORDER == 199 | ||||
const secp256k1_ge secp256k1_ge_const_g = SECP256K1_GE_CONST( | static const secp256k1_ge secp256k1_ge_const_g = SECP256K1_GE_CONST( | ||||
0xFA7CC9A7, 0x0737F2DB, 0xA749DD39, 0x2B4FB069, | 0xFA7CC9A7, 0x0737F2DB, 0xA749DD39, 0x2B4FB069, | ||||
0x3B017A7D, 0xA808C2F1, 0xFB12940C, 0x9EA66C18, | 0x3B017A7D, 0xA808C2F1, 0xFB12940C, 0x9EA66C18, | ||||
0x78AC123A, 0x5ED8AEF3, 0x8732BC91, 0x1F3A2868, | 0x78AC123A, 0x5ED8AEF3, 0x8732BC91, 0x1F3A2868, | ||||
0x48DF246C, 0x808DAE72, 0xCFE52572, 0x7F0501ED | 0x48DF246C, 0x808DAE72, 0xCFE52572, 0x7F0501ED | ||||
); | ); | ||||
const int CURVE_B = 4; | static const int CURVE_B = 4; | ||||
# elif EXHAUSTIVE_TEST_ORDER == 13 | # elif EXHAUSTIVE_TEST_ORDER == 13 | ||||
const secp256k1_ge secp256k1_ge_const_g = SECP256K1_GE_CONST( | static const secp256k1_ge secp256k1_ge_const_g = SECP256K1_GE_CONST( | ||||
0xedc60018, 0xa51a786b, 0x2ea91f4d, 0x4c9416c0, | 0xedc60018, 0xa51a786b, 0x2ea91f4d, 0x4c9416c0, | ||||
0x9de54c3b, 0xa1316554, 0x6cf4345c, 0x7277ef15, | 0x9de54c3b, 0xa1316554, 0x6cf4345c, 0x7277ef15, | ||||
0x54cb1b6b, 0xdc8c1273, 0x087844ea, 0x43f4603e, | 0x54cb1b6b, 0xdc8c1273, 0x087844ea, 0x43f4603e, | ||||
0x0eaf9a43, 0xf6effe55, 0x939f806d, 0x37adf8ac | 0x0eaf9a43, 0xf6effe55, 0x939f806d, 0x37adf8ac | ||||
); | ); | ||||
const int CURVE_B = 2; | static const int CURVE_B = 2; | ||||
# else | # else | ||||
# error No known generator for the specified exhaustive test group order. | # error No known generator for the specified exhaustive test group order. | ||||
# endif | # endif | ||||
#else | #else | ||||
/** Generator for secp256k1, value 'g' defined in | /** Generator for secp256k1, value 'g' defined in | ||||
* "Standards for Efficient Cryptography" (SEC2) 2.7.1. | * "Standards for Efficient Cryptography" (SEC2) 2.7.1. | ||||
*/ | */ | ||||
static const secp256k1_ge secp256k1_ge_const_g = SECP256K1_GE_CONST( | static const secp256k1_ge secp256k1_ge_const_g = SECP256K1_GE_CONST( | ||||
0x79BE667EUL, 0xF9DCBBACUL, 0x55A06295UL, 0xCE870B07UL, | 0x79BE667EUL, 0xF9DCBBACUL, 0x55A06295UL, 0xCE870B07UL, | ||||
0x029BFCDBUL, 0x2DCE28D9UL, 0x59F2815BUL, 0x16F81798UL, | 0x029BFCDBUL, 0x2DCE28D9UL, 0x59F2815BUL, 0x16F81798UL, | ||||
0x483ADA77UL, 0x26A3C465UL, 0x5DA4FBFCUL, 0x0E1108A8UL, | 0x483ADA77UL, 0x26A3C465UL, 0x5DA4FBFCUL, 0x0E1108A8UL, | ||||
0xFD17B448UL, 0xA6855419UL, 0x9C47D08FUL, 0xFB10D4B8UL | 0xFD17B448UL, 0xA6855419UL, 0x9C47D08FUL, 0xFB10D4B8UL | ||||
); | ); | ||||
const int CURVE_B = 7; | static const int CURVE_B = 7; | ||||
#endif | #endif | ||||
static void secp256k1_ge_set_gej_zinv(secp256k1_ge *r, const secp256k1_gej *a, const secp256k1_fe *zi) { | static void secp256k1_ge_set_gej_zinv(secp256k1_ge *r, const secp256k1_gej *a, const secp256k1_fe *zi) { | ||||
secp256k1_fe zi2; | secp256k1_fe zi2; | ||||
secp256k1_fe zi3; | secp256k1_fe zi3; | ||||
secp256k1_fe_sqr(&zi2, zi); | secp256k1_fe_sqr(&zi2, zi); | ||||
secp256k1_fe_mul(&zi3, &zi2, zi); | secp256k1_fe_mul(&zi3, &zi2, zi); | ||||
secp256k1_fe_mul(&r->x, &a->x, &zi2); | secp256k1_fe_mul(&r->x, &a->x, &zi2); | ||||
▲ Show 20 Lines • Show All 627 Lines • Show Last 20 Lines |