test 0 length numbers (disallowed) and coordinates of 0 (also)
This commit is contained in:
parent
13cf6091e6
commit
031437decf
2 changed files with 49 additions and 4 deletions
|
@ -205,6 +205,51 @@ var signatureTests = []signatureTest{
|
|||
},
|
||||
isValid: false,
|
||||
},
|
||||
signatureTest{
|
||||
name: "0 len X.",
|
||||
sig: []byte{0x30, 0x24, 0x02, 0x00, 0x02, 0x20, 0x18, 0x15,
|
||||
0x22, 0xec, 0x8e, 0xca, 0x07, 0xde, 0x48, 0x60, 0xa4,
|
||||
0xac, 0xdd, 0x12, 0x90, 0x9d, 0x83, 0x1c, 0xc5, 0x6c,
|
||||
0xbb, 0xac, 0x46, 0x22, 0x08, 0x22, 0x21, 0xa8, 0x76,
|
||||
0x8d, 0x1d, 0x09,
|
||||
},
|
||||
isValid: false,
|
||||
},
|
||||
signatureTest{
|
||||
name: "0 len Y.",
|
||||
sig: []byte{0x30, 0x24, 0x02, 0x20, 0x4e, 0x45, 0xe1, 0x69,
|
||||
0x32, 0xb8, 0xaf, 0x51, 0x49, 0x61, 0xa1, 0xd3, 0xa1,
|
||||
0xa2, 0x5f, 0xdf, 0x3f, 0x4f, 0x77, 0x32, 0xe9, 0xd6,
|
||||
0x24, 0xc6, 0xc6, 0x15, 0x48, 0xab, 0x5f, 0xb8, 0xcd,
|
||||
0x41, 0x02, 0x00,
|
||||
},
|
||||
isValid: false,
|
||||
},
|
||||
// We don't test for negative numbers here because there isn't a way
|
||||
// that is the same between openssl and go that will mark a number as
|
||||
// negative. The Go ASN.1 parser marks numbers as negative when openssl
|
||||
// does not (it doesn't handle negative numbers that I can tell at all.
|
||||
// therefore we only check for the coordinates being zero.
|
||||
signatureTest{
|
||||
name: "X == 0",
|
||||
sig: []byte{0x30, 0x25, 0x02, 0x01, 0x00, 0x02, 0x20, 0x18,
|
||||
0x15, 0x22, 0xec, 0x8e, 0xca, 0x07, 0xde, 0x48, 0x60,
|
||||
0xa4, 0xac, 0xdd, 0x12, 0x90, 0x9d, 0x83, 0x1c, 0xc5,
|
||||
0x6c, 0xbb, 0xac, 0x46, 0x22, 0x08, 0x22, 0x21, 0xa8,
|
||||
0x76, 0x8d, 0x1d, 0x09,
|
||||
},
|
||||
isValid: false,
|
||||
},
|
||||
signatureTest{
|
||||
name: "Y == 0.",
|
||||
sig: []byte{0x30, 0x25, 0x02, 0x20, 0x4e, 0x45, 0xe1, 0x69,
|
||||
0x32, 0xb8, 0xaf, 0x51, 0x49, 0x61, 0xa1, 0xd3, 0xa1,
|
||||
0xa2, 0x5f, 0xdf, 0x3f, 0x4f, 0x77, 0x32, 0xe9, 0xd6,
|
||||
0x24, 0xc6, 0xc6, 0x15, 0x48, 0xab, 0x5f, 0xb8, 0xcd,
|
||||
0x41, 0x02, 0x01, 0x00,
|
||||
},
|
||||
isValid: false,
|
||||
},
|
||||
}
|
||||
|
||||
func TestSignatures(t *testing.T) {
|
||||
|
|
|
@ -1,20 +1,20 @@
|
|||
|
||||
github.com/conformal/btcec/signature.go ParseSignature 100.00% (41/41)
|
||||
github.com/conformal/btcec/btcec.go KoblitzCurve.doubleJacobian 100.00% (21/21)
|
||||
github.com/conformal/btcec/btcec.go KoblitzCurve.ScalarMult 100.00% (9/9)
|
||||
github.com/conformal/btcec/btcec.go KoblitzCurve.IsOnCurve 100.00% (7/7)
|
||||
github.com/conformal/btcec/btcec.go initS256 100.00% (7/7)
|
||||
github.com/conformal/btcec/btcec.go KoblitzCurve.IsOnCurve 100.00% (7/7)
|
||||
github.com/conformal/btcec/btcec.go zForAffine 100.00% (4/4)
|
||||
github.com/conformal/btcec/btcec.go KoblitzCurve.QPlus1Div4 100.00% (3/3)
|
||||
github.com/conformal/btcec/btcec.go KoblitzCurve.Add 100.00% (3/3)
|
||||
github.com/conformal/btcec/btcec.go KoblitzCurve.QPlus1Div4 100.00% (3/3)
|
||||
github.com/conformal/btcec/btcec.go S256 100.00% (2/2)
|
||||
github.com/conformal/btcec/btcec.go KoblitzCurve.Params 100.00% (1/1)
|
||||
github.com/conformal/btcec/btcec.go KoblitzCurve.ScalarBaseMult 100.00% (1/1)
|
||||
github.com/conformal/btcec/btcec.go initAll 100.00% (1/1)
|
||||
github.com/conformal/btcec/pubkey.go isOdd 100.00% (1/1)
|
||||
github.com/conformal/btcec/pubkey.go ParsePubKey 96.88% (31/32)
|
||||
github.com/conformal/btcec/signature.go ParseSignature 95.12% (39/41)
|
||||
github.com/conformal/btcec/btcec.go KoblitzCurve.addJacobian 91.67% (55/60)
|
||||
github.com/conformal/btcec/btcec.go KoblitzCurve.affineFromJacobian 90.00% (9/10)
|
||||
github.com/conformal/btcec/btcec.go KoblitzCurve.Double 0.00% (0/2)
|
||||
github.com/conformal/btcec ------------------------------- 94.63% (194/205)
|
||||
github.com/conformal/btcec ------------------------------- 95.61% (196/205)
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue