From 3f37e881dcdaf7ac3bd7cf6451de9067065e0505 Mon Sep 17 00:00:00 2001 From: "John C. Vernaleo" Date: Wed, 20 Nov 2013 15:34:37 -0500 Subject: [PATCH] Remove workaround for certs on go1.1.2. btcd now requires go1.2. A note to that effect is in README.md. --- README.md | 2 ++ ofc.go | 60 ---------------------------------------------------- rpcserver.go | 2 +- 3 files changed, 3 insertions(+), 61 deletions(-) delete mode 100644 ofc.go diff --git a/README.md b/README.md index 351f6bc9f..fa3757635 100644 --- a/README.md +++ b/README.md @@ -35,6 +35,8 @@ https://github.com/conformal/btcd/releases - Install Go according to the installation instructions here: http://golang.org/doc/install + btcd requires features only available in go1.2 or later. At + present, that means you must install go1.2rc5 or later. - Run the following command to obtain btcd, all dependencies, and install it: ```$ go get github.com/conformal/btcd``` diff --git a/ofc.go b/ofc.go deleted file mode 100644 index 6efd5fa8c..000000000 --- a/ofc.go +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the Golang LICENSE file. - -package main - -import ( - "crypto/ecdsa" - "crypto/elliptic" - "encoding/asn1" - "errors" -) - -// ecPrivateKey reflects an ASN.1 Elliptic Curve Private Key Structure. -// References: -// RFC5915 -// SEC1 - http://www.secg.org/download/aid-780/sec1-v2.pdf -// Per RFC5915 the NamedCurveOID is marked as ASN.1 OPTIONAL, however in -// most cases it is not. -type ecPrivateKey struct { - Version int - PrivateKey []byte - NamedCurveOID asn1.ObjectIdentifier `asn1:"optional,explicit,tag:0"` - PublicKey asn1.BitString `asn1:"optional,explicit,tag:1"` -} - -var ( - oidNamedCurveP224 = asn1.ObjectIdentifier{1, 3, 132, 0, 33} - oidNamedCurveP256 = asn1.ObjectIdentifier{1, 2, 840, 10045, 3, 1, 7} - oidNamedCurveP384 = asn1.ObjectIdentifier{1, 3, 132, 0, 34} - oidNamedCurveP521 = asn1.ObjectIdentifier{1, 3, 132, 0, 35} -) - -func oidFromNamedCurve(curve elliptic.Curve) (asn1.ObjectIdentifier, bool) { - switch curve { - case elliptic.P224(): - return oidNamedCurveP224, true - case elliptic.P256(): - return oidNamedCurveP256, true - case elliptic.P384(): - return oidNamedCurveP384, true - case elliptic.P521(): - return oidNamedCurveP521, true - } - - return nil, false -} - -func MarshalECPrivateKey(key *ecdsa.PrivateKey) ([]byte, error) { - oid, ok := oidFromNamedCurve(key.Curve) - if !ok { - return nil, errors.New("x509: unknown elliptic curve") - } - return asn1.Marshal(ecPrivateKey{ - Version: 1, - PrivateKey: key.D.Bytes(), - NamedCurveOID: oid, - PublicKey: asn1.BitString{Bytes: elliptic.Marshal(key.Curve, key.X, key.Y)}, - }) -} diff --git a/rpcserver.go b/rpcserver.go index 67fe658a9..e383884b5 100644 --- a/rpcserver.go +++ b/rpcserver.go @@ -410,7 +410,7 @@ func genKey(key, cert string) error { os.Remove(cert) return err } - keybytes, err := MarshalECPrivateKey(priv) + keybytes, err := x509.MarshalECPrivateKey(priv) if err != nil { os.Remove(key) os.Remove(cert)