aboutsummaryrefslogtreecommitdiffstats
path: root/crypto/secp256k1
Commit message (Collapse)AuthorAgeFilesLines
* crypto/secp256k1: Fix invalid document link (#18297)Shuai Qi2018-12-131-1/+1
|
* all: fix various comment typos (#17748)Liang ZOU2018-09-251-1/+1
|
* crypto/secp256k1: remove useless code (#17728)Payne2018-09-221-2/+0
| | | `(void)data;` may cause link error on Windows.
* all: remove the duplicate 'the' in annotations (#17509)Wenbiao Zheng2018-08-271-1/+1
|
* crypto/secp256k1: remove external LGPL dependencies (#17239)Péter Szilágyi2018-07-262-25/+57
|
* crypto/secp256k1: unify the package license to 3-Clause BSD (#17225)Péter Szilágyi2018-07-245-60/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | 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: fix golint warnings (#16710)kiel barry2018-05-092-2/+2
|
* crypto/secp256k1: catch curve parameter parse errors (#16392)David Huie2018-04-031-5/+5
|
* crypto, crypto/secp256k1: add CompressPubkey (#15626)Felix Lange2017-12-153-52/+70
| | | | This adds the inverse to DecompressPubkey and improves a few minor details in crypto/secp256k1.
* crypto: add DecompressPubkey, VerifySignature (#15615)Felix Lange2017-12-062-0/+78
| | | | | | | 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-284-58/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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-232-8/+22
|
* crypto/secp256k1: update to github.com/bitcoin-core/secp256k1 @ 9d560f9 (#3544)Felix Lange2017-01-1378-1990/+8229
| | | | | - 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 ineffectual assignments and remove uses of crypto.Sha3Felix Lange2017-01-091-7/+2
| | | | | go get github.com/gordonklaus/ineffassign ineffassign .
* all: fix spelling errorsPéter Szilágyi2017-01-073-4/+4
|
* 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-042-33/+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-305-6/+454
| | | | thanks to Felix Lange (fjl) for help with design & impl
* core/secp256k1: update libsecp256k1 Go wrapper and testsGustav Simonsson2015-11-302-18/+17
|
* 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-172-0/+39
|
* crypto/secp256k1: verify recovery ID before calling libsecp256k1Felix Lange2015-11-172-79/+48
| | | | | | | | 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-092-248/+247
|
* Update libsecp256k1Gustav Simonsson2015-09-2886-2773/+6280
|
* FreeBSD supportFynn2015-07-291-0/+2
|
* all: fix license headers one more timeFelix Lange2015-07-243-3/+3
| | | | I forgot to update one instance of "go-ethereum" in commit 3f047be5a.
* all: update license headers to distiguish GPL/LGPLFelix Lange2015-07-233-12/+12
| | | | | 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-073-0/+48
|
* Remove the awesome, ever misunderstood entropy mixingGustav Simonsson2015-05-122-12/+12
|
* doc: crypto/secp256k1 GMP dependency package name.Noel Maersk2015-04-231-1/+4
| | | | | | | | | | | | | | Linux build documentation is mostly geared towards Ubuntu 14.04 (LTS). Appropriate package is called `libgmp-dev` there. Note that on pristine installations building `geth` with godep will fail because this header is missing. This is not documented in the top-level README, but is on the wiki: https://github.com/ethereum/go-ethereum/wiki/Installation-Instructions-for-Ubuntu#building-geth-command-line-client That page recommends `libgmp3-dev`, which ATM provides same version as `libgmp-dev`.
* 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
|
* Update bitcoin secp256k1 libGustav Simonsson2015-04-0774-4960/+10508
|
* Added invalid sec key testobscuren2015-02-161-1/+10
|
* Validate seckey when generating pub keyobscuren2015-02-151-1/+6
|
* Remove secp256_rand.go and update testsGustav Simonsson2015-02-142-107/+11
|
* 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 nobscuren2015-02-011-1/+2
|
* Fixed Sign nonceobscuren2015-02-012-6/+2
|
* Moved `obscuren` secp256k1-goobscuren2015-01-2247-0/+6427