Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Optimized binary-to-hex converter (ToHex) #562

Closed
wants to merge 1 commit into from

Conversation

luke-jr
Copy link
Member

@luke-jr luke-jr commented Oct 4, 2011

Part of JoelKatz's 4diff patch.

@gavinandresen
Copy link
Contributor

If the "cache getwork" patch is applied, does this matter?

@luke-jr
Copy link
Member Author

luke-jr commented Oct 5, 2011

The original "cache getwork" patch used this. I split them up for code cleanliness. If this one is merged first, I can rebase the FastGetWork code and bring it back to its original state from JoelKatz.

@laanwj
Copy link
Member

laanwj commented Oct 23, 2011

I appreciate that you're trying to optimize bitcoin, but please don't add any fixed-sized buffers! I rather have somewhat slower code than potential security holes.

@luke-jr
Copy link
Member Author

luke-jr commented Oct 28, 2011

Fixed-size buffers are not a security hole, only misuse of them. That being said, I have not checked over this patch for security checks either.

@laanwj
Copy link
Member

laanwj commented Oct 29, 2011

I think we all know that already Luke. The thing is, people make mistakes,
and they are usually not all found on the first time around code
inspection. It's playing with fire, in a way, and should be restricted imo
to direct interaction with hw, OS-level libraries and such stuff. I'd
prefer to err on the safe side in financial sw.

@luke-jr
Copy link
Member Author

luke-jr commented Oct 29, 2011

Sure, but that ignores the fact that this code has had a lot of real-world production testing in probably 90% of pools (and even required by PSJ)

@cgaebel
Copy link

cgaebel commented Nov 2, 2011

I don't understand the concern here. If you look in the context of this patch, there's plenty of fixed buffer usage already.

What would make sense is to instead make the buffer size a result of a constexpr calculation, but in this case that really seems like overkill.

@laanwj
Copy link
Member

laanwj commented Nov 2, 2011

That's exactly my concern. I'd like to reduce fixed buffer use not increase
it. C++ has introduced all kinds of stuff exactly to not have to muck
around with them.

Also, this does not completely replace the old HexStr function, so this
means that the source will now be littered with not one but two hex
conversion utility functions.

I would prefer if he just optimized the current HexStr function, which is
very possible in a similar way, as it seems to be the strprintf and string
concatenation that make it slow. Writing to a fixed buffer instead of
returning a std::string is likely a unnecessary micro-optimization.

@gavinandresen
Copy link
Contributor

I have a few problems with this code, starting with it doesn't follow the bitcoin coding conventions (e.g. nLen instead of len). And I agree with laanwj RE: optimizing HexStr instead.

But I'll go back to my original question: does this have any measurable effect on performance if the bypass-JSON-and-return-a-cached-response-to-getwork patch is applied? What is the performance of getwork with/without:
Just this patch
Just the bypass-JSON-cache-getwork patch
Both this AND the cache-getwork patch

I think it is a bad idea to add another (potentially unsafe if you use it wrong!) way of converting to hex, unless it gives a really significant (on the order of "you can serve twice as many getwork requests with one bitcoind") performance advantage.

@luke-jr
Copy link
Member Author

luke-jr commented Jan 11, 2012

Pull #565 includes performance testing for this.

laanwj added a commit to laanwj/bitcoin that referenced this pull request Apr 21, 2012
sipa added a commit that referenced this pull request Apr 21, 2012
Integrate @JoelKatz's optimized ToHex (#562) into current HexStr function
kR105-zz pushed a commit to kR105-zz/i0coin that referenced this pull request Apr 22, 2012
coblee referenced this pull request in litecoin-project/litecoin Jul 17, 2012
coblee referenced this pull request in litecoin-project/litecoin Jul 17, 2012
Integrate @JoelKatz's optimized ToHex (#562) into current HexStr function
sipa added a commit to sipa/bitcoin that referenced this pull request Mar 30, 2019
ee99f12 Merge bitcoin#599: Switch x86_64 asm to use "i" instead of "n" for immediate values.
d58bc93 Switch x86_64 asm to use "i" instead of "n" for immediate values.
05362ee Merge bitcoin#597: Add $(COMMON_LIB) to exhaustive tests to fix ARM asm build
8348386 Add $(COMMON_LIB) to exhaustive tests to fix ARM asm build
aa15154 Merge bitcoin#568: Fix integer overflow in ecmult_multi_var when n is large
2277af5 Fix integer overflow in ecmult_multi_var when n is large
85d0e1b Merge bitcoin#591: Make bench_internal obey secp256k1_fe_sqrt's contract wrt aliasing.
1419637 Merge bitcoin#580: Add trivial ecmult_multi algorithm which does not require a scratch space
a697d82 Add trivial ecmult_multi to the benchmark tool
bade617 Add trivial ecmult_multi algorithm. It is selected when no scratch space is given and just multiplies and adds the points.
5545e13 Merge bitcoin#584: configure: Use CFLAGS_FOR_BUILD when checking native compiler
20c5869 Merge bitcoin#516: improvements to random seed in src/tests.c
b76e45d Make bench_internal obey secp256k1_fe_sqrt's contract wrt aliasing.
870a977 Merge bitcoin#562: Make use of TAG_PUBKEY constants in secp256k1_eckey_pubkey_parse
be40c4d Fixup for C90 mixed declarations.
c71dd2c Merge bitcoin#509: Fix algorithm selection in bench_ecmult
6492bf8 Merge bitcoin#518: Summarize build options after running configure
0e9ada1 Merge bitcoin#567: Correct order of libs returned on pkg-config --libs --static libsecp2…
e96901a Merge bitcoin#587: Make randomization of a non-signing context a noop
58df8d0 Merge bitcoin#511: Portability fix for the configure scripts generated
2ebdad7 Merge bitcoin#552: Make constants static:
1c131af Merge bitcoin#551: secp256k1_fe_sqrt: Verify that the arguments don't alias.
ba698f8 Merge bitcoin#539: Assorted minor corrections
949e85b Merge bitcoin#550: Optimize secp256k1_fe_normalize_weak calls.
a34bcaa Actually pass CFLAGS_FOR_BUILD and LDFLAGS_FOR_BUILD to linker
2d5f4ce configure: Use CFLAGS_FOR_BUILD when checking native compiler
b408c6a Merge bitcoin#579: Use __GNUC_PREREQ for detecting __builtin_expect
6198375 Make randomization of a non-signing context a noop
c663397 Use __GNUC_PREREQ for detecting __builtin_expect
e34ceb3 Merge bitcoin#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 bitcoin#553: add static context object which has no capabilities
89a20a8 Correct order of libs returned on pkg-config --libs --static libsecp256k1 call.
1086fda Merge bitcoin#354: [ECDH API change] Support custom hash function
d3cb1f9 Make use of TAG_PUBKEY constants in secp256k1_eckey_pubkey_parse
40fde61 prevent attempts to modify `secp256k1_context_no_precomp`
ed7c084 add static context object which has no capabilities
496c5b4 Make constants static: static const secp256k1_ge secp256k1_ge_const_g; static const int CURVE_B;
bf8b86c secp256k1_fe_sqrt: Verify that the arguments don't alias.
9bd89c8 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.
52ab96f clean dependendies in field_*_impl.h
deff5ed Correct math typos in field_*.h
4efb3f8 Add check that restrict pointers don't alias with all parameters.
1e6f1f5 Merge bitcoin#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 bitcoin#523: scratch: add stack frame support
6fe5043 scratch: add stack frame support
9bc2e26 Merge bitcoin#522: parameterize ecmult_const over input size
7c1b91b parameterize ecmult_const over input size
dbc3ddd Merge bitcoin#513: Increase sparsity of pippenger fixed window naf representation
3965027 Summarize build options in configure script
0f05173 Fix algorithm selection in bench_ecmult
fb9271d Merge bitcoin#510: add a couple missing `const`s to ecmult_pippenger_wnaf
cd5f602 Merge bitcoin#515: Fix typo
09146ae Merge bitcoin#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.
8b3841c fix bug in fread() failure check
cddef0c tests: add warning message when /dev/urandom fails
9b7c47a Fix typo
6dbb007 Increase sparsity of pippenger fixed window naf representation
1646ace secp256k1_ec_privkey_negate - fix documentation
270f6c8 Portability fix for the configure scripts generated
9b3ff03 add a couple missing `const`s to ecmult_pippenger_wnaf
cd329db Merge bitcoin#460: [build] Update ax_jni_include_dir.m4 macro
7f9c1a1 Merge bitcoin#498: tests: Avoid calling fclose(...) with an invalid argument
f99aa8d Merge bitcoin#499: tests: Make sure we get the requested number of bytes from /dev/urandom
b549d3d Merge bitcoin#472: [build] Set --enable-jni to no by default instead of auto.
d333521 Merge bitcoin#494: Support OpenSSL versions >= 1.1 for ENABLE_OPENSSL_TESTS
2ef8ea5 Merge bitcoin#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 bitcoin#487: fix tests typo, s/changed/unchanged
fb46c83 Merge bitcoin#463: Reduce usage of hardcoded size constants
02f5001 Merge bitcoin#490: Disambiguate bench functions and types
1f46d60 Disambiguate bench functions and types
f54c6c5 Merge bitcoin#480: Enable benchmark building by default
c77fc08 Merge bitcoin#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 bitcoin#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: ee99f12
sipa added a commit to sipa/bitcoin that referenced this pull request Mar 30, 2019
763484a1e5 f fix undefined behavior when shifting an int 31 places
5af66e7f79 f expose nonce_function_bipschnorr
594e3abb69 f hash noncedata into nonce in nonce_function_bipschnorr
318d55155c f make helper functions static
d65adc82f8 Add schnorrsig module which implements BIP-schnorr [0] compatible signing, verification and batch verification.
f4153a29ab add chacha20 function
REVERT: ee99f12 Merge bitcoin#599: Switch x86_64 asm to use "i" instead of "n" for immediate values.
REVERT: d58bc93 Switch x86_64 asm to use "i" instead of "n" for immediate values.
REVERT: 05362ee Merge bitcoin#597: Add $(COMMON_LIB) to exhaustive tests to fix ARM asm build
REVERT: 8348386 Add $(COMMON_LIB) to exhaustive tests to fix ARM asm build
REVERT: aa15154 Merge bitcoin#568: Fix integer overflow in ecmult_multi_var when n is large
REVERT: 2277af5 Fix integer overflow in ecmult_multi_var when n is large
REVERT: 85d0e1b Merge bitcoin#591: Make bench_internal obey secp256k1_fe_sqrt's contract wrt aliasing.
REVERT: 1419637 Merge bitcoin#580: Add trivial ecmult_multi algorithm which does not require a scratch space
REVERT: a697d82 Add trivial ecmult_multi to the benchmark tool
REVERT: bade617 Add trivial ecmult_multi algorithm. It is selected when no scratch space is given and just multiplies and adds the points.
REVERT: 5545e13 Merge bitcoin#584: configure: Use CFLAGS_FOR_BUILD when checking native compiler
REVERT: 20c5869 Merge bitcoin#516: improvements to random seed in src/tests.c
REVERT: b76e45d Make bench_internal obey secp256k1_fe_sqrt's contract wrt aliasing.
REVERT: 870a977 Merge bitcoin#562: Make use of TAG_PUBKEY constants in secp256k1_eckey_pubkey_parse
REVERT: be40c4d Fixup for C90 mixed declarations.
REVERT: c71dd2c Merge bitcoin#509: Fix algorithm selection in bench_ecmult
REVERT: 6492bf8 Merge bitcoin#518: Summarize build options after running configure
REVERT: 0e9ada1 Merge bitcoin#567: Correct order of libs returned on pkg-config --libs --static libsecp2…
REVERT: e96901a Merge bitcoin#587: Make randomization of a non-signing context a noop
REVERT: 58df8d0 Merge bitcoin#511: Portability fix for the configure scripts generated
REVERT: 2ebdad7 Merge bitcoin#552: Make constants static:
REVERT: 1c131af Merge bitcoin#551: secp256k1_fe_sqrt: Verify that the arguments don't alias.
REVERT: ba698f8 Merge bitcoin#539: Assorted minor corrections
REVERT: 949e85b Merge bitcoin#550: Optimize secp256k1_fe_normalize_weak calls.
REVERT: a34bcaa Actually pass CFLAGS_FOR_BUILD and LDFLAGS_FOR_BUILD to linker
REVERT: 2d5f4ce configure: Use CFLAGS_FOR_BUILD when checking native compiler
REVERT: b408c6a Merge bitcoin#579: Use __GNUC_PREREQ for detecting __builtin_expect
REVERT: 6198375 Make randomization of a non-signing context a noop
REVERT: c663397 Use __GNUC_PREREQ for detecting __builtin_expect
REVERT: e34ceb3 Merge bitcoin#557: Eliminate scratch memory used when generating contexts
REVERT: b3bf5f9 ecmult_impl: expand comment to explain how effective affine interacts with everything
REVERT: efa783f Store z-ratios in the 'x' coord they'll recover
REVERT: ffd3b34 add `secp256k1_ge_set_all_gej_var` test which deals with many infinite points
REVERT: 84740ac ecmult_impl: save one fe_inv_var
REVERT: 4704527 ecmult_impl: eliminate scratch memory used when generating context
REVERT: 7f7a2ed ecmult_gen_impl: eliminate scratch memory used when generating context
REVERT: 314a61d Merge bitcoin#553: add static context object which has no capabilities
REVERT: 89a20a8 Correct order of libs returned on pkg-config --libs --static libsecp256k1 call.
REVERT: d3cb1f9 Make use of TAG_PUBKEY constants in secp256k1_eckey_pubkey_parse
REVERT: 40fde61 prevent attempts to modify `secp256k1_context_no_precomp`
REVERT: ed7c084 add static context object which has no capabilities
REVERT: 496c5b4 Make constants static: static const secp256k1_ge secp256k1_ge_const_g; static const int CURVE_B;
REVERT: bf8b86c secp256k1_fe_sqrt: Verify that the arguments don't alias.
REVERT: 9bd89c8 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.
REVERT: 52ab96f clean dependendies in field_*_impl.h
REVERT: deff5ed Correct math typos in field_*.h
REVERT: 4efb3f8 Add check that restrict pointers don't alias with all parameters.
REVERT: 3965027 Summarize build options in configure script
REVERT: 0f05173 Fix algorithm selection in bench_ecmult
REVERT: 8b3841c fix bug in fread() failure check
REVERT: cddef0c tests: add warning message when /dev/urandom fails
REVERT: 270f6c8 Portability fix for the configure scripts generated

