remove elliptic.P224 usage

Fedora/RedHat distros comply with US patent law and remove this curve,
which makes it impossible to run ethereum with distro provided Golang.

File crypto/ecies/README claims it is unsupported anyway.
This commit is contained in:
Pavol Rusnak 2015-07-30 11:26:39 +02:00
parent e7f4232b10
commit 3f07afbbd2
2 changed files with 1 additions and 14 deletions

View File

@ -81,11 +81,9 @@ func doScheme(base, v []int) asn1.ObjectIdentifier {
type secgNamedCurve asn1.ObjectIdentifier type secgNamedCurve asn1.ObjectIdentifier
var ( var (
secgNamedCurveP224 = secgNamedCurve{1, 3, 132, 0, 33}
secgNamedCurveP256 = secgNamedCurve{1, 2, 840, 10045, 3, 1, 7} secgNamedCurveP256 = secgNamedCurve{1, 2, 840, 10045, 3, 1, 7}
secgNamedCurveP384 = secgNamedCurve{1, 3, 132, 0, 34} secgNamedCurveP384 = secgNamedCurve{1, 3, 132, 0, 34}
secgNamedCurveP521 = secgNamedCurve{1, 3, 132, 0, 35} secgNamedCurveP521 = secgNamedCurve{1, 3, 132, 0, 35}
rawCurveP224 = []byte{6, 5, 4, 3, 1, 2, 9, 4, 0, 3, 3}
rawCurveP256 = []byte{6, 8, 4, 2, 1, 3, 4, 7, 2, 2, 0, 6, 6, 1, 3, 1, 7} rawCurveP256 = []byte{6, 8, 4, 2, 1, 3, 4, 7, 2, 2, 0, 6, 6, 1, 3, 1, 7}
rawCurveP384 = []byte{6, 5, 4, 3, 1, 2, 9, 4, 0, 3, 4} rawCurveP384 = []byte{6, 5, 4, 3, 1, 2, 9, 4, 0, 3, 4}
rawCurveP521 = []byte{6, 5, 4, 3, 1, 2, 9, 4, 0, 3, 5} rawCurveP521 = []byte{6, 5, 4, 3, 1, 2, 9, 4, 0, 3, 5}
@ -93,8 +91,6 @@ var (
func rawCurve(curve elliptic.Curve) []byte { func rawCurve(curve elliptic.Curve) []byte {
switch curve { switch curve {
case elliptic.P224():
return rawCurveP224
case elliptic.P256(): case elliptic.P256():
return rawCurveP256 return rawCurveP256
case elliptic.P384(): case elliptic.P384():
@ -120,8 +116,6 @@ func (curve secgNamedCurve) Equal(curve2 secgNamedCurve) bool {
func namedCurveFromOID(curve secgNamedCurve) elliptic.Curve { func namedCurveFromOID(curve secgNamedCurve) elliptic.Curve {
switch { switch {
case curve.Equal(secgNamedCurveP224):
return elliptic.P224()
case curve.Equal(secgNamedCurveP256): case curve.Equal(secgNamedCurveP256):
return elliptic.P256() return elliptic.P256()
case curve.Equal(secgNamedCurveP384): case curve.Equal(secgNamedCurveP384):
@ -134,8 +128,6 @@ func namedCurveFromOID(curve secgNamedCurve) elliptic.Curve {
func oidFromNamedCurve(curve elliptic.Curve) (secgNamedCurve, bool) { func oidFromNamedCurve(curve elliptic.Curve) (secgNamedCurve, bool) {
switch curve { switch curve {
case elliptic.P224():
return secgNamedCurveP224, true
case elliptic.P256(): case elliptic.P256():
return secgNamedCurveP256, true return secgNamedCurveP256, true
case elliptic.P384(): case elliptic.P384():
@ -248,7 +240,7 @@ var idEcPublicKeySupplemented = doScheme(idPublicKeyType, []int{0})
func curveToRaw(curve elliptic.Curve) (rv asn1.RawValue, ok bool) { func curveToRaw(curve elliptic.Curve) (rv asn1.RawValue, ok bool) {
switch curve { switch curve {
case elliptic.P224(), elliptic.P256(), elliptic.P384(), elliptic.P521(): case elliptic.P256(), elliptic.P384(), elliptic.P521():
raw := rawCurve(curve) raw := rawCurve(curve)
return asn1.RawValue{ return asn1.RawValue{
Tag: 30, Tag: 30,

View File

@ -407,11 +407,6 @@ type testCase struct {
} }
var testCases = []testCase{ var testCases = []testCase{
testCase{
Curve: elliptic.P224(),
Name: "P224",
Expected: false,
},
testCase{ testCase{
Curve: elliptic.P256(), Curve: elliptic.P256(),
Name: "P256", Name: "P256",