diff --git a/src/ecdsa.js b/src/ecdsa.js index 549eedb..0a07412 100644 --- a/src/ecdsa.js +++ b/src/ecdsa.js @@ -75,6 +75,10 @@ function deterministicGenerateK (curve, hash, d, checkSig) { } function sign (curve, hash, d) { + typeForce('Curve', curve) + typeForce('Buffer', hash) + typeForce('BigInteger', d) + var e = BigInteger.fromBuffer(hash) var n = curve.n var G = curve.G @@ -105,6 +109,11 @@ function sign (curve, hash, d) { } function verify (curve, hash, signature, Q) { + typeForce('Curve', curve) + typeForce('Buffer', hash) + typeForce('ECSignature', signature) + typeForce('Point', Q) + var n = curve.n var G = curve.G @@ -153,6 +162,10 @@ function verify (curve, hash, signature, Q) { * http://www.secg.org/download/aid-780/sec1-v2.pdf */ function recoverPubKey (curve, e, signature, i) { + typeForce('Curve', curve) + typeForce('BigInteger', e) + typeForce('ECSignature', signature) + typeForce('Number', i) assert.strictEqual(i & 3, i, 'Recovery param is more than two bits') var n = curve.n @@ -206,6 +219,11 @@ function recoverPubKey (curve, e, signature, i) { * that resulted in a successful pubkey recovery. */ function calcPubKeyRecoveryParam (curve, e, signature, Q) { + typeForce('Curve', curve) + typeForce('BigInteger', e) + typeForce('ECSignature', signature) + typeForce('Point', Q) + for (var i = 0; i < 4; i++) { var Qprime = recoverPubKey(curve, e, signature, i)