Branch: refs/heads/master
Home: https://github.com/btcsuite/btcd
Commit: a2c10e34d9954d109dd870d4061ae41fdbaa3f68
https://github.com/btcsuite/btcd/commit/a2c10e34d9954d109dd870d4061ae41fdbaa3f68
Author: Dave Collins <[email protected]>
Date: 2013-06-13 (Thu, 13 Jun 2013)
Changed paths:
A .gitignore
A README.md
Log Message:
-----------
Initial commit.
Commit: 6e9cc5713134e6db7b650a1ad4835a3254f751e7
https://github.com/btcsuite/btcd/commit/6e9cc5713134e6db7b650a1ad4835a3254f751e7
Author: Dave Collins <[email protected]>
Date: 2013-06-13 (Thu, 13 Jun 2013)
Changed paths:
A LICENSE
M README.md
A btcec.go
A btcec_test.go
A cov_report.sh
A doc.go
A pubkey.go
A pubkey_test.go
A signature.go
A test_coverage.txt
Log Message:
-----------
Initial implementation.
Commit: ffdbcd5cce078bac4b74e687f61bcb812eaf8969
https://github.com/btcsuite/btcd/commit/ffdbcd5cce078bac4b74e687f61bcb812eaf8969
Author: Owain G. Ainsworth <[email protected]>
Date: 2013-06-13 (Thu, 13 Jun 2013)
Changed paths:
M pubkey_test.go
Log Message:
-----------
test a few easy to hit pubkey error paths.
Commit: 217fa5311abccc83d0ad3cf24d4f2dc38284788f
https://github.com/btcsuite/btcd/commit/217fa5311abccc83d0ad3cf24d4f2dc38284788f
Author: Owain G. Ainsworth <[email protected]>
Date: 2013-06-14 (Fri, 14 Jun 2013)
Changed paths:
M pubkey_test.go
Log Message:
-----------
go fmt. *sigh*
Commit: 9638528b8e8567886eaf0555259b4a9329e8ebf6
https://github.com/btcsuite/btcd/commit/9638528b8e8567886eaf0555259b4a9329e8ebf6
Author: Owain G. Ainsworth <[email protected]>
Date: 2013-06-14 (Fri, 14 Jun 2013)
Changed paths:
M pubkey_test.go
M test_coverage.txt
Log Message:
-----------
test hybrid keys too.
Nothing that I know of uses them, but if we have the code path we should
be pretty sure it works.
Commit: 7cfebed9769fbaf87a0776b1bc74cb693392368c
https://github.com/btcsuite/btcd/commit/7cfebed9769fbaf87a0776b1bc74cb693392368c
Author: Owain G. Ainsworth <[email protected]>
Date: 2013-06-14 (Fri, 14 Jun 2013)
Changed paths:
M pubkey_test.go
M test_coverage.txt
Log Message:
-----------
Test the ``parameter is >= P'' pubkey error paths.
Commit: 9cb1f47fb9b65d6b74e8ed2aad8c37dcddc7cc50
https://github.com/btcsuite/btcd/commit/9cb1f47fb9b65d6b74e8ed2aad8c37dcddc7cc50
Author: Owain G. Ainsworth <[email protected]>
Date: 2013-06-14 (Fri, 14 Jun 2013)
Changed paths:
A signature_test.go
M test_coverage.txt
Log Message:
-----------
add signature test harness and try a valid signature for size.
error paths to come.
Commit: 5c8c454a1832757c588ae3c9121cffe6a4301471
https://github.com/btcsuite/btcd/commit/5c8c454a1832757c588ae3c9121cffe6a4301471
Author: Owain G. Ainsworth <[email protected]>
Date: 2013-06-17 (Mon, 17 Jun 2013)
Changed paths:
M signature.go
Log Message:
-----------
fix up some indexing in ParseSignature.
a test i was working on was crashing this otherwise. Make length checks more
paranoid.
Commit: cd61efe8a83099f3aef8ff9428435e02a6d2a2a9
https://github.com/btcsuite/btcd/commit/cd61efe8a83099f3aef8ff9428435e02a6d2a2a9
Author: Owain G. Ainsworth <[email protected]>
Date: 2013-06-17 (Mon, 17 Jun 2013)
Changed paths:
M signature_test.go
Log Message:
-----------
test a bunch of invalid cases in ParseSignature.
Commit: afc2e8100a56b0968e2bf77e5d24246bc5cf9a04
https://github.com/btcsuite/btcd/commit/afc2e8100a56b0968e2bf77e5d24246bc5cf9a04
Author: Owain G. Ainsworth <[email protected]>
Date: 2013-06-17 (Mon, 17 Jun 2013)
Changed paths:
M signature.go
M signature_test.go
Log Message:
-----------
Make length check a little more paranoid
Remove trailing crap from the tests (the hashtype) now that this is
correctly caught.
Commit: 316faf034c25e61e52ea0b6d0f90c3b4df8a2365
https://github.com/btcsuite/btcd/commit/316faf034c25e61e52ea0b6d0f90c3b4df8a2365
Author: Owain G. Ainsworth <[email protected]>
Date: 2013-06-17 (Mon, 17 Jun 2013)
Changed paths:
M test_coverage.txt
Log Message:
-----------
update test coverage stats.
Commit: 86d150bbb36e34095d1615d449f147d0ab15f0dc
https://github.com/btcsuite/btcd/commit/86d150bbb36e34095d1615d449f147d0ab15f0dc
Author: Owain G. Ainsworth <[email protected]>
Date: 2013-06-17 (Mon, 17 Jun 2013)
Changed paths:
M signature.go
Log Message:
-----------
Remove accidentally commited printf.
Commit: 13cf6091e6ca7aaccc835b9183af5e3ed3b74215
https://github.com/btcsuite/btcd/commit/13cf6091e6ca7aaccc835b9183af5e3ed3b74215
Author: Owain G. Ainsworth <[email protected]>
Date: 2013-06-17 (Mon, 17 Jun 2013)
Changed paths:
M signature_test.go
M test_coverage.txt
Log Message:
-----------
Test the sanity checks for numbers too big for the curve fire correctly.
Commit: 031437decf99b92d791e860934faa8074b9df81e
https://github.com/btcsuite/btcd/commit/031437decf99b92d791e860934faa8074b9df81e
Author: Owain G. Ainsworth <[email protected]>
Date: 2013-06-18 (Tue, 18 Jun 2013)
Changed paths:
M signature_test.go
M test_coverage.txt
Log Message:
-----------
test 0 length numbers (disallowed) and coordinates of 0 (also)
Commit: ba51aa8934f51825e3336200978837b3660aa4a5
https://github.com/btcsuite/btcd/commit/ba51aa8934f51825e3336200978837b3660aa4a5
Author: Owain G. Ainsworth <[email protected]>
Date: 2013-06-24 (Mon, 24 Jun 2013)
Changed paths:
M signature.go
M signature_test.go
Log Message:
-----------
partially revert afc2e8100a56b0968e2bf77e5d24246bc5cf9a04
Turns out that there are some signatures in the bitcoin blockchain that have
trailing 0s, for example
12a1b29fd6c295075b6a66f5fd90f0126ceb1fda4f15e4b44d92518bd52a5cdf has a signature
length of 0x45 where there are 0x47 bytes following that length check (one is
hashtype and is supposed to be trimmed out prior to calling the function). We
relax the paranoid length check to permit traling data, but not to permit
buffers that are too short. Change the test to passing with a big comment
stating why this is now considered a valid case.
Commit: abfd6b44af11de83950b1c8d170f1846e036ed4c
https://github.com/btcsuite/btcd/commit/abfd6b44af11de83950b1c8d170f1846e036ed4c
Author: Owain G. Ainsworth <[email protected]>
Date: 2013-08-06 (Tue, 06 Aug 2013)
Changed paths:
M btcec.go
M pubkey.go
M signature.go
Log Message:
-----------
More documentation commentary.
Commit: 961636c764fb2513fa0eeeda8be402f7551bd4a3
https://github.com/btcsuite/btcd/commit/961636c764fb2513fa0eeeda8be402f7551bd4a3
Author: Josh Rickmar <[email protected]>
Date: 2013-09-30 (Mon, 30 Sep 2013)
Changed paths:
A internal_test.go
M pubkey.go
M pubkey_test.go
M signature_test.go
M test_coverage.txt
Log Message:
-----------
Add functions to serialize an ecdsa public key.
Commit: e748650cc8303352d91afb12270ec0c2d6769064
https://github.com/btcsuite/btcd/commit/e748650cc8303352d91afb12270ec0c2d6769064
Author: Josh Rickmar <[email protected]>
Date: 2013-09-30 (Mon, 30 Sep 2013)
Changed paths:
M signature.go
Log Message:
-----------
Use uncapitalized error strings
Commit: 98ac46b37d42410563f08de589cfe3c8e9b7a0b1
https://github.com/btcsuite/btcd/commit/98ac46b37d42410563f08de589cfe3c8e9b7a0b1
Author: Josh Rickmar <[email protected]>
Date: 2013-10-25 (Fri, 25 Oct 2013)
Changed paths:
M signature.go
M signature_test.go
M test_coverage.txt
Log Message:
-----------
Add ParseDERSignature.
This change adds an additional signature parsing function which
performs additional checks to verify the signature is serialized in a
valid DER (and thus, unique) format, instead of allowing the less
strict BER signatures that ParseSignature will happily accept.
Added additional tests and updated test coverage to reflect changes.
Commit: 506c3eacace85a6ef2dea305913e75191205ee99
https://github.com/btcsuite/btcd/commit/506c3eacace85a6ef2dea305913e75191205ee99
Author: Josh Rickmar <[email protected]>
Date: 2013-11-04 (Mon, 04 Nov 2013)
Changed paths:
M pubkey.go
Log Message:
-----------
Add padding for pubkey numbers.
This change pads serialized (big endian) pubkey numbers to a length of
32 bytes. Previously, because serialized pubkey numbers are read
MSB-first, if a number could be serialized in less than 31 bytes, the
deserialized number would be incorrect.
Commit: a97fd5fe2c670030f8d77dc13b9fa8401ef9f349
https://github.com/btcsuite/btcd/commit/a97fd5fe2c670030f8d77dc13b9fa8401ef9f349
Author: David Hill <[email protected]>
Date: 2013-11-04 (Mon, 04 Nov 2013)
Changed paths:
M pubkey_test.go
Log Message:
-----------
add test for testing IsOnCurve
Commit: 95b3c063e382af78e4c6876408c31f68efc67840
https://github.com/btcsuite/btcd/commit/95b3c063e382af78e4c6876408c31f68efc67840
Author: Owain G. Ainsworth <[email protected]>
Date: 2013-11-21 (Thu, 21 Nov 2013)
Changed paths:
M btcec.go
Log Message:
-----------
remove lazy computation of QPlus1Div4 and do at init time.
Should shut up the race detector (thought this should be harmless)
Commit: 9be5c5cbd92803f5e7bce7cd20235500ecf9dbdf
https://github.com/btcsuite/btcd/commit/9be5c5cbd92803f5e7bce7cd20235500ecf9dbdf
Author: Dave Collins <[email protected]>
Date: 2013-12-20 (Fri, 20 Dec 2013)
Changed paths:
M btcec.go
A field.go
Log Message:
-----------
Significantly optimize signature verification.
This commit essentially rewrites all of the primitives needed to perform
the arithmetic for ECDSA signature verification of secp256k1 signatures to
significantly speed it up. Benchmarking has shown signature verification
is roughly 10 times faster with this commit over the previous.
In particular, it introduces a new field value which is used to perform the
modular field arithmetic using fixed-precision operations specifically
tailored for the secp256k1 prime. The field also takes advantage of
special properties of the prime for significantly faster modular reduction
than is available through generic methods.
In addition, the curve point addition and doubling have been optimized
minimize the number of field multiplications in favor field squarings
since they are quite a bit faster. They routines also now look for
certain assumptions such as z values of 1 or equivalent z values which
can be used to further reduce the number of multiplicaitons needed when
possible.
Note there are still quite a few more optimizations that could be done
such as using precomputation for ScalarBaseMult, making use of the
secp256k1 endomorphism, and using windowed NAF, however this work already
offers significant performance improvements.
For example, testing 10000 random signature verifications resulted in:
New btcec took 15.9821565s
Old btcec took 2m34.1016716s
Closes conformal/btcd#26.
Commit: ac7e4de201765bdffbe807646514f2c0311d0618
https://github.com/btcsuite/btcd/commit/ac7e4de201765bdffbe807646514f2c0311d0618
Author: Dave Collins <[email protected]>
Date: 2013-12-20 (Fri, 20 Dec 2013)
Changed paths:
M btcec_test.go
A field_test.go
M internal_test.go
M test_coverage.txt
Log Message:
-----------
Add field and point addition/multiplicaiton tests.
This commit adds 100% test coverage for the new code. This brings the
overall btcec coverage up to 99.76%.
Commit: 85ac6b06f7fe8a68b009363163413c2d81423cec
https://github.com/btcsuite/btcd/commit/85ac6b06f7fe8a68b009363163413c2d81423cec
Author: Dave Collins <[email protected]>
Date: 2013-12-20 (Fri, 20 Dec 2013)
Changed paths:
M field.go
M internal_test.go
Log Message:
-----------
Make NewFieldVal only avilable to the test package.
Since the function was only exported for use by the test package (and was
commented as such), just move it into the internal_test.go file so it is
only available when the tests run.
Commit: 206721519348f0da7fcfb05aad1dc50032fb1726
https://github.com/btcsuite/btcd/commit/206721519348f0da7fcfb05aad1dc50032fb1726
Author: Dave Collins <[email protected]>
Date: 2013-12-23 (Mon, 23 Dec 2013)
Changed paths:
M signature.go
Log Message:
-----------
Expose a new Serialize function on Signature type.
This commit exposes a new function named Serialize on the Signature type
which can be used to obtain a DER encoded signature. Previously this
function was named sigDer and was part of btcscript, but as @donovanhide
pointed out in issue btcscript/#3, it really should have been part of this
package.
ok @owainga
Commit: bb6b277706ff0337ef315145f47954c946d63d5c
https://github.com/btcsuite/btcd/commit/bb6b277706ff0337ef315145f47954c946d63d5c
Author: Dave Collins <[email protected]>
Date: 2013-12-23 (Mon, 23 Dec 2013)
Changed paths:
M signature_test.go
M test_coverage.txt
Log Message:
-----------
Add tests for new Signature.Serialize function.
This is part of the resolution for issue btcscript/#3.
Commit: 627aeb5e9c9f43a275e701bf2ebed5ab20d70ac6
https://github.com/btcsuite/btcd/commit/627aeb5e9c9f43a275e701bf2ebed5ab20d70ac6
Author: Dave Collins <[email protected]>
Date: 2013-12-23 (Mon, 23 Dec 2013)
Changed paths:
A .travis.yml
M README.md
Log Message:
-----------
Add support for TravisCI.
Also add TravisCI build status badge to README.md.
Commit: cd9694e9ad2e3d892eb75b42b7e07e9377cd5a2a
https://github.com/btcsuite/btcd/commit/cd9694e9ad2e3d892eb75b42b7e07e9377cd5a2a
Author: Dave Collins <[email protected]>
Date: 2013-12-23 (Mon, 23 Dec 2013)
Changed paths:
A bench_test.go
Log Message:
-----------
Add benchmarks for ScalarBaseMult and ScalarMult.
Commit: ab14c30fe12c9b27f0b5dad1ed2a5c619ff21887
https://github.com/btcsuite/btcd/commit/ab14c30fe12c9b27f0b5dad1ed2a5c619ff21887
Author: Dave Collins <[email protected]>
Date: 2013-12-23 (Mon, 23 Dec 2013)
Changed paths:
M bench_test.go
Log Message:
-----------
Add benchmark for signature verifies.
Commit: e3c2b875361c957c0c73d9f0e5c645b6ea977213
https://github.com/btcsuite/btcd/commit/e3c2b875361c957c0c73d9f0e5c645b6ea977213
Author: Dave Collins <[email protected]>
Date: 2013-12-26 (Thu, 26 Dec 2013)
Changed paths:
M btcec.go
Log Message:
-----------
Fix a comment typo.
Commit: 8f8eeae96221b4dea2e323041fcf7aaad2c98035
https://github.com/btcsuite/btcd/commit/8f8eeae96221b4dea2e323041fcf7aaad2c98035
Author: Dave Collins <[email protected]>
Date: 2013-12-26 (Thu, 26 Dec 2013)
Changed paths:
M bench_test.go
Log Message:
-----------
Add benchmark for adding two Jacobian points.
Commit: cc712827daf8fbec04d6bc215ded5e8e8f2d6cb0
https://github.com/btcsuite/btcd/commit/cc712827daf8fbec04d6bc215ded5e8e8f2d6cb0
Author: Dave Collins <[email protected]>
Date: 2013-12-28 (Sat, 28 Dec 2013)
Changed paths:
M internal_test.go
M pubkey_test.go
M test_coverage.txt
Log Message:
-----------
Add tests for pad function.
This brings the overall test coverage up to 99.88%.
Commit: 2d875b39f92c6c76f041d3defb00f7fdfd8b79f2
https://github.com/btcsuite/btcd/commit/2d875b39f92c6c76f041d3defb00f7fdfd8b79f2
Author: Dave Collins <[email protected]>
Date: 2013-12-28 (Sat, 28 Dec 2013)
Changed paths:
M README.md
Log Message:
-----------
Bring README.md up-to-date with the current status.
Commit: 58cab817f0863f60fa3c8c14c4b56e115ee549de
https://github.com/btcsuite/btcd/commit/58cab817f0863f60fa3c8c14c4b56e115ee549de
Author: Dave Collins <[email protected]>
Date: 2014-01-08 (Wed, 08 Jan 2014)
Changed paths:
M LICENSE
M bench_test.go
M btcec.go
M btcec_test.go
M doc.go
M field.go
M field_test.go
M internal_test.go
M pubkey.go
M pubkey_test.go
M signature.go
M signature_test.go
Log Message:
-----------
Add 2014 to copyright dates.
Commit: d991c18d160a0f2e80edafc7c6140cfd2aea5633
https://github.com/btcsuite/btcd/commit/d991c18d160a0f2e80edafc7c6140cfd2aea5633
Author: David Hill <[email protected]>
Date: 2014-02-04 (Tue, 04 Feb 2014)
Changed paths:
M pubkey_test.go
M signature_test.go
Log Message:
-----------
gofmt
Commit: 7427e82664efef742f80513d032c2f6f22bf27b4
https://github.com/btcsuite/btcd/commit/7427e82664efef742f80513d032c2f6f22bf27b4
Author: Dave Collins <[email protected]>
Date: 2014-02-12 (Wed, 12 Feb 2014)
Changed paths:
M bench_test.go
Log Message:
-----------
Add bench for adding Jacobian points where Z!=1.
Commit: 218906a91edc77ede1edabf0d070099015b3e65e
https://github.com/btcsuite/btcd/commit/218906a91edc77ede1edabf0d070099015b3e65e
Author: Dave Collins <[email protected]>
Date: 2014-02-13 (Thu, 13 Feb 2014)
Changed paths:
M btcec.go
M test_coverage.txt
Log Message:
-----------
Make the race detect happy.
Since the Z values are normalized (which ordinarily mutates them as
needed) before checking for equality, the race detector gets confused when
using a global value for the field representation of the value 1 and
passing it into the various internal arithmetic routines and reports a
false positive.
Even though the race was a false positive and had no adverse effects, this
commit silences the race detector by creating new variables at the top
level and passing them instead of the global fieldOne variable. The
global is still used for comparison operations since those have no
potential to mutate the value and hence don't trigger the race detector.
Commit: ff3fac426d4d037505ea8208b79e93c2852451e0
https://github.com/btcsuite/btcd/commit/ff3fac426d4d037505ea8208b79e93c2852451e0
Author: Owain G. Ainsworth <[email protected]>
Date: 2014-02-13 (Thu, 13 Feb 2014)
Changed paths:
M btcec.go
M pubkey.go
M signature.go
M signature_test.go
M test_coverage.txt
Log Message:
-----------
Add code to produce and verify compact signatures.
The format used is identical to that used in bitcoind.
Commit: de670bd5b2b1dff06b09d4e0b7b6bcb6f5cce93a
https://github.com/btcsuite/btcd/commit/de670bd5b2b1dff06b09d4e0b7b6bcb6f5cce93a
Author: Owain G. Ainsworth <[email protected]>
Date: 2014-03-17 (Mon, 17 Mar 2014)
Changed paths:
M pubkey.go
Log Message:
-----------
check for 0 length strings in pubkey parser.
We check length later, but we assumed it was always 1 bytes long. Not
always the case. I'm a little depressed that this bug was there.
Commit: d0a4086e29916c5add0573484d57ef39472f0dbd
https://github.com/btcsuite/btcd/commit/d0a4086e29916c5add0573484d57ef39472f0dbd
Author: Owain G. Ainsworth <[email protected]>
Date: 2014-03-25 (Tue, 25 Mar 2014)
Changed paths:
A privkey.go
M pubkey_test.go
M signature_test.go
M test_coverage.txt
Log Message:
-----------
Add an api to get a pubkey and privkey from a privkey byte string.
ok and some tweaks from @jrick.
Commit: e841a2e999b7e9ebd13fb2b2aba4bd327be03708
https://github.com/btcsuite/btcd/commit/e841a2e999b7e9ebd13fb2b2aba4bd327be03708
Author: Owain G. Ainsworth <[email protected]>
Date: 2014-04-09 (Wed, 09 Apr 2014)
Changed paths:
M pubkey.go
Log Message:
-----------
Make ParsePubkey reutrn a *btcec.PublicKey
Provide a fucntion on public key to get the ecdsa type without knowing
internals.
Commit: 1dbf389ceb35f2eb6f11535c159a172c2a120b16
https://github.com/btcsuite/btcd/commit/1dbf389ceb35f2eb6f11535c159a172c2a120b16
Author: Josh Rickmar <[email protected]>
Date: 2014-05-19 (Mon, 19 May 2014)
Changed paths:
M internal_test.go
M pubkey.go
M pubkey_test.go
M test_coverage.txt
Log Message:
-----------
Optimize public key serialization.
This change removes the internal pad function in favor a more opimized
paddedAppend function. Unlike pad, which would always alloate a new
slice of the desired size and copy the bytes into it, paddedAppend
only appends the leading padding when necesary, and uses the builtin
append to copy the remaining source bytes. pad was also used in
combination with another call to the builtin copy func to copy into a
zeroed byte slice. As the slice is now created using make with an
initial length of zero, this copy can also be removed.
As confirmed by poking the bytes with the unsafe package, gc does not
zero array elements between the len and cap when allocating slices
with make(). In combination with the paddedAppend func, this results
in only a single copy of each byte, with no unnecssary zeroing, when
creating the serialized pubkeys. This has not been tested with other
Go compilers (namely, gccgo and llgo), but the new behavior is still
functionally correct regardless of compiler optimizations.
The TestPad function has been removed as the pad func it tested has
likewise been removed.
ok @davecgh
Commit: ac7a367950089af978a398f57010315ff355097e
https://github.com/btcsuite/btcd/commit/ac7a367950089af978a398f57010315ff355097e
Author: Geert-Johan Riemer <[email protected]>
Date: 2014-05-20 (Tue, 20 May 2014)
Changed paths:
M privkey.go
M pubkey.go
Log Message:
-----------
Add type PrivateKey, (*PrivateKey).Sign() and (*PublicKey).Verify().
Commit: af82a73fe4a2439dda93ee584286ad434b91099d
https://github.com/btcsuite/btcd/commit/af82a73fe4a2439dda93ee584286ad434b91099d
Author: Geert-Johan Riemer <[email protected]>
Date: 2014-05-20 (Tue, 20 May 2014)
Changed paths:
M pubkey_test.go
M test_coverage.txt
Log Message:
-----------
Add tests for sign and verify.
Commit: 77c02f36ee4249a53664f63d22f32311bb7fb9d2
https://github.com/btcsuite/btcd/commit/77c02f36ee4249a53664f63d22f32311bb7fb9d2
Author: Dave Collins <[email protected]>
Date: 2014-05-20 (Tue, 20 May 2014)
Changed paths:
M doc.go
M privkey.go
M pubkey.go
M pubkey_test.go
M signature.go
M test_coverage.txt
Log Message:
-----------
Cleanup new code introduced by Pull Request #4.
- Keep comments to 80 cols for consistency with the rest of the code base
- Made verify a method off of Signature instead of PublicKey since one
verifies a signature with a public key as opposed to the other way
around
- Return new signature from Sign function directly rather than creating a
local temporary variable
- Modify a couple of comments as recommended by @owainga
- Update sample usage in doc.go for both signing messages and verifying
signatures
ok @owainga
Commit: cea5e44f2d87c7a5a8d38d948995d375d37431a2
https://github.com/btcsuite/btcd/commit/cea5e44f2d87c7a5a8d38d948995d375d37431a2
Author: Josh Rickmar <[email protected]>
Date: 2014-05-21 (Wed, 21 May 2014)
Changed paths:
M privkey.go
Log Message:
-----------
Add Serialize method to PrivateKey.
ok @davecgh
Commit: 22014931d476dca323ad5a65c34eeba6b9ebcb63
https://github.com/btcsuite/btcd/commit/22014931d476dca323ad5a65c34eeba6b9ebcb63
Author: Dave Collins <[email protected]>
Date: 2014-07-02 (Wed, 02 Jul 2014)
Changed paths:
M bench_test.go
M btcec_test.go
M field_test.go
M pubkey_test.go
M signature_test.go
Log Message:
-----------
goimports -w .
Commit: b19d0a0232bf07223bc2384cd1760eb916075077
https://github.com/btcsuite/btcd/commit/b19d0a0232bf07223bc2384cd1760eb916075077
Author: Yurii Rashkovskii <[email protected]>
Date: 2014-07-31 (Thu, 31 Jul 2014)
Changed paths:
M signature.go
M signature_test.go
Log Message:
-----------
Enforce low S values, by negating the value (modulo the order) if above
order/2.
Reference implementation:
https://github.com/bitcoin/bitcoin/blob/b7bba43a14a641b6b64bbf48357b2987c1b05800/src/key.cpp#L235-L238
ht @oleganza
Commit: e6011eaa49e188695efcabbd102ce93cbf5b6558
https://github.com/btcsuite/btcd/commit/e6011eaa49e188695efcabbd102ce93cbf5b6558
Author: Dave Collins <[email protected]>
Date: 2014-08-10 (Sun, 10 Aug 2014)
Changed paths:
M README.md
Log Message:
-----------
Add godoc reference badge to README.md.
Commit: cdc91dd9ba7b99137f08708679d3add3b435d301
https://github.com/btcsuite/btcd/commit/cdc91dd9ba7b99137f08708679d3add3b435d301
Author: Dave Collins <[email protected]>
Date: 2014-08-10 (Sun, 10 Aug 2014)
Changed paths:
M .travis.yml
Log Message:
-----------
Setup TravisCI to report cov stats to coveralls.io.
Commit: d043cea4909ed05d23ddbcef2721f8af403ab4ef
https://github.com/btcsuite/btcd/commit/d043cea4909ed05d23ddbcef2721f8af403ab4ef
Author: Dave Collins <[email protected]>
Date: 2014-08-10 (Sun, 10 Aug 2014)
Changed paths:
M README.md
Log Message:
-----------
Add test coverage badge to README.md.
Commit: cf69fbec0a4561073c26cb2e0826f732c7b8dd1b
https://github.com/btcsuite/btcd/commit/cf69fbec0a4561073c26cb2e0826f732c7b8dd1b
Author: Dave Collins <[email protected]>
Date: 2014-08-10 (Sun, 10 Aug 2014)
Changed paths:
M README.md
Log Message:
-----------
Move test coverage badge to top of README.md.
Commit: a51b5f98bf58e67cb471a47eafceabc28bd49600
https://github.com/btcsuite/btcd/commit/a51b5f98bf58e67cb471a47eafceabc28bd49600
Author: Dave Collins <[email protected]>
Date: 2014-08-10 (Sun, 10 Aug 2014)
Changed paths:
M README.md
R test_coverage.txt
Log Message:
-----------
Remove test coverage report refs from README.md.
This is no longer needed since the repository is now configured to work
with coveralls.io for test coverage reporting.
Commit: c4fa69d4908d8d84b66c33166772f23ff6e4e1a9
https://github.com/btcsuite/btcd/commit/c4fa69d4908d8d84b66c33166772f23ff6e4e1a9
Author: Dave Collins <[email protected]>
Date: 2014-08-10 (Sun, 10 Aug 2014)
Changed paths:
M README.md
Log Message:
-----------
Use a more specific license adjective.
Commit: c949e0424627d55f7f32ca98797dd3cbfdff6bbf
https://github.com/btcsuite/btcd/commit/c949e0424627d55f7f32ca98797dd3cbfdff6bbf
Author: Dave Collins <[email protected]>
Date: 2014-08-10 (Sun, 10 Aug 2014)
Changed paths:
M README.md
M doc.go
A example_test.go
Log Message:
-----------
Use testable examples and update doc.go README.md.
This commit adds an example test file so it integrates nicely with Go's
example tooling.
This allows the example output to be tested as a part of running the
normal Go tests to help ensure it doesn't get out of date with the code.
It is also nice to have the examples in one place rather than repeating it
in doc.go and README.md.
Links and information about the examples have been included in README.md in
place of the examples and doc.go has been updated accordingly.
Commit: ff095cfa8ed6a93cf7b348aa286459f9d7d3d3ef
https://github.com/btcsuite/btcd/commit/ff095cfa8ed6a93cf7b348aa286459f9d7d3d3ef
Author: Dave Collins <[email protected]>
Date: 2014-08-10 (Sun, 10 Aug 2014)
Changed paths:
M README.md
Log Message:
-----------
Correct verify signature example doco link.
Commit: 4ca0daacc139d145eab60124a16192265da27acb
https://github.com/btcsuite/btcd/commit/4ca0daacc139d145eab60124a16192265da27acb
Author: Dave Collins <[email protected]>
Date: 2014-08-10 (Sun, 10 Aug 2014)
Changed paths:
A privkey_test.go
M pubkey_test.go
Log Message:
-----------
Add test for private key serialization.
Also move private key tests to their own file while here.
Commit: d69442834c9e5389c472b995324c9ac7fc09c50a
https://github.com/btcsuite/btcd/commit/d69442834c9e5389c472b995324c9ac7fc09c50a
Author: Jimmy Song <[email protected]>
Date: 2014-09-24 (Wed, 24 Sep 2014)
Changed paths:
M bench_test.go
M btcec.go
M btcec_test.go
A gensecp256k1.go
A secp256k1.go
Log Message:
-----------
Optimize ScalarBaseMult
Code uses a windowing/precomputing strategy to minimize ECC math.
Every 8-bit window of the 256 bits that compose a possible scalar multiple has
a complete map that's pre-computed.
The precomputed data is in secp256k1.go and the generator for that file is in
gensecp256k1.go
Also fixed a spelling error in a benchmark test.
Results so far seem to indicate the time taken is about 35% of what it was
before.
Closes #2
Commit: d312d472988a87761a6c852d51c411fff1b760ea
https://github.com/btcsuite/btcd/commit/d312d472988a87761a6c852d51c411fff1b760ea
Author: Jimmy Song <[email protected]>
Date: 2014-09-27 (Sat, 27 Sep 2014)
Changed paths:
M signature.go
M signature_test.go
Log Message:
-----------
RecoverCompact and SignCompact now use the btcec.PrivateKey and
btcec.PublicKey types.
btcwallet/rpcserver.go needs a corresponding change or else that will break.
This closes #6
Commit: ae28fe6d97b5eb7344e4fe66948e1876c967707d
https://github.com/btcsuite/btcd/commit/ae28fe6d97b5eb7344e4fe66948e1876c967707d
Author: Jimmy Song <[email protected]>
Date: 2014-10-12 (Sun, 12 Oct 2014)
Changed paths:
M bench_test.go
M btcec_test.go
M privkey.go
M signature_test.go
Log Message:
-----------
Use btcec structs instead of ecdsa structs everywhere.
This change should make it so that only btcec relies on the crypto/ecdsa
package for secp256k1 math.
Commit: da74b98565c85e8f856173985efc37d44507e6e7
https://github.com/btcsuite/btcd/commit/da74b98565c85e8f856173985efc37d44507e6e7
Author: Dave Collins <[email protected]>
Date: 2015-01-15 (Thu, 15 Jan 2015)
Changed paths:
M btcec.go
Log Message:
-----------
Fix a benign race detected by the race detector.
The addition of the pre-computed values for the ScalarBaseMult
optimizations added a benign race condition since a pointer to each
pre-computed Jacobian point was being used in the call to addJacobian
instead of a local stack copy.
This resulted in the code which normalizes the field values to check for
further optimization conditions such as equal Z values to race against the
IsZero checks when multiple goroutines were performing EC operations since
they were all operating on the same point in memory.
In practice this was benign since the value was being replaced with the
same thing and thus it was the same before and after the race, but it's
never a good idea to have races.
Commit: 41317e871282d37a9673e65a0206672cf944043e
https://github.com/btcsuite/btcd/commit/41317e871282d37a9673e65a0206672cf944043e
Author: Dave Collins <[email protected]>
Date: 2015-01-16 (Fri, 16 Jan 2015)
Changed paths:
M example_test.go
Log Message:
-----------
Update btcwire import paths to new location.
Commit: 45d21a254c16dcfac0ff1e5b794955be20c9c408
https://github.com/btcsuite/btcd/commit/45d21a254c16dcfac0ff1e5b794955be20c9c408
Author: Dave Collins <[email protected]>
Date: 2015-01-16 (Fri, 16 Jan 2015)
Changed paths:
M README.md
M bench_test.go
M btcec_test.go
M example_test.go
M field_test.go
M privkey_test.go
M pubkey_test.go
M signature_test.go
Log Message:
-----------
Update btcec import paths to new location.
Commit: b362c1e46405bc23091c8f4b5bd6819585799c17
https://github.com/btcsuite/btcd/commit/b362c1e46405bc23091c8f4b5bd6819585799c17
Author: Dave Collins <[email protected]>
Date: 2015-01-16 (Fri, 16 Jan 2015)
Changed paths:
M README.md
Log Message:
-----------
Update to new location in README.md too.
Commit: f9365fd5425c4d7f0bad9733d4fb0bbfb82b66f6
https://github.com/btcsuite/btcd/commit/f9365fd5425c4d7f0bad9733d4fb0bbfb82b66f6
Author: David Evans <[email protected]>
Date: 2015-01-20 (Tue, 20 Jan 2015)
Changed paths:
M btcec.go
Log Message:
-----------
Update btcec.go
Updated link to SEC 2: Recommended Elliptic Curve Domain Parameters standard
(URL given no longer exists).
Commit: 9535058a7bcb8965f9293609af0c9d3aed4aad7f
https://github.com/btcsuite/btcd/commit/9535058a7bcb8965f9293609af0c9d3aed4aad7f
Author: Dave Collins <[email protected]>
Date: 2015-02-01 (Sun, 01 Feb 2015)
Changed paths:
M btcec.go
A genprecomps.go
M gensecp256k1.go
A precompute.go
M secp256k1.go
Log Message:
-----------
Rework the pre-computed table generation and load.
This commit reworks the way that the pre-computed table which is used to
accelerate scalar base multiple is generated and loaded to make use of the
go generate infrastructure and greatly reduce the memory needed to compile
as well as speed up the compile.
Previously, the table was being generated using the in-memory
representation directly written into the file. Since the table has a very
large number of entries, the Go compiler was taking up to nearly 1GB to
compile. It also took a comparatively long period of time to compile.
Instead, this commit modifies the generated table to be a serialized,
compressed, and base64-encoded byte slice. At init time, this process is
reversed to create the in-memory representation. This approach provides
fast compile times with much lower memory needed to compile (16MB versus
1GB). In addition, the init time cost is extremely low, especially as
compared to computing the entire table.
Finally, the automatic generation wasn't really automatic. It is now
fully automatic with 'go generate'.
Commit: 46829e8ddc40cfe9eaaadb04006adcb8e3bbae12
https://github.com/btcsuite/btcd/commit/46829e8ddc40cfe9eaaadb04006adcb8e3bbae12
Author: Dave Collins <[email protected]>
Date: 2015-02-03 (Tue, 03 Feb 2015)
Changed paths:
M .travis.yml
Log Message:
-----------
Update TravisCI to use latest cover paths.
Commit: d4d2f622b567a05cedfa7e6d05ec4fb71a2f5d37
https://github.com/btcsuite/btcd/commit/d4d2f622b567a05cedfa7e6d05ec4fb71a2f5d37
Author: John C. Vernaleo <[email protected]>
Date: 2015-02-03 (Tue, 03 Feb 2015)
Changed paths:
M btcec.go
M signature.go
Log Message:
-----------
Fix bug and inconsistant error msg seen by lint.
Commit: 95b23c293ce2c3a717fc01bc449803eeadd572ef
https://github.com/btcsuite/btcd/commit/95b23c293ce2c3a717fc01bc449803eeadd572ef
Author: Jimmy Song <[email protected]>
Date: 2015-02-03 (Tue, 03 Feb 2015)
Changed paths:
M bench_test.go
M btcec.go
M btcec_test.go
M gensecp256k1.go
M signature.go
Log Message:
-----------
Optimize ScalarMult using endomorphism
This implements a speedup to ScalarMult using the endomorphism available to
secp256k1.
Note the constants lambda, beta, a1, b1, a2 and b2 are from here:
https://bitcointalk.org/index.php?topic=3238.0
Preliminary tests indicate a speedup of between 17%-20% (BenchScalarMult).
More speedup can probably be achieved once splitK uses something more like what
fieldVal uses. Unfortunately, the prime for this math is the order of G (N),
not P.
Note the NAF optimization was specifically not done as that's the purview of
another issue.
Changed both ScalarMult and ScalarBaseMult to take advantage of curve.N to
reduce k.
This results in a 80% speedup to large values of k for ScalarBaseMult.
Note the new test BenchmarkScalarBaseMultLarge is how that speedup number can
be checked.
This closes #1
Commit: 6c36218ef3f232dfdfa4a343513ceff7424371aa
https://github.com/btcsuite/btcd/commit/6c36218ef3f232dfdfa4a343513ceff7424371aa
Author: Jimmy Song <[email protected]>
Date: 2015-02-05 (Thu, 05 Feb 2015)
Changed paths:
M bench_test.go
M btcec.go
M btcec_test.go
M gensecp256k1.go
Log Message:
-----------
Optimize ScalarMult with NAF
Use Non-Adjacent Form (NAF) of large numbers to reduce ScalarMult computation
times.
Preliminary results indicate around a 8-9% speed improvement according to
BenchmarkScalarMult.
The algorithm used is 3.77 from Guide to Elliptical Curve Crytography by
Hankerson, et al.
This closes #3
Commit: 857a78fcdf2ab76906279486d0ca60c3ad78a571
https://github.com/btcsuite/btcd/commit/857a78fcdf2ab76906279486d0ca60c3ad78a571
Author: Dave Collins <[email protected]>
Date: 2015-02-05 (Thu, 05 Feb 2015)
Changed paths:
M example_test.go
Log Message:
-----------
Update btcwire path import paths to new location.
Commit: 87968edb1d9c93fea45805e89046261d0ba1d64c
https://github.com/btcsuite/btcd/commit/87968edb1d9c93fea45805e89046261d0ba1d64c
Author: Dave Collins <[email protected]>
Date: 2015-02-06 (Fri, 06 Feb 2015)
Changed paths:
R .gitignore
R .travis.yml
R LICENSE
R README.md
R bench_test.go
R btcec.go
A btcec/README.md
A btcec/bench_test.go
A btcec/btcec.go
A btcec/btcec_test.go
A btcec/doc.go
A btcec/example_test.go
A btcec/field.go
A btcec/field_test.go
A btcec/genprecomps.go
A btcec/gensecp256k1.go
A btcec/internal_test.go
A btcec/precompute.go
A btcec/privkey.go
A btcec/privkey_test.go
A btcec/pubkey.go
A btcec/pubkey_test.go
A btcec/secp256k1.go
A btcec/signature.go
A btcec/signature_test.go
R btcec_test.go
R cov_report.sh
R doc.go
R example_test.go
R field.go
R field_test.go
R genprecomps.go
R gensecp256k1.go
R internal_test.go
R precompute.go
R privkey.go
R privkey_test.go
R pubkey.go
R pubkey_test.go
R secp256k1.go
R signature.go
R signature_test.go
Log Message:
-----------
Import btcec repo into btcec directory.
Commit: c360543fa9a003ec6651daf34c1c91cf07d68bee
https://github.com/btcsuite/btcd/commit/c360543fa9a003ec6651daf34c1c91cf07d68bee
Author: Dave Collins <[email protected]>
Date: 2015-02-06 (Fri, 06 Feb 2015)
Changed paths:
A btcec/README.md
A btcec/bench_test.go
A btcec/btcec.go
A btcec/btcec_test.go
A btcec/doc.go
A btcec/example_test.go
A btcec/field.go
A btcec/field_test.go
A btcec/genprecomps.go
A btcec/gensecp256k1.go
A btcec/internal_test.go
A btcec/precompute.go
A btcec/privkey.go
A btcec/privkey_test.go
A btcec/pubkey.go
A btcec/pubkey_test.go
A btcec/secp256k1.go
A btcec/signature.go
A btcec/signature_test.go
Log Message:
-----------
Merge btcec repo into btcec directory.
Compare: https://github.com/btcsuite/btcd/compare/c6bc8ac1eb16...c360543fa9a0