Bitcoin Core
27.99.0
P2P Digital Currency
|
Go to the source code of this file.
Macros | |
#define | SECP256K1_G_ORDER_7 |
#define | SECP256K1_G_ORDER_13 |
#define | SECP256K1_G_ORDER_199 |
#define | SECP256K1_G |
Generator for secp256k1, value 'g' defined in "Standards for Efficient Cryptography" (SEC2) 2.7.1. More... | |
#define | SECP256K1_B 7 |
Variables | |
static const secp256k1_ge | secp256k1_ge_const_g = SECP256K1_G |
#define SECP256K1_B 7 |
Definition at line 71 of file group_impl.h.
#define SECP256K1_G |
Generator for secp256k1, value 'g' defined in "Standards for Efficient Cryptography" (SEC2) 2.7.1.
Definition at line 36 of file group_impl.h.
#define SECP256K1_G_ORDER_13 |
Definition at line 21 of file group_impl.h.
#define SECP256K1_G_ORDER_199 |
Definition at line 27 of file group_impl.h.
#define SECP256K1_G_ORDER_7 |
Definition at line 15 of file group_impl.h.
|
static |
Definition at line 308 of file group_impl.h.
|
static |
|
static |
Definition at line 859 of file group_impl.h.
|
static |
|
static |
Definition at line 141 of file group_impl.h.
|
static |
|
static |
Definition at line 884 of file group_impl.h.
|
static |
Definition at line 147 of file group_impl.h.
|
static |
|
static |
|
static |
Definition at line 157 of file group_impl.h.
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
Definition at line 846 of file group_impl.h.
|
static |
Definition at line 76 of file group_impl.h.
|
static |
Definition at line 925 of file group_impl.h.
|
static |
Definition at line 917 of file group_impl.h.
|
static |
Definition at line 693 of file group_impl.h.
|
static |
Definition at line 559 of file group_impl.h.
|
static |
Definition at line 495 of file group_impl.h.
|
static |
We need to calculate (rx,ry,rz) = (ax,ay,az) + (bx,by,1/bzinv). Due to secp256k1's isomorphism we can multiply the Z coordinates on both sides by bzinv, and get: (rx,ry,rz*bzinv) = (ax,ay,az*bzinv) + (bx,by,1). This means that (rx,ry,rz) can be calculated as (ax,ay,az*bzinv) + (bx,by,1), when not applying the bzinv factor to rz. The variable az below holds the modified Z coordinate for a, which is used for the computation of rx and ry, but not for rz.
Definition at line 622 of file group_impl.h.
|
static |
Definition at line 299 of file group_impl.h.
|
static |
Definition at line 867 of file group_impl.h.
|
static |
|
static |
For secp256k1, 2Q is infinity if and only if Q is infinity. This is because if 2Q = infinity, Q must equal -Q, or that Q.y == -(Q.y), or Q.y is 0. For a point on y^2 = x^3 + 7 to have y=0, x^3 must be -7 mod p. However, -7 has no cube root mod p.
Having said this, if this function receives a point on a sextic twist, e.g. by a fault attack, it is possible for y to be 0. This happens for y^2 = x^3 + 6, since -6 does have a cube root mod p. For this point, this function will not set the infinity flag even though the point doubles to infinity, and the result point will be gibberish (z = 0 but infinity = 0).
Definition at line 464 of file group_impl.h.
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
Definition at line 830 of file group_impl.h.
|
static |
|
static |
|
static |
Definition at line 85 of file group_impl.h.
|
static |
Definition at line 70 of file group_impl.h.