1883 Commits

Author SHA1 Message Date
Hennadii Stepanov
04d4cc071a
cmake: Add DESCRIPTION and HOMEPAGE_URL options to project command
`DESCRIPTION` is available in CMake 3.9+.
`HOMEPAGE_URL` is available in CMake 3.12+.
2023-04-20 17:00:10 +01:00
Hennadii Stepanov
8a8b6536ef
cmake: Use SameMinorVersion compatibility mode
Available in CMake 3.11+.
2023-04-20 17:00:03 +01:00
Tim Ruffing
5b0444a3b5
Merge bitcoin-core/secp256k1#1263: cmake: Make installation optional
47ac3d63cd5e00a2d50cb489461c8bc349d37912 cmake: Make installation optional (Anna “CyberTailor”)

Pull request description:

  Useful for embedding secp256k1 in a subproject.

ACKs for top commit:
  theuni:
    ACK 47ac3d63cd5e00a2d50cb489461c8bc349d37912.
  real-or-random:
    utACK 47ac3d63cd5e00a2d50cb489461c8bc349d37912
  hebasto:
    ACK 47ac3d63cd5e00a2d50cb489461c8bc349d37912, tested on Ubuntu 23.04.

Tree-SHA512: 12ac0ba9dc38adf45684055386280b669384b5a4e528a3f6f4470fd0b7f57d64dfed6a8bb9f0a84cacfcb72f509534d71676c5ba37b27297b1a96676eea44e6e
2023-04-20 17:44:44 +02:00
Anna “CyberTailor”
47ac3d63cd
cmake: Make installation optional
Useful for embedding secp256k1 in a subproject.
2023-04-20 19:20:33 +05:00
Tim Ruffing
2e035af251
Merge bitcoin-core/secp256k1#1273: build: Make SECP_VALGRIND_CHECK preserve CPPFLAGS
1ecb94ebe9800900c7dd3a4f9883c600e25eecf7 build: Make `SECP_VALGRIND_CHECK` preserve `CPPFLAGS` (Hennadii Stepanov)

Pull request description:

  It was overlooked in #862 and #1027.

ACKs for top commit:
  real-or-random:
    utACK 1ecb94ebe9800900c7dd3a4f9883c600e25eecf7

Tree-SHA512: 263fc600ce9743e4aad767150f706bf7d4325dabb9c363ed57f08fe38faea94d7d1999804947cffeacbe698bb6d959ee6de3f6e50400050a390ecc0db957e426
2023-04-20 10:34:04 +02:00
Tim Ruffing
5be353d658
Merge bitcoin-core/secp256k1#1279: tests: lint wycheproof's python script
35ada3b954ccc6c54628fb3bcc0365d176297019 tests: lint wycheproof's python script (RandomLattice)

Pull request description:

  This PR lints tests_wycheproof_generate.py according to bitcoin's python linting scripts. This is a follow-up to PR #1245.

ACKs for top commit:
  sipa:
    utACK 35ada3b954ccc6c54628fb3bcc0365d176297019
  real-or-random:
    utACK 35ada3b954ccc6c54628fb3bcc0365d176297019

Tree-SHA512: ea405060d2e73ff3543626687de5bc5282be923b914bd5c8c53e65df8dca9bea0000c416603095efff29bc7ae43c2081454c4e506db0f6805443d023fbffaf4c
2023-04-19 16:28:39 +02:00
Tim Ruffing
04bf3f6778
Merge bitcoin-core/secp256k1#1230: Build: allow static or shared but not both
ef49a11d29601e09e94134975c968e92c0214102 build: allow static or shared but not both (Cory Fields)
36b0adf1b90139a41fdcb94390d0bb06e9224795 build: remove warning until it's reproducible (Cory Fields)

Pull request description:

  Continuing from here: https://github.com/bitcoin-core/secp256k1/issues/1224#issuecomment-1460438227

  Unfortunately it wasn't really possible to keep a clean diff here because of the nature of the change. I suggest reviewing the lib creation stuff in its entirety, sorry about that :\

  Rather than allowing for shared and static libs to be built at the same time like autotools, this PR switches to the CMake convention of allowing only 1.

  A new `BUILD_SHARED_LIBS` option is added to match CMake convention, as well as a `SECP256K1_DISABLE_SHARED` option which overrides it. That way even projects which have `BUILD_SHARED_LIBS=1` can opt-into a static libsecp in particular.

  Details:

  Two object libraries are created: `secp256k1_asm` and `secp256k1_precomputed_objs`. Some tests/benchmarks use the object libraries directly, some link against the real lib: `secp256k1`.

  Because the objs don't know what they're going to be linked into, they need to be told how to deal with PIC.

  The `DEFINE_SYMBOL` property sets the `DLL_EXPORT` define as necessary (when building a shared lib)

