mirror of
https://github.com/ElementsProject/elements.git
synced 2026-08-15 12:51:00 +02:00
13 commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
196c993d1f |
Squashed 'src/secp256k1/' changes from 0129b77767e..90580edcc98
90580edcc98 Merge pull request #140 from apoelstra/2021-07--resync 6ad66de6802 rangeproof: add an (unnecessary) variable initialization to shut up CI 2979e4d9d46 Merge commits '8ae56e33 75ce488c 4866178d 446d28d9 253f90cd ec3aaa50 0440945f 7688a4f1 be8d9c26 ' into temp-merge-965 5d2df054196 Merge elementsproject/secp256k1-zkp#120: Add MuSig Key Aggregation spec fc26ca8ddef musig: remove unnecessary constant time normalize in combine 48f63efe683 musig: remove unnecessary branch in pubkey_tweak_add 5860b5e0fe7 musig: do not also require schnorrsig module config flag f27fd1d5e75 musig: improve test coverage of pubkey_combine 56014e8ca01 musig: change pubkey_combine arg to array of pointers to pks 08fa02d5791 musig: add key aggregation spec draft 4a9b059b16d musig: rename Musig coefficient to KeyAgg coefficient 4bc46d836e7 musig: optimize key aggregation using const 1 for 2nd key 2310849f50f musig: compute musig coefficient by hashing key instead of index 9683c8a7eb6 musig: add static test vectors for key aggregation 9b3d7bf5361 extrakeys: add xonly_sort function f31affd8a61 extrakeys: add hsort, in-place, iterative heapsort be8d9c262f4 Merge bitcoin-core/secp256k1#965: gen_context: Don't use any ASM d9560e0af78 Merge elementsproject/secp256k1-zkp#136: Eliminate a wrong -Wmaybe-uninitialized warning in GCC aeece445997 gen_context: Don't use any ASM 6db00f5b2e0 Merge elementsproject/secp256k1-zkp#132: Upstream PRs 831, 907, 903, 889, 918, 906, 928, 922, 933, Merge bitcoin-core/secp256k1#936: Fix gen_context/ASM build on ARM, 925, 937, 926, Merge bitcoin-core/secp256k1#940: contrib: Explain explicit header guards, 850, 930, 941, 846, 947, 662, 950 cc0b279568d Eliminate a wrong -Wmaybe-uninitialized warning in GCC f09497ea3e0 CI: tweak cirrus.yml to prevent OOM and timeout w sanitizer/valgrind 7226cf215aa ecdsa_adaptor: fix too small buffer in tests b053e853d4f ecdsa_adaptor: fix test case with invalid signature 91b64770c3b Merge elementsproject/secp256k1-zkp#135: sync-upstream: fix "end" parameter for specifying range 907633e2e9a sync-upstream: fix "end" parameter for specifying range 394f49fd1a6 sync-upstream: quote variables 1bb5db3d602 Merge elementsproject/secp256k1-zkp#134: sync-upstream: parse merge commits w/ and w/o repo identifier 9321d42f751 sync-upstream: parse merge commits w/ and w/o repo identifier 7688a4f13a3 Merge bitcoin-core/secp256k1#963: "Schnorrsig API overhaul" fixups 90e83449b2c ci: Add C++ test f698caaff6a Use unsigned char consistently for byte arrays b5b8e7b7190 Don't declare constants twice 769528f3071 Don't use string literals for char arrays without NUL termination 2cc3cfa5838 Fix -Wmissing-braces warning in clang 0440945fb5c Merge #844: schnorrsig API overhaul ec3aaa5014f Merge #960: tests_exhaustive: check the result of secp256k1_ecdsa_sign a1ee83c6546 tests_exhaustive: check the result of secp256k1_ecdsa_sign 253f90cdeb1 Merge bitcoin-core/secp256k1#951: configure: replace AC_PATH_PROG to AC_CHECK_PROG 446d28d9de3 Merge bitcoin-core/secp256k1#944: Various improvements related to CFLAGS 0302138f750 ci: Make compiler warning into errors on CI b924e1e605d build: Ensure that configure's compile checks default to -O2 7939cd571c7 build: List *CPPFLAGS before *CFLAGS like on the compiler command line 595e8a35d80 build: Enable -Wcast-align=strict warning 07256267ffa build: Use own variable SECP_CFLAGS instead of touching user CFLAGS 4866178dfc9 Merge bitcoin-core/secp256k1#955: Add random field multiply/square tests 75ce488c2a6 Merge bitcoin-core/secp256k1#959: tests: really test the non-var scalar inverse 41ed13942bd tests: really test the non-var scalar inverse 5f6ceafcfa4 schnorrsig: allow setting MSGLEN != 32 in benchmark fdd06b79671 schnorrsig: add tests for sign_custom and varlen msg verification d8d806aaf38 schnorrsig: add extra parameter struct for sign_custom a0c3fc177f7 schnorrsig: allow signing and verification of variable length msgs 5a8e4991ad4 Add secp256k1_tagged_sha256 as defined in BIP-340 b6c0b72fb06 schnorrsig: remove noncefp args from sign; add sign_custom function bdf19f105c6 Add random field multiply/square tests 8ae56e33e74 Merge #879: Avoid passing out-of-bound pointers to 0-size memcpy a4642fa15ee configure: replace AC_PATH_PROG to AC_CHECK_PROG d27e4598610 Revert "Remove unused Jacobi symbol support" edcacc2b2ec Merge commits '26de4dfe 6e898534 c083cc6e 1e5d50fa cc2c09e3 efad3506 7012a188 34388af6 98e0358d d0bd2693 185a6af2 6c52ae87 69394879 1e78c18d 202a030f bf0ac460 399722a6 3dc8c072 50f33677 7973576f 1758a92f ' into temp-merge-950 1758a92ffd8 Merge #950: ci: Add ppc64le build c58c4ea4707 ci: Add ppc64le build 7973576f6e3 Merge #662: Add ecmult_gen, ecmult_const and ecmult to benchmark 8f879c2887e Fix array size in bench_ecmult 2fe1b50df16 Add ecmult_gen, ecmult_const and ecmult to benchmark 593e6bad9c5 Clean up ecmult_bench to make space for more benchmarks 50f33677122 Merge #947: ci: Run PRs on merge result even for i686 a35fdd3478f ci: Run PRs on merge result even for i686 442cee5bafb schnorrsig: add algolen argument to nonce_function_hardened df3bfa12c3b schnorrsig: clarify result of calling nonce_function_bip340 without data 99e8614812b README: mention schnorrsig module 3dc8c072b6d Merge #846: ci: Run ASan/LSan and reorganize sanitizer and Valgrind jobs 02dcea1ad94 ci: Make test iterations configurable and tweak for sanitizer builds 489ff5c20a1 tests: Treat empty SECP2561_TEST_ITERS as if it was unset fcfcb97e74b ci: Simplify to use generic wrapper for QEMU, Valgrind, etc de4157f13ac ci: Run ASan/LSan and reorganize sanitizer and Valgrind jobs 399722a63ad Merge #941: Clean up git tree 09b3bb8648f Clean up git tree bf0ac460661 Merge #930: Add ARM32/ARM64 CI 202a030f7d1 Merge #850: add `secp256k1_ec_pubkey_cmp` method 1e78c18d5b8 Merge bitcoin-core/secp256k1#940: contrib: Explain explicit header guards 69394879b64 Merge #926: secp256k1.h: clarify that by default arguments must be != NULL 6eceec6d566 add `secp256k1_xonly_pubkey_cmp` method 0d9561ae879 add `secp256k1_ec_pubkey_cmp` method 22a9ea154a2 contrib: Explain explicit header guards 6c52ae87247 Merge #937: Have ge_set_gej_var, gej_double_var and ge_set_all_gej_var initialize all fields of their outputs. 185a6af2279 Merge #925: changed include statements without prefix 'include/' 14c9739a1fb tests: Improve secp256k1_ge_set_all_gej_var for some infinity inputs 4a19668c37b tests: Test secp256k1_ge_set_all_gej_var for all infinity inputs 3c90bdda95a change local lib headers to be relative for those pointing at "include/" dir 45b6468d7e3 Have secp256k1_ge_set_all_gej_var initialize all fields. Previous behaviour would not initialize r->y values in the case where infinity is passed in. Furthermore, the previous behaviour wouldn't initialize anything in the case where all inputs were infinity. 31c0f6de413 Have secp256k1_gej_double_var initialize all fields. Previous behaviour would not initialize r->x and r->y values in the case where infinity is passed in. dd6c3de3227 Have secp256k1_ge_set_gej_var initialize all fields. Previous behaviour would not initialize r->x and r->y values in the case where infinity is passed in. d0bd2693e30 Merge bitcoin-core/secp256k1#936: Fix gen_context/ASM build on ARM 8bbad7a18e5 Add asm build to ARM32 CI 7d65ed52142 Add ARM32/ARM64 CI c8483520c90 Makefile.am: Don't pass a variable twice 2161f31785e Makefile.am: Honor config when building gen_context 99f47c20ec4 gen_context: Don't use external ASM because it complicates the build 98e0358d297 Merge #933: Avoids a missing brace warning in schnorrsig/tests_impl.h on old compilers 99e2d5be0db Avoids a missing brace warning in schnorrsig/tests_impl.h on old compilers. 34388af6b6a Merge #922: Add mingw32-w64/wine CI build 7012a188e6e Merge #928: Define SECP256K1_BUILD in secp256k1.c directly. ed5a199bed6 tests: fopen /dev/urandom in binary mode ae9e648526c Define SECP256K1_BUILD in secp256k1.c directly. 4dc37bf81b5 Add mingw32-w64/wine CI build 0881633dfd0 secp256k1.h: clarify that by default arguments must be != NULL efad3506a89 Merge #906: Use modified divsteps with initial delta=1/2 for constant-time cc2c09e3a78 Merge #918: Clean up configuration in gen_context 07067967ee9 add ECMULT_GEN_PREC_BITS to basic_config.h a3aa2628c7b gen_context: Don't include basic-config.h be0609fd54a Add unit tests for edge cases with delta=1/2 variant of divsteps cd393ce2283 Optimization: only do 59 hddivsteps per iteration instead of 62 277b224b6ab Use modified divsteps with initial delta=1/2 for constant-time 376ca366db0 Fix typo in explanation 1e5d50fa93d Merge #889: fix uninitialized read in tests f3708a1ecb4 Merge #117: Add ECDSA adaptor signatures module 5710ebacb9e Merge #128: Make function argument name consistent with doc b0ffa923199 ecdsa_adaptor: add tests 6955af5ca89 ecdsa_adaptor: add ECDSA adaptor signature APIs c083cc6e52a Merge #903: Make argument of fe_normalizes_to_zero{_var} const 6e898534ff4 Merge #907: changed import to use brackets <> for openssl cc82ad5ab74 Make function argument name consistent with doc 4504472269d changed import to use brackets <> for openssl as they are not local to the project 26de4dfeb1f Merge #831: Safegcd inverses, drop Jacobi symbols, remove libgmp b508e5dd9b1 ecdsa_adaptor: add support for proof of discrete logarithm equality d8f336564fe ecdsa_adaptor: add nonce function and tags 654cd633f50 ecdsa_adaptor: initialize project 23c3fb629b9 Make argument of fe_normalizes_to_zero{_var} const 24ad04fc064 Make scalar_inverse{,_var} benchmark scale with SECP256K1_BENCH_ITERS ebc1af700f9 Optimization: track f,g limb count and pass to new variable-time update_fg_var b306935ac12 Optimization: use formulas instead of lookup tables for cancelling g bits 9164a1b6582 Optimization: special-case zero modulus limbs in modinv64 1f233b3fa05 Remove num/gmp support fac477f822a Merge #126: Upstream PRs #854 #852 #857 #858 #860 #845 #862 #875 #878 #874 #877 #880 #864 #882 #894 #891 #901 20448b8d09a Remove unused Jacobi symbol support 5437e7bdfbf Remove unused scalar_sqr aa9cc521800 Improve field/scalar inverse tests 1e0e885c8ac Make field/scalar code use the new modinv modules for inverses 436281afdcb Move secp256k1_fe_inverse{_var} to per-impl files aa404d53bef Move secp256k1_scalar_{inverse{_var},is_even} to per-impl files 08d54964e51 Improve bounds checks in modinv modules 6a7861f646f Merge #127: sync-upstream: Create proper links to upstream PRs 4091e619248 cirrus: increase timeout for macOS tasks 136ed8f84d9 sync-upstream: Fix output of command to reproduce 38f1e777d49 sync-upstream: Create proper links to upstream PRs 79d4c3ac681 whitelist: add SECP_INCLUDES to bench_whitelist CPPFLAGS 649bf201d85 musig: fix tests for 32-bit 151aac00d31 Add tests for modinv modules d8a92fcc4c6 Add extensive comments on the safegcd algorithm and implementation 8e415acba25 Add safegcd based modular inverse modules de0a643c3dc Add secp256k1_ctz{32,64}_var functions d4ca81f48e9 Merge commits 'dc6e5c3a 2d9e7175 b61f9da5 98dac878 8c727b90 328aaef2 f2d9aeae b732701f db726782 5671e5f3 a4abaab7 659d0d47 f8c0b57e 24d1656c 3a8b47bc ebdba03c 4c3ba88c ' into temp-merge-901 4c3ba88c3a8 Merge #901: ci: Switch all Linux builds to Debian and more improvements 9361f360bb0 ci: Select number of parallel make jobs depending on CI environment 28eccdf8064 ci: Split output of logs into multiple sections c7f754fe4d5 ci: Run PRs on merge result instead of on the source branch b994a8be3cf ci: Print information about binaries using "file" f24e122d13d ci: Switch all Linux builds to Debian ebdba03cb56 Merge #891: build: Add workaround for automake 1.13 and older 3a8b47bc6d1 Merge #894: ctime_test: move context randomization test to the end 6da00ec6245 Merge pull request #124 from apoelstra/2021-02--rename-klepto e354c5751d6 ecdsa_s2c: rename anti-klepto to anti-exfil 7d3497cdc4c ctime_test: move context randomization test to the end 99a1cfec174 print warnings for conditional-uninitialized 3d2cf6c5bd3 initialize variable in tests f329bba2442 build: Add workaround for automake 1.13 and older 24d1656c328 Merge #882: Use bit ops instead of int mult for constant-time logic in gej_add_ge e491d06b98c Use bit ops instead of int mult for constant-time logic in gej_add_ge f8c0b57e6ba Merge #864: Add support for Cirrus CI cc2a5451dc8 ci: Refactor Nix shell files 2480e55c8f3 ci: Remove support for Travis CI 2b359f1c1d8 ci: Enable simple cache for brewing valgrind on macOS 8c02e465c5a ci: Add support for Cirrus CI 659d0d47989 Merge #880: Add parens around ROUND_TO_ALIGN's parameter. b6f649889ae Add parens around ROUND_TO_ALIGN's parameter. This makes the macro robust against a hypothetical ROUND_TO_ALIGN(foo ? sizeA : size B) invocation. a4abaab7931 Merge #877: Add missing secp256k1_ge_set_gej_var decl. 5671e5f3fd0 Merge #874: Remove underscores from header defs. db726782fa2 Merge #878: Remove unused secp256k1_fe_inv_all_var b732701faa7 Merge #875: Avoid casting (void**) values. 9570f674cc7 Avoid passing out-of-bound pointers to 0-size memcpy 75d2ae149ef Remove unused secp256k1_fe_inv_all_var 482e4a9cfce Add missing secp256k1_ge_set_gej_var decl. 27306186045 Avoid casting (void**) values. Replaced with an expression that only casts (void*) values. fb390c5299e Remove underscores from header defs. This makes them consistent with other files and avoids reserved identifiers. ed69ea79b42 Merge #98: Add contrib/sync-upstream.sh script to automate syncing PRs 7eeacd7725f Add contrib/sync-upstream.sh script to automate merging upstream PRs f2d9aeae6d5 Merge #862: Autoconf improvements 328aaef22a4 Merge #845: Extract the secret key from a keypair 3c15130709d Improve CC_FOR_BUILD detection 47802a47624 Restructure and tidy configure.ac 252c19dfc65 Ask brew for valgrind include path 8c727b9087a Merge #860: fixed trivial typo cfac088e1b2 Merge #119: Remove repeated schnorr flag from travis config 96c83a83dcf Remove repeated schnorr flag from travis config d2b6740688f Merge pull request #118 from jonasnick/clarify-rangeproof-rewind 41d6963bc1c rangeproof: clarify rewind outlen argument 673e551f4d1 Merge #111: Add ECDSA sign-to-contract module b7bc3a4aaa5 fixed typo 47efb5e39a1 ecdsa-s2c: add ctime tests 396b558273c ecdsa-s2c: add anti-klepto protocol 290dee566e1 ecdsa-s2c: add actual sign-to-contract functionality 8e46cac5b31 ecdsa-s2c: block in module 826bd04b43f add eccommit functionality 33cb3c2b1fc Add secret key extraction from keypair to constant time tests 36d9dc1e8e6 Add seckey extraction from keypair to the extrakeys tests fc96aa73f5c Add a function to extract the secretkey from a keypair 98dac878398 Merge #858: Fix insecure links 07aa4c70ffb Fix insecure links b61f9da54ef Merge #857: docs: fix simple typo, dependecy -> dependency 18aadf9d288 docs: fix simple typo, dependecy -> dependency 2d9e7175c6e Merge #852: Add sage script for generating scalar_split_lambda constants dc6e5c3a5c4 Merge #854: Rename msg32 to msghash32 in ecdsa_sign/verify and add explanation 6e85d675aaf Rename tweak to tweak32 in public API f587f04e357 Rename msg32 to msghash32 in ecdsa_sign/verify and add explanation 329a2e0a3f2 sage: Add script for generating scalar_split_lambda constants f554dfc7088 sage: Reorganize files git-subtree-dir: src/secp256k1 git-subtree-split: 90580edcc98350c9df9bebee58d2f9616d801849 |
||
|
|
5fbc67e108 |
Squashed 'src/secp256k1/' changes from 43dd1f4fe7..0129b77767
0129b77767 Merge #113: Upstream PRs #849 #851 e1756dfddc Merge commits '3a106966 8f0c6f15 ' into temp-merge-851 7093e633b8 Merge pull request #106 from apoelstra/2020-11-reduce-test-rounds 29f9a7dc62 reduce test rounds for rangeproof and surjectionproof 8f0c6f1545 Merge #851: make test count iteration configurable by environment variable f4fa8d226a forbid a test iteration of 0 or less ff4714e641 Merge pull request #105 from jonasnick/update-musig 3fb4d6db9c travis: run musig test whenever schnorrsig tests are run b9d91b3ecb musig: add pubkey_tweak_add function to allow taproot tweaking 0d71b6c61f Merge pull request #112 from jgriffiths/missed_rename 4721bec0ef Update renamed decl missed in e0ced690cff035b61763686cb69b7d06571e23e2 ebf57dc2f5 Merge pull request #107 from thomaseizinger/secp256k1-zkp 4d20713425 Remove unused context initializer functions 3a106966aa Merge #849: Convert Sage code to Python 3 (as used by Sage >= 9) 13c88efed0 Convert Sage code to Python 3 (as used by Sage >= 9) 0ce4554881 make test count iteration configurable by environment variable 38a8b20991 musig: fix memory leak in musig test 5b4eb18ec5 musig: shorten partial nonce byte array from 33 to 32 bytes 62f0b2d867 musig: make musig partial nonces byte arrays instead of "pubkeys" 73792e4a27 musig: represent a combined_nonce as an xonly_pubkey 2117e7466a musig: improve variable naming and be consistent with schnorrsig module ebc31f1f9d musig: add ARG_CHECKs to functions to help debuggability ac2d0e6697 musig: add magic to session to detect if session is uninitalized 29b4bd85d7 musig: simplify state machine by adding explicit round to session struct 6370bdd537 Merge pull request #104 from jonasnick/temp-merge-835 e0ced690cf Rename rands64 to testrandi64 b0917f3de1 Merge remote-tracking branch 'upstream/master' into temp-merge-835 81052ca411 Merge #103: Merge upstream schnorrsig PR 9e5939d284 Merge #835: Don't use reserved identifiers memczero and benchmark_verify_t 96b9236c42 re-enable musig module 23900a0d86 Fix the MuSig module after integrating bip-schnorr updates 005fe79262 Merge commit '8ab24e8d' into tmp a11250330b (actually) remove schnorrsig module bac746c55e (temporarily) disable musig module d0a83f7328 Merge #839: Prevent arithmetic on NULL pointer if the scratch space is too small 903b16aa6c Merge #840: Return NULL early in context_preallocated_create if flags invalid 1f4dd03838 Typedef (u)int128_t only when they're not provided by the compiler 3967d96bf1 Merge #838: Make autotools check for all the used openssl functions 3734b68200 Configure echo if openssl tests are enabled ebfa2058e9 Return NULL early in context_preallocated_create if flags invalid 6f54e69f03 Merge #841: Avoids a potentially shortening size_t to int cast in strauss_wnaf_ 29a299e373 Run the undefined behaviour sanitizer on Travis 7506e064d7 Prevent arithmetic on NULL pointer if the scratch space is too small 8893f42438 Avoids a potentially shortening size_t to int cast in strauss_wnaf_ e6692778d3 Modify bitcoin_secp.m4's openssl check to call all the functions that we use in the tests/benchmarks. That way linking will fail if those symbols are missing ac05f61fcf Merge #809: Stop treating ECDH as experimental e6e3d5da2f travis: add schnorrsig to valgrind and big endian platform test 353dff156f Stop treating ECDH as experimental e89278f211 Don't use reserved identifiers memczero and benchmark_verify_t c6b6b8f1bb Merge #830: Rip out non-endomorphism code + dependencies c582abade1 Consistency improvements to the comments 63c6b71616 Reorder comments/function around scalar_split_lambda 2edc514c90 WNAF of lambda_split output has max size 129 4232e5b7da Rip out non-endomorphism code ebad8414b0 Check correctness of lambda split without -DVERIFY fe7fc1fda8 Make lambda constant accessible 9d2f2b44d8 Add tests to exercise lambda split near bounds 9aca2f7f07 Add secp256k1_split_lambda_verify acab934d24 Detailed comments for secp256k1_scalar_split_lambda 73acc8fef6 Merge pull request #102 from jonasnick/temp-merge-797 8b70795b5e Fix BE platforms by updating endianness macros to match upstream 76ed922a5f Increase precision of g1 and g2 6173839c90 Switch to our own memcmp function d1b13b0014 Merge commit 'f3733c54' into temp-merge-797 23bf5b732b Merge pull request #101 from jonasnick/temp-merge-778 0a5b60d8b0 Merge commit '6034a04f' into temp-merge-778 caa5d24446 Merge #99: [upstream PR #774]: tests: Abort if malloc() fails during context cloning tests 1789183cba Merge commit '40412b19' into temp-merge-774 63150ab4da Merge #827: Rename testrand functions to have test in name c5257aed0b Merge #821: travis: Explicitly set --with-valgrind bb1f54280f Merge #818: Add static assertion that uint32_t is unsigned int or wider a45c1fa63c Rename testrand functions to have test in name 5006895bd6 Merge #808: Exhaustive test improvements + exhaustive schnorrsig tests a39b08d672 Merge #95: [upstream PR #741]: Remove unnecessary sign variable from wnaf_const a3a3a17f47 Merge pull request #94 from apoelstra/temp-merge-1309c03c45beece646a7d21fdb6a0e3d38adee2b 4eecb4d6ef travis: VALGRIND->RUN_VALGRIND to avoid confusion with WITH_VALGRIND 66a765c775 travis: Explicitly set --with-valgrind d7838ba6a6 Merge #813: Enable configuring Valgrind support 7ceb0b7611 Merge #819: Enable -Wundef warning 8b7dcdd955 Add exhaustive test for extrakeys and schnorrsig 08d7d89299 Make pubkey parsing test whether points are in the correct subgroup 87af00b511 Abstract out challenge computation in schnorrsig 63e1b2aa7d Disable output buffering in tests_exhaustive.c 39f67dd072 Support splitting exhaustive tests across cores e99b26fcd5 Give exhaustive_tests count and seed cmdline inputs 49e6630bca refactor: move RNG seeding to testrand b110c106fa Change exhaustive test groups so they have a point with X=1 cec7b18a34 Select exhaustive lambda in function of order 78f6cdfaae Make the curve B constant a secp256k1_fe d7f39ae4b6 Delete gej_is_valid_var: unused outside tests 8bcd78cd79 Make secp256k1_scalar_b32 detect overflow in scalar_low c498366e5b Move exhaustive tests for recovery to module be31791543 Make group order purely compile-time in exhaustive tests e73ff30922 Enable -Wundef warning c0041b5cfc Add static assertion that uint32_t is unsigned int or wider 4ad408faf3 Merge #782: Check if variable=yes instead of if var is set in travis.sh 412bf874d0 configure: Allow specifying --with[out]-valgrind explicitly 34debf7a6d Modify .travis.yml to explictly pass no in env vars instead of setting to nothing a0e99fc121 Merge #814: tests: Initialize random group elements fully 5738e8622d tests: Initialize random group elements fully c9939ba55d Merge #812: travis: run bench_schnorrsig a51f2af62b travis: run bench_schnorrsig 8ab24e8dad Merge #558: Add schnorrsig module which implements BIP-340 compliant signatures f3733c5433 Merge #797: Fix Jacobi benchmarks and other benchmark improvements cb5524adc5 Add benchmark for secp256k1_ge_set_gej_var 5c6af60ec5 Make jacobi benchmarks vary inputs d0fdd5f009 Randomize the Z coordinates in bench_internal c7a3424c5f Rename bench_internal variables 875d68b95f Merge #699: Initialize field elements when resulting in infinity 54caf2e74f Merge #799: Add fallback LE/BE for architectures with known endianness + SHA256 selftest f431b3f28a valgrind_ctime_test: Add schnorrsig_sign 16ffa9d97c schnorrsig: Add taproot test case 8dfd53ee3f schnorrsig: Add benchmark for sign and verify 4e43520026 schnorrsig: Add BIP-340 compatible signing and verification 7332d2db6b schnorrsig: Add BIP-340 nonce function 7a703fd97d schnorrsig: Init empty experimental module eabd9bc46a Allow initializing tagged sha256 6fcb5b845d extrakeys: Add keypair_xonly_tweak_add 58254463f9 extrakeys: Add keypair struct with create, pub and pub_xonly f0010349b8 Separate helper functions for pubkey_create and seckey_tweak_add 910d9c284c extrakeys: Add xonly_pubkey_tweak_add & xonly_pubkey_tweak_add_test 176bfb1110 Separate helper function for ec_pubkey_tweak_add 4cd2ee474d extrakeys: Add xonly_pubkey with serialize, parse and from_pubkey f49c9896b0 Merge #806: Trivial: Add test logs to gitignore aabf00c155 Merge #648: Prevent ints from wrapping around in scratch space functions f5adab16a9 Merge #805: Remove the extremely outdated TODO file. bceefd6547 Add test logs to gitignore 1c325199d5 Remove the extremely outdated TODO file. 47e6618e11 extrakeys: Init empty experimental module 3e08b02e2a Make the secp256k1_declassify argument constant 8bc6aeffa9 Add SHA256 selftest 670cdd3f8b Merge #798: Check assumptions on integer implementation at compile time 5e5fb28b4a Use additional system macros to figure out endianness 7c068998ba Compile-time check assumptions on integer types 02b6c87b52 Add support for (signed) __int128 979961c506 Merge #787: Use preprocessor macros instead of autoconf to detect endianness 887bd1f8b6 Merge #793: Make scalar/field choice depend on C-detected __int128 availability 0dccf98a21 Use preprocessor macros instead of autoconf to detect endianness b2c8c42cf1 Merge #795: Avoid linking libcrypto in the valgrind ct test. 57d3a3c64c Avoid linking libcrypto in the valgrind ct test. 79f1f7a4f1 Autodetect __int128 availability on the C side 0d7727f95e Add SECP256K1_FE_STORAGE_CONST_GET to 5x52 field 805082de11 Merge #696: Run a Travis test on s390x (big endian) 39295362cf Test travis s390x (big endian) ef37761fee Change travis.sh to check if variables are equal to yes instead of not-empty. Before this, setting `VALGRIND=wat` was considered as true, and to make it evaluate as false you had to unset the variable `VALGRIND=` but not it checks if `VALGRIND=yes` and if it's not `yes` then it's evaluated to false 6034a04fb1 Merge #778: secp256k1_gej_double_nonzero supports infinity f60915906d Merge #779: travis: Fix argument quoting for ./configure 9e49a9b255 travis: Fix argument quoting for ./configure 18d36327fd secp256k1_gej_double_nonzero supports infinity 214cb3c321 Merge #772: Improve constant-timeness on PowerPC 40412b1930 Merge #774: tests: Abort if malloc() fails during context cloning tests 2e1b9e0458 tests: Abort if malloc() fails during context cloning tests 67a429f31f Suppress a harmless variable-time optimization by clang in _int_cmov 5b196338f0 Remove redundant "? 1 : 0" after comparisons in scalar code 3e5cfc5c73 Merge #741: Remove unnecessary sign variable from wnaf_const 66bb9320c0 Merge #773: Fix some compile problems on weird/old compilers. 1309c03c45 Fix some compile problems on weird/old compilers. fabc8f74e7 Fix typo in MuSig documentation. 96201b4f6e Require message in musig protocol in an earlier state. In particular, remove the set_msg function and require the message in get_public_nonce at the latest. 4fd0d56e37 Fix my_index in musig state machine tests b74f2dc478 Remove mentions of DER in H derivation. b368a5d163 Fix ARG_NONNULL macro usage in musig include bedff79848 Add cplusplus directive to musig include 9957307c3f Fix explanation of H derivation. It doesn't use DER encoding. d924027765 Add tweak32 parameter to musig_partial_sig_combine which allows to sign for p2c/taproot commitments a4410ac779 Add musig module tests to travis d6738e890e surjection proof: Reject proofs with too many used inputs in reduced mode bd70820123 allow reducing surjection proof size (to lower generation stack usage) 56f69d979f surjectionproof: introduce `SECP256K1_SURJECTIONPROOF_MAX_USED_INPUTS` constant and set it to 16 b8a3ff5f3b surjectionproof: reduce stack usage 68d937fe11 surjectionproof: fix malleability in surjection proof parsing 41bc9ce129 surjectionproof: add test vectors for "set padding bits" b0644d4ab3 surjectionproof: add fixed test vectors c0415eb0cb Fix read of wrong buffer (and OOB) in surjectionproof tests 00fffeb172 Improve comments for surctionproof init+alloc/destroy funcs 2dc868f35b work in progress: add _allocate_initialized/destroy funcs 0d4ee3c62d Improve explanation of key cancellation attack in whitelist.md 2a1750dedd Clarify how to derive alternative generator H ed7394f005 Add bench_generator and bench_rangeproof to .gitignore 9dd117fd2b Clean up ./configure help strings (zkp extensions) f35b5e271f Fix a small typo in the generator parameter name 068f03c35b generator: remove `CHECK` abort calls exposed by public API 3424cb1fa3 musig: add user documentation 13ef445721 Add 3-of-3 MuSig example b86c210747 Add MuSig module which allows creating n-of-n multisignatures and adaptor signatures. c59c602dd6 Add schnorrsig module which implements BIP-schnorr [0] compatible signing, verification and batch verification. a1f16a0a53 add chacha20 function 3cdc02ef8a use proper types for rangeproof min/max cf21c9d715 rangeproof: reduce iteration count in unit tests 0dfb356f95 Enable more builds with rest of experimental flags 4c231568fb Add explanation about how BIP32 unhardened derivation can be used to simplify whitelisting f416e039bb Add comment to explain effect of max_n_iterations in surjectionproof_init 936d62f248 add unit test for generator and pedersen commitment roundtripping e06540de8c rangeproof: fix serialization of pedersen commintments edb879f578 rangeproof: verify correctness of pedersen commitments when parsing fca4c3b62f generator: verify correctness of point when parsing c50b218698 rangeproof: check that points deserialize correctly when verifying rangeproof c33e597245 rangeproof: add fixed vector test case 0c5cb7cd08 Expose generator in shared library dbc49df80c fix spelling in documentation 47be098bac Test for rejection of trailing bytes in range proofs 16aaa4a02c Test for rejection of trailing bytes in surjection proofs 949e994cb3 Reject surjection proofs with trailing garbage c87618157e Minor bugfix. Wrong length due to NUL character. fc3dc94049 Add whitelisting benchmark edc7cb6cdd add whitelist_impl.h to include for dist 4320490e88 generator: add API tests 126493ef01 generator: remove unnecessary ARG_CHECK from generate() 253f131310 Fix generator makefile 3997128ad9 Fix pedersen_blind_generator_blind_sum return value documentation 04f4c09111 Add n_keys argument to whitelist_verify dbf3d752a8 Fix checks of whitelist serialize/parse arguments 29d0d562dc whitelist: fix serialize/parse API to take serialized length 660ad39fb3 Fix include/secp256k1_rangeproof.h function argument documentation. e13bdf2f23 rangeproof: add API tests 18c5c62b45 surjectionproof: rename unit test functions to be more consistent with other modules 5f1ad03d00 surjectionproof: add API unit tests f858a4e3d5 surjectionproof: tests_impl.h s/assert/CHECK/g 002002e735 rangeproof: fix memory leak in unit tests ba8b4f53ef add surjection proof module 8c77fe1590 Implement ring-signature based whitelist delegation scheme 94425d4a67 rangeproof: several API changes f6c84a02f3 Expose generator in pedersen/rangeproof API 360e218043 Constant-time generator module e7a8a5f638 rangeproof: expose sidechannel message field in the signing API a88db4a744 [RANGEPROOF BREAK] Use quadratic residue for tie break and modularity cleanup 16618fcd8d Pedersen commitments, borromean ring signatures, and ZK range proofs. 3cf8f70ba1 Add 64-bit integer utilities 2309c7dd4a Merge #769: Undef HAVE___INT128 in basic-config.h to fix gen_context compilation 22e578bb11 Undef HAVE___INT128 in basic-config.h to fix gen_context compilation 3f4a5a10e4 Merge #765: remove dead store in ecdsa_signature_parse_der_lax f00d6575ca remove dead store in ecdsa_signature_parse_der_lax dbd41db16a Merge #759: Fix uninitialized variables in ecmult_multi test 2e7fc5b537 Fix uninitialized variables in ecmult_multi test 2ed54da18a Merge #755: Recovery signing: add to constant time test, and eliminate non ct operators 28609507e7 Add tests for the cmov implementations 73596a85a2 Add ecdsa_sign_recoverable to the ctime tests 2876af4f8d Split ecdsa_sign logic into a new function and use it from ecdsa_sign and recovery 5e1c885efb Merge #754: Fix uninit values passed into cmov f79a7adcf5 Add valgrind uninit check to cmovs output 05d315affe Merge #752: autoconf: Use ":" instead of "dnl" as a noop a39c2b09de Fixed UB(arithmetics on uninit values) in cmovs 3a6fd7f636 Merge #750: Add macOS to the CI 5e8747ae2a autoconf: Use ":" instead of "dnl" as a noop 71757da5cc Explictly pass SECP256K1_BENCH_ITERS to the benchmarks in travis.sh 99bd661d71 Replace travis_wait with a loop printing "\a" to stdout every minute bc818b160c Bump travis Ubuntu from xenial(16.04) to bionic(18.04) 0c5ff9066e Add macOS support to travis b6807d91d8 Move travis script into a standalone sh file f39f99be0e Merge #701: Make ec_ arithmetic more consistent and add documentation 37dba329c6 Remove unnecessary sign variable from wnaf_const 6bb0b77e15 Fix test_constant_wnaf for -1 and add a test for it. 39198a03ea Merge #732: Retry if r is zero during signing 59a8de8f64 Merge #742: Fix typo in ecmult_const_impl.h 4e284655d9 Fix typo in ecmult_const_impl.h f862b4ca13 Merge #740: Make recovery/main_impl.h non-executable ffef45c98a Make recovery/main_impl.h non-executable 2361b3719a Merge #735: build: fix OpenSSL EC detection on macOS 3b7d26b23c build: add SECP_TEST_INCLUDES to bench_verify CPPFLAGS 84b5fc5bc3 build: fix OpenSSL EC detection on macOS 37ed51a7ea Make ecdsa_sig_sign constant-time again after reverting 25e3cfb 93d343bfc5 Revert "ecdsa_impl: replace scalar if-checks with VERIFY_CHECKs in ecdsa_sig_sign" 7e3952ae82 Clarify documentation of tweak functions. 89853a0f2e Make tweak function documentation more consistent. 41fc785602 Make ec_privkey functions aliases for ec_seckey_negate, ec_seckey_tweak_add and ec_seckey_mul 22911ee6da Rename private key to secret key in public API (with the exception of function names) 5a73f14d6c Mention that value is unspecified for In/Out parameters if the function returns 0 f03df0e6d7 Define valid ECDSA keys in the documentation of seckey_verify 5894e1f1df Return 0 if the given seckey is invalid in privkey_negate, privkey_tweak_add and privkey_tweak_mul 8f814cddb9 Add test for boundary conditions of scalar_set_b32 with respect to overflows 3fec982608 Use scalar_set_b32_seckey in ecdsa_sign, pubkey_create and seckey_verify 9ab2cbe0eb Add scalar_set_b32_seckey which does the same as scalar_set_b32 and also returns whether it's a valid secret key 4f27e344c6 Merge #728: Suppress a harmless variable-time optimization by clang in memczero 01993878bb Add test for memczero() 52a03512c1 Suppress a harmless variable-time optimization by clang in memczero 8f78e208ad Merge #722: Context isn't freed in the ECDH benchmark ed1b91171a Merge #700: Allow overriding default flags 85b35afa76 Add running benchmarks regularly and under valgrind in travis ca4906b02e Pass num of iters to benchmarks as variable, and define envvar 02dd5f1bbb free the ctx at the end of bench_ecdh e9fccd4de1 Merge #708: Constant-time behaviour test using valgrind memtest. 08fb6c4926 Run valgrind_ctime_test in travis 3d2302257f Constant-time behaviour test using valgrind memtest. 96d8ccbd16 Merge #710: Eliminate harmless non-constant time operations on secret data. 0585b8b2ee Merge #718: Clarify that a secp256k1_ecdh_hash_function must return 0 or 1 7b50483ad7 Adds a declassify operation to aid constant-time analysis. 34a67c773b Eliminate harmless non-constant time operations on secret data. ca739cba23 Compile with optimization flag -O2 by default instead of -O3 eb45ef3384 Clarify that a secp256k1_ecdh_hash_function must return 0 or 1 856a01d6ad Merge #714: doc: document the length requirements of output parameter. d72b9e2483 Merge #682: Remove Java Native Interface 4b48a43106 doc: document the length requirements of output parameter. 1b4d256e2e Merge #713: Docstrings dabfea7e21 field: extend docstring of secp256k1_fe_normalize dc7d8fd9e2 scalar: extend docstring of secp256k1_scalar_set_b32 074ab582dd Merge #704: README: add a section for test coverage acb7f97eb8 README: add a section for test coverage 227a4f2d07 Merge #709: Remove secret-dependant non-constant time operation in ecmult_const. d567b779fe Clarify comments about use of rzr on ge functions and abs function. 2241ae6d14 Remove secret-dependant non-constant time operation in ecmult_const. 642cd062bd Remove Java Native Interface 83fb1bcef4 Remove -O2 from default CFLAGS because this would override the -O3 flag (see AC_PROG_CC in the Autoconf manual) ecba8138ec Append instead of Prepend user-CFLAGS to default CFLAGS allowing the user to override default variables 613c34cd86 Remove test in configure.ac because it doesn't have an effect f45d897101 Merge #703: Overhaul README.md 2e759ec753 Overhaul README.md d644dda5c9 Merge #689: Remove "except in benchmarks" exception for fp math bde2a32286 Convert bench.h to fixed-point math 47a7b8382f Clear field elements when writing infinity 61d1ecb028 Added test with additions resulting in infinity 387d723c3f Merge #679: Add SECURITY.md 0db61d25c9 Merge #685: Fix issue where travis does not show the ./tests seed… a0771d15e6 Explicitly disable buffering for stderr in tests fb424fbba2 Make travis show the ./tests seed by removing stdout buffering and always cat tests.log after a travis run. 22a6031184 Merge #690: Add valgrind check to travis 544002c008 Merge #678: Preventing compiler optimizations in benchmarks without a memory fence dd98cc988f travis: Added a valgrind test without endro and enabled recovery+ecdh b4c1382a87 Add valgrind check to travis 0c774d89e6 Merge #688: Fix ASM setting in travis 5c5f71eea5 Fix ASM setting in travis e2625f8a98 Merge #684: Make no-float policy explicit bae1bea3c4 Make no-float policy explicit 78c3836341 Add SECURITY.md 362bb25608 Modified bench_scalar_split so it won't get optimized out 73a30c6b58 Added accumulators and checks on benchmarks so they won't get optimized out 770b3dcd6f Merge #677: Remove note about heap allocation in secp256k1_ecmult_odd_multiples_table_storage_var b76142ff25 Remove note about heap allocation in secp256k1_ecmult_odd_multiples_table_storage_var which was removed in 47045270fa90f81205d989f7107769bce1e71c4d 137d304a6b Merge #647: Increase robustness against UB in secp256k1_scalar_cadd_bit 0d9540b13f Merge #664: Remove mention of ec_privkey_export because it doesn't exist 59782c68b4 Remove mention of ec_privkey_export because it doesn't exist 96cd94e385 Merge #337: variable sized precomputed table for signing dcb2e3b3ff variable signing precompute table b4bff99028 Merge #661: Make ./configure string consistent a467047e11 Make ./configure string consistent e729cc7f5a Merge #657: Fix a nit in the recovery tests b64a2e2597 Fix a nit in the recovery tests e028aa33d3 Merge #650: secp256k1/src/tests.c: Properly handle sscanf return value f1e11d363d Merge #654: Fix typo (∞) ef83281c3a Merge pull request #656 from real-or-random/patch-1 556caad2ca Fix typo in docs for _context_set_illegal_callback 0d82732a9a Improve VERIFY_CHECK of overflow in secp256k1_scalar_cadd_bit. This added check ensures that any curve order overflow doesn't go undetected due a uint32_t overflow. 786dfb49f5 Merge #583: JNI: fix use sig array e95f8ab098 Merge #644: Avoid optimizing out a verify_check 384f55606a Merge #652: README.md: update instruction to run tests ee56accd47 Merge #651: Fix typo in secp256k1_preallocated.h 7b9b117230 Merge #640: scalar_impl.h: fix includes d99bec2e21 Merge #655: jni: Use only Guava for hex encoding and decoding 2abcf951af jni: Use only Guava for hex encoding and decoding 271582b3b7 Fix typo 60f7f2de5d Don't assume that ALIGNMENT > 1 in tests ada6361dec Use ROUND_TO_ALIGN in scratch_create 8ecc6ce50e Add check preventing rounding to alignment from wrapping around in scratch_alloc 4edaf06fb0 Add check preventing integer multiplication wrapping around in scratch_max_allocation ce6d438266 README.md: update instruction to run tests b1e68cb8e6 Fix typo in secp256k1_preallocated.h a11c76c59a secp256k1/src/tests.c: Properly handle sscanf return value 8fe63e5654 Increase robustness against UB. Thanks to elichai2 who noted that the literal '1' is a signed integer, and that shifting a signed 32-bit integer by 31 bits causes an overflow and yields undefined behaviour. While 'scalar_low_impl''s 'secp256k1_scalar_cadd_bit' is only used for testing purposes and currently the 'bit' parameter is only 0 or 1, it is better to avoid undefined behaviour in case the used domain of 'secp256k1_scalar_cadd_bit' expands. 94ae7cbf83 Moved a dereference so the null check will be before the dereferencing 2cb73b1064 scalar_impl.h: fix includes fa33017135 Merge #634: Add a descriptive comment for secp256k1_ecmult_const. ee9e68cd30 Add a descriptive comment for secp256k1_ecmult_const. d0d738d32d Merge #631: typo in comment for secp256k1_ec_pubkey_tweak_mul () 6914c25276 typo in comment for secp256k1_ec_pubkey_tweak_mul () e541a90ef6 Merge #629: Avoid calling _is_zero when _set_b32 fails. f34b0c3f35 Merge #630: Note intention of timing sidechannel freeness. 8d1563b0ff Note intention of timing sidechannel freeness. 1669bb2865 Merge #628: Fix ability to compile tests without -DVERIFY. ecc94abcc8 Merge #627: Guard memcmp in tests against mixed size inputs. 544435fc90 Merge #578: Avoid implementation-defined and undefined behavior when dealing with sizes 143dc6e9ee Merge #595: Allow to use external default callbacks e49f7991c2 Add missing #(un)defines to base-config.h 77defd2c3b Add secp256k1_ prefix to default callback functions 908bdce64e Include stdio.h and stdlib.h explicitly in secp256k1.c 5db782e655 Allow usage of external default callbacks 6095a863fa Replace CHECKs for no_precomp ctx by ARG_CHECKs without a return cd473e02c3 Avoid calling secp256k1_*_is_zero when secp256k1_*_set_b32 fails. 6c36de7a33 Merge #600: scratch space: use single allocation 98836b11f0 scratch: replace frames with "checkpoint" system 7623cf2b97 scratch: save a couple bytes of unnecessarily-allocated memory a7a164f2c6 scratch: rename `max_size` to `size`, document that extra will actually be allocated 5a4bc0bb95 scratch: unify allocations c2b028a281 scratch space: thread `error_callback` into all scratch space functions 0be1a4ae62 scratch: add magic bytes to beginning of structure 92a48a764d scratch space: use single allocation 40839e21b9 Merge #592: Use trivial algorithm in ecmult_multi if scratch space is small dcf392027b Fix ability to compile tests without -DVERIFY. a484e0008b Merge #566: Enable context creation in preallocated memory 0522caac8f Explain caller's obligations for preallocated memory 238305fdbb Move _preallocated functions to separate header 695feb6fbd Export _preallocated functions 814cc78d71 Add tests for contexts in preallocated memory ba12dd08da Check arguments of _preallocated functions 5feadde462 Support cloning a context into preallocated memory c4fd5dab45 Switch to a single malloc call ef020de16f Add size constants for preallocated memory 1bf7c056ba Prepare for manual memory management in preallocated memory 248bffb052 Guard memcmp in tests against mixed size inputs. 36698dcfee Merge #596: Make WINDOW_G configurable a61a93ff50 Clean up ./configure help strings 2842dc523e Make WINDOW_G configurable 1a02d6ce51 Merge #626: Revert "Merge #620: Install headers automatically" 662918cb29 Revert "Merge #620: Install headers automatically" 14c7dbd444 Simplify control flow in DER parsing ec8f20babd Avoid out-of-bound pointers and integer overflows in size comparisons 01ee1b3b3c Parse DER-enconded length into a size_t instead of an int 912680ed86 Merge #561: Respect LDFLAGS and #undef STATIC_PRECOMPUTATION if using basic config 91fae3ace0 Merge #620: Install headers automatically 5df77a0eda Merge #533: Make sure we're not using an uninitialized variable in secp256k1_wnaf_const(...) 975e51e0d9 Merge #617: Pass scalar by reference in secp256k1_wnaf_const() 735fbde04e Merge #619: Clear a copied secret key after negation 16e86150d0 Install headers automatically 069870d92a Clear a copied secret key after negation 8979ec0d9a Pass scalar by reference in secp256k1_wnaf_const() 84a808598b Merge #612: Allow field_10x26_arm.s to compile for ARMv7 architecture d4d270a59c Allow field_10x26_arm.s to compile for ARMv7 architecture b19c000063 Merge #607: Use size_t shifts when computing a size_t 4d01bc2d9c Merge #606: travis: Remove unused sudo:false e6d01e9347 Use size_t shifts when computing a size_t 7667532bd7 travis: Remove unused sudo:false 248f046611 Make sure we're not using an uninitialized variable in secp256k1_wnaf_const(...) 9ab96f7b12 Use trivial algorithm in ecmult_multi if scratch space is small ee99f12f3d Merge #599: Switch x86_64 asm to use "i" instead of "n" for immediate values. d58bc93f2c Switch x86_64 asm to use "i" instead of "n" for immediate values. 05362ee042 Merge #597: Add $(COMMON_LIB) to exhaustive tests to fix ARM asm build 83483869ac Add $(COMMON_LIB) to exhaustive tests to fix ARM asm build aa15154a48 Merge #568: Fix integer overflow in ecmult_multi_var when n is large 2277af5ff0 Fix integer overflow in ecmult_multi_var when n is large dbed75d969 Undefine `STATIC_PRECOMPUTATION` if using the basic config 310111e093 Keep LDFLAGS if `--coverage` 85d0e1bcce Merge #591: Make bench_internal obey secp256k1_fe_sqrt's contract wrt aliasing. 14196379ec Merge #580: Add trivial ecmult_multi algorithm which does not require a scratch space a697d82da9 Add trivial ecmult_multi to the benchmark tool bade617417 Add trivial ecmult_multi algorithm. It is selected when no scratch space is given and just multiplies and adds the points. 5545e13dea Merge #584: configure: Use CFLAGS_FOR_BUILD when checking native compiler 20c5869df2 Merge #516: improvements to random seed in src/tests.c b76e45d5d6 Make bench_internal obey secp256k1_fe_sqrt's contract wrt aliasing. 870a977644 Merge #562: Make use of TAG_PUBKEY constants in secp256k1_eckey_pubkey_parse be40c4d0b5 Fixup for C90 mixed declarations. c71dd2c08f Merge #509: Fix algorithm selection in bench_ecmult 6492bf88cc Merge #518: Summarize build options after running configure 0e9ada1941 Merge #567: Correct order of libs returned on pkg-config --libs --static libsecp2… e96901a4b9 Merge #587: Make randomization of a non-signing context a noop 58df8d03ad Merge #511: Portability fix for the configure scripts generated 2ebdad772a Merge #552: Make constants static: 1c131affd3 Merge #551: secp256k1_fe_sqrt: Verify that the arguments don't alias. ba698f883b Merge #539: Assorted minor corrections 949e85b009 Merge #550: Optimize secp256k1_fe_normalize_weak calls. a34bcaadf1 Actually pass CFLAGS_FOR_BUILD and LDFLAGS_FOR_BUILD to linker 2d5f4cebdc configure: Use CFLAGS_FOR_BUILD when checking native compiler b408c6a8b2 Merge #579: Use __GNUC_PREREQ for detecting __builtin_expect 6198375218 Make randomization of a non-signing context a noop 74e2dbd68e JNI: fix use sig array c663397f46 Use __GNUC_PREREQ for detecting __builtin_expect 3cb057f842 Fix possible integer overflow in DER parsing 89a20a8945 Correct order of libs returned on pkg-config --libs --static libsecp256k1 call. d3cb1f95eb Make use of TAG_PUBKEY constants in secp256k1_eckey_pubkey_parse 496c5b43b8 Make constants static: static const secp256k1_ge secp256k1_ge_const_g; static const int CURVE_B; bf8b86cc07 secp256k1_fe_sqrt: Verify that the arguments don't alias. 9bd89c836b Optimize secp256k1_fe_normalize_weak calls. Move secp256k1_fe_normalize_weak calls out of ECMULT_TABLE_GET_GE and ECMULT_TABLE_GET_GE_STORAGE and into secp256k1_ge_globalz_set_table_gej instead. 52ab96fedb clean dependendies in field_*_impl.h deff5edd42 Correct math typos in field_*.h 4efb3f8dd1 Add check that restrict pointers don't alias with all parameters. 3965027c81 Summarize build options in configure script 0f0517369c Fix algorithm selection in bench_ecmult 8b3841c91d fix bug in fread() failure check cddef0c0be tests: add warning message when /dev/urandom fails 270f6c80db Portability fix for the configure scripts generated REVERT: 43dd1f4fe7 Merge pull request #40 from instagibbs/size_t REVERT: 6532fa0a96 Merge pull request #39 from instagibbs/more_builds REVERT: 2b2429dfaa rangeproof: reduce iteration count in unit tests REVERT: 12b0e5dda7 Enable more builds with rest of experimental flags REVERT: 8c444eef6a use proper types for rangeproof min/max REVERT: 53ad841caf Add explanation about how BIP32 unhardened derivation can be used to simplify whitelisting REVERT: 71c5fe0f6e Add comment to explain effect of max_n_iterations in surjectionproof_init REVERT: 85fd42fb7e add unit test for generator and pedersen commitment roundtripping REVERT: 2ccf885419 rangeproof: fix serialization of pedersen commintments REVERT: 60c173b640 rangeproof: verify correctness of pedersen commitments when parsing REVERT: 32d7526cd5 generator: verify correctness of point when parsing REVERT: ae14e8a9d8 rangeproof: check that points deserialize correctly when verifying rangeproof REVERT: 44fe43d757 rangeproof: add fixed vector test case REVERT: e065d7df9f Expose generator in shared library REVERT: fb1ba329aa fix spelling in documentation REVERT: fb75faa147 Test for rejection of trailing bytes in range proofs REVERT: 9b2cf1708d Test for rejection of trailing bytes in surjection proofs REVERT: a3a1800ba6 Reject surjection proofs with trailing garbage REVERT: 0c77ae9a75 Minor bugfix. Wrong length due to NUL character. REVERT: b1f31bc4b6 Add whitelisting benchmark REVERT: 52a9f8f8f3 add whitelist_impl.h to include for dist REVERT: a707865bc5 generator: add API tests REVERT: ec1ef040f5 generator: remove unnecessary ARG_CHECK from generate() REVERT: b0e9aa828f Fix generator makefile REVERT: 526c65499f Fix pedersen_blind_generator_blind_sum return value documentation REVERT: b51886e722 Add n_keys argument to whitelist_verify REVERT: 37c57de083 Fix checks of whitelist serialize/parse arguments REVERT: 9b8a9d91eb whitelist: fix serialize/parse API to take serialized length REVERT: 7f17515609 Fix include/secp256k1_rangeproof.h function argument documentation. REVERT: 0d817020d9 rangeproof: add API tests REVERT: 417bb0643f surjectionproof: rename unit test functions to be more consistent with other modules REVERT: 1e2d5c1a26 surjectionproof: add API unit tests REVERT: 7878a298b2 surjectionproof: tests_impl.h s/assert/CHECK/g REVERT: e609591b66 rangeproof: fix memory leak in unit tests REVERT: 0c17f7972a add surjection proof module REVERT: c174f0c609 Implement ring-signature based whitelist delegation scheme REVERT: a2bc6604f9 rangeproof: several API changes REVERT: 21bfb3c91a Expose generator in pedersen/rangeproof API REVERT: f4620de040 Constant-time generator module REVERT: d46fc3c191 rangeproof: expose sidechannel message field in the signing API REVERT: cf40b1bed2 [RANGEPROOF BREAK] Use quadratic residue for tie break and modularity cleanup REVERT: 6d28767c79 Get rid of precomputed H tables (Pieter Wuille) REVERT: ae1e576f67 Pedersen commitments, borromean ring signatures, and ZK range proofs. REVERT: efc61dc0ca Add 64-bit integer utilities git-subtree-dir: src/secp256k1 git-subtree-split: 0129b77767ea001e5693e39ac6deecea0c461817 |
||
|
|
2d465aa9cd |
Squashed 'src/secp256k1/' changes from 0b70241..53ad841
53ad841 Add explanation about how BIP32 unhardened derivation can be used to simplify whitelisting 71c5fe0 Add comment to explain effect of max_n_iterations in surjectionproof_init 85fd42f add unit test for generator and pedersen commitment roundtripping 2ccf885 rangeproof: fix serialization of pedersen commintments 60c173b rangeproof: verify correctness of pedersen commitments when parsing 32d7526 generator: verify correctness of point when parsing ae14e8a rangeproof: check that points deserialize correctly when verifying rangeproof 44fe43d rangeproof: add fixed vector test case e065d7d Expose generator in shared library fb1ba32 fix spelling in documentation fb75faa Test for rejection of trailing bytes in range proofs 9b2cf17 Test for rejection of trailing bytes in surjection proofs a3a1800 Reject surjection proofs with trailing garbage 0c77ae9 Minor bugfix. Wrong length due to NUL character. b1f31bc Add whitelisting benchmark 52a9f8f add whitelist_impl.h to include for dist a707865 generator: add API tests ec1ef04 generator: remove unnecessary ARG_CHECK from generate() b0e9aa8 Fix generator makefile 526c654 Fix pedersen_blind_generator_blind_sum return value documentation b51886e Add n_keys argument to whitelist_verify 37c57de Fix checks of whitelist serialize/parse arguments 9b8a9d9 whitelist: fix serialize/parse API to take serialized length 7f17515 Fix include/secp256k1_rangeproof.h function argument documentation. 0d81702 rangeproof: add API tests 417bb06 surjectionproof: rename unit test functions to be more consistent with other modules 1e2d5c1 surjectionproof: add API unit tests 7878a29 surjectionproof: tests_impl.h s/assert/CHECK/g e609591 rangeproof: fix memory leak in unit tests 0c17f79 add surjection proof module c174f0c Implement ring-signature based whitelist delegation scheme a2bc660 rangeproof: several API changes 21bfb3c Expose generator in pedersen/rangeproof API f4620de Constant-time generator module d46fc3c rangeproof: expose sidechannel message field in the signing API cf40b1b [RANGEPROOF BREAK] Use quadratic residue for tie break and modularity cleanup 6d28767 Get rid of precomputed H tables (Pieter Wuille) ae1e576 Pedersen commitments, borromean ring signatures, and ZK range proofs. efc61dc Add 64-bit integer utilities e34ceb3 Merge #557: Eliminate scratch memory used when generating contexts b3bf5f9 ecmult_impl: expand comment to explain how effective affine interacts with everything efa783f Store z-ratios in the 'x' coord they'll recover ffd3b34 add `secp256k1_ge_set_all_gej_var` test which deals with many infinite points 84740ac ecmult_impl: save one fe_inv_var 4704527 ecmult_impl: eliminate scratch memory used when generating context 7f7a2ed ecmult_gen_impl: eliminate scratch memory used when generating context 314a61d Merge #553: add static context object which has no capabilities 1086fda Merge #354: [ECDH API change] Support custom hash function 40fde61 prevent attempts to modify `secp256k1_context_no_precomp` ed7c084 add static context object which has no capabilities 1e6f1f5 Merge #529: fix tests.c in the count == 0 case c8fbc3c [ECDH API change] Allow pass arbitrary data to hash function b00be65 [ECDH API change] Support custom hash function 95e99f1 fix tests.c in the count == 0 case 452d8e4 Merge #523: scratch: add stack frame support 6fe5043 scratch: add stack frame support 9bc2e26 Merge #522: parameterize ecmult_const over input size 7c1b91b parameterize ecmult_const over input size dbc3ddd Merge #513: Increase sparsity of pippenger fixed window naf representation fb9271d Merge #510: add a couple missing `const`s to ecmult_pippenger_wnaf cd5f602 Merge #515: Fix typo 09146ae Merge #512: secp256k1_ec_privkey_negate - fix documentation ec0a7b3 Don't touch leading zeros in wnaf_fixed. 9e36d1b Fix bug in wnaf_fixed where the wnaf array is not completely zeroed when given a 0 scalar. 96f68a0 Don't invert scalar in wnaf_fixed when it is even because a caller might intentionally give a scalar with many leading zeros. 9b7c47a Fix typo 6dbb007 Increase sparsity of pippenger fixed window naf representation 1646ace secp256k1_ec_privkey_negate - fix documentation 9b3ff03 add a couple missing `const`s to ecmult_pippenger_wnaf cd329db Merge #460: [build] Update ax_jni_include_dir.m4 macro 7f9c1a1 Merge #498: tests: Avoid calling fclose(...) with an invalid argument f99aa8d Merge #499: tests: Make sure we get the requested number of bytes from /dev/urandom b549d3d Merge #472: [build] Set --enable-jni to no by default instead of auto. d333521 Merge #494: Support OpenSSL versions >= 1.1 for ENABLE_OPENSSL_TESTS 2ef8ea5 Merge #495: Add bench_ecmult to .gitignore 82a96e4 tests: Make sure we get the requested number of bytes from /dev/urandom 5aae5b5 Avoid calling fclose(...) with an invalid argument cb32940 Add bench_ecmult to .gitignore 31abd3a Support OpenSSL versions >= 1.1 for ENABLE_OPENSSL_TESTS c95f6f1 Merge #487: fix tests typo, s/changed/unchanged fb46c83 Merge #463: Reduce usage of hardcoded size constants 02f5001 Merge #490: Disambiguate bench functions and types 1f46d60 Disambiguate bench functions and types f54c6c5 Merge #480: Enable benchmark building by default c77fc08 Merge #486: Add pippenger_wnaf for multi-multiplication d2f9c6b Use more precise pippenger bucket windows 4c950bb Save some additions per window in _pippenger_wnaf a58f543 Add flags for choosing algorithm in ecmult_multi benchmark 36b22c9 Use scratch space dependent batching in ecmult_multi 355a38f Add pippenger_wnaf ecmult_multi bc65aa7 Add bench_ecmult dba5471 Add ecmult_multi tests 8c1c831 Generalize Strauss to support multiple points 548de42 add resizeable scratch space API 0e96cdc fix typo, s/changed/unchanged c7680e5 Reduce usage of hardcoded size constants 6ad5cdb Merge #479: Get rid of reserved _t in type names 7a78f60 Print whether we're building benchmarks 4afec9f Build benchmarks by default d1dc9df Get rid of reserved _t in type names 57752d2 [build] Set --enable-jni to no by default instead of auto. e7daa9b [build] Tweak JNI macro to warn instead of error for JNI not found. 5b22977 [build] Update ax_jni_include_dir.m4 macro to deal with recent versions of macOS git-subtree-dir: src/secp256k1 git-subtree-split: 53ad841cafa3bcb94b65409aec91fd7043533cf7 |
||
|
|
fd86f998fc |
Squashed 'src/secp256k1/' changes from 84973d393..0b7024185
0b7024185 Merge #474: Fix header guards using reserved identifiers ab1f89f00 Merge #478: Fixed multiple typos 8c7ea22d5 Fixed multiple typos abe2d3e84 Fix header guards using reserved identifiers f532bdc9f Merge #459: Add pubkey prefix constants to include/secp256k1.h cac7c5559 Merge #470: Fix wnaf_const documentation 768514bac Fix wnaf_const documentation with respect to return value and number of words set b8c26a399 Merge #458: Fix typo in API documentation 817fb2013 Merge #440: Fix typos 12230f90e Merge #468: Remove redundant conditional expression 2e1ccdca0 Remove redundant conditional expression bc61b91ac add pubkey prefix constants to include/secp256k1.h b0452e664 Fix typo in API documentation 4c0f32ed5 Fix typo: "Agressive" → "Aggressive" 73aca8364 Fix typo: "exectured" → "executed" git-subtree-dir: src/secp256k1 git-subtree-split: 0b7024185045a49a1a6a4c5615bf31c94f63d9c4 |
||
|
|
e7c1b4490f |
Squashed 'src/secp256k1/' changes from 8225239..84973d3
84973d3 Merge #454: Remove residual parts from the schnorr expirement. 5e95bf2 Remove residual parts from the schnorr expirement. cbc20b8 Merge #452: Minor optimizations to _scalar_inverse to save 4M 4cc8f52 Merge #437: Unroll secp256k1_fe_(get|set)_b32 to make them much faster. 465159c Further shorten the addition chain for scalar inversion. a2b6b19 Fix benchmark print_number infinite loop. 8b7680a Unroll secp256k1_fe_(get|set)_b32 for 10x26. aa84990 Unroll secp256k1_fe_(get|set)_b32 for 5x52. cf12fa1 Minor optimizations to _scalar_inverse to save 4M 1199492 Merge #408: Add `secp256k1_ec_pubkey_negate` and `secp256k1_ec_privkey_negate` 6af0871 Merge #441: secp256k1_context_randomize: document. ab31a52 Merge #444: test: Use checked_alloc eda5c1a Merge #449: Remove executable bit from secp256k1.c 51b77ae Remove executable bit from secp256k1.c 5eb030c test: Use checked_alloc 72d952c FIXUP: Missing "is" 70ff29b secp256k1_context_randomize: document. 9d560f9 Merge #428: Exhaustive recovery 8e48aa6 Add `secp256k1_ec_pubkey_negate` and `secp256k1_ec_privkey_negate` 2cee5fd exhaustive tests: add recovery module 678b0e5 exhaustive tests: remove erroneous comment from ecdsa_sig_sign 03ff8c2 group_impl.h: remove unused `secp256k1_ge_set_infinity` function a724d72 configure: add --enable-coverage to set options for coverage analysis b595163 recovery: add tests to cover API misusage 6f8ae2f ecdh: test NULL-checking of arguments 25e3cfb ecdsa_impl: replace scalar if-checks with VERIFY_CHECKs in ecdsa_sig_sign git-subtree-dir: src/secp256k1 git-subtree-split: 84973d393ac240a90b2e1a6538c5368202bc2224 |
||
|
|
7b49f22bdb |
Squashed 'src/secp256k1/' changes from 7a49cac..8225239
8225239 Merge #433: Make the libcrypto detection fail the newer API. 12de863 Make the libcrypto detection fail the newer API. 2928420 Merge #427: Remove Schnorr from travis as well 8eecc4a Remove Schnorr from travis as well a8abae7 Merge #310: Add exhaustive test for group functions on a low-order subgroup b4ceedf Add exhaustive test for verification 83836a9 Add exhaustive tests for group arithmetic, signing, and ecmult on a small group 20b8877 Add exhaustive test for group functions on a low-order subgroup 80773a6 Merge #425: Remove Schnorr experiment e06e878 Remove Schnorr experiment 04c8ef3 Merge #407: Modify parameter order of internal functions to match API parameter order 6e06696 Merge #411: Remove guarantees about memcmp-ability 40c8d7e Merge #421: Update scalar_4x64_impl.h a922365 Merge #422: Restructure nonce clearing 3769783 Restructure nonce clearing 0f9e69d Restructure nonce clearing 9d67afa Update scalar_4x64_impl.h 7d15cd7 Merge #413: fix auto-enabled static precompuatation 00c5d2e fix auto-enabled static precompuatation 91219a1 Remove guarantees about memcmp-ability 353c1bf Fix secp256k1_ge_set_table_gej_var parameter order 541b783 Fix secp256k1_ge_set_all_gej_var parameter order 7d893f4 Fix secp256k1_fe_inv_all_var parameter order git-subtree-dir: src/secp256k1 git-subtree-split: 8225239f490f79842a5a3b82ad6cc8aa11d5208e |
||
|
|
1d84107924 |
Squashed 'src/secp256k1/' changes from 22f60a6..2bfb82b
2bfb82b Merge pull request #351 06aeea5 Turn secp256k1_ec_pubkey_serialize outlen to in/out 970164d Merge pull request #348 6466625 Improvements for coordinate decompression e2100ad Merge pull request #347 8e48787 Change secp256k1_ec_pubkey_combine's count argument to size_t. c69dea0 Clear output in more cases for pubkey_combine, adds tests. 269d422 Comment copyediting. b4d17da Merge pull request #344 4709265 Merge pull request #345 26abce7 Adds 32 static test vectors for scalar mul, sqr, inv. 5b71a3f Better error case handling for pubkey_create & pubkey_serialize, more tests. 3b7bc69 Merge pull request #343 eed87af Change contrib/laxder from headers-only to files compilable as standalone C d7eb1ae Merge pull request #342 7914a6e Make lax_der_privatekey_parsing.h not depend on internal code 73f64ff Merge pull request #339 9234391 Overhaul flags handling 1a36898 Make flags more explicit, add runtime checks. 1a3e03a Merge pull request #340 96be204 Add additional tests for eckey and arg-checks. bb5aa4d Make the tweak function zeroize-output-on-fail behavior consistent. 4a243da Move secp256k1_ec_privkey_import/export to contrib. 1b3efc1 Move secp256k1_ecdsa_sig_recover into the recovery module. e3cd679 Eliminate all side-effects from VERIFY_CHECK() usage. b30fc85 Avoid nonce_function_rfc6979 algo16 argument emulation. 70d4640 Make secp256k1_ec_pubkey_create skip processing invalid secret keys. 6c476a8 Minor comment improvements. 131afe5 Merge pull request #334 0c6ab2f Introduce explicit lower-S normalization fea19e7 Add contrib/lax_der_parsing.h 3bb9c44 Rewrite ECDSA signature parsing code fa57f1b Use secp256k1_rand_int and secp256k1_rand_bits more 49b3749 Add new tests for the extra testrand functions f684d7d Faster secp256k1_rand_int implementation 251b1a6 Improve testrand: add extra random functions 31994c8 Merge pull request #338 f79aa88 Bugfix: swap arguments to noncefp c98df26 Merge pull request #319 67f7da4 Extensive interface and operations tests for secp256k1_ec_pubkey_parse. ee2cb40 Add ARG_CHECKs to secp256k1_ec_pubkey_parse/secp256k1_ec_pubkey_serialize 7450ef1 Merge pull request #328 68a3c76 Merge pull request #329 98135ee Merge pull request #332 37100d7 improve ECDH header-doc b13d749 Fix couple of typos in API comments 7c823e3 travis: fixup module configs cc3141a Merge pull request #325 ee58fae Merge pull request #326 213aa67 Do not force benchmarks to be statically linked. 338fc8b Add API exports to secp256k1_nonce_function_default and secp256k1_nonce_function_rfc6979. 52fd03f Merge pull request #320 9f6993f Remove some dead code. 357f8cd Merge pull request #314 118cd82 Use explicit symbol visibility. 4e64608 Include public module headers when compiling modules. 1f41437 Merge pull request #316 fe0d463 Merge pull request #317 cfe0ed9 Fix miscellaneous style nits that irritate overactive static analysis. 2b199de Use the explicit NULL macro for pointer comparisons. 9e90516 Merge pull request #294 dd891e0 Get rid of _t as it is POSIX reserved 201819b Merge pull request #313 912f203 Eliminate a few unbraced statements that crept into the code. eeab823 Merge pull request #299 486b9bb Use a flags bitfield for compressed option to secp256k1_ec_pubkey_serialize and secp256k1_ec_privkey_export 05732c5 Callback data: Accept pointers to either const or non-const data 1973c73 Bugfix: Reinitialise buffer lengths that have been used as outputs 788038d Use size_t for lengths (at least in external API) c9d7c2a secp256k1_context_set_{error,illegal}_callback: Restore default handler by passing NULL as function argument 9aac008 secp256k1_context_destroy: Allow NULL argument as a no-op 64b730b secp256k1_context_create: Use unsigned type for flags bitfield cb04ab5 Merge pull request #309 a551669 Merge pull request #295 81e45ff Update group_impl.h 85e3a2c Merge pull request #112 b2eb63b Merge pull request #293 dc0ce9f [API BREAK] Change argument order to out/outin/in 6d947ca Merge pull request #298 c822693 Merge pull request #301 6d04350 Merge pull request #303 7ab311c Merge pull request #304 5fb3229 Fixes a bug where bench_sign would fail due to passing in too small a buffer. 263dcbc remove unused assignment b183b41 bugfix: "ARG_CHECK(ctx != NULL)" makes no sense 6da1446 build: fix parallel build 5eb4356 Merge pull request #291 c996d53 Print success 9f443be Move pubkey recovery code to separate module d49abbd Separate ECDSA recovery tests 439d34a Separate recoverable and normal signatures a7b046e Merge pull request #289 f66907f Improve/reformat API documentation secp256k1.h 2f77487 Add context building benchmarks cc623d5 Merge pull request #287 de7e398 small typo fix 9d96e36 Merge pull request #280 432e1ce Merge pull request #283 14727fd Use correct name in gitignore 356b0e9 Actually test static precomputation in Travis ff3a5df Merge pull request #284 2587208 Merge pull request #212 a5a66c7 Add support for custom EC-Schnorr-SHA256 signatures d84a378 Merge pull request #252 72ae443 Improve perf. of cmov-based table lookup 92e53fc Implement endomorphism optimization for secp256k1_ecmult_const ed35d43 Make `secp256k1_scalar_add_bit` conditional; make `secp256k1_scalar_split_lambda_var` constant time 91c0ce9 Add benchmarks for ECDH and const-time multiplication 0739bbb Add ECDH module which works by hashing the output of ecmult_const 4401500 Add constant-time multiply `secp256k1_ecmult_const` for ECDH e4ce393 build: fix hard-coded usage of "gen_context" b8e39ac build: don't use BUILT_SOURCES for the static context header baa75da tests: add a couple tests ae4f0c6 Merge pull request #278 995c548 Introduce callback functions for dealing with errors. c333074 Merge pull request #282 18c329c Remove the internal secp256k1_ecdsa_sig_t type 74a2acd Add a secp256k1_ecdsa_signature_t type 23cfa91 Introduce secp256k1_pubkey_t type 4c63780 Merge pull request #269 3e6f1e2 Change rfc6979 implementation to be a generic PRNG ed5334a Update configure.ac to make it build on OpenBSD 1b68366 Merge pull request #274 a83bb48 Make ecmult static precomputation default 166b32f Merge pull request #276 c37812f Add gen_context src/ecmult_static_context.h to CLEANFILES to fix distclean. 125c15d Merge pull request #275 76f6769 Fix build with static ecmult altroot and make dist. 5133f78 Merge pull request #254 b0a60e6 Merge pull request #258 733c1e6 Add travis build to test the static context. fbecc38 Add ability to use a statically generated ecmult context. 4fb174d Merge pull request #263 4ab8990 Merge pull request #270 bdf0e0c Merge pull request #271 31d0c1f Merge pull request #273 eb2c8ff Add missing casts to SECP256K1_FE_CONST_INNER 55399c2 Further performance improvements to _ecmult_wnaf 99fd963 Add secp256k1_ec_pubkey_compress(), with test similar to the related decompress() function. 145cc6e Improve performance of _ecmult_wnaf 36b305a Verify the result of GMP modular inverse using non-GMP code 0cbc860 Merge pull request #266 06ff7fe Merge pull request #267 5a43124 Save 1 _fe_negate since s1 == -s2 a5d796e Update code comments 3f3964e Add specific VERIFY tests for _fe_cmov 7d054cd Refactor to save a _fe_negate b28d02a Refactor to remove a local var 55e7fc3 Perf. improvement in _gej_add_ge a0601cd Fix VERIFY calculations in _fe_cmov methods 17f7148 Merge pull request #261 7657420 Add tests for adding P+Q with P.x!=Q.x and P.y=-Q.y 8c5d5f7 tests: Add failing unit test for #257 (bad addition formula) 5de4c5d gej_add_ge: fix degenerate case when computing P + (-lambda)P bcf2fcf gej_add_ge: rearrange algebra e2a07c7 Fix compilation with C++ 873a453 Merge pull request #250 91eb0da Merge pull request #247 210ffed Use separate in and out pointers in `secp256k1_ec_pubkey_decompress` a1d5ae1 Tiny optimization 729badf Merge pull request #210 2d5a186 Apply effective-affine trick to precomp 4f9791a Effective affine addition in EC multiplication 2b4cf41 Use pkg-config always when possible, with failover to manual checks for libcrypto git-subtree-dir: src/secp256k1 git-subtree-split: 2bfb82b10edf0f0b0e366a12f94c8b21a914159d |
||
|
|
a591d98c32 |
Squashed 'src/secp256k1/' changes from 1897b8e..22f60a6
22f60a6 Merge pull request #245 61c1b1e Merge pull request #190 d227579 Add scalar blinding and a secp256k1_context_randomize() call. c146b4a Add bench_internal to gitignore. 9c4fb23 Add a secp256k1_fe_cmov unit test. 426fa52 Merge pull request #243 d505a89 Merge pull request #244 2d2707a travis: test i686 builds with gmp cf7f702 travis: update to new build infrastructure bb0ea50 Replace set/add with cmov in secp256k1_gej_add_ge. f3d3519 Merge pull request #241 5c2a4fa Fix memory leak in context unit test 14aacdc Merge pull request #239 93226a5 secp256k1.c: Add missing DEBUG_CHECKs for sufficiently capable contexts 6099220 Merge pull request #237 6066bb6 Fix typo: avg -> max 9688030 Merge pull request #236 d899b5b Expose ability to deep-copy a context 3608c7f Merge pull request #208 a9b6595 [API BREAK] Introduce explicit contexts a0d3b89 Merge pull request #233 9e8d89b Merge pull request #234 65e70e7 Merge pull request #235 5098f62 Improve documentation formatting consistency 4450e24 Add a comment about the avoidance of secret data in array indexes. 6534ee1 initialize variable d5b53aa Merge pull request #232 c01df1a Avoid some implicit type conversions to make C++ compilers happy. bfe96ba Merge pull request #231 33270bf Add a couple comments pointing to particular sections of RFC6979. 41603aa Merge pull request #230 2632019 Brace all the if/for/while. git-subtree-dir: src/secp256k1 git-subtree-split: 22f60a62801a8a49ecd049e7a563f69a41affd8d |
||
|
|
9d09322b41 |
Squashed 'src/secp256k1/' changes from 50cc6ab..1897b8e
1897b8e Merge pull request #229
efc571c Add simple testcases for signing with rfc6979 extra entropy.
1573a10 Add ability to pass extra entropy to rfc6979
3087bc4 Merge pull request #228
d9b9f11 Merge pull request #218
0065a8f Eliminate multiple-returns from secp256k1.c.
354ffa3 Make secp256k1_ec_pubkey_create reject oversized secrets.
27bc131 Silence some warnings from pedantic static analysis tools, improve compatibility with C++.
3b7ea63 Merge pull request #221
f789c5b Merge pull request #215
4bc273b Merge pull request #222
137a8ec Merge pull request #216
7c3771d Disable overlength-strings warnings.
8956111 use 128-bit hex seed
02efd06 Use RFC6979 for test PRNGs
ae55e85 Use faster byteswapping and avoid alignment-increasing casts.
443cd4b Get rid of hex format and some binary conversions
0bada0e Merge #214: Improve signing API documentation & specification
8030d7c Improve signing API documentation & specification
7b2fc1c Merge #213: Removed gotos, which are hard to trace and maintain.
11690d3 Removed gotos, which are hard to trace and maintain.
122a1ec Merge pull request #205
035406d Merge pull request #206
2d4cd53 Merge pull request #161
34b898d Additional comments for the testing PRNG and a seeding fix.
6efd6e7 Some comments explaining some of the constants in the code.
ffccfd2 x86_64 assembly optimization for scalar_4x64
67cbdf0 Merge pull request #207
039723d Benchmarks for all internal operations
6cc8425 Include a comment on secp256k1_ecdsa_sign explaining low-s.
f88343f Merge pull request #203
d61e899 Add group operation counts
2473f17 Merge pull request #202
b5bbce6 Some readme updates, e.g. removal of the GMP field.
f0d851e Merge pull request #201
a0ea884 Merge pull request #200
f735446 Convert the rest of the codebase to C89.
bf2e1ac Convert tests to C89. (also fixes a use of bare "inline" in field)
fc8285f Merge pull request #199
fff412e Merge pull request #197
4be8d6f Centralize the definition of uint128_t and use it uniformly.
d9543c9 Switch scalar code to C89.
fcc48c4 Remove the non-storage cmov
|
||
|
|
7873633b57 |
Squashed 'src/secp256k1/' changes from bccaf86..50cc6ab
50cc6ab Merge pull request #178 941e221 Add tests for handling of the nonce function in signing. 10c81ff Merge pull request #177 7688e34 Add magnitude limits to secp256k1_fe_verify to ensure that it's own tests function correctly. 4ee4f7a Merge pull request #176 70ae0d2 Use secp256k1_fe_equal_var in secp256k1_fe_sqrt_var. 7767b4d Merge pull request #175 9ab9335 Add a reference consistency test to ge_tests. 60571c6 Rework group tests d26e26f Avoid constructing an invalid signature with probability 1:2^256. b450c34 Merge pull request #163 d57cae9 Merge pull request #154 49ee0db Add _normalizes_to_zero_var variant eed599d Add _fe_normalizes_to_zero method d7174ed Weak normalization for secp256k1_fe_equal 0295f0a weak normalization bbd5ba7 Use rfc6979 as default nonce generation function b37fbc2 Implement SHA256 / HMAC-SHA256 / RFC6979. c6e7f4e [API BREAK] Use a nonce-generation function instead of a nonce cf0c48b Merge pull request #169 603c33b Make signing fail if a too small buffer is passed. 6d16606 Merge pull request #168 7277fd7 Remove GMP field implementation e99c4c4 Merge pull request #123 13278f6 Add explanation about how inversion can be avoided ce7eb6f Optimize verification: avoid field inverse a098f78 Merge pull request #160 38acd01 Merge pull request #165 6a59012 Make git ignore bench_recover when configured with benchmark enabled 1ba4a60 Configure options reorganization 3c0f246 Merge pull request #157 808dd9b Merge pull request #156 8dc75e9 Merge pull request #158 28ade27 build: nuke bashisms 5190079 build: use subdir-objects for automake 8336040 build: disable benchmark by default git-subtree-dir: src/secp256k1 git-subtree-split: 50cc6ab0625efda6dddf1dc86c1e2671f069b0d8 |
||
|
|
ecae2acb06 |
Squashed 'src/secp256k1/' changes from b0210a9..bccaf86
bccaf86 Merge pull request #150 2a53a47 Merge pull request #151 5f5a31f Merge pull request #149 3907277 Merge pull request #142 a3e0611 Enable tests in x86 travis builds 45da235 x86 builder 8bb0e93 Merge pull request #155 971fe81 build: fix openssl detection for cross builds f22d73e Explicitly access %0..%2 as 64-bit so we use the right registers for x32 ABI e66d4d6 Avoid the stack in assembly and use explicit registers cf7b2b4 Fix ECDSA message hashes to 32 bytes 056ad31 Really compile with -O3 by default 74ad63a Merge pull request #146 9000458 Merge pull request #145 1f46b00 build: fix __builtin_expect detection for clang aaba2e0 Merge pull request #136 8a0775c Merge pull request #144 ee1eaa7 Merge pull request #141 c88e2b8 Compile with -O3 by default 6558a26 Make the benchmarks print out stats 000bdf6 Rename bench_verify to bench_recovery 7c6fed2 Add a few more additional tests. 992e03b travis: add clang to the test matrix b43b79a Merge pull request #143 e06a924 Include time.h header for time(). 8d11164 Add some additional tests. 3545627 Merge pull request #118 6a9901e Merge pull request #137 376b28b Merge pull request #128 1728806 Merge pull request #138 a5759c5 Check return value of malloc 39bd94d Variable time normalize ad86bdf Merge pull request #140 54b768c Another redundant secp256k1_fe_normalize 69dcaab Merge pull request #139 1c29f2e Remove redundant secp256k1_fe_normalize from secp256k1_gej_add_ge_var. 2b9388b Remove unused secp256k1_fe_inv_all f461b76 Allocate precomputation arrays on the heap b2c9681 Make {mul,sqr}_inner use the same argument order as {mul,sqr} 6793505 Convert YASM code into inline assembly f048615 Rewrite field assembly to match the C version 3ce74b1 Tweak precomputed table size for G git-subtree-dir: src/secp256k1 git-subtree-split: bccaf86caa9c44166e5a66600b742c516e03c3f0 |
||
|
|
87bddb7a3a |
Squashed 'src/secp256k1/' changes from ad2028f..b0210a9
b0210a9 Merge pull request #135 ee3eb4b Fix a memory leak and add a number of small tests. 4d879a3 Merge pull request #134 d5e8362 Merge pull request #127 7b92cf6 Merge pull request #132 0bf70a5 Merge pull request #133 29ae131 Make scalar_add_bit test's overflow detection exact 9048def Avoid undefined shift behaviour efb7d4b Use constant-time conditional moves instead of byte slicing d220062 Merge pull request #131 82f9254 Fix typo 601ca04 Merge pull request #129 35399e0 Bugfix: b is restricted, not r c35ff1e Convert lambda splitter to pure scalar code. cc604e9 Avoid division when decomposing scalars ff8746d Add secp256k1_scalar_mul_shift_var bd313f7 Merge pull request #119 276f987 Merge pull request #124 25d125e Merge pull request #126 24b3c65 Add a test case for ECDSA recomputing infinity 32600e5 Add a test for r >= order signature handling 4d4eeea Make secp256k1_fe_mul_inner use the r != property be82e92 Require that r and b are different for field multiplication. 597128d Make num optional 659b554 Make constant initializers independent from num 0af5b47 Merge pull request #120 e2e8a36 Merge pull request #117 c76be9e Remove unused num functions 4285a98 Move lambda-splitting code to scalar. f24041d Switch all EC/ECDSA logic from num to scalar 6794be6 Add scalar splitting functions d1502eb Add secp256k1_scalar_inverse_var which delegates to GMP b5c9ee7 Make test_point_times_order test meaningful again 0b73059 Switch wnaf splitting from num-based to scalar-based 1e6c77c Generalize secp256k1_scalar_get_bits 5213207 Add secp256k1_scalar_add_bit 3c0ae43 Merge pull request #122 6e05287 Do signature recovery/verification with 4 possible recid case e3d692f Explain why no y=0 check is necessary for doubling f7dc1c6 Optimize doubling: secp256k1 has no y=0 point 666d3b5 Merge pull request #121 2a54f9b Correct typo in comment 9d64145 Merge pull request #114 99f0728 Fix secp256k1_num_set_bin handling of 0 d907ebc Add bounds checking to field element setters bb2cd94 Merge pull request #116 665775b Don't split the g factor when not using endomorphism 9431d6b Merge pull request #115 e2274c5 build: osx: attempt to work with homebrew keg-only packages git-subtree-dir: src/secp256k1 git-subtree-split: b0210a95da433e048a11d298efbcc14eb423c95f |
||
|
|
d48555b36a |
Squashed 'src/secp256k1/' content from commit ad2028f
git-subtree-dir: src/secp256k1 git-subtree-split: ad2028f9890ca40bdd32055aa0fe5c1c9af0e485 |