Changeset View
Changeset View
Standalone View
Standalone View
src/secp256k1/README.md
Show First 20 Lines • Show All 47 Lines • ▼ Show 20 Lines | * Point multiplication for signing | ||||
* Use a precomputed table of multiples of powers of 16 multiplied with the generator, so general multiplication becomes a series of additions. | * Use a precomputed table of multiples of powers of 16 multiplied with the generator, so general multiplication becomes a series of additions. | ||||
* Access the table with branch-free conditional moves so memory access is uniform. | * Access the table with branch-free conditional moves so memory access is uniform. | ||||
* No data-dependent branches | * No data-dependent branches | ||||
* The precomputed tables add and eventually subtract points for which no known scalar (private key) is known, preventing even an attacker with control over the private key used to control the data internally. | * The precomputed tables add and eventually subtract points for which no known scalar (private key) is known, preventing even an attacker with control over the private key used to control the data internally. | ||||
Build steps | Build steps | ||||
----------- | ----------- | ||||
libsecp256k1 is built using autotools: | libsecp256k1 can be built using autotools: | ||||
$ ./autogen.sh | ```bash | ||||
$ ./configure | ./autogen.sh | ||||
$ make | mkdir build | ||||
$ ./tests | cd build | ||||
$ sudo make install # optional | ../configure | ||||
make | |||||
make check | |||||
sudo make install # optional | |||||
``` | |||||
Or using CMake: | |||||
```bash | |||||
mkdir build | |||||
cd build | |||||
cmake -GNinja .. | |||||
ninja | |||||
ninja check-secp256k1 | |||||
``` |