@airgap/coinlib-core 0.13.46 → 0.13.47

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. package/dependencies/src/axios-0.33.0/index.d.ts +345 -0
  2. package/dependencies/src/axios-0.33.0/lib/adapters/http.js +771 -0
  3. package/dependencies/src/axios-0.33.0/lib/adapters/xhr.js +305 -0
  4. package/dependencies/src/{axios-0.19.0 → axios-0.33.0}/lib/axios.js +22 -7
  5. package/dependencies/src/axios-0.33.0/lib/cancel/CancelToken.js +118 -0
  6. package/dependencies/src/axios-0.33.0/lib/cancel/CanceledError.js +24 -0
  7. package/dependencies/src/axios-0.33.0/lib/core/Axios.js +178 -0
  8. package/dependencies/src/axios-0.33.0/lib/core/AxiosError.js +173 -0
  9. package/dependencies/src/{axios-0.19.0 → axios-0.33.0}/lib/core/InterceptorManager.js +13 -2
  10. package/dependencies/src/axios-0.33.0/lib/core/buildFullPath.js +23 -0
  11. package/dependencies/src/{axios-0.19.0 → axios-0.33.0}/lib/core/dispatchRequest.js +34 -16
  12. package/dependencies/src/axios-0.33.0/lib/core/mergeConfig.js +117 -0
  13. package/dependencies/src/{axios-0.19.0 → axios-0.33.0}/lib/core/settle.js +4 -4
  14. package/dependencies/src/{axios-0.19.0 → axios-0.33.0}/lib/core/transformData.js +5 -2
  15. package/dependencies/src/axios-0.33.0/lib/defaults/index.js +181 -0
  16. package/dependencies/src/axios-0.33.0/lib/defaults/transitional.js +7 -0
  17. package/dependencies/src/axios-0.33.0/lib/env/classes/FormData.js +2 -0
  18. package/dependencies/src/axios-0.33.0/lib/env/data.js +3 -0
  19. package/dependencies/src/axios-0.33.0/lib/helpers/AxiosURLSearchParams.js +50 -0
  20. package/dependencies/src/axios-0.33.0/lib/helpers/bind.js +7 -0
  21. package/dependencies/src/axios-0.33.0/lib/helpers/buildURL.js +63 -0
  22. package/dependencies/src/{axios-0.19.0 → axios-0.33.0}/lib/helpers/combineURLs.js +1 -1
  23. package/dependencies/src/{axios-0.19.0 → axios-0.33.0}/lib/helpers/cookies.js +15 -2
  24. package/dependencies/src/axios-0.33.0/lib/helpers/defaultRedactKeys.js +3 -0
  25. package/dependencies/src/axios-0.33.0/lib/helpers/estimateDataURLDecodedBytes.js +79 -0
  26. package/dependencies/src/axios-0.33.0/lib/helpers/formDataToJSON.js +91 -0
  27. package/dependencies/src/axios-0.33.0/lib/helpers/fromDataURI.js +51 -0
  28. package/dependencies/src/{axios-0.19.0 → axios-0.33.0}/lib/helpers/isAbsoluteURL.js +1 -1
  29. package/dependencies/src/axios-0.33.0/lib/helpers/isAxiosError.js +13 -0
  30. package/dependencies/src/{axios-0.19.0 → axios-0.33.0}/lib/helpers/isURLSameOrigin.js +12 -12
  31. package/dependencies/src/axios-0.33.0/lib/helpers/null.js +2 -0
  32. package/dependencies/src/{axios-0.19.0 → axios-0.33.0}/lib/helpers/parseHeaders.js +2 -2
  33. package/dependencies/src/axios-0.33.0/lib/helpers/parseProtocol.js +6 -0
  34. package/dependencies/src/axios-0.33.0/lib/helpers/sanitizeHeaderValue.js +22 -0
  35. package/dependencies/src/axios-0.33.0/lib/helpers/shouldBypassProxy.js +187 -0
  36. package/dependencies/src/axios-0.33.0/lib/helpers/toFormData.js +212 -0
  37. package/dependencies/src/axios-0.33.0/lib/helpers/toURLEncodedForm.js +18 -0
  38. package/dependencies/src/axios-0.33.0/lib/helpers/validator.js +86 -0
  39. package/dependencies/src/axios-0.33.0/lib/platform/browser/classes/FormData.js +3 -0
  40. package/dependencies/src/axios-0.33.0/lib/platform/browser/classes/URLSearchParams.js +5 -0
  41. package/dependencies/src/axios-0.33.0/lib/platform/browser/index.js +11 -0
  42. package/dependencies/src/axios-0.33.0/lib/platform/index.js +3 -0
  43. package/dependencies/src/axios-0.33.0/lib/platform/node/classes/FormData.js +3 -0
  44. package/dependencies/src/axios-0.33.0/lib/platform/node/classes/URLSearchParams.js +5 -0
  45. package/dependencies/src/axios-0.33.0/lib/platform/node/index.js +11 -0
  46. package/dependencies/src/axios-0.33.0/lib/utils.js +565 -0
  47. package/dependencies/src/axios-0.33.0/package.json +100 -0
  48. package/dependencies/src/{bn.js-4.11.8 → bn.js-4.11.9}/lib/bn.js +7 -1
  49. package/dependencies/src/{elliptic-6.5.3 → elliptic-6.6.1}/lib/elliptic/curve/base.js +36 -31
  50. package/dependencies/src/{elliptic-6.5.1 → elliptic-6.6.1}/lib/elliptic/curve/edwards.js +13 -10
  51. package/dependencies/src/{elliptic-6.5.3 → elliptic-6.6.1}/lib/elliptic/curve/mont.js +1 -1
  52. package/dependencies/src/{elliptic-6.5.1 → elliptic-6.6.1}/lib/elliptic/curve/short.js +48 -47
  53. package/dependencies/src/{elliptic-6.5.3 → elliptic-6.6.1}/lib/elliptic/curves.js +21 -21
  54. package/dependencies/src/{elliptic-6.5.1 → elliptic-6.6.1}/lib/elliptic/ec/index.js +53 -16
  55. package/dependencies/src/{elliptic-6.5.3 → elliptic-6.6.1}/lib/elliptic/ec/key.js +8 -5
  56. package/dependencies/src/{elliptic-6.5.3 → elliptic-6.6.1}/lib/elliptic/ec/signature.js +11 -1
  57. package/dependencies/src/{elliptic-6.5.3 → elliptic-6.6.1}/lib/elliptic/eddsa/index.js +5 -2
  58. package/dependencies/src/{elliptic-6.5.3 → elliptic-6.6.1}/lib/elliptic/eddsa/signature.js +3 -2
  59. package/dependencies/src/{elliptic-6.5.1 → elliptic-6.6.1}/lib/elliptic/precomputed/secp256k1.js +197 -197
  60. package/dependencies/src/{elliptic-6.5.3 → elliptic-6.6.1}/lib/elliptic/utils.js +12 -9
  61. package/dependencies/src/{elliptic-6.5.1 → elliptic-6.6.1}/package.json +20 -22
  62. package/dependencies/src/ethereumjs-util-5.2.0/index.js +1 -1
  63. package/dependencies/src/follow-redirects-1.16.0/debug.js +15 -0
  64. package/dependencies/src/follow-redirects-1.16.0/index.js +709 -0
  65. package/dependencies/src/follow-redirects-1.16.0/package.json +58 -0
  66. package/dependencies/src/proxy-from-env-1.1.0/index.js +108 -0
  67. package/dependencies/src/proxy-from-env-1.1.0/package.json +34 -0
  68. package/dependencies/src/secp256k1-3.7.1/lib/elliptic/index.js +2 -2
  69. package/dependencies/src/secp256k1-4.0.2/lib/elliptic.js +1 -1
  70. package/dependencies/src/tiny-secp256k1-1.1.3/js.js +2 -2
  71. package/errors/index.d.ts +2 -2
  72. package/errors/index.js.map +1 -1
  73. package/package.json +2 -2
  74. package/utils/remote-data/HttpRemoteData.js +3 -8
  75. package/utils/remote-data/HttpRemoteData.js.map +1 -1
  76. package/utils/remote-data/IpfsRemoteData.js +13 -7
  77. package/utils/remote-data/IpfsRemoteData.js.map +1 -1
  78. package/utils/remote-data/Sha256RemoteData.js +5 -6
  79. package/utils/remote-data/Sha256RemoteData.js.map +1 -1
  80. package/utils/remote-data/remoteDataRequest.d.ts +16 -0
  81. package/utils/remote-data/remoteDataRequest.js +240 -0
  82. package/utils/remote-data/remoteDataRequest.js.map +1 -0
  83. package/dependencies/src/axios-0.19.0/index.d.ts +0 -152
  84. package/dependencies/src/axios-0.19.0/lib/adapters/http.js +0 -275
  85. package/dependencies/src/axios-0.19.0/lib/adapters/xhr.js +0 -174
  86. package/dependencies/src/axios-0.19.0/lib/cancel/Cancel.js +0 -19
  87. package/dependencies/src/axios-0.19.0/lib/cancel/CancelToken.js +0 -57
  88. package/dependencies/src/axios-0.19.0/lib/core/Axios.js +0 -86
  89. package/dependencies/src/axios-0.19.0/lib/core/createError.js +0 -18
  90. package/dependencies/src/axios-0.19.0/lib/core/enhanceError.js +0 -42
  91. package/dependencies/src/axios-0.19.0/lib/core/mergeConfig.js +0 -51
  92. package/dependencies/src/axios-0.19.0/lib/defaults.js +0 -98
  93. package/dependencies/src/axios-0.19.0/lib/helpers/bind.js +0 -11
  94. package/dependencies/src/axios-0.19.0/lib/helpers/buildURL.js +0 -71
  95. package/dependencies/src/axios-0.19.0/lib/utils.js +0 -334
  96. package/dependencies/src/axios-0.19.0/package.json +0 -85
  97. package/dependencies/src/elliptic-6.5.1/lib/elliptic/curve/base.js +0 -374
  98. package/dependencies/src/elliptic-6.5.1/lib/elliptic/curve/mont.js +0 -178
  99. package/dependencies/src/elliptic-6.5.1/lib/elliptic/curves.js +0 -206
  100. package/dependencies/src/elliptic-6.5.1/lib/elliptic/ec/key.js +0 -118
  101. package/dependencies/src/elliptic-6.5.1/lib/elliptic/ec/signature.js +0 -134
  102. package/dependencies/src/elliptic-6.5.1/lib/elliptic/eddsa/index.js +0 -118
  103. package/dependencies/src/elliptic-6.5.1/lib/elliptic/eddsa/signature.js +0 -65
  104. package/dependencies/src/elliptic-6.5.1/lib/elliptic/utils.js +0 -120
  105. package/dependencies/src/elliptic-6.5.3/lib/elliptic/curve/edwards.js +0 -432
  106. package/dependencies/src/elliptic-6.5.3/lib/elliptic/curve/index.js +0 -8
  107. package/dependencies/src/elliptic-6.5.3/lib/elliptic/curve/short.js +0 -937
  108. package/dependencies/src/elliptic-6.5.3/lib/elliptic/ec/index.js +0 -241
  109. package/dependencies/src/elliptic-6.5.3/lib/elliptic/eddsa/key.js +0 -95
  110. package/dependencies/src/elliptic-6.5.3/lib/elliptic/precomputed/secp256k1.js +0 -780
  111. package/dependencies/src/elliptic-6.5.3/lib/elliptic.js +0 -13
  112. package/dependencies/src/elliptic-6.5.3/package.json +0 -55
  113. package/dependencies/src/follow-redirects-1.5.10/index.js +0 -322
  114. package/dependencies/src/is-buffer-2.0.3/index.js +0 -11
  115. /package/dependencies/src/{axios-0.19.0 → axios-0.33.0}/index.js +0 -0
  116. /package/dependencies/src/{axios-0.19.0 → axios-0.33.0}/lib/cancel/isCancel.js +0 -0
  117. /package/dependencies/src/{axios-0.19.0 → axios-0.33.0}/lib/helpers/deprecatedMethod.js +0 -0
  118. /package/dependencies/src/{axios-0.19.0 → axios-0.33.0}/lib/helpers/normalizeHeaderName.js +0 -0
  119. /package/dependencies/src/{axios-0.19.0 → axios-0.33.0}/lib/helpers/spread.js +0 -0
  120. /package/dependencies/src/{elliptic-6.5.1 → elliptic-6.6.1}/lib/elliptic/curve/index.js +0 -0
  121. /package/dependencies/src/{elliptic-6.5.1 → elliptic-6.6.1}/lib/elliptic/eddsa/key.js +0 -0
  122. /package/dependencies/src/{elliptic-6.5.1 → elliptic-6.6.1}/lib/elliptic.js +0 -0
  123. /package/dependencies/src/{follow-redirects-1.5.10 → follow-redirects-1.16.0}/http.js +0 -0
  124. /package/dependencies/src/{follow-redirects-1.5.10 → follow-redirects-1.16.0}/https.js +0 -0
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var BN = require('../../../../bn.js-4.11.8/lib/bn');
3
+ var BN = require('../../../../bn.js-4.11.9/lib/bn');
4
4
  var HmacDRBG = require('../../../../hmac-drbg-1.0.1/lib/hmac-drbg');
