diff options
author | Felix Lange <fjl@users.noreply.github.com> | 2017-02-18 16:24:12 +0800 |
---|---|---|
committer | Jeffrey Wilcke <jeffrey@ethereum.org> | 2017-02-18 16:24:12 +0800 |
commit | 9b0af513867fad4aeb3516e4711dd0ea4f5bc90c (patch) | |
tree | b37d808d57873c6aec550431534e26602dfd0475 /p2p | |
parent | bf21549faa7de6e2b920855468b14856c6f503c4 (diff) | |
download | go-tangerine-9b0af513867fad4aeb3516e4711dd0ea4f5bc90c.tar.gz go-tangerine-9b0af513867fad4aeb3516e4711dd0ea4f5bc90c.tar.zst go-tangerine-9b0af513867fad4aeb3516e4711dd0ea4f5bc90c.zip |
crypto: add btcec fallback for sign/recover without cgo (#3680)
* 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
Diffstat (limited to 'p2p')
-rw-r--r-- | p2p/discover/node.go | 2 | ||||
-rw-r--r-- | p2p/discv5/crypto.go | 31 | ||||
-rw-r--r-- | p2p/discv5/node.go | 2 | ||||
-rw-r--r-- | p2p/rlpx.go | 4 |
4 files changed, 4 insertions, 35 deletions
diff --git a/p2p/discover/node.go b/p2p/discover/node.go index 8b1062d87..f0262762e 100644 --- a/p2p/discover/node.go +++ b/p2p/discover/node.go @@ -259,7 +259,7 @@ func PubkeyID(pub *ecdsa.PublicKey) NodeID { // Pubkey returns the public key represented by the node ID. // It returns an error if the ID is not a point on the curve. func (id NodeID) Pubkey() (*ecdsa.PublicKey, error) { - p := &ecdsa.PublicKey{Curve: secp256k1.S256(), X: new(big.Int), Y: new(big.Int)} + p := &ecdsa.PublicKey{Curve: crypto.S256(), X: new(big.Int), Y: new(big.Int)} half := len(id) / 2 p.X.SetBytes(id[:half]) p.Y.SetBytes(id[half:]) diff --git a/p2p/discv5/crypto.go b/p2p/discv5/crypto.go deleted file mode 100644 index 48b2a8a72..000000000 --- a/p2p/discv5/crypto.go +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright 2016 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>. - -package discv5 - -import ( - //"github.com/btcsuite/btcd/btcec" - "github.com/ethereum/go-ethereum/crypto/secp256k1" -) - -func S256() *secp256k1.BitCurve { - return secp256k1.S256() -} - -// This version should be used for NaCl compilation -/*func S256() *btcec.KoblitzCurve { - return S256() -}*/ diff --git a/p2p/discv5/node.go b/p2p/discv5/node.go index cfc833ff5..c99b4da14 100644 --- a/p2p/discv5/node.go +++ b/p2p/discv5/node.go @@ -297,7 +297,7 @@ func PubkeyID(pub *ecdsa.PublicKey) NodeID { // Pubkey returns the public key represented by the node ID. // It returns an error if the ID is not a point on the curve. func (id NodeID) Pubkey() (*ecdsa.PublicKey, error) { - p := &ecdsa.PublicKey{Curve: S256(), X: new(big.Int), Y: new(big.Int)} + p := &ecdsa.PublicKey{Curve: crypto.S256(), X: new(big.Int), Y: new(big.Int)} half := len(id) / 2 p.X.SetBytes(id[:half]) p.Y.SetBytes(id[half:]) diff --git a/p2p/rlpx.go b/p2p/rlpx.go index c6fd841f7..b2775cacd 100644 --- a/p2p/rlpx.go +++ b/p2p/rlpx.go @@ -303,7 +303,7 @@ func (h *encHandshake) makeAuthMsg(prv *ecdsa.PrivateKey, token []byte) (*authMs return nil, err } // Generate random keypair to for ECDH. - h.randomPrivKey, err = ecies.GenerateKey(rand.Reader, secp256k1.S256(), nil) + h.randomPrivKey, err = ecies.GenerateKey(rand.Reader, crypto.S256(), nil) if err != nil { return nil, err } @@ -381,7 +381,7 @@ func (h *encHandshake) handleAuthMsg(msg *authMsgV4, prv *ecdsa.PrivateKey) erro // Generate random keypair for ECDH. // If a private key is already set, use it instead of generating one (for testing). if h.randomPrivKey == nil { - h.randomPrivKey, err = ecies.GenerateKey(rand.Reader, secp256k1.S256(), nil) + h.randomPrivKey, err = ecies.GenerateKey(rand.Reader, crypto.S256(), nil) if err != nil { return err } |