Commit Graph

5583 Commits

Author SHA1 Message Date
Pieter Wuille
a56054be65 Update key.cpp to use new libsecp256k1
libsecp256k1's API changed, so update key.cpp to use it.

Libsecp256k1 now has explicit context objects, which makes it completely thread-safe.
In turn, keep an explicit context object in key.cpp, which is explicitly initialized
destroyed. This is not really pretty now, but it's more efficient than the static
initialized object in key.cpp (which made for example bitcoin-tx slow, as for most of
its calls, libsecp256k1 wasn't actually needed).

This also brings in the new blinding support in libsecp256k1. By passing in a random
seed, temporary variables during the elliptic curve computations are altered, in such
a way that if an attacker does not know the blind, observing the internal operations
leaks less information about the keys used. This was implemented by Greg Maxwell.
2015-05-04 14:45:34 +02:00
Pieter Wuille
4dda253190 Update libsecp256k1 2015-04-22 14:03:10 -07:00
Pieter Wuille
a591d98c32 Squashed 'src/secp256k1/' changes from 1897b8e..22f60a6
22f60a6 Merge pull request #245
61c1b1e Merge pull request #190
d227579 Add scalar blinding and a secp256k1_context_randomize() call.
c146b4a Add bench_internal to gitignore.
9c4fb23 Add a secp256k1_fe_cmov unit test.
426fa52 Merge pull request #243
d505a89 Merge pull request #244
2d2707a travis: test i686 builds with gmp
cf7f702 travis: update to new build infrastructure
bb0ea50 Replace set/add with cmov in secp256k1_gej_add_ge.
f3d3519 Merge pull request #241
5c2a4fa Fix memory leak in context unit test
14aacdc Merge pull request #239
93226a5 secp256k1.c: Add missing DEBUG_CHECKs for sufficiently capable contexts
6099220 Merge pull request #237
6066bb6 Fix typo: avg -> max
9688030 Merge pull request #236
d899b5b Expose ability to deep-copy a context
3608c7f Merge pull request #208
a9b6595 [API BREAK] Introduce explicit contexts
a0d3b89 Merge pull request #233
9e8d89b Merge pull request #234
65e70e7 Merge pull request #235
5098f62 Improve documentation formatting consistency
4450e24 Add a comment about the avoidance of secret data in array indexes.
6534ee1 initialize variable
d5b53aa Merge pull request #232
c01df1a Avoid some implicit type conversions to make C++ compilers happy.
bfe96ba Merge pull request #231
33270bf Add a couple comments pointing to particular sections of RFC6979.
41603aa Merge pull request #230
2632019 Brace all the if/for/while.

git-subtree-dir: src/secp256k1
git-subtree-split: 22f60a62801a8a49ecd049e7a563f69a41affd8d
2015-04-22 14:03:10 -07:00
Wladimir J. van der Laan
b6ea3bcede Merge pull request #5911
6be3562 rpc-tests: Add proxy test (Wladimir J. van der Laan)
67a7949 privacy: Stream isolation for Tor (Wladimir J. van der Laan)
2015-04-20 16:37:38 +02:00
Wladimir J. van der Laan
71900b4426 Merge pull request #6029
a784f90 Cap nAttempts penalty at 8 and switch to pow instead of a division loop. (Gregory Maxwell)
2015-04-20 13:59:50 +02:00
Wladimir J. van der Laan
2bc6332df8 Merge pull request #6010
c1ecee8 Set nSequenceId when a block is fully linked (Suhas Daftuar)
2015-04-20 13:47:14 +02:00
Philip Kaufmann
c6de7c35bc trivial string change in wallet.cpp (the -> that) 2015-04-20 13:29:23 +02:00
Michael Ford
1e3473d384 Add operator names to DNS Seed list 2015-04-20 13:29:23 +02:00
Philip Kaufmann
a21df62069 ensure consistent header comment naming conventions
- BITCOIN_FOLDER_SUBFOLDER_FILENAME_H
2015-04-20 13:29:22 +02:00
Wladimir J. van der Laan
9e16cb108e Make 'Default: %u' spacing consistent in help message
Comment by pryds on Transifex.
2015-04-20 13:29:22 +02:00
Philip Kaufmann
6cb37a3ba0 [Qt, Trivial] remove two unneeded includes of wallet/db.h 2015-04-20 13:29:22 +02:00
Philip Kaufmann
68f795e8b2 [Qt, Trivial] fix header groupings + space, intdentation fixes 2015-04-20 13:29:22 +02:00
Philip Kaufmann
985ec17eee [Qt, Trivial] misc minor string changes
- write "Bitcoins" uppercase
- replace secure/insecure for payment requests with
  authenticated/unauthenticated
- change a translatable string for payment request expiry to match another
  existing string to only get ONE resulting string to translate
2015-04-20 13:29:22 +02:00
Philip Kaufmann
71ad6bd38b [Trivial] format sync.h 2015-04-20 13:29:21 +02:00
Michael Ford
447d37e7d3 Use https link to bitcoin.org in Doxygen intro 2015-04-20 13:29:21 +02:00
Michael Ford
c069234665 Fix typo in init.cpp interpration/interpretation 2015-04-20 13:29:21 +02:00
Nicolas Benoit
52070c87fd Removed '()' where used without contents inside
This additional patch removes '()' from current function name in LogPrintf output.
2015-04-20 13:29:21 +02:00
Nicolas Benoit
30c1db1c61 Replaced current function names with __func__ in LogPrintf() calls. 2015-04-20 13:29:21 +02:00
charlescharles
0b2f93091f Fix docs for 'complete' field in 'signrawtransaction' response 2015-04-20 13:29:20 +02:00
Philip Kaufmann
60c146938e [Qt] header group cleanup
- seperate core from GUI headers where this was missing
- remove an unneeded new-line
2015-04-20 13:29:20 +02:00
Wladimir J. van der Laan
4a884aedcd Merge pull request #6020
30c43d9 miner.h: fix clang warning because of class/struct mix (Jonas Schnelli)
2015-04-20 12:32:13 +02:00
Gregory Maxwell
a784f90c98 Cap nAttempts penalty at 8 and switch to pow instead of a division loop.
On hosts that had spent some time with a failed internet connection their
 nAttempts penalty was going through the roof (e.g. thousands for all peers)
 and as a result the connect search was pegging the CPU and failing to get
 more than a 4 connections after days of running (because it was taking so
 long per try).
2015-04-19 11:47:56 -07:00
Wladimir J. van der Laan
67a7949397 privacy: Stream isolation for Tor
According to Tor's extensions to the SOCKS protocol
(https://gitweb.torproject.org/torspec.git/tree/socks-extensions.txt)
it is possible to perform stream isolation by providing authentication
to the proxy. Each set of credentials will create a new circuit,
which makes it harder to correlate connections.

This patch adds an option, `-proxyrandomize` (on by default) that randomizes
credentials for every outgoing connection, thus creating a new circuit.

    2015-03-16 15:29:59 SOCKS5 Sending proxy authentication 3842137544:3256031132
2015-04-17 13:26:47 +02:00
Wladimir J. van der Laan
8f955b9661 Merge pull request #6012
0421c18 Fix CheckBlockIndex for reindex. (mrbandrews)
2015-04-16 10:33:29 +02:00
Jonas Schnelli
30c43d9821 miner.h: fix clang warning because of class/struct mix
- class 'Params' was previously declared as a struct
2015-04-16 10:32:47 +02:00
Wladimir J. van der Laan
bc8535b717 Merge pull request #5467
6171e49 [Qt] Use identical strings for expired payment request message (Philip Kaufmann)
06087bd [Qt] minor comment updates in PaymentServer (Philip Kaufmann)
35d1595 [Qt] constify first parameter of processPaymentRequest() (Philip Kaufmann)
9b14aef [Qt] take care of a missing typecast in PaymentRequestPlus::getMerchant() (Philip Kaufmann)
d19ae3c [Qt] remove unused PaymentRequestPlus::getPKIType function (Philip Kaufmann)
6e17a74 [Qt] paymentserver: better logging of invalid certs (Philip Kaufmann)
5a53d7c [Qt] paymentserver: do not log NULL certificates (Philip Kaufmann)
2015-04-15 16:14:20 +02:00
Philip Kaufmann
6171e494fc [Qt] Use identical strings for expired payment request message
- used in sendcoinsdialog.cpp and paymentserver.cpp
- removes an unneded translation string
2015-04-15 14:31:52 +02:00
Philip Kaufmann
06087bda87 [Qt] minor comment updates in PaymentServer 2015-04-15 14:31:51 +02:00
Philip Kaufmann
35d15959b0 [Qt] constify first parameter of processPaymentRequest() 2015-04-15 14:31:50 +02:00
Philip Kaufmann
9b14aefee3 [Qt] take care of a missing typecast in PaymentRequestPlus::getMerchant() 2015-04-15 14:31:50 +02:00
Philip Kaufmann
d19ae3cf66 [Qt] remove unused PaymentRequestPlus::getPKIType function 2015-04-15 14:31:49 +02:00
Philip Kaufmann
6e17a74766 [Qt] paymentserver: better logging of invalid certs
Before and after was tested in Windows:

before:
GUI: ReportInvalidCertificate : Payment server found
an invalid certificate:  ("Microsoft Authenticode(tm) Root Authority")
GUI: ReportInvalidCertificate : Payment server found
an invalid certificate:  ()
GUI: ReportInvalidCertificate : Payment server found
an invalid certificate:  ()
GUI: ReportInvalidCertificate : Payment server found
an invalid certificate:  ()

after:
GUI: ReportInvalidCertificate: Payment server found an
invalid certificate:  "01" ("Microsoft Authenticode(tm) Root Authority")
() ()
GUI: ReportInvalidCertificate: Payment server found an
invalid certificate:  "01" () () ("Copyright (c) 1997 Microsoft Corp.",
"Microsoft Time Stamping Service Root", "Microsoft Corporation")
GUI: ReportInvalidCertificate: Payment server found an
invalid certificate:  "4a:19:d2:38:8c:82:59:1c:a5:5d:73:5f:15:5d:dc:a3" ()
() ("NO LIABILITY ACCEPTED, (c)97 VeriSign, Inc.", "VeriSign Time Stamping
Service Root", "VeriSign, Inc.")
GUI: ReportInvalidCertificate: Payment server found an
invalid certificate:  "e4:9e:fd:f3:3a:e8:0e:cf:a5:11:3e:19:a4:24:02:32" ()
() ("Class 3 Public Primary Certification Authority")
2015-04-15 14:31:48 +02:00
Philip Kaufmann
5a53d7cda3 [Qt] paymentserver: do not log NULL certificates
- also add a few more comments in PaymentServer::LoadRootCAs
2015-04-15 14:31:48 +02:00
Jorge Timón
bebe7282ff Chainparams: Refactor: Remove redundant AllowMinDifficultyBlocks() getter 2015-04-15 14:31:44 +02:00
Wladimir J. van der Laan
ea2b425b00 Merge pull request #5997
4e38217 Chainparams: Refactor: Remove redundant HashGenesisBlock() getter (Jorge Timón)
2015-04-15 12:06:55 +02:00
Wladimir J. van der Laan
622e3c9c39 Merge pull request #5999
e8e8904 Chainparams: Cleanup: Delete CChainParams getters to attributes from Consensus::Params (Jorge Timón)
2015-04-15 12:00:09 +02:00
Wladimir J. van der Laan
4c4f1b4721 Merge pull request #5992
ea9e82d [squashme] fix listunspent code indentation (Jonas Schnelli)
b9fb692 Push down RPC reqWallet flag (Jonas Schnelli)
0b9dc9c [move] move listunspent to wallet/rpcwallet.cpp (Jonas Schnelli)
2015-04-15 11:10:23 +02:00
mrbandrews
0421c18f3a Fix CheckBlockIndex for reindex.
Some tests in CheckBlockIndex require chainActive.Tip(), but when reindexing, chainActive has not been set on the first call to CheckBlockIndex.

reindex.py starts a node, mines 3 blocks, stops, and reindexes with CheckBlockIndex enabled.
2015-04-14 14:10:19 -04:00
Suhas Daftuar
c1ecee8f72 Set nSequenceId when a block is fully linked
Also adds a test to CheckBlockIndex
2015-04-14 12:51:20 -04:00
Matt Corallo
eb63bf86cf Fix missing lock in submitblock 2015-04-13 11:29:44 -07:00
Jorge Timón
e8e8904dda Chainparams: Cleanup: Delete CChainParams getters to attributes from Consensus::Params 2015-04-13 18:39:53 +02:00
Jonas Schnelli
ea9e82df73 [squashme] fix listunspent code indentation 2015-04-13 15:04:08 +02:00
Wladimir J. van der Laan
9125c08f34 Merge pull request #6000
fd31199 consensus: don't use arith_uint256 in consensus.h (Cory Fields)
2015-04-13 11:25:01 +02:00
Jorge Timón
4e382177ed Chainparams: Refactor: Remove redundant HashGenesisBlock() getter 2015-04-12 23:01:30 +02:00
Jonas Schnelli
b9fb692d04 Push down RPC reqWallet flag 2015-04-12 19:37:29 +02:00
Jonas Schnelli
0b9dc9c8f5 [move] move listunspent to wallet/rpcwallet.cpp 2015-04-12 17:56:32 +02:00
Jeff Garzik
c2fa084611 Merge pull request #5983 2015-04-12 11:48:12 -04:00
Cory Fields
fd311996e8 consensus: don't use arith_uint256 in consensus.h
Requiring arith_uint256 at such a base level is not good for modularity.
2015-04-10 15:33:37 -04:00
Wladimir J. van der Laan
48265f3cf4 Revert mining changes in #5957
This reverts commit e2edf95cd3 6b04508e37 0df67f1f7a,
except the changes to the RPC tests.

A `generate` RPC call is introduced based on the old code.
2015-04-10 07:51:27 +02:00
Wladimir J. van der Laan
57026a29bc Merge pull request #5957
e2edf95 Bugfix: make CreateNewBlock return pindexPrev (Pieter Wuille)
6b04508 Introduce separate 'generate' RPC call (Pieter Wuille)
0df67f1 Simplify hash loop code (Pieter Wuille)
2015-04-09 15:23:09 +02:00