diff --git a/chaincfg/chainec/edwards.go b/chaincfg/chainec/edwards.go index a944deac..e2a16efd 100644 --- a/chaincfg/chainec/edwards.go +++ b/chaincfg/chainec/edwards.go @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2016 The Decred developers +// Copyright (c) 2015-2019 The Decred developers // Use of this source code is governed by an ISC // license that can be found in the LICENSE file. @@ -9,7 +9,7 @@ import ( "io" "math/big" - "github.com/decred/dcrd/dcrec/edwards" + "github.com/decred/dcrd/dcrec/edwards/v2" ) type edwardsDSA struct { @@ -184,14 +184,14 @@ func newEdwardsDSA() DSA { // Private keys newPrivateKey: func(d *big.Int) PrivateKey { - pk := edwards.NewPrivateKey(edwardsCurve, d) + pk := edwards.NewPrivateKey(d) if pk != nil { return PrivateKey(*pk) } return nil }, privKeyFromBytes: func(pk []byte) (PrivateKey, PublicKey) { - priv, pub := edwards.PrivKeyFromBytes(edwardsCurve, pk) + priv, pub := edwards.PrivKeyFromBytes(pk) if priv == nil { return nil, nil } @@ -203,7 +203,7 @@ func newEdwardsDSA() DSA { return tpriv, tpub }, privKeyFromScalar: func(pk []byte) (PrivateKey, PublicKey) { - priv, pub, err := edwards.PrivKeyFromScalar(edwardsCurve, pk) + priv, pub, err := edwards.PrivKeyFromScalar(pk) if err != nil { return nil, nil } @@ -223,12 +223,12 @@ func newEdwardsDSA() DSA { // Public keys newPublicKey: func(x *big.Int, y *big.Int) PublicKey { - pk := edwards.NewPublicKey(edwardsCurve, x, y) + pk := edwards.NewPublicKey(x, y) tpk := PublicKey(*pk) return tpk }, parsePubKey: func(pubKeyStr []byte) (PublicKey, error) { - pk, err := edwards.ParsePubKey(edwardsCurve, pubKeyStr) + pk, err := edwards.ParsePubKey(pubKeyStr) if err != nil { return nil, err } @@ -252,7 +252,7 @@ func newEdwardsDSA() DSA { return ts }, parseDERSignature: func(sigStr []byte) (Signature, error) { - sig, err := edwards.ParseDERSignature(edwardsCurve, sigStr) + sig, err := edwards.ParseDERSignature(sigStr) if err != nil { return nil, err } @@ -260,7 +260,7 @@ func newEdwardsDSA() DSA { return ts, err }, parseSignature: func(sigStr []byte) (Signature, error) { - sig, err := edwards.ParseSignature(edwardsCurve, sigStr) + sig, err := edwards.ParseSignature(sigStr) if err != nil { return nil, err } @@ -285,7 +285,7 @@ func newEdwardsDSA() DSA { if !ok { return nil, nil, errors.New("wrong type") } - r, s, err = edwards.Sign(edwardsCurve, &epriv, hash) + r, s, err = edwards.Sign(&epriv, hash) return }, verify: func(pub PublicKey, hash []byte, r, s *big.Int) bool { @@ -301,25 +301,23 @@ func newEdwardsDSA() DSA { // Symmetric cipher encryption generateSharedSecret: func(privkey []byte, x, y *big.Int) []byte { - privKeyLocal, _, err := edwards.PrivKeyFromScalar(edwardsCurve, - privkey) + privKeyLocal, _, err := edwards.PrivKeyFromScalar(privkey) if err != nil { return nil } - pubkey := edwards.NewPublicKey(edwardsCurve, x, y) + pubkey := edwards.NewPublicKey(x, y) return edwards.GenerateSharedSecret(privKeyLocal, pubkey) }, encrypt: func(x, y *big.Int, in []byte) ([]byte, error) { - pubkey := edwards.NewPublicKey(edwardsCurve, x, y) - return edwards.Encrypt(edwardsCurve, pubkey, in) + pubkey := edwards.NewPublicKey(x, y) + return edwards.Encrypt(pubkey, in) }, decrypt: func(privkey []byte, in []byte) ([]byte, error) { - privKeyLocal, _, err := edwards.PrivKeyFromScalar(edwardsCurve, - privkey) + privKeyLocal, _, err := edwards.PrivKeyFromScalar(privkey) if err != nil { return nil, err } - return edwards.Decrypt(edwardsCurve, privKeyLocal, in) + return edwards.Decrypt(privKeyLocal, in) }, } diff --git a/chaincfg/go.mod b/chaincfg/go.mod index f83ec855..058ce72b 100644 --- a/chaincfg/go.mod +++ b/chaincfg/go.mod @@ -5,7 +5,7 @@ go 1.11 require ( github.com/davecgh/go-spew v1.1.1 github.com/decred/dcrd/chaincfg/chainhash v1.0.2 - github.com/decred/dcrd/dcrec/edwards v1.0.0 + github.com/decred/dcrd/dcrec/edwards/v2 v2.0.0 github.com/decred/dcrd/dcrec/secp256k1/v2 v2.0.0 github.com/decred/dcrd/wire v1.2.0 ) diff --git a/chaincfg/go.sum b/chaincfg/go.sum index fd26e5e1..8c1f85d6 100644 --- a/chaincfg/go.sum +++ b/chaincfg/go.sum @@ -12,8 +12,8 @@ github.com/decred/dcrd/chaincfg/chainhash v1.0.2 h1:rt5Vlq/jM3ZawwiacWjPa+smINyL github.com/decred/dcrd/chaincfg/chainhash v1.0.2/go.mod h1:BpbrGgrPTr3YJYRN3Bm+D9NuaFd+zGyNeIKgrhCXK60= github.com/decred/dcrd/crypto/blake256 v1.0.0 h1:/8DMNYp9SGi5f0w7uCm6d6M4OU2rGFK09Y2A4Xv7EE0= github.com/decred/dcrd/crypto/blake256 v1.0.0/go.mod h1:sQl2p6Y26YV+ZOcSTP6thNdn47hh8kt6rqSlvmrXFAc= -github.com/decred/dcrd/dcrec/edwards v1.0.0 h1:UDcPNzclKiJlWqV3x1Fl8xMCJrolo4PB4X9t8LwKDWU= -github.com/decred/dcrd/dcrec/edwards v1.0.0/go.mod h1:HblVh1OfMt7xSxUL1ufjToaEvpbjpWvvTAUx4yem8BI= +github.com/decred/dcrd/dcrec/edwards/v2 v2.0.0 h1:E5KszxGgpjpmW8vN811G6rBAZg0/S/DftdGqN4FW5x4= +github.com/decred/dcrd/dcrec/edwards/v2 v2.0.0/go.mod h1:d0H8xGMWbiIQP7gN3v2rByWUcuZPm9YsgmnfoxgbINc= github.com/decred/dcrd/dcrec/secp256k1/v2 v2.0.0 h1:3GIJYXQDAKpLEFriGFN8SbSffak10UXHGdIcFaMPykY= github.com/decred/dcrd/dcrec/secp256k1/v2 v2.0.0/go.mod h1:3s92l0paYkZoIHuj4X93Teg/HB7eGM9x/zokGw+u4mY= github.com/decred/dcrd/wire v1.2.0 h1:HqJVB7vcklIguzFWgRXw/WYCQ9cD3bUC5TKj53i1Hng= diff --git a/dcrutil/address.go b/dcrutil/address.go index 3b24bb09..1415dee2 100644 --- a/dcrutil/address.go +++ b/dcrutil/address.go @@ -13,7 +13,7 @@ import ( "github.com/decred/dcrd/chaincfg/v2/chainec" "github.com/decred/dcrd/crypto/ripemd160" "github.com/decred/dcrd/dcrec" - "github.com/decred/dcrd/dcrec/edwards" + "github.com/decred/dcrd/dcrec/edwards/v2" "github.com/decred/dcrd/dcrec/secp256k1/v2" "github.com/decred/dcrd/dcrec/secp256k1/v2/schnorr" ) @@ -480,7 +480,7 @@ type AddressEdwardsPubKey struct { // pay-to-pubkey address, using an Ed25519 pubkey. The serializedPubKey // parameter must be a valid 32 byte serialized public key. func NewAddressEdwardsPubKey(serializedPubKey []byte, net AddressParams) (*AddressEdwardsPubKey, error) { - pubKey, err := edwards.ParsePubKey(edwards.Edwards(), serializedPubKey) + pubKey, err := edwards.ParsePubKey(serializedPubKey) if err != nil { return nil, err } diff --git a/dcrutil/go.mod b/dcrutil/go.mod index 20524c62..33f0046e 100644 --- a/dcrutil/go.mod +++ b/dcrutil/go.mod @@ -9,7 +9,7 @@ require ( github.com/decred/dcrd/chaincfg/v2 v2.0.2 github.com/decred/dcrd/crypto/ripemd160 v1.0.0 github.com/decred/dcrd/dcrec v1.0.0 - github.com/decred/dcrd/dcrec/edwards v1.0.0 + github.com/decred/dcrd/dcrec/edwards/v2 v2.0.0 github.com/decred/dcrd/dcrec/secp256k1/v2 v2.0.0 github.com/decred/dcrd/wire v1.2.0 ) diff --git a/dcrutil/go.sum b/dcrutil/go.sum index 007e0c08..90b016a6 100644 --- a/dcrutil/go.sum +++ b/dcrutil/go.sum @@ -22,6 +22,8 @@ github.com/decred/dcrd/dcrec v1.0.0 h1:W+z6Es+Rai3MXYVoPAxYr5U1DGis0Co33scJ6uH2J github.com/decred/dcrd/dcrec v1.0.0/go.mod h1:HIaqbEJQ+PDzQcORxnqen5/V1FR3B4VpIfmePklt8Q8= github.com/decred/dcrd/dcrec/edwards v1.0.0 h1:UDcPNzclKiJlWqV3x1Fl8xMCJrolo4PB4X9t8LwKDWU= github.com/decred/dcrd/dcrec/edwards v1.0.0/go.mod h1:HblVh1OfMt7xSxUL1ufjToaEvpbjpWvvTAUx4yem8BI= +github.com/decred/dcrd/dcrec/edwards/v2 v2.0.0 h1:E5KszxGgpjpmW8vN811G6rBAZg0/S/DftdGqN4FW5x4= +github.com/decred/dcrd/dcrec/edwards/v2 v2.0.0/go.mod h1:d0H8xGMWbiIQP7gN3v2rByWUcuZPm9YsgmnfoxgbINc= github.com/decred/dcrd/dcrec/secp256k1 v1.0.1 h1:EFWVd1p0t0Y5tnsm/dJujgV0ORogRJ6vo7CMAjLseAc= github.com/decred/dcrd/dcrec/secp256k1 v1.0.1/go.mod h1:lhu4eZFSfTJWUnR3CFRcpD+Vta0KUAqnhTsTksHXgy0= github.com/decred/dcrd/dcrec/secp256k1/v2 v2.0.0 h1:3GIJYXQDAKpLEFriGFN8SbSffak10UXHGdIcFaMPykY= diff --git a/dcrutil/wif.go b/dcrutil/wif.go index f31f9704..19612710 100644 --- a/dcrutil/wif.go +++ b/dcrutil/wif.go @@ -14,7 +14,7 @@ import ( "github.com/decred/dcrd/chaincfg/chainhash" "github.com/decred/dcrd/chaincfg/v2/chainec" "github.com/decred/dcrd/dcrec" - "github.com/decred/dcrd/dcrec/edwards" + "github.com/decred/dcrd/dcrec/edwards/v2" "github.com/decred/dcrd/dcrec/secp256k1/v2" ) @@ -105,7 +105,7 @@ func DecodeWIF(wif string, net [2]byte) (*WIF, error) { ecType = dcrec.STEcdsaSecp256k1 case dcrec.STEd25519: privKeyBytes := decoded[3 : 3+edwards.PrivScalarSize] - privKey, _, _ = edwards.PrivKeyFromScalar(edwards.Edwards(), privKeyBytes) + privKey, _, _ = edwards.PrivKeyFromScalar(privKeyBytes) ecType = dcrec.STEd25519 case dcrec.STSchnorrSecp256k1: privKeyBytes := decoded[3 : 3+secp256k1.PrivKeyBytesLen] @@ -146,7 +146,7 @@ func (w *WIF) SerializePubKey() []byte { case dcrec.STEcdsaSecp256k1: pk = secp256k1.NewPublicKey(pkx, pky) case dcrec.STEd25519: - pk = edwards.NewPublicKey(edwards.Edwards(), pkx, pky) + pk = edwards.NewPublicKey(pkx, pky) case dcrec.STSchnorrSecp256k1: pk = secp256k1.NewPublicKey(pkx, pky) } diff --git a/dcrutil/wif_test.go b/dcrutil/wif_test.go index ecee37cc..b3a36554 100644 --- a/dcrutil/wif_test.go +++ b/dcrutil/wif_test.go @@ -10,7 +10,7 @@ import ( "github.com/decred/dcrd/chaincfg/v2/chainec" "github.com/decred/dcrd/dcrec" - "github.com/decred/dcrd/dcrec/edwards" + "github.com/decred/dcrd/dcrec/edwards/v2" "github.com/decred/dcrd/dcrec/secp256k1/v2" ) @@ -40,14 +40,14 @@ func TestEncodeDecodeWIF(t *testing.T) { 0x4e, 0x39, 0x6f, 0xb5, 0xdc, 0x29, 0x5f, 0xe9, 0x94, 0xb9, 0x67, 0x89, 0xb2, 0x1a, 0x03, 0x98}) case dcrec.STEd25519: - priv1, _, _ = edwards.PrivKeyFromScalar(edwards.Edwards(), + priv1, _, _ = edwards.PrivKeyFromScalar( []byte{ 0x0c, 0x28, 0xfc, 0xa3, 0x86, 0xc7, 0xa2, 0x27, 0x60, 0x0b, 0x2f, 0xe5, 0x0b, 0x7c, 0xae, 0x11, 0xec, 0x86, 0xd3, 0xbf, 0x1f, 0xbe, 0x47, 0x1b, 0xe8, 0x98, 0x27, 0xe1, 0x9d, 0x72, 0xaa, 0x1d}) - priv2, _, _ = edwards.PrivKeyFromScalar(edwards.Edwards(), + priv2, _, _ = edwards.PrivKeyFromScalar( []byte{ 0x0c, 0xa3, 0x5a, 0x14, 0x88, 0xfb, 0x97, 0xb6, 0xeb, 0x3f, 0xe6, 0xe9, 0xef, 0x2a, 0x25, 0x81, diff --git a/go.sum b/go.sum index 9cc15b6a..6d481337 100644 --- a/go.sum +++ b/go.sum @@ -23,6 +23,8 @@ github.com/decred/dcrd/crypto/ripemd160 v1.0.0 h1:MciTnR4NfBqDFRFjFkrn8WPLP4Vo7t github.com/decred/dcrd/crypto/ripemd160 v1.0.0/go.mod h1:F0H8cjIuWTRoixr/LM3REB8obcWkmYx0gbxpQWR8RPg= github.com/decred/dcrd/dcrec/edwards v1.0.0 h1:UDcPNzclKiJlWqV3x1Fl8xMCJrolo4PB4X9t8LwKDWU= github.com/decred/dcrd/dcrec/edwards v1.0.0/go.mod h1:HblVh1OfMt7xSxUL1ufjToaEvpbjpWvvTAUx4yem8BI= +github.com/decred/dcrd/dcrec/edwards/v2 v2.0.0 h1:E5KszxGgpjpmW8vN811G6rBAZg0/S/DftdGqN4FW5x4= +github.com/decred/dcrd/dcrec/edwards/v2 v2.0.0/go.mod h1:d0H8xGMWbiIQP7gN3v2rByWUcuZPm9YsgmnfoxgbINc= github.com/decred/dcrd/dcrec/secp256k1 v1.0.1/go.mod h1:lhu4eZFSfTJWUnR3CFRcpD+Vta0KUAqnhTsTksHXgy0= github.com/decred/dcrd/dcrec/secp256k1 v1.0.2 h1:awk7sYJ4pGWmtkiGHFfctztJjHMKGLV8jctGQhAbKe0= github.com/decred/dcrd/dcrec/secp256k1 v1.0.2/go.mod h1:CHTUIVfmDDd0KFVFpNX1pFVCBUegxW387nN0IGwNKR0= diff --git a/txscript/go.mod b/txscript/go.mod index b634eaef..daca3df4 100644 --- a/txscript/go.mod +++ b/txscript/go.mod @@ -7,7 +7,7 @@ require ( github.com/decred/dcrd/chaincfg/v2 v2.0.2 github.com/decred/dcrd/crypto/ripemd160 v1.0.0 github.com/decred/dcrd/dcrec v1.0.0 - github.com/decred/dcrd/dcrec/edwards v1.0.0 + github.com/decred/dcrd/dcrec/edwards/v2 v2.0.0 github.com/decred/dcrd/dcrec/secp256k1/v2 v2.0.0 github.com/decred/dcrd/dcrutil/v2 v2.0.0 github.com/decred/dcrd/wire v1.2.0 diff --git a/txscript/go.sum b/txscript/go.sum index 289fc132..34df10df 100644 --- a/txscript/go.sum +++ b/txscript/go.sum @@ -20,6 +20,8 @@ github.com/decred/dcrd/dcrec v1.0.0 h1:W+z6Es+Rai3MXYVoPAxYr5U1DGis0Co33scJ6uH2J github.com/decred/dcrd/dcrec v1.0.0/go.mod h1:HIaqbEJQ+PDzQcORxnqen5/V1FR3B4VpIfmePklt8Q8= github.com/decred/dcrd/dcrec/edwards v1.0.0 h1:UDcPNzclKiJlWqV3x1Fl8xMCJrolo4PB4X9t8LwKDWU= github.com/decred/dcrd/dcrec/edwards v1.0.0/go.mod h1:HblVh1OfMt7xSxUL1ufjToaEvpbjpWvvTAUx4yem8BI= +github.com/decred/dcrd/dcrec/edwards/v2 v2.0.0 h1:E5KszxGgpjpmW8vN811G6rBAZg0/S/DftdGqN4FW5x4= +github.com/decred/dcrd/dcrec/edwards/v2 v2.0.0/go.mod h1:d0H8xGMWbiIQP7gN3v2rByWUcuZPm9YsgmnfoxgbINc= github.com/decred/dcrd/dcrec/secp256k1 v1.0.2 h1:awk7sYJ4pGWmtkiGHFfctztJjHMKGLV8jctGQhAbKe0= github.com/decred/dcrd/dcrec/secp256k1 v1.0.2/go.mod h1:CHTUIVfmDDd0KFVFpNX1pFVCBUegxW387nN0IGwNKR0= github.com/decred/dcrd/dcrec/secp256k1/v2 v2.0.0 h1:3GIJYXQDAKpLEFriGFN8SbSffak10UXHGdIcFaMPykY= diff --git a/txscript/opcode.go b/txscript/opcode.go index 40f90533..763eeba3 100644 --- a/txscript/opcode.go +++ b/txscript/opcode.go @@ -17,7 +17,7 @@ import ( "github.com/decred/dcrd/chaincfg/chainhash" "github.com/decred/dcrd/crypto/ripemd160" "github.com/decred/dcrd/dcrec" - "github.com/decred/dcrd/dcrec/edwards" + "github.com/decred/dcrd/dcrec/edwards/v2" "github.com/decred/dcrd/dcrec/secp256k1/v2" "github.com/decred/dcrd/dcrec/secp256k1/v2/schnorr" "github.com/decred/dcrd/wire" @@ -2849,12 +2849,12 @@ func opcodeCheckSigAlt(op *opcode, data []byte, vm *Engine) error { // Get the public key from bytes. switch sigType { case dcrec.STEd25519: - pubKeyEd, err := edwards.ParsePubKey(edwards.Edwards(), pkBytes) + pubKeyEd, err := edwards.ParsePubKey(pkBytes) if err != nil { vm.dstack.PushBool(false) return nil } - sigEd, err := edwards.ParseSignature(edwards.Edwards(), sigBytes) + sigEd, err := edwards.ParseSignature(sigBytes) if err != nil { vm.dstack.PushBool(false) return nil