git-subtree-dir: src/secp256k1
git-subtree-split: 763484a1e5bed2b8b990e71c2f66129ae1038d59
sipa added a commit to sipa/bitcoin that referenced this pull request Mar 31, 2019
b19c000 Merge bitcoin#607: Use size_t shifts when computing a size_t
4d01bc2 Merge bitcoin#606: travis: Remove unused sudo:false
e6d01e9 Use size_t shifts when computing a size_t
7667532 travis: Remove unused sudo:false
ee99f12 Merge bitcoin#599: Switch x86_64 asm to use "i" instead of "n" for immediate values.
d58bc93 Switch x86_64 asm to use "i" instead of "n" for immediate values.
05362ee Merge bitcoin#597: Add $(COMMON_LIB) to exhaustive tests to fix ARM asm build
8348386 Add $(COMMON_LIB) to exhaustive tests to fix ARM asm build
aa15154 Merge bitcoin#568: Fix integer overflow in ecmult_multi_var when n is large
2277af5 Fix integer overflow in ecmult_multi_var when n is large
85d0e1b Merge bitcoin#591: Make bench_internal obey secp256k1_fe_sqrt's contract wrt aliasing.
1419637 Merge bitcoin#580: Add trivial ecmult_multi algorithm which does not require a scratch space
a697d82 Add trivial ecmult_multi to the benchmark tool
bade617 Add trivial ecmult_multi algorithm. It is selected when no scratch space is given and just multiplies and adds the points.
5545e13 Merge bitcoin#584: configure: Use CFLAGS_FOR_BUILD when checking native compiler
20c5869 Merge bitcoin#516: improvements to random seed in src/tests.c
b76e45d Make bench_internal obey secp256k1_fe_sqrt's contract wrt aliasing.
870a977 Merge bitcoin#562: Make use of TAG_PUBKEY constants in secp256k1_eckey_pubkey_parse
be40c4d Fixup for C90 mixed declarations.
c71dd2c Merge bitcoin#509: Fix algorithm selection in bench_ecmult
6492bf8 Merge bitcoin#518: Summarize build options after running configure
0e9ada1 Merge bitcoin#567: Correct order of libs returned on pkg-config --libs --static libsecp2…
e96901a Merge bitcoin#587: Make randomization of a non-signing context a noop
58df8d0 Merge bitcoin#511: Portability fix for the configure scripts generated
2ebdad7 Merge bitcoin#552: Make constants static:
1c131af Merge bitcoin#551: secp256k1_fe_sqrt: Verify that the arguments don't alias.
ba698f8 Merge bitcoin#539: Assorted minor corrections
949e85b Merge bitcoin#550: Optimize secp256k1_fe_normalize_weak calls.
a34bcaa Actually pass CFLAGS_FOR_BUILD and LDFLAGS_FOR_BUILD to linker
2d5f4ce configure: Use CFLAGS_FOR_BUILD when checking native compiler
b408c6a Merge bitcoin#579: Use __GNUC_PREREQ for detecting __builtin_expect
6198375 Make randomization of a non-signing context a noop
c663397 Use __GNUC_PREREQ for detecting __builtin_expect
e34ceb3 Merge bitcoin#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 bitcoin#553: add static context object which has no capabilities
89a20a8 Correct order of libs returned on pkg-config --libs --static libsecp256k1 call.
1086fda Merge bitcoin#354: [ECDH API change] Support custom hash function
d3cb1f9 Make use of TAG_PUBKEY constants in secp256k1_eckey_pubkey_parse
40fde61 prevent attempts to modify `secp256k1_context_no_precomp`
ed7c084 add static context object which has no capabilities
496c5b4 Make constants static: static const secp256k1_ge secp256k1_ge_const_g; static const int CURVE_B;
bf8b86c secp256k1_fe_sqrt: Verify that the arguments don't alias.
9bd89c8 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.
52ab96f clean dependendies in field_*_impl.h
deff5ed Correct math typos in field_*.h
4efb3f8 Add check that restrict pointers don't alias with all parameters.
1e6f1f5 Merge bitcoin#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 bitcoin#523: scratch: add stack frame support
6fe5043 scratch: add stack frame support
9bc2e26 Merge bitcoin#522: parameterize ecmult_const over input size
7c1b91b parameterize ecmult_const over input size
dbc3ddd Merge bitcoin#513: Increase sparsity of pippenger fixed window naf representation
3965027 Summarize build options in configure script
0f05173 Fix algorithm selection in bench_ecmult
fb9271d Merge bitcoin#510: add a couple missing `const`s to ecmult_pippenger_wnaf
cd5f602 Merge bitcoin#515: Fix typo
09146ae Merge bitcoin#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.
8b3841c fix bug in fread() failure check
cddef0c tests: add warning message when /dev/urandom fails
9b7c47a Fix typo
6dbb007 Increase sparsity of pippenger fixed window naf representation
1646ace secp256k1_ec_privkey_negate - fix documentation
270f6c8 Portability fix for the configure scripts generated
9b3ff03 add a couple missing `const`s to ecmult_pippenger_wnaf
cd329db Merge bitcoin#460: [build] Update ax_jni_include_dir.m4 macro
7f9c1a1 Merge bitcoin#498: tests: Avoid calling fclose(...) with an invalid argument
f99aa8d Merge bitcoin#499: tests: Make sure we get the requested number of bytes from /dev/urandom
b549d3d Merge bitcoin#472: [build] Set --enable-jni to no by default instead of auto.
d333521 Merge bitcoin#494: Support OpenSSL versions >= 1.1 for ENABLE_OPENSSL_TESTS
2ef8ea5 Merge bitcoin#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 bitcoin#487: fix tests typo, s/changed/unchanged
fb46c83 Merge bitcoin#463: Reduce usage of hardcoded size constants
02f5001 Merge bitcoin#490: Disambiguate bench functions and types
1f46d60 Disambiguate bench functions and types
f54c6c5 Merge bitcoin#480: Enable benchmark building by default
c77fc08 Merge bitcoin#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 bitcoin#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: b19c000
sipa added a commit to sipa/bitcoin that referenced this pull request Apr 2, 2019
763484a1e5 f fix undefined behavior when shifting an int 31 places
5af66e7f79 f expose nonce_function_bipschnorr
594e3abb69 f hash noncedata into nonce in nonce_function_bipschnorr
318d55155c f make helper functions static
d65adc82f8 Add schnorrsig module which implements BIP-schnorr [0] compatible signing, verification and batch verification.
f4153a29ab add chacha20 function
REVERT: b19c000 Merge bitcoin#607: Use size_t shifts when computing a size_t
REVERT: 4d01bc2 Merge bitcoin#606: travis: Remove unused sudo:false
REVERT: e6d01e9 Use size_t shifts when computing a size_t
REVERT: 7667532 travis: Remove unused sudo:false
REVERT: ee99f12 Merge bitcoin#599: Switch x86_64 asm to use "i" instead of "n" for immediate values.
REVERT: d58bc93 Switch x86_64 asm to use "i" instead of "n" for immediate values.
REVERT: 05362ee Merge bitcoin#597: Add $(COMMON_LIB) to exhaustive tests to fix ARM asm build
REVERT: 8348386 Add $(COMMON_LIB) to exhaustive tests to fix ARM asm build
REVERT: aa15154 Merge bitcoin#568: Fix integer overflow in ecmult_multi_var when n is large
REVERT: 2277af5 Fix integer overflow in ecmult_multi_var when n is large
REVERT: 85d0e1b Merge bitcoin#591: Make bench_internal obey secp256k1_fe_sqrt's contract wrt aliasing.
REVERT: 1419637 Merge bitcoin#580: Add trivial ecmult_multi algorithm which does not require a scratch space
REVERT: a697d82 Add trivial ecmult_multi to the benchmark tool
REVERT: bade617 Add trivial ecmult_multi algorithm. It is selected when no scratch space is given and just multiplies and adds the points.
REVERT: 5545e13 Merge bitcoin#584: configure: Use CFLAGS_FOR_BUILD when checking native compiler
REVERT: 20c5869 Merge bitcoin#516: improvements to random seed in src/tests.c
REVERT: b76e45d Make bench_internal obey secp256k1_fe_sqrt's contract wrt aliasing.
REVERT: 870a977 Merge bitcoin#562: Make use of TAG_PUBKEY constants in secp256k1_eckey_pubkey_parse
REVERT: be40c4d Fixup for C90 mixed declarations.
REVERT: c71dd2c Merge bitcoin#509: Fix algorithm selection in bench_ecmult
REVERT: 6492bf8 Merge bitcoin#518: Summarize build options after running configure
REVERT: 0e9ada1 Merge bitcoin#567: Correct order of libs returned on pkg-config --libs --static libsecp2…
REVERT: e96901a Merge bitcoin#587: Make randomization of a non-signing context a noop
REVERT: 58df8d0 Merge bitcoin#511: Portability fix for the configure scripts generated
REVERT: 2ebdad7 Merge bitcoin#552: Make constants static:
REVERT: 1c131af Merge bitcoin#551: secp256k1_fe_sqrt: Verify that the arguments don't alias.
REVERT: ba698f8 Merge bitcoin#539: Assorted minor corrections
REVERT: 949e85b Merge bitcoin#550: Optimize secp256k1_fe_normalize_weak calls.
REVERT: a34bcaa Actually pass CFLAGS_FOR_BUILD and LDFLAGS_FOR_BUILD to linker
REVERT: 2d5f4ce configure: Use CFLAGS_FOR_BUILD when checking native compiler
REVERT: b408c6a Merge bitcoin#579: Use __GNUC_PREREQ for detecting __builtin_expect
REVERT: 6198375 Make randomization of a non-signing context a noop
REVERT: c663397 Use __GNUC_PREREQ for detecting __builtin_expect
REVERT: e34ceb3 Merge bitcoin#557: Eliminate scratch memory used when generating contexts
REVERT: b3bf5f9 ecmult_impl: expand comment to explain how effective affine interacts with everything
REVERT: efa783f Store z-ratios in the 'x' coord they'll recover
REVERT: ffd3b34 add `secp256k1_ge_set_all_gej_var` test which deals with many infinite points
REVERT: 84740ac ecmult_impl: save one fe_inv_var
REVERT: 4704527 ecmult_impl: eliminate scratch memory used when generating context
REVERT: 7f7a2ed ecmult_gen_impl: eliminate scratch memory used when generating context
REVERT: 314a61d Merge bitcoin#553: add static context object which has no capabilities
REVERT: 89a20a8 Correct order of libs returned on pkg-config --libs --static libsecp256k1 call.
REVERT: d3cb1f9 Make use of TAG_PUBKEY constants in secp256k1_eckey_pubkey_parse
REVERT: 40fde61 prevent attempts to modify `secp256k1_context_no_precomp`
REVERT: ed7c084 add static context object which has no capabilities
REVERT: 496c5b4 Make constants static: static const secp256k1_ge secp256k1_ge_const_g; static const int CURVE_B;
REVERT: bf8b86c secp256k1_fe_sqrt: Verify that the arguments don't alias.
REVERT: 9bd89c8 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.
REVERT: 52ab96f clean dependendies in field_*_impl.h
REVERT: deff5ed Correct math typos in field_*.h
REVERT: 4efb3f8 Add check that restrict pointers don't alias with all parameters.
REVERT: 3965027 Summarize build options in configure script
REVERT: 0f05173 Fix algorithm selection in bench_ecmult
REVERT: 8b3841c fix bug in fread() failure check
REVERT: cddef0c tests: add warning message when /dev/urandom fails
REVERT: 270f6c8 Portability fix for the configure scripts generated