5
5
  var utils = require('../utils');
6
6
  var curves = require('../curves');
@@ -16,7 +16,8 @@ function EC(options) {
16
16
 
17
17
  // Shortcut `elliptic.ec(curve-name)`
18
18
  if (typeof options === 'string') {
19
- assert(curves.hasOwnProperty(options), 'Unknown curve ' + options);
19
+ assert(Object.prototype.hasOwnProperty.call(curves, options),
20
+ 'Unknown curve ' + options);
20
21
 
21
22
  options = curves[options];
22
23
  }
@@ -62,23 +63,42 @@ EC.prototype.genKeyPair = function genKeyPair(options) {
62
63
  persEnc: options.persEnc || 'utf8',
63
64
  entropy: options.entropy || rand(this.hash.hmacStrength),
64
65
  entropyEnc: options.entropy && options.entropyEnc || 'utf8',
65
- nonce: this.n.toArray()
66
+ nonce: this.n.toArray(),
66
67
  });
67
68
 
68
69
  var bytes = this.n.byteLength();
69
70
  var ns2 = this.n.sub(new BN(2));
70
- do {
71
+ for (;;) {
71
72
  var priv = new BN(drbg.generate(bytes));
72
73
  if (priv.cmp(ns2) > 0)
73
74
  continue;
74
75
 
75
76
  priv.iaddn(1);
76
77
  return this.keyFromPrivate(priv);
77
- } while (true);
78
+ }
78
79
  };