ACKs for top commit:
  hebasto:
    re-ACK ef49a11d29601e09e94134975c968e92c0214102, only [suggested](https://github.com/bitcoin-core/secp256k1/pull/1230#pullrequestreview-1388191165) changes since my recent [review](https://github.com/bitcoin-core/secp256k1/pull/1230#pullrequestreview-1352125381).
  real-or-random:
    ACK ef49a11d29601e09e94134975c968e92c0214102

Tree-SHA512: 8870de305176fdb677caff0fdfc6f8c59c0e906489cb72bc9980e551002812685e59e20d731f2a82e33628bdfbb7261eafd6f228038cad3ec83bd74335959600
2023-04-18 12:54:03 +02:00
Tim Ruffing
9ce9984f32
Merge bitcoin-core/secp256k1#1265: Remove bits argument from secp256k1_wnaf_const{_xonly}
a575339c0282ba49a4f46c9c660a4cc3b6bfc703 Remove bits argument from secp256k1_wnaf_const (always 256) (Pieter Wuille)

Pull request description:

  There is little reason for having the number of bits in the scalar as a parameter, as I don't think there are any (current) use cases for non-256-bit scalars.

ACKs for top commit:
  jonasnick:
    ACK a575339c0282ba49a4f46c9c660a4cc3b6bfc703
  real-or-random:
    utACK a575339c0282ba49a4f46c9c660a4cc3b6bfc703

Tree-SHA512: 994b1f19b4c513f6d070ed259a5d6f221a0c2450271ec824c5eba1cd0ecace276de391c170285bfeae96aaf8f1e0f7fe6260966ded0336c75c522ab6c56d182c
2023-04-18 12:25:09 +02:00
Jonas Nick
566faa17d3
Merge bitcoin-core/secp256k1#1267: doc: clarify process for patch releases
1b6fb5593c3b0dad8f8ad17ddd29ca30ebd00af3 doc: clarify process for patch releases (Jonas Nick)

Pull request description:

ACKs for top commit:
  real-or-random:
    ACK 1b6fb5593c3b0dad8f8ad17ddd29ca30ebd00af3

Tree-SHA512: 5c1da34c920f66327b91c1fd11ad2eccbb55c5befdb3ba59138faf921ce83d0e7c62de84f2431b0a63433f1edc0f7f0f025a852a76dd3638e3fd583ca13b83e4
2023-04-18 08:19:51 +00:00
Cory Fields
ef49a11d29 build: allow static or shared but not both 2023-04-17 16:25:27 +00:00
RandomLattice
35ada3b954 tests: lint wycheproof's python script
This PR lints tests_wycheproof_generate.py according to pylint.
This is a follow-up to PR #1245.

Co-authored-by: Sean Andersen <6730974+andozw@users.noreply.github.com>
2023-04-14 18:59:35 +02:00
Tim Ruffing
4258c54f4e
Merge bitcoin-core/secp256k1#1276: autotools: Don't regenerate Wycheproof header automatically
06c67dea9f6d46d3e24e810900fbb03045eae641 autotools: Don't regenerate Wycheproof header automatically (Tim Ruffing)

Pull request description:

  This is a hot fix for https://github.com/bitcoin/bitcoin/pull/27445 .

  ---

  Pregenerated files that we distribute should not have dependencies in Makefile.am. For rationale, see the comments about the precomputed table files.

  See also https://github.com/bitcoin/bitcoin/pull/27445#issuecomment-1502994264 .

ACKs for top commit:
  hebasto:
    ACK 06c67dea9f6d46d3e24e810900fbb03045eae641
  RandomLattice:
    ACK 06c67dea9f

Tree-SHA512: fa7f44eaa1c7e42ecba5829ac1b8ae8b5826d1a1551e01c3caf37af780bd5c102c8f54e88520723937f7016d93c67b62a334c7a28b96c4f422a38fcf8e6a1984
2023-04-14 13:46:48 +02:00
Tim Ruffing
06c67dea9f autotools: Don't regenerate Wycheproof header automatically
Pregenerated files that we distribute should not have dependencies
in Makefile.am. For rationale, see the comments about the precomputed
table files.

See also https://github.com/bitcoin/bitcoin/pull/27445#issuecomment-1502994264 .
2023-04-14 07:59:57 +02:00
Hennadii Stepanov
1ecb94ebe9
build: Make SECP_VALGRIND_CHECK preserve CPPFLAGS 2023-04-11 18:59:12 +01:00
Jonas Nick
3bab71cf05
Merge bitcoin-core/secp256k1#1268: release cleanup: bump version after 0.3.1
656c6ea8d8ec5b4f1fa91bc7f0a0ecd10c5cf5a0 release cleanup: bump version after 0.3.1 (Jonas Nick)

Pull request description:

ACKs for top commit:
  sipa:
    ACK 656c6ea8d8ec5b4f1fa91bc7f0a0ecd10c5cf5a0
  real-or-random:
    ACK 656c6ea8d8ec5b4f1fa91bc7f0a0ecd10c5cf5a0

Tree-SHA512: da24326ed5feaa6a432522bddd64e6c129455cfe55a9e2decfce8c6039f4ce1a1da64233d17200f45d2c142f5414505b9a9b2ef5d136e047c1dd6cfdde1b560d
2023-04-10 20:05:59 +00:00
Jonas Nick
656c6ea8d8
release cleanup: bump version after 0.3.1 2023-04-10 19:50:27 +00:00
Jonas Nick
346a053d4c
Merge bitcoin-core/secp256k1#1269: changelog: Fix link
6a37b2a5ea9075c5dff14b3067c61114a334a2ba changelog: Fix link (Tim Ruffing)

Pull request description:

Top commit has no ACKs.

Tree-SHA512: 70d50c8fe958a197eb527e51c6f8120609e3166d93bfc1bbec75a3cb565c406d5ba0e6d088a724dcfda422b6594abf53f507211946a0533515df371d5d2a91bf
2023-04-10 19:31:28 +00:00
Tim Ruffing
6a37b2a5ea changelog: Fix link 2023-04-10 20:52:11 +02:00
Jonas Nick
ec98fcedd5
Merge bitcoin-core/secp256k1#1266: release: Prepare for 0.3.1
898e1c676e177af73b2c7b540cc93e72a2790fa2 release: Prepare for 0.3.1 (Tim Ruffing)
1d9a13fc2640b9bf870cba65dc69c504c1c9468d changelog: Remove inconsistent newlines (Tim Ruffing)
0e091669a13190289ed9dcc2ea9b8c330412cbc7 changelog: Catch up in preparation of 0.3.1 (Tim Ruffing)

Pull request description:

ACKs for top commit:
  sipa:
    ACK 898e1c676e177af73b2c7b540cc93e72a2790fa2
  jonasnick:
    ACK 898e1c676e177af73b2c7b540cc93e72a2790fa2

Tree-SHA512: 941b1524f8b34ca803a2ede55a7baf54d2faa69a4c5e47254297e96cc4ac2121094ed90e7cd64a708f3e9af830b0de0ef3c755dfee1b01ce958cc998fc1a1311
2023-04-10 17:28:39 +00:00
Jonas Nick
1b6fb5593c
doc: clarify process for patch releases 2023-04-10 15:19:07 +00:00
Tim Ruffing
898e1c676e release: Prepare for 0.3.1 2023-04-10 17:12:12 +02:00
Tim Ruffing
1d9a13fc26 changelog: Remove inconsistent newlines 2023-04-10 16:45:38 +02:00
Tim Ruffing
0e091669a1 changelog: Catch up in preparation of 0.3.1
Co-authored-by: Pieter Wuille <pieter@wuille.net>
2023-04-10 16:45:38 +02:00
Pieter Wuille
7b7503dac5
Merge bitcoin-core/secp256k1#1245: tests: Add Wycheproof ECDSA vectors
e5de45460953c8ae16521b1928ac14de218998a3 tests: Add Wycheproof ECDSA vectors (RandomLattice)

Pull request description:

  This PR adds a test using the Wycheproof vectors as outlined in #1106. We add all 463 ECDSA test vectors. These vectors cover:
  - edge cases in arithmetic operations
  - signatures with special values for (r,s) that should be rejected
  - special cases of public keys

  The vectors are pulled from the Wycheproof project using a python script to emit C code.

  All the new ECDSA Wycheproof vectors pass.

ACKs for top commit:
  sipa:
    ACK e5de45460953c8ae16521b1928ac14de218998a3
  real-or-random:
    ACK e5de45460953c8ae16521b1928ac14de218998a3

Tree-SHA512: e9684f14ff3f5225a4a4949b490e07527d559c28aa61ed03c03bc52ea64785f0b80b9e1b1628665eacf24006526271ea0fb108629c9c3c1d758e52d214a056f1
2023-04-10 09:29:02 -04:00
Pieter Wuille
a575339c02 Remove bits argument from secp256k1_wnaf_const (always 256) 2023-04-10 06:40:21 -04:00
Tim Ruffing
145078c418
Merge bitcoin-core/secp256k1#1118: Add x-only ecmult_const version with x specified as n/d
0f8642079b0f2e4874393792f5854e3c33742cbd Add exhaustive tests for ecmult_const_xonly (Pieter Wuille)
4485926ace489d87929be5218ae1ff3aa8591006 Add x-only ecmult_const version for x=n/d (Pieter Wuille)

Pull request description:

  This implements a generalization of Peter Dettman's sqrt-less x-only random-base multiplication algorithm from #262, using the Jacobi symbol algorithm from #979. The generalization is to permit the X coordinate of the base point to be specified as a fraction $n/d$:

  To compute $x(q \cdot P)$, where $x(P) = n/d$:
  * Compute $g=n^3 + 7d^3$.
  * Let $P' = (ng, g^2, 1)$ (the Jacobian coordinates of $P$ mapped to the isomorphic curve $y^2 = x^3 + 7(dg)^3$).
  * Compute the Jacobian coordinates $(X',Y',Z') = q \cdot P'$ on the isomorphic curve.
  * Return $X'/(dgZ'^2)$, which is the affine x coordinate on the isomorphic curve $X/Z'^2$ mapped back to secp256k1.

  This ability to specify the X coordinate as a fraction is useful in the context of x-only [Elligator Swift](https://eprint.iacr.org/2022/759), which can decode to X coordinates on the curve without inversions this way.

ACKs for top commit:
  jonasnick:
    ACK 0f8642079b0f2e4874393792f5854e3c33742cbd
  real-or-random:
    ACK 0f8642079b0f2e4874393792f5854e3c33742cbd

Tree-SHA512: eeedb3045bfabcb4bcaf3a1738067c83a5ea9a79b150b8fd1c00dc3f68505d34c19654885a90e2292ae40ddf40a58dfb27197d98eebcf5d6d9e25897e07ae595
2023-04-10 08:24:05 +02:00
RandomLattice
e5de454609 tests: Add Wycheproof ECDSA vectors
Adds a test using the Wycheproof vectors as outlined in #1106. The
vectors are taken from the Wycheproof repo. We use a python script
to convert the JSON-formatted vectors into C code.

Co-authored-by: Sean Andersen <6730974+andozw@users.noreply.github.com>
2023-04-09 06:17:16 +02:00
Pieter Wuille
0f8642079b Add exhaustive tests for ecmult_const_xonly 2023-04-08 15:25:41 -04:00
Pieter Wuille
4485926ace Add x-only ecmult_const version for x=n/d 2023-04-08 15:24:36 -04:00
Tim Ruffing
a0f4644f7e
Merge bitcoin-core/secp256k1#1252: Make position of * in pointer declarations in include/ consistent
3d1f430f9f32d45885b0a10b448c0f15386c423d Make position of * in pointer declarations in include/ consistent (Jonas Nick)

Pull request description:

ACKs for top commit:
  sipa:
    utACK 3d1f430f9f32d45885b0a10b448c0f15386c423d. I have not verified these are the only instances where changes would need to be made.
  apoelstra:
    utACK 3d1f430 from me too. I also value consistency more than either specific choice.'
  real-or-random:
    utACK 3d1f430f9f

Tree-SHA512: 6361880f4a47e58c83623f094dd121882752fa805e275033cd638d1e8d3477ade9037e5d9e34a57ae46013848648bd7ab764cad326133f2d3435c9a70a0c841b
2023-04-08 09:44:12 +02:00
Jonas Nick
4e682626a3
Merge bitcoin-core/secp256k1#1226: Add CMake instructions to release process
0c07c828340b66d563499a4795844c8325e089e9 Add CMake instructions to release process (Tim Ruffing)

Pull request description:

ACKs for top commit:
  hebasto:
    ACK 0c07c828340b66d563499a4795844c8325e089e9
  jonasnick:
    ACK 0c07c828340b66d563499a4795844c8325e089e9

Tree-SHA512: a2c38f71cc96766f833f6ed79af1b560501f2d9516843b789de06c9cbffd7a1d9e8709a2f4d08bea8c1c3616301e51942cfa9f11e25e903ee4146c7733a8cb8c
2023-04-07 15:07:00 +00:00
Tim Ruffing
2d51a454fc
Merge bitcoin-core/secp256k1#1257: ct: Use volatile "trick" in all fe/scalar cmov implementations
4a496a36fb07d6cc8c99e591994f4ce0c3b1174c ct: Use volatile "trick" in all fe/scalar cmov implementations (Tim Ruffing)

Pull request description:

  Apparently clang 15 is able to compile our cmov code into a branch, at least for fe_cmov and fe_storage_cmov. This commit makes the condition volatile in all cmov implementations (except ge but that one only calls into the fe impls).

  This is just a quick fix. We should still look into other methods, e.g., asm and #457. We should also consider not caring about constant-time in scalar_low_impl.h

  We should also consider testing on very new compilers in nightly CI, see https://github.com/bitcoin-core/secp256k1/pull/864#issuecomment-769211867

ACKs for top commit:
  jonasnick:
    ACK 4a496a36fb07d6cc8c99e591994f4ce0c3b1174c

Tree-SHA512: a6010f9d752e45f01f88b804a9b27e77caf5ddf133ddcbc4235b94698bda41c9276bf588c93710e538250d1a96844bcec198ec5459e675f166ceaaa42da921d5
2023-04-06 03:59:30 +02:00
Tim Ruffing
4a496a36fb ct: Use volatile "trick" in all fe/scalar cmov implementations
Apparently clang 15 is able to compile our cmov code into a branch,
at least for fe_cmov and fe_storage_cmov. This commit makes the
condition volatile in all cmov implementations (except ge but that
one only calls into the fe impls).

This is just a quick fix. We should still look into other methods,
e.g., asm and #457. We should also consider not caring about
constant-time in scalar_low_impl.h

We should also consider testing on very new compilers in nightly CI,
see https://github.com/bitcoin-core/secp256k1/pull/864#issuecomment-769211867
2023-04-01 15:58:24 +09:00
Jonas Nick
3d1f430f9f
Make position of * in pointer declarations in include/ consistent 2023-03-28 19:39:02 +00:00
Jonas Nick
2bca0a5cbf
Merge bitcoin-core/secp256k1#1241: build: Improve SECP_TRY_APPEND_DEFAULT_CFLAGS macro
3addb4c1e8a50df7dcf4465a7f149f78bf5af78b build: Improve `SECP_TRY_APPEND_DEFAULT_CFLAGS` macro (Hennadii Stepanov)

Pull request description:

ACKs for top commit:
  real-or-random:
    utACK 3addb4c1e8a50df7dcf4465a7f149f78bf5af78b
  jonasnick:
    ACK 3addb4c1e8a50df7dcf4465a7f149f78bf5af78b

Tree-SHA512: 918d906570d82be9354fba72bb55d50b8f661cf7cd4404dc244deb489c2bca95b3942ae8af830873ba825dc8ddc68b99c973fc984ff13fdd1f6668f412ca56a3
2023-03-28 19:02:20 +00:00
Jonas Nick
afd8b23b27
Merge bitcoin-core/secp256k1#1244: Suppress -Wunused-parameter when building for coverage analysis
5bb03c29116409ace8855e64bf2e2b2d45871469 Replace `SECP256K1_ECMULT_TABLE_VERIFY` macro by a function (Hennadii Stepanov)
4429a8c218d7bf7bc6de1de88bc31c834f771385 Suppress `-Wunused-parameter` when building for coverage analysis (Hennadii Stepanov)

Pull request description:

ACKs for top commit:
  real-or-random:
    utACK 5bb03c29116409ace8855e64bf2e2b2d45871469
  jonasnick:
    ACK 5bb03c29116409ace8855e64bf2e2b2d45871469

Tree-SHA512: 19a395434ecefea201a03fc45b3f0b88f1520908926ac1207bbc6570034b1141b49c3c98e66819dcd9069dfdd28c7c6fbe957f13fb6bd178fd57ce65bfbb8fbd
2023-03-28 07:18:23 +00:00
Jonas Nick
1d8f367515
Merge bitcoin-core/secp256k1#1250: No need to subtract 1 before doing a right shift
3e43041be68c1288ad9897525a15e21945fb3eb9 No need to subtract 1 before doing a right shift (roconnor-blockstream)

Pull request description:

ACKs for top commit:
  real-or-random:
    utACK 3e43041be68c1288ad9897525a15e21945fb3eb9
  jonasnick:
    ACK 3e43041be68c1288ad9897525a15e21945fb3eb9

Tree-SHA512: bcecda11eae3fb845bef7af88c6171bedcd933872d08a9849c0a250cb6c9e982a88bd45e8a8364a4a348f8be413fc91ee04cf8fa78adae44e584e3ad7ec544cf
2023-03-28 06:32:28 +00:00
roconnor-blockstream
3e43041be6
No need to subtract 1 before doing a right shift 2023-03-27 09:29:41 -04:00
Hennadii Stepanov
3addb4c1e8
build: Improve SECP_TRY_APPEND_DEFAULT_CFLAGS macro
Co-authored-by: Tim Ruffing <crypto@timruffing.de>
2023-03-26 10:38:43 +01:00
Tim Ruffing
0c07c82834 Add CMake instructions to release process
... and make wording a bit more consistent.

Co-authored-by: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com>
2023-03-26 17:40:18 +09:00
Tim Ruffing
464a9115b4
Merge bitcoin-core/secp256k1#1242: Set ARM ASM symbol visibility to hidden
fd2a408647ba0f999b7b217977cc68773fa35257 Set ARM ASM symbol visibility to `hidden` (Hennadii Stepanov)

Pull request description:

  Solves one item in #1181.

  To test on arm-32bit hardware, run:
  ```
  $ ./autogen.sh && ./configure --enable-experimental --with-asm=arm && make
  ```

  On master branch (427bc3cdcfbc74778070494daab1ae5108c71368):
  ```
  $ nm -D .libs/libsecp256k1.so | grep secp256k1_fe
  0000e2bc T secp256k1_fe_mul_inner
  0000e8dc T secp256k1_fe_sqr_inner
  ```

  With this PR:
  ```
  $ nm -D .libs/libsecp256k1.so | grep secp256k1_fe | wc -l
  0
  ```

  For reference, see https://sourceware.org/binutils/docs/as/Hidden.html.

ACKs for top commit:
  theuni:
    ACK fd2a408647ba0f999b7b217977cc68773fa35257.
  sipa:
    ACK fd2a408647ba0f999b7b217977cc68773fa35257

Tree-SHA512: abf8ad332631672c036844f69c5599917c49e12c4402bf9066f93a692d3007b1914bd3eea8f83f0141c1b09d5c88ebc5e6c8bfbb5444b7b3471749f7b901ca59
2023-03-26 12:26:01 +09:00
Pieter Wuille
f16a709fd6
Merge bitcoin-core/secp256k1#1247: Apply Checks only in VERIFY mode.
4ebd82852d3ad00ab579b26173575a4f4642ea76 Apply Checks only in VERIFY mode. (roconnor-blockstream)

Pull request description:

  This is already done in `field_5x52_impl.h`.

ACKs for top commit:
  sipa:
    ACK 4ebd82852d3ad00ab579b26173575a4f4642ea76
  jonasnick:
    ACK 4ebd82852d3ad00ab579b26173575a4f4642ea76

Tree-SHA512: c24211e5219907e41e2c5792255734bd50ca5866a4863abbb3ec174ed92d1792dd10563a94c08e8fecd6cdf776a9c49ca87e8f9806a023d9081ecc0d55ae3e66
2023-03-24 09:35:04 -04:00
Jonas Nick
70be3cade5
Merge bitcoin-core/secp256k1#1246: Typo
d1e7ca192d0aef9c5741c9a8d74ced6366b7a7dc Typo (roconnor-blockstream)

Pull request description:

ACKs for top commit:
  jonasnick:
    ACK d1e7ca192d0aef9c5741c9a8d74ced6366b7a7dc

Tree-SHA512: 0d53ad29cf86921a59aae3953c7d786b7ee0567c9cf92d037853e8c4f7536e45c6b50467eb95d3763f27ae3fd1a8b2b9cf88689f320cb13cebf52f70bb4affef
2023-03-23 08:35:06 +00:00
roconnor-blockstream
4ebd82852d
Apply Checks only in VERIFY mode. 2023-03-22 22:06:47 -04:00
roconnor-blockstream
d1e7ca192d
Typo 2023-03-22 22:01:01 -04:00
Cory Fields
36b0adf1b9 build: remove warning until it's reproducible
Also remove the interface it was attached to since it's no longer needed.
This removal simplifies the next commit.
2023-03-21 16:21:21 +00:00
Hennadii Stepanov
5bb03c2911
Replace SECP256K1_ECMULT_TABLE_VERIFY macro by a function 2023-03-21 15:29:22 +00:00
Tim Ruffing
9c8c4f443c
Merge bitcoin-core/secp256k1#1238: build: bump CMake minimum requirement to 3.13
96dd0625112672e841eea723398cc2a1c3489a30 build: bump CMake minimum requirement to 3.13 (Cory Fields)

Pull request description:

  As requested here: https://github.com/bitcoin-core/secp256k1/pull/1230#issuecomment-1464730218 . Ping @hebasto

  Among other things this allows us to link against object libraries.

  3.13 has been mentioned several times as a good overlap between newish features and widespread Linux availability.

ACKs for top commit:
  hebasto:
    ACK 96dd0625112672e841eea723398cc2a1c3489a30
  real-or-random:
    utACK 96dd0625112672e841eea723398cc2a1c3489a30

Tree-SHA512: 6c744809aa393b48ef10b3d46c6630370c388a8d375116bfad65c6c907e69c36ed71c1579b9d5c3aa976f70b1cd70e837c1a0226910a43539435125115b32568
2023-03-22 00:14:55 +09:00
Tim Ruffing
0cf2fb91ef
Merge bitcoin-core/secp256k1#1243: build: Ensure no optimization when building for coverage analysis
8e79c7ed11fa50bd6b8a3d3203b2fc330a0c37ea build: Ensure no optimization when building for coverage analysis (Hennadii Stepanov)

Pull request description:

  #944 introduced a regression when building for coverage analysis. The `-O2` flag from the default Autoconf's `CFLAGS` overrides the coverage-specific `-O0` one, which makes coverage analysis results [less reliable](https://gcc.gnu.org/onlinedocs/gcc/Gcov-and-Optimization.html).

  This PR restores the pre-#944 behaviour.

  In contrast to an alternative smaller diff:
  ```diff
  --- a/configure.ac
  +++ b/configure.ac
  @@ -240,7 +240,7 @@ fi

   if test x"$enable_coverage" = x"yes"; then
       SECP_CONFIG_DEFINES="$SECP_CONFIG_DEFINES -DCOVERAGE=1"
  -    SECP_CFLAGS="-O0 --coverage $SECP_CFLAGS"
  +    CFLAGS="$CFLAGS -O0 --coverage "
       LDFLAGS="--coverage $LDFLAGS"
   else
       # Most likely the CFLAGS already contain -O2 because that is autoconf's default.
  ```

  this PR ensures that the user always has the last word.

  FWIW, Bitcoin Core uses a similar [approach](460e394625/configure.ac (L879-L884)).

ACKs for top commit:
  jonasnick:
    tested ACK 8e79c7ed11fa50bd6b8a3d3203b2fc330a0c37ea
  real-or-random:
    utACK 8e79c7ed11fa50bd6b8a3d3203b2fc330a0c37ea

Tree-SHA512: f04b55921d397bd7c003ec0283101d3908f3fb507789c855e1b6d5abd150e7d6281d5eeb8fefbb7d6a55b3c6f29a19324f570eee009794f8fa9bca956229e7ce
2023-03-21 21:05:09 +09:00
Hennadii Stepanov
fd2a408647
Set ARM ASM symbol visibility to hidden
Co-authored-by: Cory Fields <cory-nospam-@coryfields.com>
2023-03-15 09:08:41 +00:00