zcashd/src/secp256k1/libsecp256k1.pc.in

14 lines
327 B
PkgConfig
Raw Normal View History

prefix=@prefix@
exec_prefix=@exec_prefix@
libdir=@libdir@
includedir=@includedir@
Name: libsecp256k1
Description: Optimized C library for EC operations on curve secp256k1
Squashed 'src/secp256k1/' changes from 22f60a6..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 8225239 Merge #433: Make the libcrypto detection fail the newer API. 12de863 Make the libcrypto detection fail the newer API. 678b0e5 exhaustive tests: remove erroneous comment from ecdsa_sig_sign 2928420 Merge #427: Remove Schnorr from travis as well 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 8eecc4a Remove Schnorr from travis as well 6f8ae2f ecdh: test NULL-checking of arguments 25e3cfb ecdsa_impl: replace scalar if-checks with VERIFY_CHECKs in ecdsa_sig_sign 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 7a49cac Merge #410: Add string.h include to ecmult_impl 0bbd5d4 Add string.h include to ecmult_impl 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 c5b32e1 Merge #405: Make secp256k1_fe_sqrt constant time 926836a Make secp256k1_fe_sqrt constant time e2a8e92 Merge #404: Replace 3M + 4S doubling formula with 2M + 5S one 8ec49d8 Add note about 2M + 5S doubling formula 5a91bd7 Merge #400: A couple minor cleanups ac01378 build: add -DSECP256K1_BUILD to benchmark_internal build flags a6c6f99 Remove a bunch of unused stdlib #includes 65285a6 Merge #403: configure: add flag to disable OpenSSL tests a9b2a5d configure: add flag to disable OpenSSL tests b340123 Merge #402: Add support for testing quadratic residues e6e9805 Add function for testing quadratic residue field/group elements. efd953a Add Jacobi symbol test via GMP fa36a0d Merge #401: ecmult_const: unify endomorphism and non-endomorphism skew cases c6191fd ecmult_const: unify endomorphism and non-endomorphism skew cases 0b3e618 Merge #378: .gitignore build-aux cleanup 6042217 Merge #384: JNI: align shared files copyright/comments to bitcoinj's 24ad20f Merge #399: build: verify that the native compiler works for static precomp b3be852 Merge #398: Test whether ECDH and Schnorr are enabled for JNI aa0b1fd build: verify that the native compiler works for static precomp eee808d Test whether ECDH and Schnorr are enabled for JNI 7b0fb18 Merge #366: ARM assembly implementation of field_10x26 inner (rebase of #173) 001f176 ARM assembly implementation of field_10x26 inner 0172be9 Merge #397: Small fixes for sha256 3f8b78e Fix undefs in hash_impl.h 2ab4695 Fix state size in sha256 struct 6875b01 Merge #386: Add some missing `VERIFY_CHECK(ctx != NULL)` 2c52b5d Merge #389: Cast pointers through uintptr_t under JNI 43097a4 Merge #390: Update bitcoin-core GitHub links 31c9c12 Merge #391: JNI: Only call ecdsa_verify if its inputs parsed correctly 1cb2302 Merge #392: Add testcase which hits additional branch in secp256k1_scalar_sqr d2ee340 Merge #388: bench_ecdh: fix call to secp256k1_context_create 093a497 Add testcase which hits additional branch in secp256k1_scalar_sqr a40c701 JNI: Only call ecdsa_verify if its inputs parsed correctly faa2a11 Update bitcoin-core GitHub links 47b9e78 Cast pointers through uintptr_t under JNI f36f9c6 bench_ecdh: fix call to secp256k1_context_create bcc4881 Add some missing `VERIFY_CHECK(ctx != NULL)` for functions that use `ARG_CHECK` 6ceea2c align shared files copyright/comments to bitcoinj's 70141a8 Update .gitignore 7b549b1 Merge #373: build: fix x86_64 asm detection for some compilers bc7c93c Merge #374: Add note about y=0 being possible on one of the sextic twists e457018 Merge #364: JNI rebased 86e2d07 JNI library: cleanup, removed unimplemented code 3093576a JNI library bd2895f Merge pull request #371 e72e93a Add note about y=0 being possible on one of the sextic twists 3f8fdfb build: fix x86_64 asm detection for some compilers e5a9047 [Trivial] Remove double semicolons c18b869 Merge pull request #360 3026daa Merge pull request #302 03d4611 Add sage verification script for the group laws a965937 Merge pull request #361 83221ec Add experimental features to configure 5d4c5a3 Prevent damage_array in the signature test from going out of bounds. 419bf7f Merge pull request #356 6c527ec Merge pull request #357 445f7f1 Fix for Windows compile issue 03d84a4 Benchmark against OpenSSL verification 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: 84973d393ac240a90b2e1a6538c5368202bc2224
2017-06-05 22:49:31 -07:00
URL: https://github.com/bitcoin-core/secp256k1
Version: @PACKAGE_VERSION@
Cflags: -I${includedir}
Libs: -L${libdir} -lsecp256k1
Squashed 'src/secp256k1/' changes from 6ad5cdb42..8ab24e8da 8ab24e8da Merge #558: Add schnorrsig module which implements BIP-340 compliant signatures f3733c543 Merge #797: Fix Jacobi benchmarks and other benchmark improvements cb5524adc Add benchmark for secp256k1_ge_set_gej_var 5c6af60ec Make jacobi benchmarks vary inputs d0fdd5f00 Randomize the Z coordinates in bench_internal c7a3424c5 Rename bench_internal variables 875d68b95 Merge #699: Initialize field elements when resulting in infinity 54caf2e74 Merge #799: Add fallback LE/BE for architectures with known endianness + SHA256 selftest f431b3f28 valgrind_ctime_test: Add schnorrsig_sign 16ffa9d97 schnorrsig: Add taproot test case 8dfd53ee3 schnorrsig: Add benchmark for sign and verify 4e4352002 schnorrsig: Add BIP-340 compatible signing and verification 7332d2db6 schnorrsig: Add BIP-340 nonce function 7a703fd97 schnorrsig: Init empty experimental module eabd9bc46 Allow initializing tagged sha256 6fcb5b845 extrakeys: Add keypair_xonly_tweak_add 58254463f extrakeys: Add keypair struct with create, pub and pub_xonly f0010349b Separate helper functions for pubkey_create and seckey_tweak_add 910d9c284 extrakeys: Add xonly_pubkey_tweak_add & xonly_pubkey_tweak_add_test 176bfb111 Separate helper function for ec_pubkey_tweak_add 4cd2ee474 extrakeys: Add xonly_pubkey with serialize, parse and from_pubkey f49c9896b Merge #806: Trivial: Add test logs to gitignore aabf00c15 Merge #648: Prevent ints from wrapping around in scratch space functions f5adab16a Merge #805: Remove the extremely outdated TODO file. bceefd654 Add test logs to gitignore 1c325199d Remove the extremely outdated TODO file. 47e6618e1 extrakeys: Init empty experimental module 3e08b02e2 Make the secp256k1_declassify argument constant 8bc6aeffa Add SHA256 selftest 670cdd3f8 Merge #798: Check assumptions on integer implementation at compile time 5e5fb28b4 Use additional system macros to figure out endianness 7c068998b Compile-time check assumptions on integer types 02b6c87b5 Add support for (signed) __int128 979961c50 Merge #787: Use preprocessor macros instead of autoconf to detect endianness 887bd1f8b Merge #793: Make scalar/field choice depend on C-detected __int128 availability 0dccf98a2 Use preprocessor macros instead of autoconf to detect endianness b2c8c42cf Merge #795: Avoid linking libcrypto in the valgrind ct test. 57d3a3c64 Avoid linking libcrypto in the valgrind ct test. 79f1f7a4f Autodetect __int128 availability on the C side 0d7727f95 Add SECP256K1_FE_STORAGE_CONST_GET to 5x52 field 805082de1 Merge #696: Run a Travis test on s390x (big endian) 39295362c Test travis s390x (big endian) 6034a04fb Merge #778: secp256k1_gej_double_nonzero supports infinity f60915906 Merge #779: travis: Fix argument quoting for ./configure 9e49a9b25 travis: Fix argument quoting for ./configure 18d36327f secp256k1_gej_double_nonzero supports infinity 214cb3c32 Merge #772: Improve constant-timeness on PowerPC 40412b193 Merge #774: tests: Abort if malloc() fails during context cloning tests 2e1b9e045 tests: Abort if malloc() fails during context cloning tests 67a429f31 Suppress a harmless variable-time optimization by clang in _int_cmov 5b196338f Remove redundant "? 1 : 0" after comparisons in scalar code 3e5cfc5c7 Merge #741: Remove unnecessary sign variable from wnaf_const 66bb9320c Merge #773: Fix some compile problems on weird/old compilers. 1309c03c4 Fix some compile problems on weird/old compilers. 2309c7dd4 Merge #769: Undef HAVE___INT128 in basic-config.h to fix gen_context compilation 22e578bb1 Undef HAVE___INT128 in basic-config.h to fix gen_context compilation 3f4a5a10e Merge #765: remove dead store in ecdsa_signature_parse_der_lax f00d6575c remove dead store in ecdsa_signature_parse_der_lax dbd41db16 Merge #759: Fix uninitialized variables in ecmult_multi test 2e7fc5b53 Fix uninitialized variables in ecmult_multi test 2ed54da18 Merge #755: Recovery signing: add to constant time test, and eliminate non ct operators 28609507e Add tests for the cmov implementations 73596a85a Add ecdsa_sign_recoverable to the ctime tests 2876af4f8 Split ecdsa_sign logic into a new function and use it from ecdsa_sign and recovery 5e1c885ef Merge #754: Fix uninit values passed into cmov f79a7adcf Add valgrind uninit check to cmovs output 05d315aff Merge #752: autoconf: Use ":" instead of "dnl" as a noop a39c2b09d Fixed UB(arithmetics on uninit values) in cmovs 3a6fd7f63 Merge #750: Add macOS to the CI 5e8747ae2 autoconf: Use ":" instead of "dnl" as a noop 71757da5c Explictly pass SECP256K1_BENCH_ITERS to the benchmarks in travis.sh 99bd661d7 Replace travis_wait with a loop printing "\a" to stdout every minute bc818b160 Bump travis Ubuntu from xenial(16.04) to bionic(18.04) 0c5ff9066 Add macOS support to travis b6807d91d Move travis script into a standalone sh file f39f99be0 Merge #701: Make ec_ arithmetic more consistent and add documentation 37dba329c Remove unnecessary sign variable from wnaf_const 6bb0b77e1 Fix test_constant_wnaf for -1 and add a test for it. 39198a03e Merge #732: Retry if r is zero during signing 59a8de8f6 Merge #742: Fix typo in ecmult_const_impl.h 4e284655d Fix typo in ecmult_const_impl.h f862b4ca1 Merge #740: Make recovery/main_impl.h non-executable ffef45c98 Make recovery/main_impl.h non-executable 2361b3719 Merge #735: build: fix OpenSSL EC detection on macOS 3b7d26b23 build: add SECP_TEST_INCLUDES to bench_verify CPPFLAGS 84b5fc5bc build: fix OpenSSL EC detection on macOS 37ed51a7e Make ecdsa_sig_sign constant-time again after reverting 25e3cfb 93d343bfc Revert "ecdsa_impl: replace scalar if-checks with VERIFY_CHECKs in ecdsa_sig_sign" 7e3952ae8 Clarify documentation of tweak functions. 89853a0f2 Make tweak function documentation more consistent. 41fc78560 Make ec_privkey functions aliases for ec_seckey_negate, ec_seckey_tweak_add and ec_seckey_mul 22911ee6d Rename private key to secret key in public API (with the exception of function names) 5a73f14d6 Mention that value is unspecified for In/Out parameters if the function returns 0 f03df0e6d Define valid ECDSA keys in the documentation of seckey_verify 5894e1f1d Return 0 if the given seckey is invalid in privkey_negate, privkey_tweak_add and privkey_tweak_mul 8f814cddb Add test for boundary conditions of scalar_set_b32 with respect to overflows 3fec98260 Use scalar_set_b32_seckey in ecdsa_sign, pubkey_create and seckey_verify 9ab2cbe0e Add scalar_set_b32_seckey which does the same as scalar_set_b32 and also returns whether it's a valid secret key 4f27e344c Merge #728: Suppress a harmless variable-time optimization by clang in memczero 01993878b Add test for memczero() 52a03512c Suppress a harmless variable-time optimization by clang in memczero 8f78e208a Merge #722: Context isn't freed in the ECDH benchmark ed1b91171 Merge #700: Allow overriding default flags 85b35afa7 Add running benchmarks regularly and under valgrind in travis ca4906b02 Pass num of iters to benchmarks as variable, and define envvar 02dd5f1bb free the ctx at the end of bench_ecdh e9fccd4de Merge #708: Constant-time behaviour test using valgrind memtest. 08fb6c492 Run valgrind_ctime_test in travis 3d2302257 Constant-time behaviour test using valgrind memtest. 96d8ccbd1 Merge #710: Eliminate harmless non-constant time operations on secret data. 0585b8b2e Merge #718: Clarify that a secp256k1_ecdh_hash_function must return 0 or 1 7b50483ad Adds a declassify operation to aid constant-time analysis. 34a67c773 Eliminate harmless non-constant time operations on secret data. ca739cba2 Compile with optimization flag -O2 by default instead of -O3 eb45ef338 Clarify that a secp256k1_ecdh_hash_function must return 0 or 1 856a01d6a Merge #714: doc: document the length requirements of output parameter. d72b9e248 Merge #682: Remove Java Native Interface 4b48a4310 doc: document the length requirements of output parameter. 1b4d256e2 Merge #713: Docstrings dabfea7e2 field: extend docstring of secp256k1_fe_normalize dc7d8fd9e scalar: extend docstring of secp256k1_scalar_set_b32 074ab582d Merge #704: README: add a section for test coverage acb7f97eb README: add a section for test coverage 227a4f2d0 Merge #709: Remove secret-dependant non-constant time operation in ecmult_const. d567b779f Clarify comments about use of rzr on ge functions and abs function. 2241ae6d1 Remove secret-dependant non-constant time operation in ecmult_const. 642cd062b Remove Java Native Interface 83fb1bcef Remove -O2 from default CFLAGS because this would override the -O3 flag (see AC_PROG_CC in the Autoconf manual) ecba8138e Append instead of Prepend user-CFLAGS to default CFLAGS allowing the user to override default variables 613c34cd8 Remove test in configure.ac because it doesn't have an effect f45d89710 Merge #703: Overhaul README.md 2e759ec75 Overhaul README.md d644dda5c Merge #689: Remove "except in benchmarks" exception for fp math bde2a3228 Convert bench.h to fixed-point math 47a7b8382 Clear field elements when writing infinity 61d1ecb02 Added test with additions resulting in infinity 387d723c3 Merge #679: Add SECURITY.md 0db61d25c Merge #685: Fix issue where travis does not show the ./tests seed… a0771d15e Explicitly disable buffering for stderr in tests fb424fbba Make travis show the ./tests seed by removing stdout buffering and always cat tests.log after a travis run. 22a603118 Merge #690: Add valgrind check to travis 544002c00 Merge #678: Preventing compiler optimizations in benchmarks without a memory fence dd98cc988 travis: Added a valgrind test without endro and enabled recovery+ecdh b4c1382a8 Add valgrind check to travis 0c774d89e Merge #688: Fix ASM setting in travis 5c5f71eea Fix ASM setting in travis e2625f8a9 Merge #684: Make no-float policy explicit bae1bea3c Make no-float policy explicit 78c383634 Add SECURITY.md 362bb2560 Modified bench_scalar_split so it won't get optimized out 73a30c6b5 Added accumulators and checks on benchmarks so they won't get optimized out 770b3dcd6 Merge #677: Remove note about heap allocation in secp256k1_ecmult_odd_multiples_table_storage_var b76142ff2 Remove note about heap allocation in secp256k1_ecmult_odd_multiples_table_storage_var which was removed in 47045270fa90f81205d989f7107769bce1e71c4d 137d304a6 Merge #647: Increase robustness against UB in secp256k1_scalar_cadd_bit 0d9540b13 Merge #664: Remove mention of ec_privkey_export because it doesn't exist 59782c68b Remove mention of ec_privkey_export because it doesn't exist 96cd94e38 Merge #337: variable sized precomputed table for signing dcb2e3b3f variable signing precompute table b4bff9902 Merge #661: Make ./configure string consistent a467047e1 Make ./configure string consistent e729cc7f5 Merge #657: Fix a nit in the recovery tests b64a2e259 Fix a nit in the recovery tests e028aa33d Merge #650: secp256k1/src/tests.c: Properly handle sscanf return value f1e11d363 Merge #654: Fix typo (∞) ef83281c3 Merge pull request #656 from real-or-random/patch-1 556caad2c Fix typo in docs for _context_set_illegal_callback 0d82732a9 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. 786dfb49f Merge #583: JNI: fix use sig array e95f8ab09 Merge #644: Avoid optimizing out a verify_check 384f55606 Merge #652: README.md: update instruction to run tests ee56accd4 Merge #651: Fix typo in secp256k1_preallocated.h 7b9b11723 Merge #640: scalar_impl.h: fix includes d99bec2e2 Merge #655: jni: Use only Guava for hex encoding and decoding 2abcf951a jni: Use only Guava for hex encoding and decoding 271582b3b Fix typo 60f7f2de5 Don't assume that ALIGNMENT > 1 in tests ada6361de Use ROUND_TO_ALIGN in scratch_create 8ecc6ce50 Add check preventing rounding to alignment from wrapping around in scratch_alloc 4edaf06fb Add check preventing integer multiplication wrapping around in scratch_max_allocation ce6d43826 README.md: update instruction to run tests b1e68cb8e Fix typo in secp256k1_preallocated.h a11c76c59 secp256k1/src/tests.c: Properly handle sscanf return value 8fe63e565 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. 94ae7cbf8 Moved a dereference so the null check will be before the dereferencing 2cb73b106 scalar_impl.h: fix includes fa3301713 Merge #634: Add a descriptive comment for secp256k1_ecmult_const. ee9e68cd3 Add a descriptive comment for secp256k1_ecmult_const. d0d738d32 Merge #631: typo in comment for secp256k1_ec_pubkey_tweak_mul () 6914c2527 typo in comment for secp256k1_ec_pubkey_tweak_mul () e541a90ef Merge #629: Avoid calling _is_zero when _set_b32 fails. f34b0c3f3 Merge #630: Note intention of timing sidechannel freeness. 8d1563b0f Note intention of timing sidechannel freeness. 1669bb286 Merge #628: Fix ability to compile tests without -DVERIFY. ecc94abcc Merge #627: Guard memcmp in tests against mixed size inputs. 544435fc9 Merge #578: Avoid implementation-defined and undefined behavior when dealing with sizes 143dc6e9e Merge #595: Allow to use external default callbacks e49f7991c Add missing #(un)defines to base-config.h 77defd2c3 Add secp256k1_ prefix to default callback functions 908bdce64 Include stdio.h and stdlib.h explicitly in secp256k1.c 5db782e65 Allow usage of external default callbacks 6095a863f Replace CHECKs for no_precomp ctx by ARG_CHECKs without a return cd473e02c Avoid calling secp256k1_*_is_zero when secp256k1_*_set_b32 fails. 6c36de7a3 Merge #600: scratch space: use single allocation 98836b11f scratch: replace frames with "checkpoint" system 7623cf2b9 scratch: save a couple bytes of unnecessarily-allocated memory a7a164f2c scratch: rename `max_size` to `size`, document that extra will actually be allocated 5a4bc0bb9 scratch: unify allocations c2b028a28 scratch space: thread `error_callback` into all scratch space functions 0be1a4ae6 scratch: add magic bytes to beginning of structure 92a48a764 scratch space: use single allocation 40839e21b Merge #592: Use trivial algorithm in ecmult_multi if scratch space is small dcf392027 Fix ability to compile tests without -DVERIFY. a484e0008 Merge #566: Enable context creation in preallocated memory 0522caac8 Explain caller's obligations for preallocated memory 238305fdb Move _preallocated functions to separate header 695feb6fb Export _preallocated functions 814cc78d7 Add tests for contexts in preallocated memory ba12dd08d Check arguments of _preallocated functions 5feadde46 Support cloning a context into preallocated memory c4fd5dab4 Switch to a single malloc call ef020de16 Add size constants for preallocated memory 1bf7c056b Prepare for manual memory management in preallocated memory 248bffb05 Guard memcmp in tests against mixed size inputs. 36698dcfe Merge #596: Make WINDOW_G configurable a61a93ff5 Clean up ./configure help strings 2842dc523 Make WINDOW_G configurable 1a02d6ce5 Merge #626: Revert "Merge #620: Install headers automatically" 662918cb2 Revert "Merge #620: Install headers automatically" 14c7dbd44 Simplify control flow in DER parsing ec8f20bab Avoid out-of-bound pointers and integer overflows in size comparisons 01ee1b3b3 Parse DER-enconded length into a size_t instead of an int 912680ed8 Merge #561: Respect LDFLAGS and #undef STATIC_PRECOMPUTATION if using basic config 91fae3ace Merge #620: Install headers automatically 5df77a0ed Merge #533: Make sure we're not using an uninitialized variable in secp256k1_wnaf_const(...) 975e51e0d Merge #617: Pass scalar by reference in secp256k1_wnaf_const() 735fbde04 Merge #619: Clear a copied secret key after negation 16e86150d Install headers automatically 069870d92 Clear a copied secret key after negation 8979ec0d9 Pass scalar by reference in secp256k1_wnaf_const() 84a808598 Merge #612: Allow field_10x26_arm.s to compile for ARMv7 architecture d4d270a59 Allow field_10x26_arm.s to compile for ARMv7 architecture b19c00006 Merge #607: Use size_t shifts when computing a size_t 4d01bc2d9 Merge #606: travis: Remove unused sudo:false e6d01e934 Use size_t shifts when computing a size_t 7667532bd travis: Remove unused sudo:false 248f04661 Make sure we're not using an uninitialized variable in secp256k1_wnaf_const(...) 9ab96f7b1 Use trivial algorithm in ecmult_multi if scratch space is small ee99f12f3 Merge #599: Switch x86_64 asm to use "i" instead of "n" for immediate values. d58bc93f2 Switch x86_64 asm to use "i" instead of "n" for immediate values. 05362ee04 Merge #597: Add $(COMMON_LIB) to exhaustive tests to fix ARM asm build 83483869a Add $(COMMON_LIB) to exhaustive tests to fix ARM asm build aa15154a4 Merge #568: Fix integer overflow in ecmult_multi_var when n is large 2277af5ff Fix integer overflow in ecmult_multi_var when n is large dbed75d96 Undefine `STATIC_PRECOMPUTATION` if using the basic config 310111e09 Keep LDFLAGS if `--coverage` 85d0e1bcc Merge #591: Make bench_internal obey secp256k1_fe_sqrt's contract wrt aliasing. 14196379e Merge #580: Add trivial ecmult_multi algorithm which does not require a scratch space a697d82da Add trivial ecmult_multi to the benchmark tool bade61741 Add trivial ecmult_multi algorithm. It is selected when no scratch space is given and just multiplies and adds the points. 5545e13de Merge #584: configure: Use CFLAGS_FOR_BUILD when checking native compiler 20c5869df Merge #516: improvements to random seed in src/tests.c b76e45d5d Make bench_internal obey secp256k1_fe_sqrt's contract wrt aliasing. 870a97764 Merge #562: Make use of TAG_PUBKEY constants in secp256k1_eckey_pubkey_parse be40c4d0b Fixup for C90 mixed declarations. c71dd2c08 Merge #509: Fix algorithm selection in bench_ecmult 6492bf88c Merge #518: Summarize build options after running configure 0e9ada194 Merge #567: Correct order of libs returned on pkg-config --libs --static libsecp2… e96901a4b Merge #587: Make randomization of a non-signing context a noop 58df8d03a Merge #511: Portability fix for the configure scripts generated 2ebdad772 Merge #552: Make constants static: 1c131affd Merge #551: secp256k1_fe_sqrt: Verify that the arguments don't alias. ba698f883 Merge #539: Assorted minor corrections 949e85b00 Merge #550: Optimize secp256k1_fe_normalize_weak calls. a34bcaadf Actually pass CFLAGS_FOR_BUILD and LDFLAGS_FOR_BUILD to linker 2d5f4cebd configure: Use CFLAGS_FOR_BUILD when checking native compiler b408c6a8b Merge #579: Use __GNUC_PREREQ for detecting __builtin_expect 619837521 Make randomization of a non-signing context a noop 74e2dbd68 JNI: fix use sig array c663397f4 Use __GNUC_PREREQ for detecting __builtin_expect 3cb057f84 Fix possible integer overflow in DER parsing e34ceb333 Merge #557: Eliminate scratch memory used when generating contexts b3bf5f99a ecmult_impl: expand comment to explain how effective affine interacts with everything efa783f8f Store z-ratios in the 'x' coord they'll recover ffd3b346f add `secp256k1_ge_set_all_gej_var` test which deals with many infinite points 84740acd2 ecmult_impl: save one fe_inv_var 47045270f ecmult_impl: eliminate scratch memory used when generating context 7f7a2ed3a ecmult_gen_impl: eliminate scratch memory used when generating context 314a61d72 Merge #553: add static context object which has no capabilities 89a20a894 Correct order of libs returned on pkg-config --libs --static libsecp256k1 call. 1086fda4c Merge #354: [ECDH API change] Support custom hash function d3cb1f95e Make use of TAG_PUBKEY constants in secp256k1_eckey_pubkey_parse 40fde611b prevent attempts to modify `secp256k1_context_no_precomp` ed7c08417 add static context object which has no capabilities 496c5b43b Make constants static: static const secp256k1_ge secp256k1_ge_const_g; static const int CURVE_B; bf8b86cc0 secp256k1_fe_sqrt: Verify that the arguments don't alias. 9bd89c836 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. 52ab96fed clean dependendies in field_*_impl.h deff5edd4 Correct math typos in field_*.h 4efb3f8dd Add check that restrict pointers don't alias with all parameters. 1e6f1f5ad Merge #529: fix tests.c in the count == 0 case c8fbc3c39 [ECDH API change] Allow pass arbitrary data to hash function b00be6505 [ECDH API change] Support custom hash function 95e99f196 fix tests.c in the count == 0 case 452d8e4d2 Merge #523: scratch: add stack frame support 6fe50439a scratch: add stack frame support 9bc2e2650 Merge #522: parameterize ecmult_const over input size 7c1b91ba4 parameterize ecmult_const over input size dbc3ddd5e Merge #513: Increase sparsity of pippenger fixed window naf representation 3965027c8 Summarize build options in configure script 0f0517369 Fix algorithm selection in bench_ecmult fb9271dcf Merge #510: add a couple missing `const`s to ecmult_pippenger_wnaf cd5f6028e Merge #515: Fix typo 09146ae85 Merge #512: secp256k1_ec_privkey_negate - fix documentation ec0a7b3ae Don't touch leading zeros in wnaf_fixed. 9e36d1bfe Fix bug in wnaf_fixed where the wnaf array is not completely zeroed when given a 0 scalar. 96f68a0af Don't invert scalar in wnaf_fixed when it is even because a caller might intentionally give a scalar with many leading zeros. 8b3841c91 fix bug in fread() failure check cddef0c0b tests: add warning message when /dev/urandom fails 9b7c47a21 Fix typo 6dbb00786 Increase sparsity of pippenger fixed window naf representation 1646ace4d secp256k1_ec_privkey_negate - fix documentation 270f6c80d Portability fix for the configure scripts generated 9b3ff0309 add a couple missing `const`s to ecmult_pippenger_wnaf cd329dbc3 Merge #460: [build] Update ax_jni_include_dir.m4 macro 7f9c1a156 Merge #498: tests: Avoid calling fclose(...) with an invalid argument f99aa8d4d Merge #499: tests: Make sure we get the requested number of bytes from /dev/urandom b549d3d5f Merge #472: [build] Set --enable-jni to no by default instead of auto. d33352151 Merge #494: Support OpenSSL versions >= 1.1 for ENABLE_OPENSSL_TESTS 2ef8ea5d2 Merge #495: Add bench_ecmult to .gitignore 82a96e458 tests: Make sure we get the requested number of bytes from /dev/urandom 5aae5b5bb Avoid calling fclose(...) with an invalid argument cb32940df Add bench_ecmult to .gitignore 31abd3ab8 Support OpenSSL versions >= 1.1 for ENABLE_OPENSSL_TESTS c95f6f136 Merge #487: fix tests typo, s/changed/unchanged fb46c8388 Merge #463: Reduce usage of hardcoded size constants 02f5001df Merge #490: Disambiguate bench functions and types 1f46d6089 Disambiguate bench functions and types f54c6c508 Merge #480: Enable benchmark building by default c77fc0859 Merge #486: Add pippenger_wnaf for multi-multiplication d2f9c6b5d Use more precise pippenger bucket windows 4c950bbea Save some additions per window in _pippenger_wnaf a58f543f5 Add flags for choosing algorithm in ecmult_multi benchmark 36b22c933 Use scratch space dependent batching in ecmult_multi 355a38f11 Add pippenger_wnaf ecmult_multi bc65aa794 Add bench_ecmult dba5471b6 Add ecmult_multi tests 8c1c831bd Generalize Strauss to support multiple points 548de42ec add resizeable scratch space API 0e96cdc6b fix typo, s/changed/unchanged c7680e570 Reduce usage of hardcoded size constants 7a78f6059 Print whether we're building benchmarks 4afec9f1a Build benchmarks by default 57752d28b [build] Set --enable-jni to no by default instead of auto. e7daa9b3c [build] Tweak JNI macro to warn instead of error for JNI not found. 5b2297792 [build] Update ax_jni_include_dir.m4 macro to deal with recent versions of macOS git-subtree-dir: src/secp256k1 git-subtree-split: 8ab24e8dad9d43fc6661842149899e3cc9213b24
2020-10-01 02:27:05 -07:00
Libs.private: @SECP_LIBS@