-
Notifications
You must be signed in to change notification settings - Fork 37.7k
RPC password prompt using pinentry via ASSUAN #284
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
Conversation
A new class Pin is used to create secure password dialogs using process separation. IPC is done via libassuan and the assuan daemon user is standard pinentry (portable qt, gtk2 and ncurses implementations are available) Pinentry takes care of memlocking and is the standard for GNUPG.
So...this adds the option to specify the rpcuser/pass at runtim instead of via -rpcuser/-rpcpassword. I like this. ASSUAN might be useful for wallet crypto, where the user needs to enter their password via GUI and I have yet to find a way to mlock() the password as the user enters it, but even still, the attack which mlock() protects against is almost never seen in the wild. Assuan is designed to be a secure method of IPC, but in this case it is just used as a password entry library. Assuan might be very useful for something like libbitcoin, but for bitcoin it seems like far over-engineering. Maybe Im missing something you can point out? |
Maybe assuan also tries to stop keyloggers on Windows, but my short googleing seemed to indicate otherwise. |
It is Pinentry, main reference implementation of an assuan daemon, that tries to stop software keyloggers when started as a separate process, capturing exclusive focus and such. My guess is that, since it is all ported on major platforms, this new small dependency wouldn't be a problem (at least as optional) and can provide a solid platform to develop further on situations that require user input in bitcoin (which is totally lacking ATM); as you can see the Pin class is very simple and well readable. |
Its not a question of whether a new dep will cause problems in compiling, but a question of is it necessary? A new dep just means that much more work when compiling and that much more memory used when it has to be loaded. I agree assuan looks like a good lib to input password, but again...why? It would be great to have when we move towards libbitcoin, but that is such a long way off I dont see any use in this for some time to come. |
I definitely see the usefulness of introducing ssh-askpass style support for bitcoind. It makes, for instance, setting a one-time use passphrase for txn creation using your new wallet encryption code much much simpler. However, I cannot get this to build cleanly with the version of libassuan in debian stable. What exactly are the build deps? |
on Ubuntu packaged deps are libassuan2-dev and libgpg-error-dev just tested compilation on Debian 6.0 and you are right, doesn't works: Debian is stuck to the old libassuan-dev (version 1) my approach in this case is include statically and then move strings so that Debian wakes up, which takes time indeed.. |
forgot to mention that i'm available to fix this up to work on libassuan 1 or 2, yet before doing that i'd like to know if there is reasonable intention to pull this into mainline or not, just lemme know |
I know I would like to see it pulled. |
you should add libassuan-dev to the apt-get instructions if this should be pulled |
where is the libassuan project homepage? Is it part of something else? |
Its a part of GPG and afaict mostly just used by that. http://www.gnupg.org/download/#libassuan |
The Debian archive contains a few other packages using libassuan:
|
yes, ASSUAN is a new, well thought and documented protocol for secure IPC by the fine people coding on GNUPG which will arguably become a de facto standard in future. the provision of pinentry-* programs on various platforms makes it extremely convenient to use it to implement password prompt my current code uses the ASSUAN-2 API which contains some design improvements over the version 1, although it can be downgraded for full compatibility since debian still has the older library packaged, or detected at compile time once autoconf build is there. i can do that but again first i'd like to know if this is a feature you are willing to pull or not, since this is mostly a design issue that can affect future development (which should then arguably stick to these set of dependencies for tasks as password prompt). |
I like the feature, but won't pull for two reasons:
|
re: point 2 - what is under the GNU GPL? the code i'm contributing is licensed under the same MIT license as Bitcoin. you mean the dependencies? is your intention to avoid any library dependency licensed as GNU GPL? |
Yes, we avoid an GPL library dependencies. LGPL is OK. |
But libassaun is gplv2+ OR lgplv2+ ? Actually, I'm wrong. From the README the source is straight up lgplv2. (The rest of the gnupg packages are gplv2+.) See COPYING.LIB on how to share, modify and distribute the software |
71ed475 Pedersen commitments, borromean ring signatures, and ZK range proofs. afd1379 Add 64-bit integer utilities 9d96e36 Merge pull request bitcoin#280 432e1ce Merge pull request bitcoin#283 14727fd Use correct name in gitignore 356b0e9 Actually test static precomputation in Travis ff3a5df Merge pull request bitcoin#284 2587208 Merge pull request bitcoin#212 a5a66c7 Add support for custom EC-Schnorr-SHA256 signatures d84a378 Merge pull request bitcoin#252 72ae443 Improve perf. of cmov-based table lookup 92e53fc Implement endomorphism optimization for secp256k1_ecmult_const ed35d43 Make `secp256k1_scalar_add_bit` conditional; make `secp256k1_scalar_split_lambda_var` constant time 91c0ce9 Add benchmarks for ECDH and const-time multiplication 0739bbb Add ECDH module which works by hashing the output of ecmult_const 4401500 Add constant-time multiply `secp256k1_ecmult_const` for ECDH e4ce393 build: fix hard-coded usage of "gen_context" b8e39ac build: don't use BUILT_SOURCES for the static context header baa75da tests: add a couple tests ae4f0c6 Merge pull request bitcoin#278 995c548 Introduce callback functions for dealing with errors. c333074 Merge pull request bitcoin#282 18c329c Remove the internal secp256k1_ecdsa_sig_t type 74a2acd Add a secp256k1_ecdsa_signature_t type 23cfa91 Introduce secp256k1_pubkey_t type 4c63780 Merge pull request bitcoin#269 3e6f1e2 Change rfc6979 implementation to be a generic PRNG ed5334a Update configure.ac to make it build on OpenBSD 1b68366 Merge pull request bitcoin#274 a83bb48 Make ecmult static precomputation default 166b32f Merge pull request bitcoin#276 c37812f Add gen_context src/ecmult_static_context.h to CLEANFILES to fix distclean. 125c15d Merge pull request bitcoin#275 76f6769 Fix build with static ecmult altroot and make dist. 5133f78 Merge pull request bitcoin#254 b0a60e6 Merge pull request bitcoin#258 733c1e6 Add travis build to test the static context. fbecc38 Add ability to use a statically generated ecmult context. 4fb174d Merge pull request bitcoin#263 4ab8990 Merge pull request bitcoin#270 bdf0e0c Merge pull request bitcoin#271 31d0c1f Merge pull request bitcoin#273 eb2c8ff Add missing casts to SECP256K1_FE_CONST_INNER 55399c2 Further performance improvements to _ecmult_wnaf 99fd963 Add secp256k1_ec_pubkey_compress(), with test similar to the related decompress() function. 145cc6e Improve performance of _ecmult_wnaf 36b305a Verify the result of GMP modular inverse using non-GMP code 0cbc860 Merge pull request bitcoin#266 06ff7fe Merge pull request bitcoin#267 5a43124 Save 1 _fe_negate since s1 == -s2 a5d796e Update code comments 3f3964e Add specific VERIFY tests for _fe_cmov 7d054cd Refactor to save a _fe_negate b28d02a Refactor to remove a local var 55e7fc3 Perf. improvement in _gej_add_ge a0601cd Fix VERIFY calculations in _fe_cmov methods 17f7148 Merge pull request bitcoin#261 7657420 Add tests for adding P+Q with P.x!=Q.x and P.y=-Q.y 8c5d5f7 tests: Add failing unit test for bitcoin#257 (bad addition formula) 5de4c5d gej_add_ge: fix degenerate case when computing P + (-lambda)P bcf2fcf gej_add_ge: rearrange algebra e2a07c7 Fix compilation with C++ 873a453 Merge pull request bitcoin#250 91eb0da Merge pull request bitcoin#247 210ffed Use separate in and out pointers in `secp256k1_ec_pubkey_decompress` a1d5ae1 Tiny optimization 729badf Merge pull request bitcoin#210 2d5a186 Apply effective-affine trick to precomp 4f9791a Effective affine addition in EC multiplication git-subtree-dir: src/secp256k1 git-subtree-split: 71ed475ea53ff4576b7344762584b752a824c60f
d7eb1ae Merge pull request bitcoin#342 7914a6e Make lax_der_privatekey_parsing.h not depend on internal code 73f64ff Merge pull request bitcoin#339 9234391 Overhaul flags handling 1a36898 Make flags more explicit, add runtime checks. 1a3e03a Merge pull request bitcoin#340 96be204 Add additional tests for eckey and arg-checks. bb5aa4d Make the tweak function zeroize-output-on-fail behavior consistent. 4a243da Move secp256k1_ec_privkey_import/export to contrib. 1b3efc1 Move secp256k1_ecdsa_sig_recover into the recovery module. e3cd679 Eliminate all side-effects from VERIFY_CHECK() usage. b30fc85 Avoid nonce_function_rfc6979 algo16 argument emulation. 70d4640 Make secp256k1_ec_pubkey_create skip processing invalid secret keys. 6c476a8 Minor comment improvements. 131afe5 Merge pull request bitcoin#334 0c6ab2f Introduce explicit lower-S normalization fea19e7 Add contrib/lax_der_parsing.h 3bb9c44 Rewrite ECDSA signature parsing code fa57f1b Use secp256k1_rand_int and secp256k1_rand_bits more 49b3749 Add new tests for the extra testrand functions f684d7d Faster secp256k1_rand_int implementation 251b1a6 Improve testrand: add extra random functions 31994c8 Merge pull request bitcoin#338 f79aa88 Bugfix: swap arguments to noncefp c98df26 Merge pull request bitcoin#319 67f7da4 Extensive interface and operations tests for secp256k1_ec_pubkey_parse. ee2cb40 Add ARG_CHECKs to secp256k1_ec_pubkey_parse/secp256k1_ec_pubkey_serialize 7450ef1 Merge pull request bitcoin#328 68a3c76 Merge pull request bitcoin#329 98135ee Merge pull request bitcoin#332 37100d7 improve ECDH header-doc b13d749 Fix couple of typos in API comments 7c823e3 travis: fixup module configs cc3141a Merge pull request bitcoin#325 ee58fae Merge pull request bitcoin#326 213aa67 Do not force benchmarks to be statically linked. 338fc8b Add API exports to secp256k1_nonce_function_default and secp256k1_nonce_function_rfc6979. 52fd03f Merge pull request bitcoin#320 9f6993f Remove some dead code. 357f8cd Merge pull request bitcoin#314 118cd82 Use explicit symbol visibility. 4e64608 Include public module headers when compiling modules. 1f41437 Merge pull request bitcoin#316 fe0d463 Merge pull request bitcoin#317 cfe0ed9 Fix miscellaneous style nits that irritate overactive static analysis. 2b199de Use the explicit NULL macro for pointer comparisons. 9e90516 Merge pull request bitcoin#294 dd891e0 Get rid of _t as it is POSIX reserved 201819b Merge pull request bitcoin#313 912f203 Eliminate a few unbraced statements that crept into the code. eeab823 Merge pull request bitcoin#299 486b9bb Use a flags bitfield for compressed option to secp256k1_ec_pubkey_serialize and secp256k1_ec_privkey_export 05732c5 Callback data: Accept pointers to either const or non-const data 1973c73 Bugfix: Reinitialise buffer lengths that have been used as outputs 788038d Use size_t for lengths (at least in external API) c9d7c2a secp256k1_context_set_{error,illegal}_callback: Restore default handler by passing NULL as function argument 9aac008 secp256k1_context_destroy: Allow NULL argument as a no-op 64b730b secp256k1_context_create: Use unsigned type for flags bitfield cb04ab5 Merge pull request bitcoin#309 a551669 Merge pull request bitcoin#295 81e45ff Update group_impl.h 85e3a2c Merge pull request #112 b2eb63b Merge pull request bitcoin#293 dc0ce9f [API BREAK] Change argument order to out/outin/in 6d947ca Merge pull request bitcoin#298 c822693 Merge pull request bitcoin#301 6d04350 Merge pull request bitcoin#303 7ab311c Merge pull request bitcoin#304 5fb3229 Fixes a bug where bench_sign would fail due to passing in too small a buffer. 263dcbc remove unused assignment b183b41 bugfix: "ARG_CHECK(ctx != NULL)" makes no sense 6da1446 build: fix parallel build 5eb4356 Merge pull request bitcoin#291 c996d53 Print success 9f443be Move pubkey recovery code to separate module d49abbd Separate ECDSA recovery tests 439d34a Separate recoverable and normal signatures a7b046e Merge pull request bitcoin#289 f66907f Improve/reformat API documentation secp256k1.h 2f77487 Add context building benchmarks cc623d5 Merge pull request bitcoin#287 de7e398 small typo fix 9d96e36 Merge pull request bitcoin#280 432e1ce Merge pull request bitcoin#283 14727fd Use correct name in gitignore 356b0e9 Actually test static precomputation in Travis ff3a5df Merge pull request bitcoin#284 2587208 Merge pull request bitcoin#212 a5a66c7 Add support for custom EC-Schnorr-SHA256 signatures d84a378 Merge pull request bitcoin#252 72ae443 Improve perf. of cmov-based table lookup 92e53fc Implement endomorphism optimization for secp256k1_ecmult_const ed35d43 Make `secp256k1_scalar_add_bit` conditional; make `secp256k1_scalar_split_lambda_var` constant time 91c0ce9 Add benchmarks for ECDH and const-time multiplication 0739bbb Add ECDH module which works by hashing the output of ecmult_const 4401500 Add constant-time multiply `secp256k1_ecmult_const` for ECDH e4ce393 build: fix hard-coded usage of "gen_context" b8e39ac build: don't use BUILT_SOURCES for the static context header baa75da tests: add a couple tests ae4f0c6 Merge pull request bitcoin#278 995c548 Introduce callback functions for dealing with errors. c333074 Merge pull request bitcoin#282 18c329c Remove the internal secp256k1_ecdsa_sig_t type 74a2acd Add a secp256k1_ecdsa_signature_t type 23cfa91 Introduce secp256k1_pubkey_t type 4c63780 Merge pull request bitcoin#269 3e6f1e2 Change rfc6979 implementation to be a generic PRNG ed5334a Update configure.ac to make it build on OpenBSD 1b68366 Merge pull request bitcoin#274 a83bb48 Make ecmult static precomputation default 166b32f Merge pull request bitcoin#276 c37812f Add gen_context src/ecmult_static_context.h to CLEANFILES to fix distclean. 125c15d Merge pull request bitcoin#275 76f6769 Fix build with static ecmult altroot and make dist. 5133f78 Merge pull request bitcoin#254 b0a60e6 Merge pull request bitcoin#258 733c1e6 Add travis build to test the static context. fbecc38 Add ability to use a statically generated ecmult context. 4fb174d Merge pull request bitcoin#263 4ab8990 Merge pull request bitcoin#270 bdf0e0c Merge pull request bitcoin#271 31d0c1f Merge pull request bitcoin#273 eb2c8ff Add missing casts to SECP256K1_FE_CONST_INNER 55399c2 Further performance improvements to _ecmult_wnaf 99fd963 Add secp256k1_ec_pubkey_compress(), with test similar to the related decompress() function. 145cc6e Improve performance of _ecmult_wnaf 36b305a Verify the result of GMP modular inverse using non-GMP code 0cbc860 Merge pull request bitcoin#266 06ff7fe Merge pull request bitcoin#267 5a43124 Save 1 _fe_negate since s1 == -s2 a5d796e Update code comments 3f3964e Add specific VERIFY tests for _fe_cmov 7d054cd Refactor to save a _fe_negate b28d02a Refactor to remove a local var 55e7fc3 Perf. improvement in _gej_add_ge a0601cd Fix VERIFY calculations in _fe_cmov methods 17f7148 Merge pull request bitcoin#261 7657420 Add tests for adding P+Q with P.x!=Q.x and P.y=-Q.y 8c5d5f7 tests: Add failing unit test for bitcoin#257 (bad addition formula) 5de4c5d gej_add_ge: fix degenerate case when computing P + (-lambda)P bcf2fcf gej_add_ge: rearrange algebra e2a07c7 Fix compilation with C++ 873a453 Merge pull request bitcoin#250 91eb0da Merge pull request bitcoin#247 210ffed Use separate in and out pointers in `secp256k1_ec_pubkey_decompress` a1d5ae1 Tiny optimization 729badf Merge pull request bitcoin#210 2d5a186 Apply effective-affine trick to precomp 4f9791a Effective affine addition in EC multiplication 2b4cf41 Use pkg-config always when possible, with failover to manual checks for libcrypto git-subtree-dir: src/secp256k1 git-subtree-split: d7eb1ae
2bfb82b Merge pull request bitcoin#351 06aeea5 Turn secp256k1_ec_pubkey_serialize outlen to in/out 970164d Merge pull request bitcoin#348 6466625 Improvements for coordinate decompression e2100ad Merge pull request bitcoin#347 8e48787 Change secp256k1_ec_pubkey_combine's count argument to size_t. c69dea0 Clear output in more cases for pubkey_combine, adds tests. 269d422 Comment copyediting. b4d17da Merge pull request bitcoin#344 4709265 Merge pull request bitcoin#345 26abce7 Adds 32 static test vectors for scalar mul, sqr, inv. 5b71a3f Better error case handling for pubkey_create & pubkey_serialize, more tests. 3b7bc69 Merge pull request bitcoin#343 eed87af Change contrib/laxder from headers-only to files compilable as standalone C d7eb1ae Merge pull request bitcoin#342 7914a6e Make lax_der_privatekey_parsing.h not depend on internal code 73f64ff Merge pull request bitcoin#339 9234391 Overhaul flags handling 1a36898 Make flags more explicit, add runtime checks. 1a3e03a Merge pull request bitcoin#340 96be204 Add additional tests for eckey and arg-checks. bb5aa4d Make the tweak function zeroize-output-on-fail behavior consistent. 4a243da Move secp256k1_ec_privkey_import/export to contrib. 1b3efc1 Move secp256k1_ecdsa_sig_recover into the recovery module. e3cd679 Eliminate all side-effects from VERIFY_CHECK() usage. b30fc85 Avoid nonce_function_rfc6979 algo16 argument emulation. 70d4640 Make secp256k1_ec_pubkey_create skip processing invalid secret keys. 6c476a8 Minor comment improvements. 131afe5 Merge pull request bitcoin#334 0c6ab2f Introduce explicit lower-S normalization fea19e7 Add contrib/lax_der_parsing.h 3bb9c44 Rewrite ECDSA signature parsing code fa57f1b Use secp256k1_rand_int and secp256k1_rand_bits more 49b3749 Add new tests for the extra testrand functions f684d7d Faster secp256k1_rand_int implementation 251b1a6 Improve testrand: add extra random functions 31994c8 Merge pull request bitcoin#338 f79aa88 Bugfix: swap arguments to noncefp c98df26 Merge pull request bitcoin#319 67f7da4 Extensive interface and operations tests for secp256k1_ec_pubkey_parse. ee2cb40 Add ARG_CHECKs to secp256k1_ec_pubkey_parse/secp256k1_ec_pubkey_serialize 7450ef1 Merge pull request bitcoin#328 68a3c76 Merge pull request bitcoin#329 98135ee Merge pull request bitcoin#332 37100d7 improve ECDH header-doc b13d749 Fix couple of typos in API comments 7c823e3 travis: fixup module configs cc3141a Merge pull request bitcoin#325 ee58fae Merge pull request bitcoin#326 213aa67 Do not force benchmarks to be statically linked. 338fc8b Add API exports to secp256k1_nonce_function_default and secp256k1_nonce_function_rfc6979. 52fd03f Merge pull request bitcoin#320 9f6993f Remove some dead code. 357f8cd Merge pull request bitcoin#314 118cd82 Use explicit symbol visibility. 4e64608 Include public module headers when compiling modules. 1f41437 Merge pull request bitcoin#316 fe0d463 Merge pull request bitcoin#317 cfe0ed9 Fix miscellaneous style nits that irritate overactive static analysis. 2b199de Use the explicit NULL macro for pointer comparisons. 9e90516 Merge pull request bitcoin#294 dd891e0 Get rid of _t as it is POSIX reserved 201819b Merge pull request bitcoin#313 912f203 Eliminate a few unbraced statements that crept into the code. eeab823 Merge pull request bitcoin#299 486b9bb Use a flags bitfield for compressed option to secp256k1_ec_pubkey_serialize and secp256k1_ec_privkey_export 05732c5 Callback data: Accept pointers to either const or non-const data 1973c73 Bugfix: Reinitialise buffer lengths that have been used as outputs 788038d Use size_t for lengths (at least in external API) c9d7c2a secp256k1_context_set_{error,illegal}_callback: Restore default handler by passing NULL as function argument 9aac008 secp256k1_context_destroy: Allow NULL argument as a no-op 64b730b secp256k1_context_create: Use unsigned type for flags bitfield cb04ab5 Merge pull request bitcoin#309 a551669 Merge pull request bitcoin#295 81e45ff Update group_impl.h 85e3a2c Merge pull request #112 b2eb63b Merge pull request bitcoin#293 dc0ce9f [API BREAK] Change argument order to out/outin/in 6d947ca Merge pull request bitcoin#298 c822693 Merge pull request bitcoin#301 6d04350 Merge pull request bitcoin#303 7ab311c Merge pull request bitcoin#304 5fb3229 Fixes a bug where bench_sign would fail due to passing in too small a buffer. 263dcbc remove unused assignment b183b41 bugfix: "ARG_CHECK(ctx != NULL)" makes no sense 6da1446 build: fix parallel build 5eb4356 Merge pull request bitcoin#291 c996d53 Print success 9f443be Move pubkey recovery code to separate module d49abbd Separate ECDSA recovery tests 439d34a Separate recoverable and normal signatures a7b046e Merge pull request bitcoin#289 f66907f Improve/reformat API documentation secp256k1.h 2f77487 Add context building benchmarks cc623d5 Merge pull request bitcoin#287 de7e398 small typo fix 9d96e36 Merge pull request bitcoin#280 432e1ce Merge pull request bitcoin#283 14727fd Use correct name in gitignore 356b0e9 Actually test static precomputation in Travis ff3a5df Merge pull request bitcoin#284 2587208 Merge pull request bitcoin#212 a5a66c7 Add support for custom EC-Schnorr-SHA256 signatures d84a378 Merge pull request bitcoin#252 72ae443 Improve perf. of cmov-based table lookup 92e53fc Implement endomorphism optimization for secp256k1_ecmult_const ed35d43 Make `secp256k1_scalar_add_bit` conditional; make `secp256k1_scalar_split_lambda_var` constant time 91c0ce9 Add benchmarks for ECDH and const-time multiplication 0739bbb Add ECDH module which works by hashing the output of ecmult_const 4401500 Add constant-time multiply `secp256k1_ecmult_const` for ECDH e4ce393 build: fix hard-coded usage of "gen_context" b8e39ac build: don't use BUILT_SOURCES for the static context header baa75da tests: add a couple tests ae4f0c6 Merge pull request bitcoin#278 995c548 Introduce callback functions for dealing with errors. c333074 Merge pull request bitcoin#282 18c329c Remove the internal secp256k1_ecdsa_sig_t type 74a2acd Add a secp256k1_ecdsa_signature_t type 23cfa91 Introduce secp256k1_pubkey_t type 4c63780 Merge pull request bitcoin#269 3e6f1e2 Change rfc6979 implementation to be a generic PRNG ed5334a Update configure.ac to make it build on OpenBSD 1b68366 Merge pull request bitcoin#274 a83bb48 Make ecmult static precomputation default 166b32f Merge pull request bitcoin#276 c37812f Add gen_context src/ecmult_static_context.h to CLEANFILES to fix distclean. 125c15d Merge pull request bitcoin#275 76f6769 Fix build with static ecmult altroot and make dist. 5133f78 Merge pull request bitcoin#254 b0a60e6 Merge pull request bitcoin#258 733c1e6 Add travis build to test the static context. fbecc38 Add ability to use a statically generated ecmult context. 4fb174d Merge pull request bitcoin#263 4ab8990 Merge pull request bitcoin#270 bdf0e0c Merge pull request bitcoin#271 31d0c1f Merge pull request bitcoin#273 eb2c8ff Add missing casts to SECP256K1_FE_CONST_INNER 55399c2 Further performance improvements to _ecmult_wnaf 99fd963 Add secp256k1_ec_pubkey_compress(), with test similar to the related decompress() function. 145cc6e Improve performance of _ecmult_wnaf 36b305a Verify the result of GMP modular inverse using non-GMP code 0cbc860 Merge pull request bitcoin#266 06ff7fe Merge pull request bitcoin#267 5a43124 Save 1 _fe_negate since s1 == -s2 a5d796e Update code comments 3f3964e Add specific VERIFY tests for _fe_cmov 7d054cd Refactor to save a _fe_negate b28d02a Refactor to remove a local var 55e7fc3 Perf. improvement in _gej_add_ge a0601cd Fix VERIFY calculations in _fe_cmov methods 17f7148 Merge pull request bitcoin#261 7657420 Add tests for adding P+Q with P.x!=Q.x and P.y=-Q.y 8c5d5f7 tests: Add failing unit test for bitcoin#257 (bad addition formula) 5de4c5d gej_add_ge: fix degenerate case when computing P + (-lambda)P bcf2fcf gej_add_ge: rearrange algebra e2a07c7 Fix compilation with C++ 873a453 Merge pull request bitcoin#250 91eb0da Merge pull request bitcoin#247 210ffed Use separate in and out pointers in `secp256k1_ec_pubkey_decompress` a1d5ae1 Tiny optimization 729badf Merge pull request bitcoin#210 2d5a186 Apply effective-affine trick to precomp 4f9791a Effective affine addition in EC multiplication 2b4cf41 Use pkg-config always when possible, with failover to manual checks for libcrypto git-subtree-dir: src/secp256k1 git-subtree-split: 2bfb82b
b14e642 Merge commit 'a2fb086d07b7dbd9c4a59fe57646bd465841edd5' into merge_variablefilesize a2fb086 Add option for max file size. The currend hard-coded value of 2M is inefficient in colossus. 1913d71 Merge upstream LevelDB 1.19 3080a45 Increase leveldb version to 1.19. fa6dc01 A zippy change broke test assumptions about the size of compressed output. Fix the tests by allowing more slop in zippy's behavior. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=123432472 06a191b fix problems in LevelDB's caching code a7bff69 Fix LevelDB build when asserts are enabled in release builds. (bitcoin#367) ea992b4 Change std::uint64_t to uint64_t (bitcoin#354) e84b5bd This CL fixes a bug encountered when reading records from leveldb files that have been split, as in a [] input task split. 3211343 Deleted redundant null ptr check prior to delete. 7306ef8 Merge pull request bitcoin#348 from randomascii/master 6b18316 Fix signed/unsigned mismatch on VC++ builds adbe3eb Putting build artifacts in subdirectory. 2d0320a Merge pull request bitcoin#329 from ralphtheninja/travis-badge dd1c3c3 add travis build badge 43fcf23 Merge pull request bitcoin#328 from cmumford/master 9fcae61 Added a Travis CI build file. dac40d2 Merge pull request bitcoin#284 from ideawu/master 8ec241a Merge pull request bitcoin#317 from falvojr/patch-1 5d36bed Merge pull request bitcoin#272 from vapier/master 4753c9b Added a contributors section to README.md e2446d0 Merge pull request bitcoin#275 from paulirish/patch-1 706b7f8 Resolve race when getting approximate-memory-usage property 3c9ff3c Only compiling TrimSpace on linux. f8d205c Including atomic_pointer.h in port_posix 889de31 Let LevelDB use xcrun to determine Xcode.app path instead of using a hardcoded path. 528c2bc Add "approximate-memory-usage" property to leveldb::DB::GetProperty 359b6bc Add leveldb::Cache::Prune 50e77a8 Fix size_t/int comparison/conversion issues in leveldb. 5208e79 Added leveldb::Status::IsInvalidArgument() method. ce45404 Suppress error reporting after seeking but before a valid First or Full record is encountered. b9afa1f include <assert> -> <cassert> edf2939 Update README.md 65190ac Will not reuse manifest if reuse_logs options is false. ac1d69d LevelDB now attempts to reuse the preceding MANIFEST and log file when re-opened. 76bba13 fix indent 8fcceb2 log compaction output file's level along with number 0e0f074 documentation. improved link c85addc readme: improved documentation link ceff6f1 Fix Android/MIPS build. 77948e7 Add benchmark that measures cost of repeatedly opening the database. 34ad72e Move header guard below copyright banner. a75d435 Clean up layering of storage/leveldb/... b234f65 Added a new fault injection test. c4c38f9 Add arm64 support to leveldb. cea9b10 Fixed incorrect comment wording for Iterator::Seek. c00c569 Deleted old README file. git-subtree-dir: src/leveldb git-subtree-split: b14e64250dfd37d25d379000eae34ff8cbe2a332
a31c8aa Add NewAppendableFile for win32 environment 1913d71 Merge upstream LevelDB 1.19 3080a45 Increase leveldb version to 1.19. fa6dc01 A zippy change broke test assumptions about the size of compressed output. Fix the tests by allowing more slop in zippy's behavior. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=123432472 06a191b fix problems in LevelDB's caching code a7bff69 Fix LevelDB build when asserts are enabled in release builds. (bitcoin#367) ea992b4 Change std::uint64_t to uint64_t (bitcoin#354) e84b5bd This CL fixes a bug encountered when reading records from leveldb files that have been split, as in a [] input task split. 3211343 Deleted redundant null ptr check prior to delete. 7306ef8 Merge pull request bitcoin#348 from randomascii/master 6b18316 Fix signed/unsigned mismatch on VC++ builds adbe3eb Putting build artifacts in subdirectory. 2d0320a Merge pull request bitcoin#329 from ralphtheninja/travis-badge dd1c3c3 add travis build badge 43fcf23 Merge pull request bitcoin#328 from cmumford/master 9fcae61 Added a Travis CI build file. dac40d2 Merge pull request bitcoin#284 from ideawu/master 8ec241a Merge pull request bitcoin#317 from falvojr/patch-1 5d36bed Merge pull request bitcoin#272 from vapier/master 4753c9b Added a contributors section to README.md e2446d0 Merge pull request bitcoin#275 from paulirish/patch-1 706b7f8 Resolve race when getting approximate-memory-usage property 3c9ff3c Only compiling TrimSpace on linux. f8d205c Including atomic_pointer.h in port_posix 889de31 Let LevelDB use xcrun to determine Xcode.app path instead of using a hardcoded path. 528c2bc Add "approximate-memory-usage" property to leveldb::DB::GetProperty 359b6bc Add leveldb::Cache::Prune 50e77a8 Fix size_t/int comparison/conversion issues in leveldb. 5208e79 Added leveldb::Status::IsInvalidArgument() method. ce45404 Suppress error reporting after seeking but before a valid First or Full record is encountered. b9afa1f include <assert> -> <cassert> edf2939 Update README.md 65190ac Will not reuse manifest if reuse_logs options is false. ac1d69d LevelDB now attempts to reuse the preceding MANIFEST and log file when re-opened. 76bba13 fix indent 8fcceb2 log compaction output file's level along with number 0e0f074 documentation. improved link c85addc readme: improved documentation link ceff6f1 Fix Android/MIPS build. 77948e7 Add benchmark that measures cost of repeatedly opening the database. 34ad72e Move header guard below copyright banner. a75d435 Clean up layering of storage/leveldb/... b234f65 Added a new fault injection test. c4c38f9 Add arm64 support to leveldb. cea9b10 Fixed incorrect comment wording for Iterator::Seek. c00c569 Deleted old README file. git-subtree-dir: src/leveldb git-subtree-split: a31c8aa
6c527ec Merge pull request bitcoin#357 445f7f1 Fix for Windows compile issue 2bfb82b Merge pull request bitcoin#351 06aeea5 Turn secp256k1_ec_pubkey_serialize outlen to in/out 970164d Merge pull request bitcoin#348 6466625 Improvements for coordinate decompression e2100ad Merge pull request bitcoin#347 8e48787 Change secp256k1_ec_pubkey_combine's count argument to size_t. c69dea0 Clear output in more cases for pubkey_combine, adds tests. 269d422 Comment copyediting. b4d17da Merge pull request bitcoin#344 4709265 Merge pull request bitcoin#345 26abce7 Adds 32 static test vectors for scalar mul, sqr, inv. 5b71a3f Better error case handling for pubkey_create & pubkey_serialize, more tests. 3b7bc69 Merge pull request bitcoin#343 eed87af Change contrib/laxder from headers-only to files compilable as standalone C d7eb1ae Merge pull request bitcoin#342 7914a6e Make lax_der_privatekey_parsing.h not depend on internal code 73f64ff Merge pull request bitcoin#339 9234391 Overhaul flags handling 1a36898 Make flags more explicit, add runtime checks. 1a3e03a Merge pull request bitcoin#340 96be204 Add additional tests for eckey and arg-checks. bb5aa4d Make the tweak function zeroize-output-on-fail behavior consistent. 4a243da Move secp256k1_ec_privkey_import/export to contrib. 1b3efc1 Move secp256k1_ecdsa_sig_recover into the recovery module. e3cd679 Eliminate all side-effects from VERIFY_CHECK() usage. b30fc85 Avoid nonce_function_rfc6979 algo16 argument emulation. 70d4640 Make secp256k1_ec_pubkey_create skip processing invalid secret keys. 6c476a8 Minor comment improvements. 131afe5 Merge pull request bitcoin#334 0c6ab2f Introduce explicit lower-S normalization fea19e7 Add contrib/lax_der_parsing.h 3bb9c44 Rewrite ECDSA signature parsing code fa57f1b Use secp256k1_rand_int and secp256k1_rand_bits more 49b3749 Add new tests for the extra testrand functions f684d7d Faster secp256k1_rand_int implementation 251b1a6 Improve testrand: add extra random functions 31994c8 Merge pull request bitcoin#338 f79aa88 Bugfix: swap arguments to noncefp c98df26 Merge pull request bitcoin#319 67f7da4 Extensive interface and operations tests for secp256k1_ec_pubkey_parse. ee2cb40 Add ARG_CHECKs to secp256k1_ec_pubkey_parse/secp256k1_ec_pubkey_serialize 7450ef1 Merge pull request bitcoin#328 68a3c76 Merge pull request bitcoin#329 98135ee Merge pull request bitcoin#332 37100d7 improve ECDH header-doc b13d749 Fix couple of typos in API comments 7c823e3 travis: fixup module configs cc3141a Merge pull request bitcoin#325 ee58fae Merge pull request bitcoin#326 213aa67 Do not force benchmarks to be statically linked. 338fc8b Add API exports to secp256k1_nonce_function_default and secp256k1_nonce_function_rfc6979. 52fd03f Merge pull request bitcoin#320 9f6993f Remove some dead code. 357f8cd Merge pull request bitcoin#314 118cd82 Use explicit symbol visibility. 4e64608 Include public module headers when compiling modules. 1f41437 Merge pull request bitcoin#316 fe0d463 Merge pull request bitcoin#317 cfe0ed9 Fix miscellaneous style nits that irritate overactive static analysis. 2b199de Use the explicit NULL macro for pointer comparisons. 9e90516 Merge pull request bitcoin#294 dd891e0 Get rid of _t as it is POSIX reserved 201819b Merge pull request bitcoin#313 912f203 Eliminate a few unbraced statements that crept into the code. eeab823 Merge pull request bitcoin#299 486b9bb Use a flags bitfield for compressed option to secp256k1_ec_pubkey_serialize and secp256k1_ec_privkey_export 05732c5 Callback data: Accept pointers to either const or non-const data 1973c73 Bugfix: Reinitialise buffer lengths that have been used as outputs 788038d Use size_t for lengths (at least in external API) c9d7c2a secp256k1_context_set_{error,illegal}_callback: Restore default handler by passing NULL as function argument 9aac008 secp256k1_context_destroy: Allow NULL argument as a no-op 64b730b secp256k1_context_create: Use unsigned type for flags bitfield cb04ab5 Merge pull request bitcoin#309 a551669 Merge pull request bitcoin#295 81e45ff Update group_impl.h 85e3a2c Merge pull request bitcoin#112 b2eb63b Merge pull request bitcoin#293 dc0ce9f [API BREAK] Change argument order to out/outin/in 6d947ca Merge pull request bitcoin#298 c822693 Merge pull request bitcoin#301 6d04350 Merge pull request bitcoin#303 7ab311c Merge pull request bitcoin#304 5fb3229 Fixes a bug where bench_sign would fail due to passing in too small a buffer. 263dcbc remove unused assignment b183b41 bugfix: "ARG_CHECK(ctx != NULL)" makes no sense 6da1446 build: fix parallel build 5eb4356 Merge pull request bitcoin#291 c996d53 Print success 9f443be Move pubkey recovery code to separate module d49abbd Separate ECDSA recovery tests 439d34a Separate recoverable and normal signatures a7b046e Merge pull request bitcoin#289 f66907f Improve/reformat API documentation secp256k1.h 2f77487 Add context building benchmarks cc623d5 Merge pull request bitcoin#287 de7e398 small typo fix 9d96e36 Merge pull request bitcoin#280 432e1ce Merge pull request bitcoin#283 14727fd Use correct name in gitignore 356b0e9 Actually test static precomputation in Travis ff3a5df Merge pull request bitcoin#284 2587208 Merge pull request bitcoin#212 a5a66c7 Add support for custom EC-Schnorr-SHA256 signatures d84a378 Merge pull request bitcoin#252 72ae443 Improve perf. of cmov-based table lookup 92e53fc Implement endomorphism optimization for secp256k1_ecmult_const ed35d43 Make `secp256k1_scalar_add_bit` conditional; make `secp256k1_scalar_split_lambda_var` constant time 91c0ce9 Add benchmarks for ECDH and const-time multiplication 0739bbb Add ECDH module which works by hashing the output of ecmult_const 4401500 Add constant-time multiply `secp256k1_ecmult_const` for ECDH e4ce393 build: fix hard-coded usage of "gen_context" b8e39ac build: don't use BUILT_SOURCES for the static context header baa75da tests: add a couple tests ae4f0c6 Merge pull request bitcoin#278 995c548 Introduce callback functions for dealing with errors. c333074 Merge pull request bitcoin#282 18c329c Remove the internal secp256k1_ecdsa_sig_t type 74a2acd Add a secp256k1_ecdsa_signature_t type 23cfa91 Introduce secp256k1_pubkey_t type 4c63780 Merge pull request bitcoin#269 3e6f1e2 Change rfc6979 implementation to be a generic PRNG ed5334a Update configure.ac to make it build on OpenBSD 1b68366 Merge pull request bitcoin#274 a83bb48 Make ecmult static precomputation default 166b32f Merge pull request bitcoin#276 c37812f Add gen_context src/ecmult_static_context.h to CLEANFILES to fix distclean. 125c15d Merge pull request bitcoin#275 76f6769 Fix build with static ecmult altroot and make dist. 5133f78 Merge pull request bitcoin#254 b0a60e6 Merge pull request bitcoin#258 733c1e6 Add travis build to test the static context. fbecc38 Add ability to use a statically generated ecmult context. 4fb174d Merge pull request bitcoin#263 4ab8990 Merge pull request bitcoin#270 bdf0e0c Merge pull request bitcoin#271 31d0c1f Merge pull request bitcoin#273 eb2c8ff Add missing casts to SECP256K1_FE_CONST_INNER 55399c2 Further performance improvements to _ecmult_wnaf 99fd963 Add secp256k1_ec_pubkey_compress(), with test similar to the related decompress() function. 145cc6e Improve performance of _ecmult_wnaf 36b305a Verify the result of GMP modular inverse using non-GMP code 0cbc860 Merge pull request bitcoin#266 06ff7fe Merge pull request bitcoin#267 5a43124 Save 1 _fe_negate since s1 == -s2 a5d796e Update code comments 3f3964e Add specific VERIFY tests for _fe_cmov 7d054cd Refactor to save a _fe_negate b28d02a Refactor to remove a local var 55e7fc3 Perf. improvement in _gej_add_ge a0601cd Fix VERIFY calculations in _fe_cmov methods 17f7148 Merge pull request bitcoin#261 7657420 Add tests for adding P+Q with P.x!=Q.x and P.y=-Q.y 8c5d5f7 tests: Add failing unit test for bitcoin#257 (bad addition formula) 5de4c5d gej_add_ge: fix degenerate case when computing P + (-lambda)P bcf2fcf gej_add_ge: rearrange algebra e2a07c7 Fix compilation with C++ 873a453 Merge pull request bitcoin#250 91eb0da Merge pull request bitcoin#247 210ffed Use separate in and out pointers in `secp256k1_ec_pubkey_decompress` a1d5ae1 Tiny optimization 729badf Merge pull request bitcoin#210 2d5a186 Apply effective-affine trick to precomp 4f9791a Effective affine addition in EC multiplication 2b4cf41 Use pkg-config always when possible, with failover to manual checks for libcrypto git-subtree-dir: src/secp256k1 git-subtree-split: 6c527ec
…1.0.0-release-note-release-branch Add <h1> title to the doc and fix download URL
Fix miner not reverting state in some cases
Feature 062 vagrant
A new Pin class is provided to create secure password dialogs using process separation.
IPC is done via libassuan and the assuan daemon user is standard pinentry (portable qt, gtk2 and ncurses implementations are available)
Pinentry takes care of memlocking and is the standard for GNUPG.
The Pin class is designed to be readable and well reusable in other password entry tasks.
This commit adds optional build dependency from libassuan and optional runtime dependency from a pinentry daemon.