@bitcoin-js/tiny-secp256k1-asmjs 2.2.3 → 2.2.5

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.
package/README.md CHANGED
@@ -340,6 +340,7 @@ Returns the ECDSA public key from a signature if it can be recovered, `null` oth
340
340
 
341
341
  - `Expected Signature` if `signature` has any (r, s) values not in range `(0...order - 1]`
342
342
  - `Bad Recovery Id` if `recid & 2 !== 0` and `signature` has any r value not in range `(0...P - N - 1]`
343
+ - `Bad Recovery Id` if `recoveryId` is not an integer from 0 through 3
343
344
  - `Expected Hash` if `h` is not 256-bit
344
345
 
345
346
 
package/lib/cjs/index.cjs CHANGED
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.verifySchnorr = exports.recover = exports.verify = exports.signSchnorr = exports.signRecoverable = exports.sign = exports.xOnlyPointAddTweakCheck = exports.xOnlyPointAddTweak = exports.privateNegate = exports.privateSub = exports.privateAdd = exports.pointMultiply = exports.xOnlyPointFromPoint = exports.xOnlyPointFromScalar = exports.pointFromScalar = exports.pointCompress = exports.pointAddScalar = exports.pointAdd = exports.isPrivate = exports.isXOnlyPoint = exports.isPointCompressed = exports.isPoint = exports.__initializeContext = void 0;
4
4
  const uint8array_tools_1 = require("uint8array-tools");
5
5
  const validate = require("./validate.cjs");
6
+ const validate_error_js_1 = require("./validate_error.cjs");
6
7
  const wasm_loader_js_1 = require("./wasm_loader.cjs");
7
8
  const WASM_BUFFER = new Uint8Array(wasm_loader_js_1.default.memory.buffer);
8
9
  const WASM_PRIVATE_KEY_PTR = wasm_loader_js_1.default.PRIVATE_INPUT.value;
