From 5657dcf2aa0372b43985b4af6ccebae2e4bc4ebb Mon Sep 17 00:00:00 2001 From: Daniel Cousens Date: Tue, 29 Jul 2014 23:45:50 +1000 Subject: [PATCH] ecdsa: add improved test coverage for recoverPubKey --- test/fixtures/ecdsa.json | 52 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) diff --git a/test/fixtures/ecdsa.json b/test/fixtures/ecdsa.json index 8d2adf0..03a2687 100644 --- a/test/fixtures/ecdsa.json +++ b/test/fixtures/ecdsa.json @@ -73,9 +73,19 @@ ], "invalid": { "recoverPubKey": [ + { + "description": "Invalid r value (< 0)", + "exception": "Invalid r value", + "e": "01", + "signature": { + "r": "-01", + "s": "02" + }, + "i": 0 + }, { "description": "Invalid r value (== 0)", - "exception": "nR is not a valid curve point", + "exception": "Invalid r value", "e": "01", "signature": { "r": "00", @@ -83,6 +93,46 @@ }, "i": 0 }, + { + "description": "Invalid s value (< 0)", + "exception": "Invalid s value", + "e": "01", + "signature": { + "r": "02", + "s": "-01" + }, + "i": 0 + }, + { + "description": "Invalid s value (== 0)", + "exception": "Invalid s value", + "e": "01", + "signature": { + "r": "02", + "s": "00" + }, + "i": 0 + }, + { + "description": "Invalid r value (nR is infinity)", + "exception": "nR is not a valid curve point", + "e": "01", + "signature": { + "r": "fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141", + "s": "01" + }, + "i": 0 + }, + { + "description": "Invalid curve point", + "exception": "Point is not on the curve", + "e": "01", + "signature": { + "r": "99999999999999999999999999999999999999", + "s": "01" + }, + "i": 0 + }, { "description": "Invalid i value (> 3)", "exception": "Recovery param is more than two bits",