git-subtree-dir: src/secp256k1
git-subtree-split: 763484a1e5bed2b8b990e71c2f66129ae1038d59
LongShao007 pushed a commit to layercoin/layercoin that referenced this pull request Jul 15, 2019
b19c000 Merge bitcoin#607: Use size_t shifts when computing a size_t
4d01bc2 Merge bitcoin#606: travis: Remove unused sudo:false
e6d01e9 Use size_t shifts when computing a size_t
7667532 travis: Remove unused sudo:false
ee99f12 Merge bitcoin#599: Switch x86_64 asm to use "i" instead of "n" for immediate values.
d58bc93 Switch x86_64 asm to use "i" instead of "n" for immediate values.
05362ee Merge bitcoin#597: Add $(COMMON_LIB) to exhaustive tests to fix ARM asm build
8348386 Add $(COMMON_LIB) to exhaustive tests to fix ARM asm build
aa15154 Merge bitcoin#568: Fix integer overflow in ecmult_multi_var when n is large
2277af5 Fix integer overflow in ecmult_multi_var when n is large
85d0e1b Merge bitcoin#591: Make bench_internal obey secp256k1_fe_sqrt's contract wrt aliasing.
1419637 Merge bitcoin#580: Add trivial ecmult_multi algorithm which does not require a scratch space
a697d82 Add trivial ecmult_multi to the benchmark tool
bade617 Add trivial ecmult_multi algorithm. It is selected when no scratch space is given and just multiplies and adds the points.
5545e13 Merge bitcoin#584: configure: Use CFLAGS_FOR_BUILD when checking native compiler
20c5869 Merge bitcoin#516: improvements to random seed in src/tests.c
b76e45d Make bench_internal obey secp256k1_fe_sqrt's contract wrt aliasing.
870a977 Merge bitcoin#562: Make use of TAG_PUBKEY constants in secp256k1_eckey_pubkey_parse
be40c4d Fixup for C90 mixed declarations.
c71dd2c Merge bitcoin#509: Fix algorithm selection in bench_ecmult
6492bf8 Merge bitcoin#518: Summarize build options after running configure
0e9ada1 Merge bitcoin#567: Correct order of libs returned on pkg-config --libs --static libsecp2…
e96901a Merge bitcoin#587: Make randomization of a non-signing context a noop
58df8d0 Merge bitcoin#511: Portability fix for the configure scripts generated
2ebdad7 Merge bitcoin#552: Make constants static:
1c131af Merge bitcoin#551: secp256k1_fe_sqrt: Verify that the arguments don't alias.
ba698f8 Merge bitcoin#539: Assorted minor corrections
949e85b Merge bitcoin#550: Optimize secp256k1_fe_normalize_weak calls.
a34bcaa Actually pass CFLAGS_FOR_BUILD and LDFLAGS_FOR_BUILD to linker
2d5f4ce configure: Use CFLAGS_FOR_BUILD when checking native compiler
b408c6a Merge bitcoin#579: Use __GNUC_PREREQ for detecting __builtin_expect
6198375 Make randomization of a non-signing context a noop
c663397 Use __GNUC_PREREQ for detecting __builtin_expect
e34ceb3 Merge bitcoin#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 bitcoin#553: add static context object which has no capabilities
89a20a8 Correct order of libs returned on pkg-config --libs --static libsecp256k1 call.
1086fda Merge bitcoin#354: [ECDH API change] Support custom hash function
d3cb1f9 Make use of TAG_PUBKEY constants in secp256k1_eckey_pubkey_parse
40fde61 prevent attempts to modify `secp256k1_context_no_precomp`
ed7c084 add static context object which has no capabilities
496c5b4 Make constants static: static const secp256k1_ge secp256k1_ge_const_g; static const int CURVE_B;
bf8b86c secp256k1_fe_sqrt: Verify that the arguments don't alias.
9bd89c8 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.
52ab96f clean dependendies in field_*_impl.h
deff5ed Correct math typos in field_*.h
4efb3f8 Add check that restrict pointers don't alias with all parameters.
1e6f1f5 Merge bitcoin#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 bitcoin#523: scratch: add stack frame support
6fe5043 scratch: add stack frame support
9bc2e26 Merge bitcoin#522: parameterize ecmult_const over input size
7c1b91b parameterize ecmult_const over input size
dbc3ddd Merge bitcoin#513: Increase sparsity of pippenger fixed window naf representation
3965027 Summarize build options in configure script
0f05173 Fix algorithm selection in bench_ecmult
fb9271d Merge bitcoin#510: add a couple missing `const`s to ecmult_pippenger_wnaf
cd5f602 Merge bitcoin#515: Fix typo
09146ae Merge bitcoin#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.
8b3841c fix bug in fread() failure check
cddef0c tests: add warning message when /dev/urandom fails
9b7c47a Fix typo
6dbb007 Increase sparsity of pippenger fixed window naf representation
1646ace secp256k1_ec_privkey_negate - fix documentation
270f6c8 Portability fix for the configure scripts generated
9b3ff03 add a couple missing `const`s to ecmult_pippenger_wnaf
cd329db Merge bitcoin#460: [build] Update ax_jni_include_dir.m4 macro
7f9c1a1 Merge bitcoin#498: tests: Avoid calling fclose(...) with an invalid argument
f99aa8d Merge bitcoin#499: tests: Make sure we get the requested number of bytes from /dev/urandom
b549d3d Merge bitcoin#472: [build] Set --enable-jni to no by default instead of auto.
d333521 Merge bitcoin#494: Support OpenSSL versions >= 1.1 for ENABLE_OPENSSL_TESTS
2ef8ea5 Merge bitcoin#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 bitcoin#487: fix tests typo, s/changed/unchanged
fb46c83 Merge bitcoin#463: Reduce usage of hardcoded size constants
02f5001 Merge bitcoin#490: Disambiguate bench functions and types
1f46d60 Disambiguate bench functions and types
f54c6c5 Merge bitcoin#480: Enable benchmark building by default
c77fc08 Merge bitcoin#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 bitcoin#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: b19c000
LongShao007 pushed a commit to layercoin/layercoin that referenced this pull request Jul 15, 2019
763484a1e5 f fix undefined behavior when shifting an int 31 places
5af66e7f79 f expose nonce_function_bipschnorr
594e3abb69 f hash noncedata into nonce in nonce_function_bipschnorr
318d55155c f make helper functions static
d65adc82f8 Add schnorrsig module which implements BIP-schnorr [0] compatible signing, verification and batch verification.
f4153a29ab add chacha20 function
REVERT: b19c000 Merge bitcoin#607: Use size_t shifts when computing a size_t
REVERT: 4d01bc2 Merge bitcoin#606: travis: Remove unused sudo:false
REVERT: e6d01e9 Use size_t shifts when computing a size_t
REVERT: 7667532 travis: Remove unused sudo:false
REVERT: ee99f12 Merge bitcoin#599: Switch x86_64 asm to use "i" instead of "n" for immediate values.
REVERT: d58bc93 Switch x86_64 asm to use "i" instead of "n" for immediate values.
REVERT: 05362ee Merge bitcoin#597: Add $(COMMON_LIB) to exhaustive tests to fix ARM asm build
REVERT: 8348386 Add $(COMMON_LIB) to exhaustive tests to fix ARM asm build
REVERT: aa15154 Merge bitcoin#568: Fix integer overflow in ecmult_multi_var when n is large
REVERT: 2277af5 Fix integer overflow in ecmult_multi_var when n is large
REVERT: 85d0e1b Merge bitcoin#591: Make bench_internal obey secp256k1_fe_sqrt's contract wrt aliasing.
REVERT: 1419637 Merge bitcoin#580: Add trivial ecmult_multi algorithm which does not require a scratch space
REVERT: a697d82 Add trivial ecmult_multi to the benchmark tool
REVERT: bade617 Add trivial ecmult_multi algorithm. It is selected when no scratch space is given and just multiplies and adds the points.
REVERT: 5545e13 Merge bitcoin#584: configure: Use CFLAGS_FOR_BUILD when checking native compiler
REVERT: 20c5869 Merge bitcoin#516: improvements to random seed in src/tests.c
REVERT: b76e45d Make bench_internal obey secp256k1_fe_sqrt's contract wrt aliasing.
REVERT: 870a977 Merge bitcoin#562: Make use of TAG_PUBKEY constants in secp256k1_eckey_pubkey_parse
REVERT: be40c4d Fixup for C90 mixed declarations.
REVERT: c71dd2c Merge bitcoin#509: Fix algorithm selection in bench_ecmult
REVERT: 6492bf8 Merge bitcoin#518: Summarize build options after running configure
REVERT: 0e9ada1 Merge bitcoin#567: Correct order of libs returned on pkg-config --libs --static libsecp2…
REVERT: e96901a Merge bitcoin#587: Make randomization of a non-signing context a noop
REVERT: 58df8d0 Merge bitcoin#511: Portability fix for the configure scripts generated
REVERT: 2ebdad7 Merge bitcoin#552: Make constants static:
REVERT: 1c131af Merge bitcoin#551: secp256k1_fe_sqrt: Verify that the arguments don't alias.
REVERT: ba698f8 Merge bitcoin#539: Assorted minor corrections
REVERT: 949e85b Merge bitcoin#550: Optimize secp256k1_fe_normalize_weak calls.
REVERT: a34bcaa Actually pass CFLAGS_FOR_BUILD and LDFLAGS_FOR_BUILD to linker
REVERT: 2d5f4ce configure: Use CFLAGS_FOR_BUILD when checking native compiler
REVERT: b408c6a Merge bitcoin#579: Use __GNUC_PREREQ for detecting __builtin_expect
REVERT: 6198375 Make randomization of a non-signing context a noop
REVERT: c663397 Use __GNUC_PREREQ for detecting __builtin_expect
REVERT: e34ceb3 Merge bitcoin#557: Eliminate scratch memory used when generating contexts
REVERT: b3bf5f9 ecmult_impl: expand comment to explain how effective affine interacts with everything
REVERT: efa783f Store z-ratios in the 'x' coord they'll recover
REVERT: ffd3b34 add `secp256k1_ge_set_all_gej_var` test which deals with many infinite points
REVERT: 84740ac ecmult_impl: save one fe_inv_var
REVERT: 4704527 ecmult_impl: eliminate scratch memory used when generating context
REVERT: 7f7a2ed ecmult_gen_impl: eliminate scratch memory used when generating context
REVERT: 314a61d Merge bitcoin#553: add static context object which has no capabilities
REVERT: 89a20a8 Correct order of libs returned on pkg-config --libs --static libsecp256k1 call.
REVERT: d3cb1f9 Make use of TAG_PUBKEY constants in secp256k1_eckey_pubkey_parse
REVERT: 40fde61 prevent attempts to modify `secp256k1_context_no_precomp`
REVERT: ed7c084 add static context object which has no capabilities
REVERT: 496c5b4 Make constants static: static const secp256k1_ge secp256k1_ge_const_g; static const int CURVE_B;
REVERT: bf8b86c secp256k1_fe_sqrt: Verify that the arguments don't alias.
REVERT: 9bd89c8 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.
REVERT: 52ab96f clean dependendies in field_*_impl.h
REVERT: deff5ed Correct math typos in field_*.h
REVERT: 4efb3f8 Add check that restrict pointers don't alias with all parameters.
REVERT: 3965027 Summarize build options in configure script
REVERT: 0f05173 Fix algorithm selection in bench_ecmult
REVERT: 8b3841c fix bug in fread() failure check
REVERT: cddef0c tests: add warning message when /dev/urandom fails
REVERT: 270f6c8 Portability fix for the configure scripts generated

git-subtree-dir: src/secp256k1
git-subtree-split: 763484a1e5bed2b8b990e71c2f66129ae1038d59
LongShao007 pushed a commit to layercoin/layercoin that referenced this pull request Jul 15, 2019
763484a1e5 f fix undefined behavior when shifting an int 31 places
5af66e7f79 f expose nonce_function_bipschnorr
594e3abb69 f hash noncedata into nonce in nonce_function_bipschnorr
318d55155c f make helper functions static
d65adc82f8 Add schnorrsig module which implements BIP-schnorr [0] compatible signing, verification and batch verification.
f4153a29ab add chacha20 function
REVERT: b19c000 Merge bitcoin#607: Use size_t shifts when computing a size_t
REVERT: 4d01bc2 Merge bitcoin#606: travis: Remove unused sudo:false
REVERT: e6d01e9 Use size_t shifts when computing a size_t
REVERT: 7667532 travis: Remove unused sudo:false
REVERT: ee99f12 Merge bitcoin#599: Switch x86_64 asm to use "i" instead of "n" for immediate values.
REVERT: d58bc93 Switch x86_64 asm to use "i" instead of "n" for immediate values.
REVERT: 05362ee Merge bitcoin#597: Add $(COMMON_LIB) to exhaustive tests to fix ARM asm build
REVERT: 8348386 Add $(COMMON_LIB) to exhaustive tests to fix ARM asm build
REVERT: aa15154 Merge bitcoin#568: Fix integer overflow in ecmult_multi_var when n is large
REVERT: 2277af5 Fix integer overflow in ecmult_multi_var when n is large
REVERT: 85d0e1b Merge bitcoin#591: Make bench_internal obey secp256k1_fe_sqrt's contract wrt aliasing.
REVERT: 1419637 Merge bitcoin#580: Add trivial ecmult_multi algorithm which does not require a scratch space
REVERT: a697d82 Add trivial ecmult_multi to the benchmark tool
REVERT: bade617 Add trivial ecmult_multi algorithm. It is selected when no scratch space is given and just multiplies and adds the points.
REVERT: 5545e13 Merge bitcoin#584: configure: Use CFLAGS_FOR_BUILD when checking native compiler
REVERT: 20c5869 Merge bitcoin#516: improvements to random seed in src/tests.c
REVERT: b76e45d Make bench_internal obey secp256k1_fe_sqrt's contract wrt aliasing.
REVERT: 870a977 Merge bitcoin#562: Make use of TAG_PUBKEY constants in secp256k1_eckey_pubkey_parse
REVERT: be40c4d Fixup for C90 mixed declarations.
REVERT: c71dd2c Merge bitcoin#509: Fix algorithm selection in bench_ecmult
REVERT: 6492bf8 Merge bitcoin#518: Summarize build options after running configure
REVERT: 0e9ada1 Merge bitcoin#567: Correct order of libs returned on pkg-config --libs --static libsecp2…
REVERT: e96901a Merge bitcoin#587: Make randomization of a non-signing context a noop
REVERT: 58df8d0 Merge bitcoin#511: Portability fix for the configure scripts generated
REVERT: 2ebdad7 Merge bitcoin#552: Make constants static:
REVERT: 1c131af Merge bitcoin#551: secp256k1_fe_sqrt: Verify that the arguments don't alias.
REVERT: ba698f8 Merge bitcoin#539: Assorted minor corrections
REVERT: 949e85b Merge bitcoin#550: Optimize secp256k1_fe_normalize_weak calls.
REVERT: a34bcaa Actually pass CFLAGS_FOR_BUILD and LDFLAGS_FOR_BUILD to linker
REVERT: 2d5f4ce configure: Use CFLAGS_FOR_BUILD when checking native compiler
REVERT: b408c6a Merge bitcoin#579: Use __GNUC_PREREQ for detecting __builtin_expect
REVERT: 6198375 Make randomization of a non-signing context a noop
REVERT: c663397 Use __GNUC_PREREQ for detecting __builtin_expect
REVERT: e34ceb3 Merge bitcoin#557: Eliminate scratch memory used when generating contexts
REVERT: b3bf5f9 ecmult_impl: expand comment to explain how effective affine interacts with everything
REVERT: efa783f Store z-ratios in the 'x' coord they'll recover
REVERT: ffd3b34 add `secp256k1_ge_set_all_gej_var` test which deals with many infinite points
REVERT: 84740ac ecmult_impl: save one fe_inv_var
REVERT: 4704527 ecmult_impl: eliminate scratch memory used when generating context
REVERT: 7f7a2ed ecmult_gen_impl: eliminate scratch memory used when generating context
REVERT: 314a61d Merge bitcoin#553: add static context object which has no capabilities
REVERT: 89a20a8 Correct order of libs returned on pkg-config --libs --static libsecp256k1 call.
REVERT: d3cb1f9 Make use of TAG_PUBKEY constants in secp256k1_eckey_pubkey_parse
REVERT: 40fde61 prevent attempts to modify `secp256k1_context_no_precomp`
REVERT: ed7c084 add static context object which has no capabilities
REVERT: 496c5b4 Make constants static: static const secp256k1_ge secp256k1_ge_const_g; static const int CURVE_B;
REVERT: bf8b86c secp256k1_fe_sqrt: Verify that the arguments don't alias.
REVERT: 9bd89c8 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.
REVERT: 52ab96f clean dependendies in field_*_impl.h
REVERT: deff5ed Correct math typos in field_*.h
REVERT: 4efb3f8 Add check that restrict pointers don't alias with all parameters.
REVERT: 3965027 Summarize build options in configure script
REVERT: 0f05173 Fix algorithm selection in bench_ecmult
REVERT: 8b3841c fix bug in fread() failure check
REVERT: cddef0c tests: add warning message when /dev/urandom fails
REVERT: 270f6c8 Portability fix for the configure scripts generated

git-subtree-dir: src/secp256k1
git-subtree-split: 763484a1e5bed2b8b990e71c2f66129ae1038d59
fjahr pushed a commit to fjahr/bitcoin that referenced this pull request Jul 24, 2019
…y_pubkey_parse

d3cb1f9 Make use of TAG_PUBKEY constants in secp256k1_eckey_pubkey_parse (Ben Woosley)

Pull request description:

  This results in more self-documenting code.

  Constants defined here:
  https://github.com/bitcoin-core/secp256k1/blob/1e6f1f5ad5e7f1e3ef79313ec02023902bf8175c/include/secp256k1.h#L175-L180

Tree-SHA512: 2026103c487a5ebdea9a2f5ec2be96d74e38d5b2269b4df11e354bb54aba2925b47c3185f530205019840b00fc3501121acfa5234faf1d095d71777826414f69
kallewoof pushed a commit to kallewoof/bitcoin that referenced this pull request Oct 4, 2019
030811b Don't blind with blinding factors that aren't ours (Steven Roose)

Pull request description:

  Cherry-pick of ElementsProject/elements#231.

Tree-SHA512: 14a2e83891edc244ebc1c5cd9a095c0b4914df72f17462cfca2600f6da208f250cc315e91c2ac9232bd6a5197f2d9854cdfeef6ffafdaf36acc51d555c6c13c7
kallewoof pushed a commit to kallewoof/bitcoin that referenced this pull request Oct 4, 2019
44db4d8 Merge pull request bitcoin#57 from apoelstra/2019-04-surjectionproof-stack
f7e4d08 surjection proof: Reject proofs with too many used inputs in reduced mode
112edb2 allow reducing surjection proof size (to lower generation stack usage)
d512d78 surjectionproof: introduce `SECP256K1_SURJECTIONPROOF_MAX_USED_INPUTS` constant and set it to 16
a118acc surjectionproof: reduce stack usage
e7f4ff4 Merge pull request bitcoin#70 from apoelstra/2019-06-surjection-count
f94d46e Merge pull request bitcoin#71 from real-or-random/fix-trailing-test
49a1e01 surjectionproof: fix malleability in surjection proof parsing
55311b0 Fix read of wrong buffer (and OOB) in surjectionproof tests
290a27b surjectionproof: add test vectors for "set padding bits"
7bc3daa surjectionproof: add fixed test vectors
6f3b0c0 Improve comments for surctionproof init+alloc/destroy funcs
250ebb3 work in progress: add _allocate_initialized/destroy funcs
4a77633 Improve explanation of key cancellation attack in whitelist.md
898c9f0 Clarify how to derive alternative generator H
15d9278 Add bench_generator and bench_rangeproof to .gitignore
86240b2 Clean up ./configure help strings (zkp extensions)
865b761 Fix a small typo in the generator parameter name
cd5ba5c generator: remove `CHECK` abort calls exposed by public API
ff16651 musig: add user documentation
0ad6b60 Add 3-of-3 MuSig example
b61a1a9 Add MuSig module which allows creating n-of-n multisignatures and adaptor signatures.
5d5374f Add schnorrsig module which implements BIP-schnorr [0] compatible signing, verification and batch verification.
a8ae6ba add chacha20 function
9a8a71e use proper types for rangeproof min/max
14769b9 rangeproof: reduce iteration count in unit tests
0593861 Enable more builds with rest of experimental flags
e9fea74 Add explanation about how BIP32 unhardened derivation can be used to simplify whitelisting
dec1b9c Add comment to explain effect of max_n_iterations in surjectionproof_init
ea62bfe add unit test for generator and pedersen commitment roundtripping
e32924f rangeproof: fix serialization of pedersen commintments
972d056 rangeproof: verify correctness of pedersen commitments when parsing
2cc4c6f generator: verify correctness of point when parsing
65ffea4 rangeproof: check that points deserialize correctly when verifying rangeproof
cb786d6 rangeproof: add fixed vector test case
b387ba0 Expose generator in shared library
8da4328 fix spelling in documentation
6f14fe4 Test for rejection of trailing bytes in range proofs
ab4fbc1 Test for rejection of trailing bytes in surjection proofs
c908c97 Reject surjection proofs with trailing garbage
f723bf5 Minor bugfix. Wrong length due to NUL character.
6872069 Add whitelisting benchmark
6ceccb7 add whitelist_impl.h to include for dist
a3ad4a8 generator: add API tests
e93e886 generator: remove unnecessary ARG_CHECK from generate()
f1d6e4b Fix generator makefile
68be611 Fix pedersen_blind_generator_blind_sum return value documentation
51fc58a Add n_keys argument to whitelist_verify
36b100c Fix checks of whitelist serialize/parse arguments
c8f54e1 whitelist: fix serialize/parse API to take serialized length
56fca50 Fix include/secp256k1_rangeproof.h function argument documentation.
4617f04 rangeproof: add API tests
cd4e438 surjectionproof: rename unit test functions to be more consistent with other modules
2cc7f1e surjectionproof: add API unit tests
c4097f7 surjectionproof: tests_impl.h s/assert/CHECK/g
5ee6bf3 rangeproof: fix memory leak in unit tests
94e81a2 add surjection proof module
a66ea35 Implement ring-signature based whitelist delegation scheme
2bb5133 rangeproof: several API changes
9b00b61 Expose generator in pedersen/rangeproof API
54fa263 Constant-time generator module
023aa86 rangeproof: expose sidechannel message field in the signing API
89e7451 [RANGEPROOF BREAK] Use quadratic residue for tie break and modularity cleanup
f126331 Pedersen commitments, borromean ring signatures, and ZK range proofs.
e1fb4af Add 64-bit integer utilities
e541a90 Merge bitcoin#629: Avoid calling _is_zero when _set_b32 fails.
f34b0c3 Merge bitcoin#630: Note intention of timing sidechannel freeness.
8d1563b Note intention of timing sidechannel freeness.
1669bb2 Merge bitcoin#628: Fix ability to compile tests without -DVERIFY.
ecc94ab Merge bitcoin#627: Guard memcmp in tests against mixed size inputs.
544435f Merge bitcoin#578: Avoid implementation-defined and undefined behavior when dealing with sizes
143dc6e Merge bitcoin#595: Allow to use external default callbacks
e49f799 Add missing #(un)defines to base-config.h
77defd2 Add secp256k1_ prefix to default callback functions
908bdce Include stdio.h and stdlib.h explicitly in secp256k1.c
5db782e Allow usage of external default callbacks
6095a86 Replace CHECKs for no_precomp ctx by ARG_CHECKs without a return
cd473e0 Avoid calling secp256k1_*_is_zero when secp256k1_*_set_b32 fails.
6c36de7 Merge bitcoin#600: scratch space: use single allocation
98836b1 scratch: replace frames with "checkpoint" system
7623cf2 scratch: save a couple bytes of unnecessarily-allocated memory
a7a164f scratch: rename `max_size` to `size`, document that extra will actually be allocated
5a4bc0b scratch: unify allocations
c2b028a scratch space: thread `error_callback` into all scratch space functions
0be1a4a scratch: add magic bytes to beginning of structure
92a48a7 scratch space: use single allocation
40839e2 Merge bitcoin#592: Use trivial algorithm in ecmult_multi if scratch space is small
dcf3920 Fix ability to compile tests without -DVERIFY.
a484e00 Merge bitcoin#566: Enable context creation in preallocated memory
0522caa Explain caller's obligations for preallocated memory
238305f Move _preallocated functions to separate header
695feb6 Export _preallocated functions
814cc78 Add tests for contexts in preallocated memory
ba12dd0 Check arguments of _preallocated functions
5feadde Support cloning a context into preallocated memory
c4fd5da Switch to a single malloc call
ef020de Add size constants for preallocated memory
1bf7c05 Prepare for manual memory management in preallocated memory
248bffb Guard memcmp in tests against mixed size inputs.
36698dc Merge bitcoin#596: Make WINDOW_G configurable
a61a93f Clean up ./configure help strings
2842dc5 Make WINDOW_G configurable
1a02d6c Merge bitcoin#626: Revert "Merge bitcoin#620: Install headers automatically"
662918c Revert "Merge bitcoin#620: Install headers automatically"
14c7dbd Simplify control flow in DER parsing
ec8f20b Avoid out-of-bound pointers and integer overflows in size comparisons
01ee1b3 Parse DER-enconded length into a size_t instead of an int
912680e Merge bitcoin#561: Respect LDFLAGS and #undef STATIC_PRECOMPUTATION if using basic config
91fae3a Merge bitcoin#620: Install headers automatically
5df77a0 Merge bitcoin#533: Make sure we're not using an uninitialized variable in secp256k1_wnaf_const(...)
975e51e Merge bitcoin#617: Pass scalar by reference in secp256k1_wnaf_const()
735fbde Merge bitcoin#619: Clear a copied secret key after negation
16e8615 Install headers automatically
069870d Clear a copied secret key after negation
8979ec0 Pass scalar by reference in secp256k1_wnaf_const()
84a8085 Merge bitcoin#612: Allow field_10x26_arm.s to compile for ARMv7 architecture
d4d270a Allow field_10x26_arm.s to compile for ARMv7 architecture
b19c000 Merge bitcoin#607: Use size_t shifts when computing a size_t
4d01bc2 Merge bitcoin#606: travis: Remove unused sudo:false
e6d01e9 Use size_t shifts when computing a size_t
7667532 travis: Remove unused sudo:false
248f046 Make sure we're not using an uninitialized variable in secp256k1_wnaf_const(...)
9ab96f7 Use trivial algorithm in ecmult_multi if scratch space is small
ee99f12 Merge bitcoin#599: Switch x86_64 asm to use "i" instead of "n" for immediate values.
d58bc93 Switch x86_64 asm to use "i" instead of "n" for immediate values.
05362ee Merge bitcoin#597: Add $(COMMON_LIB) to exhaustive tests to fix ARM asm build
8348386 Add $(COMMON_LIB) to exhaustive tests to fix ARM asm build
aa15154 Merge bitcoin#568: Fix integer overflow in ecmult_multi_var when n is large
2277af5 Fix integer overflow in ecmult_multi_var when n is large
dbed75d Undefine `STATIC_PRECOMPUTATION` if using the basic config
310111e Keep LDFLAGS if `--coverage`
85d0e1b Merge bitcoin#591: Make bench_internal obey secp256k1_fe_sqrt's contract wrt aliasing.
1419637 Merge bitcoin#580: Add trivial ecmult_multi algorithm which does not require a scratch space
a697d82 Add trivial ecmult_multi to the benchmark tool
bade617 Add trivial ecmult_multi algorithm. It is selected when no scratch space is given and just multiplies and adds the points.
5545e13 Merge bitcoin#584: configure: Use CFLAGS_FOR_BUILD when checking native compiler
20c5869 Merge bitcoin#516: improvements to random seed in src/tests.c
b76e45d Make bench_internal obey secp256k1_fe_sqrt's contract wrt aliasing.
870a977 Merge bitcoin#562: Make use of TAG_PUBKEY constants in secp256k1_eckey_pubkey_parse
be40c4d Fixup for C90 mixed declarations.
c71dd2c Merge bitcoin#509: Fix algorithm selection in bench_ecmult
6492bf8 Merge bitcoin#518: Summarize build options after running configure
0e9ada1 Merge bitcoin#567: Correct order of libs returned on pkg-config --libs --static libsecp2…
e96901a Merge bitcoin#587: Make randomization of a non-signing context a noop
58df8d0 Merge bitcoin#511: Portability fix for the configure scripts generated
2ebdad7 Merge bitcoin#552: Make constants static:
1c131af Merge bitcoin#551: secp256k1_fe_sqrt: Verify that the arguments don't alias.
ba698f8 Merge bitcoin#539: Assorted minor corrections
949e85b Merge bitcoin#550: Optimize secp256k1_fe_normalize_weak calls.
a34bcaa Actually pass CFLAGS_FOR_BUILD and LDFLAGS_FOR_BUILD to linker
2d5f4ce configure: Use CFLAGS_FOR_BUILD when checking native compiler
b408c6a Merge bitcoin#579: Use __GNUC_PREREQ for detecting __builtin_expect
6198375 Make randomization of a non-signing context a noop
c663397 Use __GNUC_PREREQ for detecting __builtin_expect
3cb057f Fix possible integer overflow in DER parsing
89a20a8 Correct order of libs returned on pkg-config --libs --static libsecp256k1 call.
d3cb1f9 Make use of TAG_PUBKEY constants in secp256k1_eckey_pubkey_parse
496c5b4 Make constants static: static const secp256k1_ge secp256k1_ge_const_g; static const int CURVE_B;
bf8b86c secp256k1_fe_sqrt: Verify that the arguments don't alias.
9bd89c8 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.
52ab96f clean dependendies in field_*_impl.h
deff5ed Correct math typos in field_*.h
4efb3f8 Add check that restrict pointers don't alias with all parameters.
3965027 Summarize build options in configure script
0f05173 Fix algorithm selection in bench_ecmult
8b3841c fix bug in fread() failure check
cddef0c tests: add warning message when /dev/urandom fails
270f6c8 Portability fix for the configure scripts generated
REVERT: 43dd1f4 Merge pull request bitcoin#40 from instagibbs/size_t
REVERT: 6532fa0 Merge pull request bitcoin#39 from instagibbs/more_builds
REVERT: 2b2429d rangeproof: reduce iteration count in unit tests
REVERT: 12b0e5d Enable more builds with rest of experimental flags
REVERT: 8c444ee use proper types for rangeproof min/max
REVERT: 53ad841 Add explanation about how BIP32 unhardened derivation can be used to simplify whitelisting
REVERT: 71c5fe0 Add comment to explain effect of max_n_iterations in surjectionproof_init
REVERT: 85fd42f add unit test for generator and pedersen commitment roundtripping
REVERT: 2ccf885 rangeproof: fix serialization of pedersen commintments
REVERT: 60c173b rangeproof: verify correctness of pedersen commitments when parsing
REVERT: 32d7526 generator: verify correctness of point when parsing
REVERT: ae14e8a rangeproof: check that points deserialize correctly when verifying rangeproof
REVERT: 44fe43d rangeproof: add fixed vector test case
REVERT: e065d7d Expose generator in shared library
REVERT: fb1ba32 fix spelling in documentation
REVERT: fb75faa Test for rejection of trailing bytes in range proofs
REVERT: 9b2cf17 Test for rejection of trailing bytes in surjection proofs
REVERT: a3a1800 Reject surjection proofs with trailing garbage
REVERT: 0c77ae9 Minor bugfix. Wrong length due to NUL character.
REVERT: b1f31bc Add whitelisting benchmark
REVERT: 52a9f8f add whitelist_impl.h to include for dist
REVERT: a707865 generator: add API tests
REVERT: ec1ef04 generator: remove unnecessary ARG_CHECK from generate()
REVERT: b0e9aa8 Fix generator makefile
REVERT: 526c654 Fix pedersen_blind_generator_blind_sum return value documentation
REVERT: b51886e Add n_keys argument to whitelist_verify
REVERT: 37c57de Fix checks of whitelist serialize/parse arguments
REVERT: 9b8a9d9 whitelist: fix serialize/parse API to take serialized length
REVERT: 7f17515 Fix include/secp256k1_rangeproof.h function argument documentation.
REVERT: 0d81702 rangeproof: add API tests
REVERT: 417bb06 surjectionproof: rename unit test functions to be more consistent with other modules
REVERT: 1e2d5c1 surjectionproof: add API unit tests
REVERT: 7878a29 surjectionproof: tests_impl.h s/assert/CHECK/g
REVERT: e609591 rangeproof: fix memory leak in unit tests
REVERT: 0c17f79 add surjection proof module
REVERT: c174f0c Implement ring-signature based whitelist delegation scheme
REVERT: a2bc660 rangeproof: several API changes
REVERT: 21bfb3c Expose generator in pedersen/rangeproof API
REVERT: f4620de Constant-time generator module
REVERT: d46fc3c rangeproof: expose sidechannel message field in the signing API
REVERT: cf40b1b [RANGEPROOF BREAK] Use quadratic residue for tie break and modularity cleanup
REVERT: 6d28767 Get rid of precomputed H tables (Pieter Wuille)
REVERT: ae1e576 Pedersen commitments, borromean ring signatures, and ZK range proofs.
REVERT: efc61dc Add 64-bit integer utilities