@@ -34,7 +35,7 @@ function assumeCompression(compressed, p) {
34
35
  function _isPoint(p) {
35
36
  try {
36
37
  PUBLIC_KEY_INPUT.set(p);
37
- return wasm_loader_js_1.default.isPoint(p.length) === 1;
38
+ return (0, validate_error_js_1.vCheck)(wasm_loader_js_1.default.isPoint(p.length)) === 1;
38
39
  }
39
40
  finally {
40
41
  PUBLIC_KEY_INPUT.fill(0);
@@ -67,7 +68,7 @@ function pointAdd(pA, pB, compressed) {
67
68
  try {
68
69
  PUBLIC_KEY_INPUT.set(pA);
69
70
  PUBLIC_KEY_INPUT2.set(pB);
70
- return wasm_loader_js_1.default.pointAdd(pA.length, pB.length, outputlen) === 1
71
+ return (0, validate_error_js_1.vCheck)(wasm_loader_js_1.default.pointAdd(pA.length, pB.length, outputlen)) === 1
71
72
  ? PUBLIC_KEY_INPUT.slice(0, outputlen)
72
73
  : null;
73
74
  }
@@ -84,7 +85,7 @@ function pointAddScalar(p, tweak, compressed) {
84
85
  try {
85
86
  PUBLIC_KEY_INPUT.set(p);
86
87
  TWEAK_INPUT.set(tweak);
87
- return wasm_loader_js_1.default.pointAddScalar(p.length, outputlen) === 1
88
+ return (0, validate_error_js_1.vCheck)(wasm_loader_js_1.default.pointAddScalar(p.length, outputlen)) === 1
88
89
  ? PUBLIC_KEY_INPUT.slice(0, outputlen)
89
90
  : null;
90
91
  }
@@ -99,7 +100,7 @@ function pointCompress(p, compressed) {
99
100
  const outputlen = assumeCompression(compressed, p);
100
101
  try {
101
102
  PUBLIC_KEY_INPUT.set(p);
102
- wasm_loader_js_1.default.pointCompress(p.length, outputlen);
103
+ (0, validate_error_js_1.vCheck)(wasm_loader_js_1.default.pointCompress(p.length, outputlen));
103
104
  return PUBLIC_KEY_INPUT.slice(0, outputlen);
104
105
  }
105
106
  finally {
@@ -112,7 +113,7 @@ function pointFromScalar(d, compressed) {
112
113
  const outputlen = assumeCompression(compressed);
113
114
  try {
114
115
  PRIVATE_KEY_INPUT.set(d);
115
- return wasm_loader_js_1.default.pointFromScalar(outputlen) === 1
116
+ return (0, validate_error_js_1.vCheck)(wasm_loader_js_1.default.pointFromScalar(outputlen)) === 1
116
117
  ? PUBLIC_KEY_INPUT.slice(0, outputlen)
117
118
  : null;
118
119
  }
@@ -126,7 +127,7 @@ function xOnlyPointFromScalar(d) {
126
127
  validate.validatePrivate(d);
127
128
  try {
128
129
  PRIVATE_KEY_INPUT.set(d);
129
- wasm_loader_js_1.default.xOnlyPointFromScalar();
130
+ (0, validate_error_js_1.vCheck)(wasm_loader_js_1.default.xOnlyPointFromScalar());
130
131
  return X_ONLY_PUBLIC_KEY_INPUT.slice(0, validate.X_ONLY_PUBLIC_KEY_SIZE);
131
132
  }
132
133
  finally {
@@ -139,7 +140,7 @@ function xOnlyPointFromPoint(p) {
139
140
  validate.validatePoint(p);
140
141
  try {
141
142
  PUBLIC_KEY_INPUT.set(p);
142
- wasm_loader_js_1.default.xOnlyPointFromPoint(p.length);
143
+ (0, validate_error_js_1.vCheck)(wasm_loader_js_1.default.xOnlyPointFromPoint(p.length));
143
144
  return X_ONLY_PUBLIC_KEY_INPUT.slice(0, validate.X_ONLY_PUBLIC_KEY_SIZE);
144
145
  }
145
146
  finally {
@@ -155,7 +156,7 @@ function pointMultiply(p, tweak, compressed) {
155
156
  try {
156
157
  PUBLIC_KEY_INPUT.set(p);
157
158
  TWEAK_INPUT.set(tweak);
158
- return wasm_loader_js_1.default.pointMultiply(p.length, outputlen) === 1
159
+ return (0, validate_error_js_1.vCheck)(wasm_loader_js_1.default.pointMultiply(p.length, outputlen)) === 1
159
160
  ? PUBLIC_KEY_INPUT.slice(0, outputlen)
160
161
  : null;
161
162
  }
@@ -171,7 +172,7 @@ function privateAdd(d, tweak) {
171
172
  try {
172
173
  PRIVATE_KEY_INPUT.set(d);
173
174
  TWEAK_INPUT.set(tweak);
174
- return wasm_loader_js_1.default.privateAdd() === 1
175
+ return (0, validate_error_js_1.vCheck)(wasm_loader_js_1.default.privateAdd()) === 1
175
176
  ? PRIVATE_KEY_INPUT.slice(0, validate.PRIVATE_KEY_SIZE)
176
177
  : null;
177
178
  }
@@ -192,7 +193,7 @@ function privateSub(d, tweak) {
192
193
  try {
193
194
  PRIVATE_KEY_INPUT.set(d);
194
195
  TWEAK_INPUT.set(tweak);
195
- return wasm_loader_js_1.default.privateSub() === 1
196
+ return (0, validate_error_js_1.vCheck)(wasm_loader_js_1.default.privateSub()) === 1
196
197
  ? PRIVATE_KEY_INPUT.slice(0, validate.PRIVATE_KEY_SIZE)
197
198
  : null;
198
199
  }
@@ -206,7 +207,7 @@ function privateNegate(d) {
206
207
  validate.validatePrivate(d);
207
208
  try {
208
209
  PRIVATE_KEY_INPUT.set(d);
209
- wasm_loader_js_1.default.privateNegate();
210
+ (0, validate_error_js_1.vCheck)(wasm_loader_js_1.default.privateNegate());
210
211
  return PRIVATE_KEY_INPUT.slice(0, validate.PRIVATE_KEY_SIZE);
211
212
  }
212
213
  finally {
@@ -220,8 +221,8 @@ function xOnlyPointAddTweak(p, tweak) {
220
221
  try {
221
222
  X_ONLY_PUBLIC_KEY_INPUT.set(p);
222
223
  TWEAK_INPUT.set(tweak);
223
- const parity = wasm_loader_js_1.default.xOnlyPointAddTweak();
224
- return parity !== -1
224
+ const parity = (0, validate_error_js_1.vCheck)(wasm_loader_js_1.default.xOnlyPointAddTweak());
225
+ return parity !== 42
225
226
  ? {
226
227
  parity,
227
228
  xOnlyPubkey: X_ONLY_PUBLIC_KEY_INPUT.slice(0, validate.X_ONLY_PUBLIC_KEY_SIZE),
@@ -246,10 +247,11 @@ function xOnlyPointAddTweakCheck(point, tweak, resultToCheck, tweakParity) {
246
247
  X_ONLY_PUBLIC_KEY_INPUT2.set(resultToCheck);
247
248
  TWEAK_INPUT.set(tweak);
248
249
  if (hasParity) {
249
- return wasm_loader_js_1.default.xOnlyPointAddTweakCheck(tweakParity) === 1;
250
+ return (0, validate_error_js_1.vCheck)(wasm_loader_js_1.default.xOnlyPointAddTweakCheck(tweakParity)) === 1;
250
251
  }
251
252
  else {
252
- wasm_loader_js_1.default.xOnlyPointAddTweak();
253
+ if ((0, validate_error_js_1.vCheck)(wasm_loader_js_1.default.xOnlyPointAddTweak()) === 42)
254
+ return false;
253
255
  const newKey = X_ONLY_PUBLIC_KEY_INPUT.slice(0, validate.X_ONLY_PUBLIC_KEY_SIZE);
254
256
  return (0, uint8array_tools_1.compare)(newKey, resultToCheck) === 0;
255
257
  }
@@ -270,7 +272,7 @@ function sign(h, d, e) {
270
272
  PRIVATE_KEY_INPUT.set(d);
271
273
  if (e !== undefined)
272
274
  EXTRA_DATA_INPUT.set(e);
273
- wasm_loader_js_1.default.sign(e === undefined ? 0 : 1);
275
+ (0, validate_error_js_1.vCheck)(wasm_loader_js_1.default.sign(e === undefined ? 0 : 1));
274
276
  return SIGNATURE_INPUT.slice(0, validate.SIGNATURE_SIZE);
275
277
  }
276
278
  finally {
@@ -291,7 +293,7 @@ function signRecoverable(h, d, e) {
291
293
  PRIVATE_KEY_INPUT.set(d);
292
294
  if (e !== undefined)
293
295
  EXTRA_DATA_INPUT.set(e);
294
- const recoveryId = wasm_loader_js_1.default.signRecoverable(e === undefined ? 0 : 1);
296
+ const recoveryId = (0, validate_error_js_1.vCheck)(wasm_loader_js_1.default.signRecoverable(e === undefined ? 0 : 1));
295
297
  const signature = SIGNATURE_INPUT.slice(0, validate.SIGNATURE_SIZE);
296
298
  return {
297
299
  signature,
@@ -316,7 +318,7 @@ function signSchnorr(h, d, e) {
316
318
  PRIVATE_KEY_INPUT.set(d);
317
319
  if (e !== undefined)
318
320
  EXTRA_DATA_INPUT.set(e);
319
- wasm_loader_js_1.default.signSchnorr(e === undefined ? 0 : 1);
321
+ (0, validate_error_js_1.vCheck)(wasm_loader_js_1.default.signSchnorr(e === undefined ? 0 : 1));
320
322
  return SIGNATURE_INPUT.slice(0, validate.SIGNATURE_SIZE);
321
323
  }
322
324
  finally {
@@ -336,7 +338,9 @@ function verify(h, Q, signature, strict = false) {
336
338
  HASH_INPUT.set(h);
337
339
  PUBLIC_KEY_INPUT.set(Q);
338
340
  SIGNATURE_INPUT.set(signature);
339
- return wasm_loader_js_1.default.verify(Q.length, strict === true ? 1 : 0) === 1 ? true : false;
341
+ return (0, validate_error_js_1.vCheck)(wasm_loader_js_1.default.verify(Q.length, strict === true ? 1 : 0)) === 1
342
+ ? true
343
+ : false;
340
344
  }
341
345
  finally {
342
346
  HASH_INPUT.fill(0);
@@ -348,6 +352,7 @@ exports.verify = verify;
348
352
  function recover(h, signature, recoveryId, compressed = false) {
349
353
  validate.validateHash(h);
350
354
  validate.validateSignature(signature);
355
+ validate.validateRecoveryId(recoveryId);
351
356
  validate.validateSignatureNonzeroRS(signature);
352
357
  if (recoveryId & 2) {
353
358
  validate.validateSigrPMinusN(signature);
@@ -357,7 +362,7 @@ function recover(h, signature, recoveryId, compressed = false) {
357
362
  try {
358
363
  HASH_INPUT.set(h);
359
364
  SIGNATURE_INPUT.set(signature);
360
- return wasm_loader_js_1.default.recover(outputlen, recoveryId) === 1
365
+ return (0, validate_error_js_1.vCheck)(wasm_loader_js_1.default.recover(outputlen, recoveryId)) === 1
361
366
  ? PUBLIC_KEY_INPUT.slice(0, outputlen)
362
367
  : null;
363
368
  }
@@ -376,7 +381,7 @@ function verifySchnorr(h, Q, signature) {
376
381
  HASH_INPUT.set(h);
377
382
  X_ONLY_PUBLIC_KEY_INPUT.set(Q);
378
383
  SIGNATURE_INPUT.set(signature);
379
- return wasm_loader_js_1.default.verifySchnorr() === 1 ? true : false;
384
+ return (0, validate_error_js_1.vCheck)(wasm_loader_js_1.default.verifySchnorr()) === 1 ? true : false;
380
385
  }
381
386
  finally {
382
387
  HASH_INPUT.fill(0);