1- var bs58check = require ( 'bs58check' )
21var bcrypto = require ( './crypto' )
2+ var bs58check = require ( 'bs58check' )
33var ecdsa = require ( './ecdsa' )
44var ecurve = require ( 'ecurve' )
5- var NETWORKS = require ( './networks' )
65var randomBytes = require ( 'randombytes' )
76var typeforce = require ( 'typeforce' )
87var types = require ( './types' )
98
9+ var NETWORKS = require ( './networks' )
1010var BigInteger = require ( 'bigi' )
1111
12+ var secp256k1 = ecurve . getCurveByName ( 'secp256k1' )
13+
1214function ECPair ( d , Q , options ) {
13- options = options || { }
15+ if ( options ) {
16+ typeforce ( {
17+ compressed : types . maybe ( types . Boolean ) ,
18+ network : types . maybe ( types . Network )
19+ } , options )
20+ }
1421
15- typeforce ( {
16- compressed : types . maybe ( types . Boolean ) ,
17- network : types . maybe ( types . Network )
18- } , options )
22+ options = options || { }
1923
2024 if ( d ) {
2125 if ( d . signum ( ) <= 0 ) throw new Error ( 'Private key must be greater than 0' )
22- if ( d . compareTo ( ECPair . curve . n ) >= 0 ) throw new Error ( 'Private key must be less than the curve order' )
26+ if ( d . compareTo ( secp256k1 . n ) >= 0 ) throw new Error ( 'Private key must be less than the curve order' )
2327 if ( Q ) throw new TypeError ( 'Unexpected publicKey parameter' )
2428
2529 this . d = d
@@ -37,18 +41,15 @@ function ECPair (d, Q, options) {
3741Object . defineProperty ( ECPair . prototype , 'Q' , {
3842 get : function ( ) {
3943 if ( ! this . __Q && this . d ) {
40- this . __Q = ECPair . curve . G . multiply ( this . d )
44+ this . __Q = secp256k1 . G . multiply ( this . d )
4145 }
4246
4347 return this . __Q
4448 }
4549} )
4650
47- // Public access to secp256k1 curve
48- ECPair . curve = ecurve . getCurveByName ( 'secp256k1' )
49-
5051ECPair . fromPublicKeyBuffer = function ( buffer , network ) {
51- var Q = ecurve . Point . decodeFrom ( ECPair . curve , buffer )
52+ var Q = ecurve . Point . decodeFrom ( secp256k1 , buffer )
5253
5354 return new ECPair ( null , Q , {
5455 compressed : Q . compressed ,
@@ -108,7 +109,7 @@ ECPair.makeRandom = function (options) {
108109 typeforce ( types . Buffer256bit , buffer )
109110
110111 var d = BigInteger . fromBuffer ( buffer )
111- d = d . mod ( ECPair . curve . n )
112+ d = d . mod ( secp256k1 . n )
112113
113114 return new ECPair ( d , null , options )
114115}
@@ -147,11 +148,11 @@ ECPair.prototype.getPublicKeyBuffer = function () {
147148ECPair . prototype . sign = function ( hash ) {
148149 if ( ! this . d ) throw new Error ( 'Missing private key' )
149150
150- return ecdsa . sign ( ECPair . curve , hash , this . d )
151+ return ecdsa . sign ( secp256k1 , hash , this . d )
151152}
152153
153154ECPair . prototype . verify = function ( hash , signature ) {
154- return ecdsa . verify ( ECPair . curve , hash , signature , this . Q )
155+ return ecdsa . verify ( secp256k1 , hash , signature , this . Q )
155156}
156157
157158module . exports = ECPair
0 commit comments