git-subtree-dir: src/secp256k1
git-subtree-split: 44db4d801fff3cd94105136cb443d603683baad2
KolbyML pushed a commit to KolbyML/bitcoin that referenced this pull request Sep 4, 2020
* Updated from PIVX v3.1.1 (bitcoin#49)

* Merge bitcoin#524: Add blocksizenotify command

44e4d2e Add blocksizenotify command (Jeremy)

Tree-SHA512: 0deb5a883c5d52d0b4e4681fd5ea6c845363ede4299bb59f10a22b23f00aff4e5bb62a7954b752d7d33db5a422ec169f60360868296aa833849cc3e35145250b

* Merge bitcoin#528: Readme changes

42fa274 Readme changes (Sieres)

Tree-SHA512: d5112531283a9554fd6c01ba75bda532cf8cebffc98ea16e7432663f88a9fe1378ba40eb242e6daf8b1666ba1f276f885bdd7a4a8c3300a04cf855d2150749ec

# Conflicts:
#	README.md

* Merge bitcoin#518: [Wallet] Combine fees when possible and fix autocombine insufficient funds

eb603b4 [Wallet] Fix autocombine (warrows)
3f9e746 [Wallet] Combine change to output when possible & provide it in autocombine (warrows)
10426c7 [Wallet] Increase fee margin to up to 10% of autocombine send (warrows)

Tree-SHA512: e3452b0862b30c5c7f21697d12485e7b009dda3b4225e9685209425cb4a16baf35dd9d591b39ece077c3314f7c344f23b3810e5d0d840a8003c7d7d09f5c7ae4

# Conflicts:
#	src/wallet.cpp

* Merge bitcoin#523: Give high priority to zerocoinspends to make it into the next block.

84a4f91 Give high priority to zerocoinspends to make it into the next block. (presstab)

Tree-SHA512: d7bf91433a2059d8acc4b322dc21b98ca97af7e03d47a7225a8fe0ccb1265c625aaab758071d2b950b07b4d11814e1baca384c213c49215d976d7d9f323e3660

* Merge bitcoin#533: [Doc] Update OSX build notes: zmq, libevent, and notes to handle possible glibtoolize error

fde9f94 osx build notes: libzmq -> zmq in brew install, add libevent (Tim Uy)

Tree-SHA512: eb44a499c3f42da2a296161bc01be49cd63fbd928c513018010a564cd1192e1000beb1987d536f4ab93782cd2930527552108418e973448c80e6c5a59c2a78ef

# Conflicts:
#	doc/build-osx.md

* Merge bitcoin#532: [Depends] Update depends package versions.

bc4ffd5 [Depends] Update depends package versions. (Fuzzbawls)

Tree-SHA512: 814f769d65657e1bd02daca583dd5b63fc3ee9af53afcabeaafa661fe9e584c484ebfef7763a59d41ac81b4ade03a9d85d40b86b25ab873bf578cfe8063acdd6

# Conflicts:
#	depends/patches/zeromq/0001-fix-build-with-older-mingw64.patch

* Merge bitcoin#538: [Qt] Fix warning dialog popup for the Blockchain Explorer

50088b8 [Qt] Fix warning dialog popup for the Blockchain Explorer (Fuzzbawls)

Tree-SHA512: 5bef022ea6ebbe36dfd58ccc6e0c0b48a2f1268934f4fb0ec34100e05be38b325d0a832e650104b2e1e2741c9d118e7d9894e99dafeb2bf7b5a43f180e597fff

# Conflicts:
#	src/qt/blockexplorer.cpp

* Merge bitcoin#542: [Network] Remove vfReachable and modify IsReachable to only use vfLimited.

38ed737 Remove vfReachable and modify IsReachable to only use vfLimited. (Patrick Strateman)

Tree-SHA512: 8aa61f9abd8356522f3ba71b35497aac07e10333a39ff4b98bb635d1246e6b1be6b0ee0b236944fbfaa558af0e6c0cc219e540eacb2232bc05db393e4a72b088

* Merge bitcoin#526: Refactor ConnectBlock() to segregate state tracking items

00cd668 Refactor ConnectBlock() to segregate state tracking items from the 'Just Check' section. (presstab)

Tree-SHA512: 457019024cd8e786810611efb776dc16e12ed7cb71c9df79bc52d5cab9fe32d55cefaf1653d11e3d348b8008456c613c1fc5f17f53520de5c157a6cc861e8379

# Conflicts:
#	src/main.cpp

* Rename coin name

* Fixed compiling error

* Merge bitcoin#535: [core] Minor refacturing + unused variable removed

7633516 [core] Minor refacturing + unused variable removed (Mrs-X)

Tree-SHA512: aa43dec1f95b56bfd8ae51ec3ea8e1a23e6011262b39a2492b006802a9da7f52aec99afd3d4e4259067911557a986ba52e18838feb4c7b117345610c3234a16a

* Merge bitcoin#543: [RPC] Segfault pivx-cli getinfo while loading block index

336e3d8 [RPC] Segfault pivx-cli getinfo while loading block index (Mrs-X)

Tree-SHA512: 30bf65f7f527ba78bdcd0e2fef4da77f15a049f605a0cb3000b565c0e19e8dd274a137d1371435c0793617004591757b6b5e31029ed7a247d46bb6368cfec88b

* Merge bitcoin#539: [RPC] Allow watchonly coins to be shown for listunspent

c3671b5 Allow rpc listunspent to have options for watchonly transactions (blondfrogs)

Tree-SHA512: 5c998c1c5d0da8c4245662e528cbee5f70855fb941baa82524610d6f52810df0a70b6c29677f3f666e33995bf823778a58b2cb3e7b4182a2c644f1b383ba8506

* Merge bitcoin#544: [Trivial] Add debug info for CWallet::ReconsiderZerocoins().

993fcee Add debug info for CWallet::ReconsiderZerocoins(). (presstab)

Tree-SHA512: 494803e04778eec487ae35e12efd2cf3b5acdc094c98913998563d8386d98142b7525d6703a41dabba10e5126041d56c6ddd61e2130ae6f439d23439b7c6ee2c

* Merge bitcoin#552: [Trivial] Fix errant LogPrint in UpdateZPIVSupply

2d5aa5b [Trivial] Fix errant LogPrint in UpdateZPIVSupply (Fuzzbawls)

Tree-SHA512: b514a5aaa04b573af991c2eec518db0593dedd26e917f6275d308719b83059728d51fb9f50b721011393f4a73412998f88315d0587008a1f0cb940a272df6ceb

* Merge bitcoin#551: [Consensus] Require standard transactions for testnet

d3c60aa [Consensus] Require standard transactions for testnet (Fuzzbawls)

Tree-SHA512: ef0d1ed46623ce15d59f63f0c857fbdda7d9cf52825957f631548908cfe03d79f18b9fc5c7cfb01ff14e90b1a6e2f41e190bc64d7f4561a83b5ab2e287ef75a9

* Merge bitcoin#554: [Docs] Added release notes for autocombine and proxy GUI.

68e1a20 [Docs] Added release notes for autocombine and proxy GUI. (warrows)

Tree-SHA512: 59baa3bfe46489c288cc06d4dc9d3fc5486c9d2de5e41574333f1ada5438a9087f754a0c33eabf6bfb92b91ec71ae60464db48b7bed27c00cf7fb683e6e86904

* Merge bitcoin#558: [Core] Remove Gitan-OSX warning for High Sierra builds

390e49b [Core] Remove Gitan-OSX warning for High Sierra builds (Mrs-X)

Tree-SHA512: d914f13ff8f8b4d15334ba4aaea21fa43035489bb2c5932c168a6299095b4e85a9f1bd54cc85a287251956a24bfa384b1998ca051ebc4a75510e4568b891c3d8

* Merge bitcoin#447: [Consensus] Fix compilation with OpenSSL 1.1

094fa11 [Compilation] Add additional information to compile with unsupported SSL (warrows)
903c4f1 [Consensus] Allow for compilation with OpenSSL 1.1 (warrows)

Tree-SHA512: 9c843279cb889e72bb44b019a7859510f4fe39f3a358f18c4d09a35a9bede1d940a07c2c3781f388fdab42bd0e5acd51160e5e0b07a33050e293214b3e4db0a4

* Merge bitcoin#559: [Bug] Segfault with -enableswifttx=0 / -enableswifttx=false

0bc66f3 [Bug] Segfault with -enableswifttx=0 / -enableswifttx=false (Mrs-X)

Tree-SHA512: e71de283ae5708bc7f844ebc7d5cf2a62a2c3928d5164661d66ed0b770eccfa9f84cf69de3d7bdd1dee6160439d916563045dc7d5173e0d70e6c7ec51ac1cbb7

* Merge bitcoin#562: [Wallet/RPC] Add argument to mint zerocoin from specific UTXO

a5123c2 [Documentation] Improve help for mintzerocoin rpc command (warrows)
9a0b734 [Wallet/RPC] Add argument to mint zerocoin from specific UTXO (warrows)

Tree-SHA512: fb5056eb7d81e06b66ced7ea8e92f053a04c0ad71df0eb84a08180ced2edd4313c5fa15fde7345dd1d8f65b1c93480e141049a570abec9dd7c14ecb6f8cde0e3

# Conflicts:
#	src/rpcwallet.cpp

* Merge bitcoin#568: [Qt] Connect automint icon to the UI automint setting change

28466e2 [Qt] connect automint icon to the UI automint setting change (warrows)

Tree-SHA512: 1107b842a0d0a9a7044922a6c997b05fb030dc5e6014217f09e6b769ad685bd5b7bdc32699eb2b6514259d719bdef8bc89b2fe1dd5b59beb0c64185a00783501

* Merge bitcoin#571: [Qt] Update privacy tab info about zeromint on config change

c0ffe24 [Qt] Update privacy tab info about zeromint on config change (warrows)

Tree-SHA512: 54016bef392a010541d1ab3373a0144100dc0b99f3cfed804b395dc0ab08f60bb93c22b52decdfbbabd6e5e39ffcba1d80bd23a92fb9986c722062de1f47ddd7

* Merge bitcoin#570: [Wallet] Add a check on zPIV spend to avoid a segfault

b8185ae [Wallet] Add a check on zPIV spend to avoid a segfault (warrows)

Tree-SHA512: 960c0d06a5fc040e290be334224fd224cf78f698cc99e4db7b618f25085091e19b2e02d906114008bb2e6315d343a46960b5f1f817c5975ac46d62fe498a8843

* Merge bitcoin#572: [Qt] Refresh zPIV balance after resetting mints or spends

992763b [Qt] Refresh zPIV balance after resetting mints or spends (warrows)

Tree-SHA512: bea53d1632e6410144613f4a83de3ed232dc21c05b5eb091b5f6dcde55f67057190708d3493b54a7b243a60c6701054bdc85239625c41d3d5a32c630192b4b54

* Staking zPiv.

# Conflicts:
#	src/chainparams.cpp
#	src/kernel.cpp
#	src/main.cpp
#	src/main.h
#	src/miner.cpp
#	src/qt/forms/zpivcontroldialog.ui
#	src/qt/transactionrecord.cpp
#	src/qt/transactiontablemodel.cpp
#	src/wallet.cpp
#	src/wallet.h
#	src/walletdb.cpp

* Fixed compiling error

* Add libzerocoin::SpendType enum.

This allows for more transaction types using zPIV, including using zPIV without actually spending it (for example if needing to show proof of zPIV for voting or for masternode collateral).

* Validate that the correct spend type is used for zPIV spend and zPIV stake.

* V2 zPIV must have serials that have the 1st byte as 00.

Requiring that v2 zPIV use serials that have the first byte as 00 will make zPIV v2 serials unique from v1 serials. This prevents a 'serial troller' from reminting with someone elses v2 serial and simply changing the version flag to v1 when they spend the zerocoin, which would negate any of the additional v2 requirements.

It is unlikely that many (if any) serials were minted with the first byte as 00. Note that if there are existing v1 zPIV with 00 prefixed serials, it would make them unspendable since the owner would not have an associated private key.

* change to using first nibble as 0xF for v2 serial mark.

* Switch to a new accumulator with the correct modulus.

# Conflicts:
#	src/libzerocoin/Commitment.cpp
#	src/miner.cpp
#	src/wallet.cpp

* Fixed compiling error

* Change zpiv stake to use serial hash.

# Conflicts:
#	src/init.cpp
#	src/qt/transactiontablemodel.cpp
#	src/wallet.cpp

* Fixed compiling error

* Add description for -pivstake= and -zpivstake=.

* Make RPC export/import zerocoins compatible with v2.

* [P2P] Update ActiveProtocol for 70913 protocol version

# Conflicts:
#	src/main.cpp
#	src/version.h

* [Wallet] Add missing variable to 2 AvailableCoins() calls

This is mostly depreciated code since the removal of coinjoin style
privacy (Obfuscation), but the missing boolean variable in these two
calls was causing compiler warnings on newer versions of gcc for always
evaluating to true.

The use of a static `false` was taken from upstream DASH.

* [zPIV] Adjust testnet v2 starting block

* Fix coinbase check. Add override specifiers. Proper init for SetDec.

* [Budget] Change finalization collateral to 5 PIV

* Merge bitcoin#513: [core] Fix masternode broadcast for networks != MAINNET

bc8be7c [core] Fix masternode broadcast for networks != MAINNET (update) (Mrs-X)

Tree-SHA512: de1a713e166a45d26848d45d656ab36d68dc0d52810e0a66865c635442d4ac75a5602dbf39455b986356f17d3552e697607bb4464657b727ebaef0a8580f5657

# Conflicts:
#	src/activemasternode.cpp
#	src/masternode.cpp
#	src/masternode.h

* implemented masternode_broadcast
# Conflicts:
#	src/activemasternode.cpp
#	src/activemasternode.h
#	src/masternode.cpp
#	src/masternode.h
#	src/masternodeman.cpp
#	src/masternodeman.h
#	src/rpcserver.cpp
#	src/rpcserver.h

* Updated fundamental node

* broke up the RPC commands in create/decode/relay
# Conflicts:
#	src/masternode.cpp
#	src/rpcserver.cpp
#	src/rpcserver.h

* Updated fundamental node

* restore protocolVersion (lowered for testing purposes)
# Conflicts:
#	src/masternode.cpp

* factor out GetStrMessage() - define MIN_PEER_MNANNOUNCE
# Conflicts:
#	src/masternode.cpp
#	src/masternode.h

* Updated fundamental node

* use error() instead of LogPrintf()
# Conflicts:
#	src/masternode.cpp

* Style Changes

- don't print masternode ip in the logs
- join fHelp and wrong command clauses
- use more descriptive names for pubkeys variables
- change "result" to "success" and make it a boolean value
- use array for resultsObj in createmasternode all
- use lowercase for json objects
- add detailed output example to decodemasternodebroadcast help
- fix rpcserver.cpp indentation
# Conflicts:
#	src/masternodeman.cpp
#	src/rpcserver.cpp

* Updated fundamental node

* [P2P] Add new spork key and handling logic

- New spork key added
- Sporks signed with the old key are valid until a pre-determined time
- No NEW spork changes can be signed with the old key

# Conflicts:
#	src/chainparams.cpp
#	src/spork.cpp

* [Wallet] use GetTime() for nStartupTime

`nStartupTime` is initalized before the P2P network initialization takes
place, making the use of `GetAdjustedTime()` cause a lock ordering
segfault under certain situations.

* Clean up lockorder data of destroyed mutexes

# Conflicts:
#	src/sync.h

* Clean up apparent locking issues

These locks address compiler warnings when compiling with clang's
`-Wthread-safety-analysis`

* Remove extra typedef

This slipped in from some other testing i was doing, shouldn't be
included yet.

* [Build] Add missing files to src/Makefile.am

These were left out, and break Travis/Gigian building due to them not
being included in the dist tarball.

* Load mint version based on serial parsing.

* Fix typo in ban reason output

* [RPC] Fix spork command input length

Sporks are uint64, but the input variable was being parsed as an int,
causing an out-of-range error for larger values.

* [Qt] Show correct data for MN reward on a zPIV stake block

* [Wallet] Stop removing spent zPIV hashes from map

* [QT] Fix zPIV stake transaction record

# Conflicts:
#	src/qt/transactionrecord.cpp

* GetOldStrMessage() / GetNewStrMessage(): check against both
# Conflicts:
#	src/masternode.cpp
#	src/masternode.h

* Merge bitcoin#513: [core] Fix masternode broadcast for networks != MAINNET

bc8be7c [core] Fix masternode broadcast for networks != MAINNET (update) (Mrs-X)

Tree-SHA512: de1a713e166a45d26848d45d656ab36d68dc0d52810e0a66865c635442d4ac75a5602dbf39455b986356f17d3552e697607bb4464657b727ebaef0a8580f5657

# Conflicts:
#	src/activemasternode.cpp
#	src/masternode.cpp
#	src/masternode.h

* Sign "old" strMessage before nBlockZerocoinV2
# Conflicts:
#	src/masternode.cpp

* minor style change

(replace 'LogPrintf'+'return false' with 'return error')
# Conflicts:
#	src/masternode.cpp

* Fix zPIV mint databasing.

* [Budget] Finalization fixes

# Conflicts:
#	src/masternode-budget.cpp

* Working model for deterministic zPIV.

Deterministic zPIV minting. Unit test added to zerocoin_implementation_tests.cpp. This deterministic generation model will likely be changed with further testing.

Update mapSerialHashes each time SelectStakeCoins() is called.

Better tracking of zPIV mint status updates.

- Removed several walletdb ListMintedCoins reads and replaced them with iterating over the serialhashes map.
- Disconnect block will now update a mint's status that is part of the disconnected block.
- Shorten CTxIn.ToString() print out when it is a zerocoinspend.
- Remove several stake logging items that were flagged with any debug type.
- Use a larger mintpool of 20 mints which will be more likely to see any blockchain mints that are ours.
- Refactor zPIVWallet::SyncWithChain() to not get stuck in an infinite loop.
- Remove locking of cs_main on GetUnconfirmedZerocoinBalance() because it now loops over mapSerialHashes and does not grab any chain data.
- LOCK cs_wallet in CreateCoinStake() once a stake has been found.
- LOCK cs_main when generating accumulator witness.

# Conflicts:
#	src/Makefile.am
#	src/init.cpp
#	src/wallet.cpp

* Fixed compile error and coin name.

* Add zpivTracker.

Add mint maturity filtering.

Directly add wallet transactions from zpiv found on IBD.

Fix ResetZerocoins.

Use pubcoin hashes for mintpool instead of CBigNum.

CBigNum may be a bit slower to iterate.

# Conflicts:
#	src/Makefile.am
#	src/init.cpp
#	src/wallet.h

* Fixed compile error

* Database mints generated by the mintpool.

- Load all generated mints on initialization. Then remove mints from the mintpool that are already known.

* Do not database zerocoinmint too early.

- A mint should only be recorded when it is added to the blockchain, not when it is simply checked for validity.
- Remove a database of zPIV spend that should not be done as well (it is done later in connectblock).

* Check for existence of zpivTracker in ListMintedCoins().

* Use unique databasing for dzpiv and do not database private info.

-Feed majority of zpiv read/write/update operations through zpivTracker.

fix

# Conflicts:
#	src/denomination_functions.cpp
#	src/main.cpp
#	src/qt/privacydialog.cpp
#	src/qt/zVitcontroldialog.cpp
#	src/wallet.cpp
#	src/wallet.h
#	src/walletdb.h
#	src/zvittracker.cpp

* [Qt] Fix zPIV transactions details

* [Core] Guard against a segfault in serialization

* [GUI] Update GUI depending on SPORK_16 without restart

# Conflicts:
#	src/qt/privacydialog.cpp

* Fixed coin name

* [Staking] Fix MintableCoins and fMintableCoins

This fixes an edge case where `fMintableCoins` evaluates to `false`
during initialization, which was causing an infinate loop in the staking
thread.

Also refactor `MintableCoins()` to allow for cases when PIV balance is 0
but zPIV balance is not (and wallet has eligible zPIV mints)

# Conflicts:
#	src/miner.cpp

* [Wallet] Fix GetImmatureZerocoinBalance

need to use `GetUnconfirmedZerocoinBalance()` instead of
`GetUnconfirmedBalance()` here.

* [P2P] Guard CInv::ToString against unknown types

* Fix parsing of QT transaction records on fresh import of seed.

# Conflicts:
#	src/qt/transactionrecord.cpp

* Fixed compile error

* Correct confirmation count on qt transaction records.

* Use 1 second GUI update time.

* Handle generating witness from mint less than checkpointed value.

* Fix segfault on chainparams.

* Remove AddToWallet() from miner.cpp.

* Remove uneeded lock on createcoinstake().

* Make zPiv wallet consistently use nCount as the last count used and remove comparison against nCountLastGenerated that resulted in adding to the mintpool every time the wallet got opened.

# Conflicts:
#	src/zvitwallet.cpp

* Make sure mints are added to zerocoinDB even when it is a zcspend.

* Add -reindexzerocoin arg to wipe zerocoindb and reindex blockchain.

# Conflicts:
#	src/init.cpp

* Fix mature zPIV balance calculation

Overview and Privacy tabs were missing the subtraction of unconfirmed
zPIV in their calculation.

# Conflicts:
#	src/qt/overviewpage.cpp

* Don't exit early in ReconsiderZerocoins

Only exit if **BOTH** listMints and listDMints are empty.

* Fix timing inconsistency with mature/unconfirmed zpiv balances

This fixes a timing issue where a zPIV mint that had not yet been
included in a block was being incorrectly accounted for in the
"Mature/Spendable/Available" balance until it was included in a block.

Now, the new mint is correctly accounted as "Unconfirmed" right away.

* Load only the mintpool for the current seed, prevent the generation of mints already in the mintpool, and prevent the zpivwallet count from being updated when an error occurs during zpiv minting.

* Fix MintPool logprint.

* Do not try to add all zpiv stakes on init.

* Fix QT transaction record when staking zpiv that was not deterministic.

- Also add full information about merkle tree to the WalletTx.

# Conflicts:
#	src/qt/transactionrecord.cpp

* zpivTracker better check for orphans. Also no redundant adding wtx's.

* Remove balance check from CreateCoinStake().

* Use correct params for spend when checking serial in miner.

* Fix checking if mint is in chain.

* Fixed compile error

* [Qt] Properly set involvesWatchAddress in the transaction record

This prevents "the eye" from watching you when it shouldn't

* [Qt] Fix mn reward showing as zPIV stake

# Conflicts:
#	src/qt/transactionrecord.cpp

* [Qt] Fix normal PIV transaction record amount

* [Wallet] Fix compilation on windows

* Encryption of zpiv seeds

seed routed through wallet before db to be encrypted (if IsCrypted())

when crypting, the hash of the vMasterKey is used as nIV

# Conflicts:
#	src/init.cpp
#	src/qt/multisigdialog.cpp
#	src/walletdb.cpp
#	src/walletdb.h
#	src/zvitwallet.cpp

* Fixed compile error

* [Qt] Fix another instance of a wayward eye

# Conflicts:
#	src/qt/transactionrecord.cpp

* [Budget] Add debug to find 'Couldn't find opReturn' error

* [Budget] Fix 'Couldn't find opReturn' error 1

# Conflicts:
#	src/masternode-budget.cpp

* Updated fundamental node

* [Budget] Remove obsolete finalized budgets + better debug info

* Updated fundamental node

* [Budget] Add debug info to CBudgetManager::IsTransactionValid()

* Updated fundamental node

* [Budget] Add debug info to CFinalizedBudget::IsTransactionValid()

* Updated fundamental node

* Mark orphan zPIV stake input as not used.

Change listMints() to std::set. Add mapPendingSpends to track spends.

-Change to set to reduce BigO complexity.
-add mapPendingSpends to keep track of spends that were made so that they do not get considered as falsly marked as not used while they are in the mempool.

Check mempool for pending spends.

# Conflicts:
#	src/miner.cpp
#	src/qt/privacydialog.cpp
#	src/qt/zVitcontroldialog.cpp

* Fixed compile error

* [RPC] Fix clang error with vMintsToFind

* Handle zPIV seed db transition.

# Conflicts:
#	src/walletdb.cpp
#	src/walletdb.h

* Fixed compile error

* [Qt] Fix zPIV spend's nCount

Actually increment `nCount` in the loop when displaying the transaction
details so it doesn't stay at `0`.

* Require v1 zPIV to use security level 100.

* More description for spend that fails without using zpiv control dialog.

# Conflicts:
#	src/wallet.h

* Fixed compile error

* Add better help text to all zerocoin related RPC commands

Each command now includes the following:
- Numbered arguments (if any)
- Result example
- Sample call execution

`listzerocoinamounts` was also changed to return propper JSON

# Conflicts:
#	src/rpcwallet.cpp

* Fixed compile error

* Make all RPC commands use the same styling format

Added some missing help output, used EnsureWalletIsLocked where
applicable (more in the next commit), and improved code readability for
the help sections for each command.

# Conflicts:
#	src/rpcdump.cpp
#	src/rpcmisc.cpp
#	src/rpcwallet.cpp

* Teach EnsureWalletIsUnlocked() to accept unlock for anon only

Add an optional bool paramater to `EnsureWalletIsUnlocked()` that
defaults to `false` (current bahavior). If passed `true`, then only
require a partial unlock.

* [Staking] Fix Stake Split Threshold for PIV staking

This reintroduces the calculation on wither or not the wallet should
"split" the PIV stake input.

Note: zPIV staking never splits, and it shouldn't.

* [tests] Fix zPIV determinism test

* Make zpiv unarchiving work with zpivtracker.

* [Budget] Fix double-payment issue and replace "zPiv" by "zPIV" strings

# Conflicts:
#	src/init.cpp
#	src/libzerocoin/Denominations.cpp
#	src/main.cpp
#	src/masternode-budget.cpp
#	src/miner.cpp
#	src/qt/forms/privacydialog.ui
#	src/qt/pivxstrings.cpp
#	src/qt/privacydialog.cpp
#	src/qt/transactiontablemodel.cpp
#	src/qt/transactionview.cpp
#	src/rpcwallet.cpp
#	src/wallet.cpp

* Updated fundamental node

* [Budget] Additional log for Budget debugging

# Conflicts:
#	src/masternode-budget.cpp

* Updated fundamental node

* [Crypto] Bignum getcompact return correct result

* [Crypto] Remove BigNum constructor implicitly calling SetHex

* [Crypto] Fix %= and /= bignum operators

* [Crypto] minor changes on BigNum uses

* dzpivstate RPC call. Displays state of deterministic zpiv wallet.

* Do not archive zpiv orphans on IDB.

- Do not archive zpiv orphans on IDB. This should handle most problems with zpiv being archived when resyncing.
- Speed up CzPIVWallet::SyncWithChain() by reducing calls to GetTransaction().
- Speed up CzPIVWallet::SyncWithChain() by adding a LOCK(cs_main).
- Do not remove mints from the mint pool from init, let the syncing process do it naturally.

* Make sure that mintpool checks all mints.

* Readd zPIV tx's during -zapwallettxs

# Conflicts:
#	src/init.cpp

* Fix segfault on importzerocoins RPC.

* More efficient scanning during zapwallettxes.

# Conflicts:
#	src/init.cpp

* Add multithreading to RPC searchdzpiv.

* Save searched dzpiv to DB. Less verbosity.

* [Budget] Improved double-payment-handling.

# Conflicts:
#	src/masternode-budget.cpp

* Updated fundamental node

* [Wallet] Fix ListMints when returning only unused mints

Needed to move up the logic/checks for filtering out unused mints to get
a propper output with `exportzerocoins false`.

* custom wallet backup paths

# Conflicts:
#	src/wallet.cpp

* Fixed compile error

* Fix first run initialization of zwallet with encrypted wallet.dat file

When running the client with a `wallet.dat` file that has never
initialized it's zwallet or dzPIV, there is an incorrect code pathway
that leads to the dzPIV seed hash never being written to the wallet
file. Instead, we copy the seed generation code into `crypter.cpp` which
will allow for proper dzPIV seed generation upon first unlock.

* Use smart pointers to keep better track of memory.

- Convert the raw ptr to zpivTracker in CWallet to unique_ptr.
- Change the CheckProofOfStake() process to use unique_ptr.

* [Fix] fix translation build error

# Conflicts:
#	src/qt/walletmodel.cpp

* Do not rely on chainActive with contextual checks.

This can lead to situations of rejecting valid blocks that are from a competing fork.

* Use unique_ptr for stake input list.

* [Wallet] Refactor ListMints to more quickly detect orphan/failed stakes

* [Staking] Exit CreateCoinStake loop if wallet locked/shutdown

If the wallet gets locked or a shutdown is requested in the middle of
the stakeinput loop, there is no sense in continuing.

* [Output] Log network message receives as "net" debug category

These messages spam the log constantly and should be classified in the
"net" debug category instead of uncategorized.

* Remove/replace logging that is not necessary.

* [Budget] Handling of too few votes for finalized budget fixed

* Updated fundamental node

* Fix compilation

* Add minimum zPIV maturity consideration to GetMintMaturityHeight().

The zPIV should not be considered mature unless it has 1 mint that occured after it AND the mint is at least two checkpoints deep.

* Factor out components of ListMints() so that it is more legible.

* Simplify and document -custombackupthreshold

Also move -backuppath and -zpivbackuppath to more appropriate areas in
the help output.

# Conflicts:
#	src/init.cpp

* Cleanup log spam & add additional check to archive zpiv stake orphans.

My log was showing stake orphans getting stuck with the message "Found orphanded mint txid=.....". This is supposed to ignore it for the existing iteration and then clean it up next time ListMints() is called. This was not happening to stake transactions, so logic is added to archive the mint if it is coinstake.

* [Budget] Spread out voting on finalized budget for testnet also.

# Conflicts:
#	src/masternode-budget.cpp

* Updated fundamental node

* Display -backuppath, -zpivbackuppath, -custombackupthreshold in wallet repair menu

also fix segfault when permission denied since trying to create directories before checking permissions

* Guard against non-integer input for GUI's custombackupthreshold

* [Core] Initialzed seed for rand()   (trivial change)

* Change spork key validity period. Minor spork code refactor.

* Merge bitcoin#583: [Docs] Update release notes for v3.1.0

53fc2dd [Docs] Update release notes for v3.1.0 (Fuzzbawls)

Tree-SHA512: 2df4411b3376aea24956f8c3e602bece66c92f6f74488bb5a22005bfaa7fab272a93417a76c520aae26a29dd2714270b73f72f3e7922377410a870ee68669c1b

# Conflicts:
#	doc/release-notes.md

* Merge bitcoin#584: [Doc] Update to zPIV staking and Thank you's

e46e49b Update to zPIV staking and Thank you's (Sieres)

Tree-SHA512: 21a43784106ea774e362c2b7d0ca7c1dfb8cb28460a9d7b56057c8becb68599b263510e6f838c441cef13835b722af49c497707b02c80f874432f8c5e7c2e8a6

# Conflicts:
#	doc/release-notes.md

* PIVX Core v3.1.0

# Conflicts:
#	configure.ac

* [Bug] Fix CMasternodeConfig::read

rebase from upstream. Windows doesn't initialize CService properly
during startup before the masternode.conf file is read.

# Conflicts:
#	src/masternodeconfig.cpp

* Updated fundamental node

* Fixed compile error

* Bump version to 3.1.0.1

Bugfix for Windows MN Controllers

* Merge bitcoin#593: 3.1.0.2 backport

43f6f1b Add unit test for budget value. (presstab)
9ee7d98 Update protocol to 70914. (presstab)
ebc4527 [Budget] Fix wrong budget amount (Mrs-X)

Tree-SHA512: 6d813ee5e9cc548ffd8b3c816f669a9b79a6b8118de73941fd3fc6d7be46ae2dbfa935d94d1b62c32c1700165ad5a637f87eeaa8cd36927d4d281193b9c84ada

# Conflicts:
#	src/version.h

* Bump version to 3.1.0.2

* Bump to 3.1.0.3

one-line change for `listtransactions`, this won't be a full release
with gitian builds, but a tag that exchanges/services can use as a
fixed-point reference if they need `listtransactions` compatibility.

* Merge bitcoin#584: [Doc] Update to zPIV staking and Thank you's

e46e49b Update to zPIV staking and Thank you's (Sieres)

Tree-SHA512: 21a43784106ea774e362c2b7d0ca7c1dfb8cb28460a9d7b56057c8becb68599b263510e6f838c441cef13835b722af49c497707b02c80f874432f8c5e7c2e8a6

# Conflicts:
#	doc/release-notes.md

* Merge bitcoin#585: [Doc] Change aarch assert sign output folder

a810714 [Doc] Change aarch assert sign output folder (Warrows)

Tree-SHA512: 1b454a87f526ec8edf96f28952f4dccce444bbedd7512a21188d155ab5e57e494d8306529eccc0a280417895dc0e4b7718a233b883cfcffd84fd89f5c9d4e280

# Conflicts:
#	doc/release-process.md

* Merge bitcoin#595: [Tests] Fix chain ordering in budget tests

3a6b152 [Tests] Fix chain ordering in budget tests (Fuzzbawls)

Tree-SHA512: c94c7511d088bffc9568045b48b5fac8f10cceb4561e1d3a58fda3cb64227aee163280e9ad553157b206bd36257f516c34c697e8df4eeea153ffc8a44753a17a

* Merge bitcoin#596: [Build] Bump master to 3.1.99

5d73f63 [Build] Bump master to 3.1.99 (Fuzzbawls)

Tree-SHA512: 7d421685e1f3b90dfc4f536b679436f0d8bbd82614996aa7e76541ff9ad572e729063fb699d70778ea3f4acb2576713ebd3bbb49966d8e82a79945723419b256

# Conflicts:
#	configure.ac
#	contrib/gitian-descriptors/gitian-aarch64.yml
#	contrib/gitian-descriptors/gitian-linux.yml
#	contrib/gitian-descriptors/gitian-osx.yml
#	contrib/gitian-descriptors/gitian-win.yml

* Merge bitcoin#597: [Wallet] Write new transactions to wtxOrdered properly

b2fdbbf [Wallet] Write new transactions to wtxOrdered properly (Fuzzbawls)

Tree-SHA512: b0bd54c9bd7fb44c18d7d4d84213b96b48dc22b35825c0a0f268b3f99086e8beeea7de5aed07cc575ee7dae0ce095e0438eb7e89454bae54551478ea5f81661d

* [Refactor] Delete secp256k1 folder for subtreefication

# Conflicts:
#	src/secp256k1/.gitignore
#	src/secp256k1/.travis.yml
#	src/secp256k1/COPYING
#	src/secp256k1/Makefile.am
#	src/secp256k1/README.md
#	src/secp256k1/TODO
#	src/secp256k1/configure.ac
#	src/secp256k1/include/secp256k1.h
#	src/secp256k1/libsecp256k1.pc.in
#	src/secp256k1/obj/.gitignore
#	src/secp256k1/src/bench_inv.c
#	src/secp256k1/src/bench_sign.c
#	src/secp256k1/src/bench_verify.c
#	src/secp256k1/src/ecdsa.h
#	src/secp256k1/src/ecdsa_impl.h
#	src/secp256k1/src/eckey.h
#	src/secp256k1/src/eckey_impl.h
#	src/secp256k1/src/ecmult.h
#	src/secp256k1/src/ecmult_gen.h
#	src/secp256k1/src/ecmult_gen_impl.h
#	src/secp256k1/src/ecmult_impl.h
#	src/secp256k1/src/field.h
#	src/secp256k1/src/field_10x26.h
#	src/secp256k1/src/field_10x26_impl.h
#	src/secp256k1/src/field_5x52.h
#	src/secp256k1/src/field_5x52_asm.asm
#	src/secp256k1/src/field_5x52_asm_impl.h
#	src/secp256k1/src/field_5x52_impl.h
#	src/secp256k1/src/field_5x52_int128_impl.h
#	src/secp256k1/src/field_gmp.h
#	src/secp256k1/src/field_gmp_impl.h
#	src/secp256k1/src/field_impl.h
#	src/secp256k1/src/group.h
#	src/secp256k1/src/group_impl.h
#	src/secp256k1/src/java/org/bitcoin/NativeSecp256k1.java
#	src/secp256k1/src/java/org_bitcoin_NativeSecp256k1.c
#	src/secp256k1/src/java/org_bitcoin_NativeSecp256k1.h
#	src/secp256k1/src/num.h
#	src/secp256k1/src/num_gmp.h
#	src/secp256k1/src/num_gmp_impl.h
#	src/secp256k1/src/num_impl.h
#	src/secp256k1/src/scalar.h
#	src/secp256k1/src/scalar_4x64.h
#	src/secp256k1/src/scalar_4x64_impl.h
#	src/secp256k1/src/scalar_8x32.h
#	src/secp256k1/src/scalar_8x32_impl.h
#	src/secp256k1/src/scalar_impl.h
#	src/secp256k1/src/secp256k1.c
#	src/secp256k1/src/testrand.h
#	src/secp256k1/src/testrand_impl.h
#	src/secp256k1/src/tests.c
#	src/secp256k1/src/util.h

* Merge commit '8a901f93d505af3516353837600fd71a0c53a692' as 'src/secp256k1'

* [Crypto] Switch from openssl to secp256k1 for consensus

[Refactoring] Moved and removed some stuff
-Removed duplicated arith uint files
-Removed unused variables
-Move keystore impls to .cpp instead of .h
-Removed useless function in key.cpp
[Crypto] fix bip38 compilation for latest libsecp256k1
[Compilation] Change compilation and some code to use libsec instead of sslcrypto
[Crypto] Update keys to comply with latest secp256k1 lib

# Conflicts:
#	src/Makefile.am
#	src/arith_uint256.cpp
#	src/arith_uint256.h
#	src/eccryptoverify.cpp
#	src/eccryptoverify.h
#	src/ecwrapper.cpp
#	src/ecwrapper.h
#	src/key.cpp
#	src/key.h
#	src/pubkey.cpp
#	src/pubkey.h
#	src/uint512.h

* [Tests] Add new auto generated script tests

* [Crypto] Bring back function CKey.SetPrivKey for zPIV

* Fixed compile error

* [Crypto] Add ctx initialisation for bip38

* [Tests] Fix chain ordering in budget tests

check testnet params first, then check mainnet so as to not interfere
with subsequent unit tests that rely on mainnet params.

Also clean up include ordering.

Github-Pull: bitcoin#595
Rebased-From: 3a6b152

* Only enable/disable PrivacyDialog zPIV elements if needed.

Currently the zPIV buttons are constantly updated to enabled or disabled even if they are already in the correct state.

Github-Pull: bitcoin#600
Rebased-From: 2b76f31

# Conflicts:
#	src/qt/privacydialog.cpp

* Fix spending for v1 zPIV created before block 1050020.

The transition to v2 zPIV and reset of the accumulators caused blocks 1050000 - 1050010 to be accumulated twice. This was causing many v1 zPIV to not create valid witnesses. This problem is fixed by double accumulating blocks 1050000-1050010 when creating the witness.

Github-Pull: bitcoin#603
Rebased-From: abee3d9

* Add getaccumulatorvalues RPC.

Return the accumulator values associated with a particular block height.

Github-Pull: bitcoin#603
Rebased-From: 8a6d425

* Remove log spam and ensure proper zpiv version is used.

Github-Pull: bitcoin#603
Rebased-From: ccf6c77

# Conflicts:
#	src/wallet.cpp

* [GUI] Fix wrongly displayed balance on Overview tab

Github-Pull: bitcoin#598
Rebased-From: 6030877

# Conflicts:
#	src/qt/overviewpage.cpp

* Fixed Multisend dialog to show settings properly

Multisend will display a message if it has only been enabled for masternodes and if its enabled for both (Displaying this didnt work if multisend was only enabled for masternodes)
Github-Pull: bitcoin#580
Rebased-From: 40baa7d

# Conflicts:
#	src/qt/multisenddialog.cpp

* Update multisenddialog.cpp
Github-Pull: bitcoin#580
Rebased-From: 8dca829

# Conflicts:
#	src/qt/multisenddialog.cpp

* [Build] Remove unnecessary BOOST dependency

Github-Pull: bitcoin#605
Rebased-From: da3a6a5

* [Budget] Make sorting of finalized budgets deterministic

Github-Pull: bitcoin#608
Rebased-From: 93e637f

* Updated fundamental node

* Remove zPIV code from main.cpp

Github-Pull: bitcoin#609
Rebased-From: 873ef19

# Conflicts:
#	src/Makefile.am

* Renamed zpivchain to zvitchain

* Fixed compile error

* [Output] Properly log reason(s) for increasing a peer's DoS score.

Many of the MN related DoS checks had their log messages output only if
the client was running in debug mode, leading to unexplained peer bans.

Github-Pull: bitcoin#611
Rebased-From: fe14f5f

# Conflicts:
#	src/masternode-budget.cpp
#	src/masternodeman.cpp

* [Build] Make sure Boost headers are included for libzerocoin

Custom boost locations not using pkg_config can result in a header
include not being found when compiling the libzerocoin library. This
quick fix ensures that the `BOOST_CPPFLAGS` are explicitely included.

Github-Pull: bitcoin#622
Rebased-From: 811785c

# Conflicts:
#	src/Makefile.am

* Update zPIV stake set more frequently.

Github-Pull: bitcoin#617
Rebased-From: 355e2d3

* Lower stake hashdrift to 30 seconds.

Lower the hash drift which should reduce the amount of orphans.

Github-Pull: bitcoin#617
Rebased-From: 4c862f2

* [UI] Remove useless help button from QT dialogs

Github-Pull: bitcoin#629
Rebased-From: 4dc636c

# Conflicts:
#	src/qt/askpassphrasedialog.cpp
#	src/qt/zVitcontroldialog.cpp

* Merge bitcoin#521: [GUI] Make "For anonymization and staking only" checked by default

4e5b73e [GUI] Make "For anonymization and staking only" checked by default (Mrs-X)

Tree-SHA512: 53d5aa663269efdb82cb2d8961f2eae4aebc03a6d96d15d990b357385584e365935f012eb9410b81de891a1d1ed75fbfe88937b2e87df12db148b1d6e3c015a5

# Conflicts:
#	src/qt/askpassphrasedialog.cpp
#	src/qt/masternodelist.cpp
#	src/qt/walletview.h

* Fixed compile error

* [Wallet] Add some LOCK to avoid crash

Github-Pull: bitcoin#625
Rebased-From: ed23d0d

* [Qt] Show progress percent for zpiv reindex operations

`-reindexaccumulators` and `-reindexzerocoin` can take a considerable
time to complete depending on system hardware. Lets show a progress percent
 similar to `VerifyDB()` on the splashscreen.

Github-Pull: bitcoin#612
Rebased-From: 48e502a

# Conflicts:
#	src/main.cpp

* Guard against division by zero for reindex zerocoin/accumulators

in the event that the local chainActive is equal or below that of the
relevant zerocoin block heights, there is nothing to do, so bypass
the internal process.

Github-Pull: bitcoin#612
Rebased-From: bed79e2

# Conflicts:
#	src/main.cpp

* Move ReindexAccumulators() call to be inside parent conditional

Not much point in checking if the listAccCheckpointsNoDB list is empty
outside of when the wallet is started using `-reindexaccumulators`, as
it is always empty outside of that case.

Github-Pull: bitcoin#612
Rebased-From: 5127486

# Conflicts:
#	src/init.cpp

* [Travis] Add separate job to check doc/logprint/subtree

Break out a new job to do the basic linting that check-dock.py and
logprint-scanner.py did.

Also add new scripts to check the sanity of
any git subtrees and to check that new pull requests don't contain any
trailing whitespace.

Also, remove the outdated slack notification callback

Github-Pull: bitcoin#639
Rebased-From: 6f695b5

# Conflicts:
#	.travis.yml

* [Main] Write to the zerocoinDB in batches

instead of using a separate write operation for each and every bit of
data that needs to be flushed to disk, utilize leveldb's batch writing
capability.

Github-Pull: bitcoin#636
Rebased-From: cd672cd

* Remove unnecessary whitespaces

Github-Pull: bitcoin#646
Rebased-From: a554259

# Conflicts:
#	src/qt/privacydialog.cpp

* [Utils] Add copyright header to logprint-scanner.py

Github-Pull: bitcoin#649
Rebased-From: 79d618f

* [Doc] Change aarch assert sign output folder
Github-Pull: bitcoin#585
Rebased-From: a810714

# Conflicts:
#	doc/release-process.md

* Check whether tx is in chain in ContextualCheckZerocoinMint().

Github-Pull: bitcoin#610
Rebased-From: c4141aa

* Merge bitcoin#651: [Doc] Release notes for v3.1.1

6bdef7a [Doc] Release notes for v3.1.1 (Fuzzbawls)

Tree-SHA512: 8fb6c3ef52064b5542c5acdd2b93165fd2f1054b9e2ba607fcdfde3c5c4bbd6e6b8f05ac2fff53e97791c23be6366d60af1957e6e76786daecad591d3d4f8f9b

# Conflicts:
#	doc/release-notes.md

* Bump version to 3.1.1

# Conflicts:
#	configure.ac

* Fixed coin name

* Fixed coin name

* Fixed coin name

* Fixed coin name

* Fixed coin name

* Fixed coin name

* Fixed wrongly replaced coin names

* Update Nomenclature

CzPIVWallet to CzVITWallet

* More Nomenclature Fixes

CzPIVWallet to CzVITTracker

* Fixed compile error

Co-authored-by: Mrs-X <Mrs-X@users.noreply.github.com>
Co-authored-by: Fuzzbawls <fuzzbawls@gmail.com>
Co-authored-by: presstab <presstab1337@gmail.com>
Co-authored-by: gpdionisio <gianpiero.dionisio@protonmail.ch>
Co-authored-by: warrows <warrows@gamer666.fr>
Co-authored-by: Anthony Posselli <anthony@paddington.services>
Co-authored-by: Warrows <Warrows@users.noreply.github.com>
Co-authored-by: rejectedpromise <rejectedpromise@gmail.com>
Co-authored-by: SHTDJ <36552562+SHTDJ@users.noreply.github.com>
Co-authored-by: Crypto Pliskin <13294167+2a5A1Ghu1@users.noreply.github.com>

* Fixed testnet

* Update testnet spork key

* Fixed travis error that caused by check-doc.py

* Removed unused check in travis

* Fixed travis error

* Disabled some unit tests to pass travis

* Disabled some unit tests to pass travis

* Fixed missing bracket in rpcwallet.cpp from merge

* Incremented version to v4.5.0

* Updated spork and zerocoin chain parameters

* Incremented protocol and swapped protocol spork from 18 to 14

* Removed seesaw

* Added spork for enabling removal of seesaw reward algorithm

* Added spork for enabling removal of seesaw reward algorithm & updated spork parameters

* Updated DNS and fixed seeds

* Updated DNS and fixed seeds

* Updated spork parameters

* Adjusted spork parameters

* Fixes for OSX builds on newer OS versions

* Updated release copyright year

* Updated release-nodes.md

* Updated macro name in blocksignature.h

* Updated MIN_PEER_MNANNOUNCE protocol version

* Fixed references to zerocoin spork

* Fixed wrong balance displayed in overview

* Removed unused function SliceHash

* Fixed references to Spork 16

* Fixing compiler warning for rpcfundamentalnode.cpp

* Updated macro names

* Fixed naming for staking rewards

* Fixed references to zVITAE

* Fix FN Label

There may be some compatability issues with this fix and upstream.

* Added checkpoint

* Added checkpoint

* Updated release-notes.md

* Reject blocks that have no previous block

* Adding const to exception catching

* Set AA_EnableHighDpiScaling attribute early

* Updated VITAE copyright string

* Fixed wrongly removed code about mapStakeSpent

* [Wallet] Increase valid range for automint percentage

* [Docs] OSX Build - Instructions on how to make the Homebrew OpenSSL headers visible

* [Qt] Remove Growl support

Growl hasn't been free nor needed for many years. MacOS versions since
10.8 have the OS notification center, which is still supported after
this.

* [Qt] Add Tor service icon to status bar

Tor Icon is displayed when the client is initialized with a successful
tor service connection.

Icon is hidden otherwise.

* Updated naming for zvitaebackuppath

* Updated exception to const in rpcwallet.cpp

* Updated spork key dates for testnet

* Added checkpoint

Co-authored-by: Wang Qi <wqking@users.noreply.github.com>
Co-authored-by: Mrs-X <Mrs-X@users.noreply.github.com>
Co-authored-by: Fuzzbawls <fuzzbawls@gmail.com>
Co-authored-by: presstab <presstab1337@gmail.com>
Co-authored-by: gpdionisio <gianpiero.dionisio@protonmail.ch>
Co-authored-by: warrows <warrows@gamer666.fr>
Co-authored-by: Anthony Posselli <anthony@paddington.services>
Co-authored-by: Warrows <Warrows@users.noreply.github.com>
Co-authored-by: rejectedpromise <rejectedpromise@gmail.com>
Co-authored-by: SHTDJ <36552562+SHTDJ@users.noreply.github.com>
Co-authored-by: Crypto Pliskin <13294167+2a5A1Ghu1@users.noreply.github.com>
Co-authored-by: wqking <wqking@outlook.com>
backpacker69 referenced this pull request in peercoin/peercoin Mar 28, 2021
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
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
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
c663397f46 Use __GNUC_PREREQ for detecting __builtin_expect
e34ceb333b Merge #557: Eliminate scratch memory used when generating contexts
b3bf5f99a3 ecmult_impl: expand comment to explain how effective affine interacts with everything
efa783f8f0 Store z-ratios in the 'x' coord they'll recover
ffd3b346fe add `secp256k1_ge_set_all_gej_var` test which deals with many infinite points
84740acd2a ecmult_impl: save one fe_inv_var
47045270fa ecmult_impl: eliminate scratch memory used when generating context
7f7a2ed3a8 ecmult_gen_impl: eliminate scratch memory used when generating context
314a61d724 Merge #553: add static context object which has no capabilities
89a20a8945 Correct order of libs returned on pkg-config --libs --static libsecp256k1 call.
1086fda4c1 Merge #354: [ECDH API change] Support custom hash function
d3cb1f95eb Make use of TAG_PUBKEY constants in secp256k1_eckey_pubkey_parse
40fde611bd prevent attempts to modify `secp256k1_context_no_precomp`
ed7c08417a add static context object which has no capabilities
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.
1e6f1f5ad5 Merge #529: fix tests.c in the count == 0 case
c8fbc3c397 [ECDH API change] Allow pass arbitrary data to hash function
b00be65056 [ECDH API change] Support custom hash function
95e99f196f fix tests.c in the count == 0 case
452d8e4d2a Merge #523: scratch: add stack frame support
6fe50439ae scratch: add stack frame support
9bc2e26502 Merge #522: parameterize ecmult_const over input size
7c1b91ba4b parameterize ecmult_const over input size
dbc3ddd5e2 Merge #513: Increase sparsity of pippenger fixed window naf representation
3965027c81 Summarize build options in configure script
0f0517369c Fix algorithm selection in bench_ecmult
fb9271dcf0 Merge #510: add a couple missing `const`s to ecmult_pippenger_wnaf
cd5f6028e5 Merge #515: Fix typo
09146ae854 Merge #512: secp256k1_ec_privkey_negate - fix documentation
ec0a7b3ae3 Don't touch leading zeros in wnaf_fixed.
9e36d1bfe2 Fix bug in wnaf_fixed where the wnaf array is not completely zeroed when given a 0 scalar.
96f68a0afc Don't invert scalar in wnaf_fixed when it is even because a caller might intentionally give a scalar with many leading zeros.
8b3841c91d fix bug in fread() failure check
cddef0c0be tests: add warning message when /dev/urandom fails
9b7c47a21e Fix typo
6dbb007869 Increase sparsity of pippenger fixed window naf representation
1646ace4d5 secp256k1_ec_privkey_negate - fix documentation
270f6c80db Portability fix for the configure scripts generated
9b3ff0309d add a couple missing `const`s to ecmult_pippenger_wnaf
cd329dbc3e Merge #460: [build] Update ax_jni_include_dir.m4 macro
7f9c1a1565 Merge #498: tests: Avoid calling fclose(...) with an invalid argument
f99aa8d4d3 Merge #499: tests: Make sure we get the requested number of bytes from /dev/urandom
b549d3d5f7 Merge #472: [build] Set --enable-jni to no by default instead of auto.
d333521516 Merge #494: Support OpenSSL versions >= 1.1 for ENABLE_OPENSSL_TESTS
2ef8ea5d21 Merge #495: Add bench_ecmult to .gitignore
82a96e4587 tests: Make sure we get the requested number of bytes from /dev/urandom
5aae5b5bb2 Avoid calling fclose(...) with an invalid argument
cb32940df3 Add bench_ecmult to .gitignore
31abd3ab8d Support OpenSSL versions >= 1.1 for ENABLE_OPENSSL_TESTS
c95f6f1360 Merge #487: fix tests typo, s/changed/unchanged
fb46c83881 Merge #463: Reduce usage of hardcoded size constants
02f5001dfc Merge #490: Disambiguate bench functions and types
1f46d6089e Disambiguate bench functions and types
f54c6c5083 Merge #480: Enable benchmark building by default
c77fc08597 Merge #486: Add pippenger_wnaf for multi-multiplication
d2f9c6b5dc Use more precise pippenger bucket windows
4c950bbeaf Save some additions per window in _pippenger_wnaf
a58f543f5a Add flags for choosing algorithm in ecmult_multi benchmark
36b22c9337 Use scratch space dependent batching in ecmult_multi
355a38f113 Add pippenger_wnaf ecmult_multi
bc65aa794e Add bench_ecmult
dba5471b69 Add ecmult_multi tests
8c1c831bdb Generalize Strauss to support multiple points
548de42ecf add resizeable scratch space API
0e96cdc6b6 fix typo, s/changed/unchanged
c7680e570f Reduce usage of hardcoded size constants
6ad5cdb42a Merge #479: Get rid of reserved _t in type names
7a78f60598 Print whether we're building benchmarks
4afec9f1ae Build benchmarks by default
d1dc9dfc0a Get rid of reserved _t in type names
57752d28b3 [build] Set --enable-jni to no by default instead of auto.
e7daa9b3c2 [build] Tweak JNI macro to warn instead of error for JNI not found.
5b22977922 [build] Update ax_jni_include_dir.m4 macro to deal with recent versions of macOS

git-subtree-dir: src/secp256k1
git-subtree-split: b19c000063be11018b4d1a6b0a85871ab9d0bdcf
lateminer pushed a commit to lateminer/bitcoin that referenced this pull request May 5, 2021
@bitcoin bitcoin locked as resolved and limited conversation to collaborators Sep 8, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants