@@ -75,6 +75,10 @@ function deterministicGenerateK (curve, hash, d, checkSig) {
7575}
7676
7777function sign ( curve , hash , d ) {
78+ typeForce ( 'Curve' , curve )
79+ typeForce ( 'Buffer' , hash )
80+ typeForce ( 'BigInteger' , d )
81+
7882 var e = BigInteger . fromBuffer ( hash )
7983 var n = curve . n
8084 var G = curve . G
@@ -105,6 +109,11 @@ function sign (curve, hash, d) {
105109}
106110
107111function verify ( curve , hash , signature , Q ) {
112+ typeForce ( 'Curve' , curve )
113+ typeForce ( 'Buffer' , hash )
114+ typeForce ( 'ECSignature' , signature )
115+ typeForce ( 'Point' , Q )
116+
108117 var n = curve . n
109118 var G = curve . G
110119
@@ -153,6 +162,10 @@ function verify (curve, hash, signature, Q) {
153162 * http://www.secg.org/download/aid-780/sec1-v2.pdf
154163 */
155164function recoverPubKey ( curve , e , signature , i ) {
165+ typeForce ( 'Curve' , curve )
166+ typeForce ( 'BigInteger' , e )
167+ typeForce ( 'ECSignature' , signature )
168+ typeForce ( 'Number' , i )
156169 assert . strictEqual ( i & 3 , i , 'Recovery param is more than two bits' )
157170
158171 var n = curve . n
@@ -206,6 +219,11 @@ function recoverPubKey (curve, e, signature, i) {
206219 * that resulted in a successful pubkey recovery.
207220 */
208221function calcPubKeyRecoveryParam ( curve , e , signature , Q ) {
222+ typeForce ( 'Curve' , curve )
223+ typeForce ( 'BigInteger' , e )
224+ typeForce ( 'ECSignature' , signature )
225+ typeForce ( 'Point' , Q )
226+
209227 for ( var i = 0 ; i < 4 ; i ++ ) {
210228 var Qprime = recoverPubKey ( curve , e , signature , i )
211229
0 commit comments