79
80
 
80
- EC.prototype._truncateToN = function truncateToN(msg, truncOnly) {
81
- var delta = msg.byteLength() * 8 - this.n.bitLength();
81
+ EC.prototype._truncateToN = function _truncateToN(msg, truncOnly, bitLength) {
82
+ var byteLength;
83
+ if (BN.isBN(msg) || typeof msg === 'number') {
84
+ msg = new BN(msg, 16);
85
+ byteLength = msg.byteLength();
86
+ } else if (typeof msg === 'object') {
87
+ // BN assumes an array-like input and asserts length
88
+ byteLength = msg.length;
89
+ msg = new BN(msg, 16);
90
+ } else {
91
+ // BN converts the value to string
92
+ var str = msg.toString();
93
+ // HEX encoding
94
+ byteLength = (str.length + 1) >>> 1;
95
+ msg = new BN(str, 16);
96
+ }
97
+ // Allow overriding
98
+ if (typeof bitLength !== 'number') {
99
+ bitLength = byteLength * 8;
100
+ }
101
+ var delta = bitLength - this.n.bitLength();
82
102
  if (delta > 0)
83
103
  msg = msg.ushrn(delta);
84
104
  if (!truncOnly && msg.cmp(this.n) >= 0)
@@ -95,8 +115,18 @@ EC.prototype.sign = function sign(msg, key, enc, options) {
95
115
  if (!options)
96
116
  options = {};
97
117
 
118
+ if (typeof msg !== 'string' && typeof msg !== 'number' && !BN.isBN(msg)) {
119
+ assert(typeof msg === 'object' && msg && typeof msg.length === 'number',
120
+ 'Expected message to be an array-like, a hex string, or a BN instance');
121
+ assert((msg.length >>> 0) === msg.length); // non-negative 32-bit integer
122
+ for (var i = 0; i < msg.length; i++) assert((msg[i] & 255) === msg[i]);
123
+ }
124
+
98
125
  key = this.keyFromPrivate(key, enc);
99
- msg = this._truncateToN(new BN(msg, 16));
126
+ msg = this._truncateToN(msg, false, options.msgBitLength);
127
+
128
+ // Would fail further checks, but let's make the error message clear
129
+ assert(!msg.isNeg(), 'Can not sign a negative message');
100
130
 
101
131
  // Zero-extend key to provide enough entropy
102
132
  var bytes = this.n.byteLength();
@@ -105,22 +135,25 @@ EC.prototype.sign = function sign(msg, key, enc, options) {
105
135
  // Zero-extend nonce to have the same byte size as N
106
136
  var nonce = msg.toArray('be', bytes);
107
137
 
138
+ // Recheck nonce to be bijective to msg
139
+ assert((new BN(nonce)).eq(msg), 'Can not sign message');
140
+
108
141
  // Instantiate Hmac_DRBG
109
142
  var drbg = new HmacDRBG({
110
143
  hash: this.hash,
111
144
  entropy: bkey,
112
145
  nonce: nonce,
113
146
  pers: options.pers,
114
- persEnc: options.persEnc || 'utf8'
147
+ persEnc: options.persEnc || 'utf8',
115
148
  });
116
149
 
117
150
  // Number of bytes to generate
118
151
  var ns1 = this.n.sub(new BN(1));
119
152
 
120
- for (var iter = 0; true; iter++) {
153
+ for (var iter = 0; ; iter++) {
121
154
  var k = options.k ?
122
- options.k(iter) :
123
- new BN(drbg.generate(this.n.byteLength()));
155
+ options.k(iter) :
156
+ new BN(drbg.generate(this.n.byteLength()));
124
157
  k = this._truncateToN(k, true);
125
158
  if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0)
126
159
  continue;
@@ -152,8 +185,11 @@ EC.prototype.sign = function sign(msg, key, enc, options) {
152
185
  }
153
186
  };
154
187
 
155
- EC.prototype.verify = function verify(msg, signature, key, enc) {
156
- msg = this._truncateToN(new BN(msg, 16));
188
+ EC.prototype.verify = function verify(msg, signature, key, enc, options) {
189
+ if (!options)
190
+ options = {};
191
+
192
+ msg = this._truncateToN(msg, false, options.msgBitLength);
157
193
  key = this.keyFromPublic(key, enc);
158
194
  signature = new Signature(signature, 'hex');
159
195
 
@@ -169,9 +205,10 @@ EC.prototype.verify = function verify(msg, signature, key, enc) {
169
205
  var sinv = s.invm(this.n);
170
206
  var u1 = sinv.mul(msg).umod(this.n);
171
207
  var u2 = sinv.mul(r).umod(this.n);
208
+ var p;
172
209
 
173
210
  if (!this.curve._maxwellTrick) {
174
- var p = this.g.mulAdd(u1, key.getPublic(), u2);
211
+ p = this.g.mulAdd(u1, key.getPublic(), u2);
175
212
  if (p.isInfinity())
176
213
  return false;
177
214
 
@@ -181,7 +218,7 @@ EC.prototype.verify = function verify(msg, signature, key, enc) {
181
218
  // NOTE: Greg Maxwell's trick, inspired by:
182
219
  // https://git.io/vad3K
183
220
 
184
- var p = this.g.jmulAdd(u1, key.getPublic(), u2);
221
+ p = this.g.jmulAdd(u1, key.getPublic(), u2);
185
222
  if (p.isInfinity())
186
223
  return false;
187
224
 
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var BN = require('../../../../bn.js-4.11.8/lib/bn');
3
+ var BN = require('../../../../bn.js-4.11.9/lib/bn');
4
4
  var utils = require('../utils');
5
5
  var assert = utils.assert;
6
6
 
@@ -23,7 +23,7 @@ KeyPair.fromPublic = function fromPublic(ec, pub, enc) {
23
23
 
24
24
  return new KeyPair(ec, {
25
25
  pub: pub,
26
- pubEnc: enc
26
+ pubEnc: enc,
27
27
  });
28
28
  };
29
29
 
@@ -33,7 +33,7 @@ KeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {
33
33
 
34
34
  return new KeyPair(ec, {
35
35
  priv: priv,
36
- privEnc: enc
36
+ privEnc: enc,
37
37
  });
38
38
  };
39
39
 
@@ -100,6 +100,9 @@ KeyPair.prototype._importPublic = function _importPublic(key, enc) {
100
100
 
101
101
  // ECDH
102
102
  KeyPair.prototype.derive = function derive(pub) {
103
+ if(!pub.validate()) {
104
+ assert(pub.validate(), 'public point not validated');
105
+ }
103
106
  return pub.mul(this.priv).getX();
104
107
  };
105
108
 
@@ -108,8 +111,8 @@ KeyPair.prototype.sign = function sign(msg, enc, options) {
108
111
  return this.ec.sign(msg, this, enc, options);
109
112
  };
110
113
 
111
- KeyPair.prototype.verify = function verify(msg, signature) {
112
- return this.ec.verify(msg, signature, this);
114
+ KeyPair.prototype.verify = function verify(msg, signature, options) {
115
+ return this.ec.verify(msg, signature, this, undefined, options);
113
116
  };
114
117
 
115
118
  KeyPair.prototype.inspect = function inspect() {
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var BN = require('../../../../bn.js-4.11.8/lib/bn');
3
+ var BN = require('../../../../bn.js-4.11.9/lib/bn');
4
4
 
5
5
  var utils = require('../utils');
6
6
  var assert = utils.assert;
@@ -38,6 +38,10 @@ function getLength(buf, p) {
38
38
  return false;
39
39
  }
40
40
 
41
+ if(buf[p.place] === 0x00) {
42
+ return false;
43
+ }
44
+
41
45
  var val = 0;
42
46
  for (var i = 0, off = p.place; i < octetLen; i++, off++) {
43
47
  val <<= 8;
@@ -86,6 +90,9 @@ Signature.prototype._importDER = function _importDER(data, enc) {
86
90
  if (rlen === false) {
87
91
  return false;
88
92
  }
93
+ if ((data[p.place] & 128) !== 0) {
94
+ return false;
95
+ }
89
96
  var r = data.slice(p.place, rlen + p.place);
90
97
  p.place += rlen;
91
98
  if (data[p.place++] !== 0x02) {
@@ -98,6 +105,9 @@ Signature.prototype._importDER = function _importDER(data, enc) {
98
105
  if (data.length !== slen + p.place) {
99
106
  return false;
100
107
  }
108
+ if ((data[p.place] & 128) !== 0) {
109
+ return false;
110
+ }
101
111
  var s = data.slice(p.place, slen + p.place);
102
112
  if (r[0] === 0) {
103
113
  if (r[1] & 0x80) {
@@ -14,7 +14,7 @@ function EDDSA(curve) {
14
14
  if (!(this instanceof EDDSA))
15
15
  return new EDDSA(curve);
16
16
 
17
- var curve = curves[curve].curve;
17
+ curve = curves[curve].curve;
18
18
  this.curve = curve;
19
19
  this.g = curve.g;
20
20
  this.g.precompute(curve.n.bitLength() + 1);
@@ -38,7 +38,7 @@ EDDSA.prototype.sign = function sign(message, secret) {
38
38
  var R = this.g.mul(r);
39
39
  var Rencoded = this.encodePoint(R);
40
40
  var s_ = this.hashInt(Rencoded, key.pubBytes(), message)
41
- .mul(key.priv());
41
+ .mul(key.priv());
42
42
  var S = r.add(s_).umod(this.curve.n);
43
43
  return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });
44
44
  };
@@ -52,6 +52,9 @@ EDDSA.prototype.sign = function sign(message, secret) {
52
52
  EDDSA.prototype.verify = function verify(message, sig, pub) {
53
53
  message = parseBytes(message);
54
54
  sig = this.makeSignature(sig);
55
+ if (sig.S().gte(sig.eddsa.curve.n) || sig.S().isNeg()) {
56
+ return false;
57
+ }
55
58
  var key = this.keyFromPublic(pub);
56
59
  var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);
57
60
  var SG = this.g.mul(sig.S());
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var BN = require('../../../../bn.js-4.11.8/lib/bn');
3
+ var BN = require('../../../../bn.js-4.11.9/lib/bn');
4
4
  var utils = require('../utils');
5
5
  var assert = utils.assert;
6
6
  var cachedProperty = utils.cachedProperty;
@@ -21,9 +21,10 @@ function Signature(eddsa, sig) {
21
21
  sig = parseBytes(sig);
22
22
 
23
23
  if (Array.isArray(sig)) {
24
+ assert(sig.length === eddsa.encodingLength * 2, 'Signature has invalid size');
24
25
  sig = {
25
26
  R: sig.slice(0, eddsa.encodingLength),
26
- S: sig.slice(eddsa.encodingLength)
27
+ S: sig.slice(eddsa.encodingLength),
27
28
  };
28
29
  }
29
30