aboutsummaryrefslogtreecommitdiffstats
path: root/crypto/secp256k1/secp256.go
Commit message (Collapse)AuthorAgeFilesLines
* crypto: use go-ethereum secp256k1 package to avoid symbol conflict (#374)Wei-Ning Huang2019-06-151-167/+0
|
* all: remove the duplicate 'the' in annotations (#17509)Wenbiao Zheng2018-08-271-1/+1
|
* crypto/secp256k1: unify the package license to 3-Clause BSD (#17225)Péter Szilágyi2018-07-241-15/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | Our original wrapper code had two parts. One taken from a third party repository (who took it from upstream Go) licensed under BSD-3. The second written by Jeff, Felix and Gustav, licensed under LGPL. This made this package problematic to use from the outside. With the agreement of the original copyright holders, this commit changes the license of the LGPL portions of the code to BSD-3: --- I agree changing from LGPL to a BSD style license. Jeff --- Hey guys, My preference would be to relicense to GNUBL, but I'm also OK with BSD. Cheers, Gustav --- Felix Lange (fjl): I would approve anything that makes our licensing less complicated ---
* crypto, crypto/secp256k1: add CompressPubkey (#15626)Felix Lange2017-12-151-8/+28
| | | | This adds the inverse to DecompressPubkey and improves a few minor details in crypto/secp256k1.
* crypto: add DecompressPubkey, VerifySignature (#15615)Felix Lange2017-12-061-0/+29
| | | | | | | We need those operations for p2p/enr. Also upgrade github.com/btcsuite/btcd/btcec to the latest version and improve BenchmarkSha3. The benchmark printed extra output that confused tools like benchstat and ignored N.
* all: unify big.Int zero checks, use common/math in more places (#3716)Felix Lange2017-02-281-14/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * common/math: optimize PaddedBigBytes, use it more name old time/op new time/op delta PaddedBigBytes-8 71.1ns ± 5% 46.1ns ± 1% -35.15% (p=0.000 n=20+19) name old alloc/op new alloc/op delta PaddedBigBytes-8 48.0B ± 0% 32.0B ± 0% -33.33% (p=0.000 n=20+20) * all: unify big.Int zero checks Various checks were in use. This commit replaces them all with Int.Sign, which is cheaper and less code. eg templates: func before(x *big.Int) bool { return x.BitLen() == 0 } func after(x *big.Int) bool { return x.Sign() == 0 } func before(x *big.Int) bool { return x.BitLen() > 0 } func after(x *big.Int) bool { return x.Sign() != 0 } func before(x *big.Int) int { return x.Cmp(common.Big0) } func after(x *big.Int) int { return x.Sign() } * common/math, crypto/secp256k1: make ReadBits public in package math
* crypto: add btcec fallback for sign/recover without cgo (#3680)Felix Lange2017-02-181-9/+1
| | | | | | | | | | | * vendor: add github.com/btcsuite/btcd/btcec * crypto: add btcec fallback for sign/recover without cgo This commit adds a non-cgo fallback implementation of secp256k1 operations. * crypto, core/vm: remove wrappers for sha256, ripemd160
* crypto/secp256k1: sign with deterministic K (rfc6979) (#3561)Felix Lange2017-01-231-8/+4
|
* crypto/secp256k1: update to github.com/bitcoin-core/secp256k1 @ 9d560f9 (#3544)Felix Lange2017-01-131-158/+43
| | | | | - Use defined constants instead of hard-coding their integer value. - Allocate secp256k1 structs on the C stack instead of converting []byte - Remove dead code
* all: fix spelling errorsPéter Szilágyi2017-01-071-1/+1
|
* parmas, crypto, core, core/vm: homestead consensus protocol changesGustav Simonsson2016-02-181-0/+4
| | | | | | | | * change gas cost for contract creating txs * invalidate signature with s value greater than secp256k1 N / 2 * OOG contract creation if not enough gas to store code * new difficulty adjustment algorithm * new DELEGATECALL op code
* crypto/secp256k1: remove dependency on libgmpFelix Lange2015-12-041-8/+1
| | | | | Turns out we actually don't need it, USE_NUM_NONE works because we also set USE_FIELD_INV_BUILTIN.
* crypto, crypto/ecies, crypto/secp256k1: libsecp256k1 scalar multGustav Simonsson2015-11-301-5/+23
| | | | thanks to Felix Lange (fjl) for help with design & impl
* core/secp256k1: update libsecp256k1 Go wrapper and testsGustav Simonsson2015-11-301-2/+2
|
* crypto/secp256k1: drop pkgsrc paths from CFLAGSFelix Lange2015-11-171-2/+2
| | | | | | They cause compiler warnings for people who don't have these directories. People with pkgsrc can add the directory through CGO_CFLAGS instead.
* crypto/secp256k1: raise internal errors as recoverable Go panicFelix Lange2015-11-171-0/+6
|
* crypto/secp256k1: verify recovery ID before calling libsecp256k1Felix Lange2015-11-171-75/+37
| | | | | | | | The C library treats the recovery ID as trusted input and crashes the process for invalid values, so it needs to be verified before calling into C. This will inhibit the crash in #1983. Also remove VerifySignature because we don't use it.
* crypto/secp256k1: add C compiler flags for pkgsrcFelix Lange2015-11-031-2/+2
| | | | | pkgsrc is a cross-platform package manager that also supports OS X.
* core/secp256k1: update libsecp256k1 Go wrapper and testsGustav Simonsson2015-10-091-87/+109
|
* FreeBSD supportFynn2015-07-291-0/+2
|
* all: fix license headers one more timeFelix Lange2015-07-241-1/+1
| | | | I forgot to update one instance of "go-ethereum" in commit 3f047be5a.
* all: update license headers to distiguish GPL/LGPLFelix Lange2015-07-231-4/+4
| | | | | All code outside of cmd/ is licensed as LGPL. The headers now reflect this by calling the whole work "the go-ethereum library".
* all: update license informationFelix Lange2015-07-071-0/+16
|
* Remove the awesome, ever misunderstood entropy mixingGustav Simonsson2015-05-121-2/+2
|
* Adding flags to facilitate cross compiling to ARMMaran2015-04-221-0/+2
|
* libsecp256k1 #define NDEBUGGustav Simonsson2015-04-081-0/+1
|
* Link GMPobscuren2015-04-071-0/+3
|
* Update Go wrapper around libbsecp256k1Gustav Simonsson2015-04-071-89/+25
|
* Validate seckey when generating pub keyobscuren2015-02-151-1/+6
|
* Set both key generation and ECDSA nonce to use mixed entropyGustav Simonsson2015-02-111-2/+3
| | | | | | * Move random entropy functions to new package randentropy * Add function to get n bytes entropy where up to first 32 bytes are mixed with OS entropy sources
* Fixed Sign nonceobscuren2015-02-011-5/+1
|
* Moved `obscuren` secp256k1-goobscuren2015-01-221-0/+304