@bsv/sdk 1.9.24 → 1.9.30
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/dist/cjs/package.json +1 -1
- package/dist/cjs/src/primitives/AESGCM.js +160 -76
- package/dist/cjs/src/primitives/AESGCM.js.map +1 -1
- package/dist/cjs/src/primitives/ECDSA.js +22 -23
- package/dist/cjs/src/primitives/ECDSA.js.map +1 -1
- package/dist/cjs/src/primitives/Point.js +102 -22
- package/dist/cjs/src/primitives/Point.js.map +1 -1
- package/dist/cjs/src/primitives/PrivateKey.js +2 -2
- package/dist/cjs/src/primitives/PrivateKey.js.map +1 -1
- package/dist/cjs/src/primitives/PublicKey.js +1 -1
- package/dist/cjs/src/primitives/PublicKey.js.map +1 -1
- package/dist/cjs/src/primitives/SymmetricKey.js +20 -19
- package/dist/cjs/src/primitives/SymmetricKey.js.map +1 -1
- package/dist/cjs/src/primitives/hex.js +1 -3
- package/dist/cjs/src/primitives/hex.js.map +1 -1
- package/dist/cjs/src/primitives/utils.js +10 -0
- package/dist/cjs/src/primitives/utils.js.map +1 -1
- package/dist/cjs/src/totp/totp.js +3 -1
- package/dist/cjs/src/totp/totp.js.map +1 -1
- package/dist/cjs/src/wallet/ProtoWallet.js +4 -2
- package/dist/cjs/src/wallet/ProtoWallet.js.map +1 -1
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/esm/src/primitives/AESGCM.js +158 -75
- package/dist/esm/src/primitives/AESGCM.js.map +1 -1
- package/dist/esm/src/primitives/ECDSA.js +22 -23
- package/dist/esm/src/primitives/ECDSA.js.map +1 -1
- package/dist/esm/src/primitives/Point.js +102 -22
- package/dist/esm/src/primitives/Point.js.map +1 -1
- package/dist/esm/src/primitives/PrivateKey.js +2 -2
- package/dist/esm/src/primitives/PrivateKey.js.map +1 -1
- package/dist/esm/src/primitives/PublicKey.js +1 -1
- package/dist/esm/src/primitives/PublicKey.js.map +1 -1
- package/dist/esm/src/primitives/SymmetricKey.js +20 -19
- package/dist/esm/src/primitives/SymmetricKey.js.map +1 -1
- package/dist/esm/src/primitives/hex.js +1 -3
- package/dist/esm/src/primitives/hex.js.map +1 -1
- package/dist/esm/src/primitives/utils.js +9 -0
- package/dist/esm/src/primitives/utils.js.map +1 -1
- package/dist/esm/src/totp/totp.js +3 -1
- package/dist/esm/src/totp/totp.js.map +1 -1
- package/dist/esm/src/wallet/ProtoWallet.js +4 -2
- package/dist/esm/src/wallet/ProtoWallet.js.map +1 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/types/src/primitives/AESGCM.d.ts +59 -9
- package/dist/types/src/primitives/AESGCM.d.ts.map +1 -1
- package/dist/types/src/primitives/ECDSA.d.ts.map +1 -1
- package/dist/types/src/primitives/Point.d.ts +2 -0
- package/dist/types/src/primitives/Point.d.ts.map +1 -1
- package/dist/types/src/primitives/SymmetricKey.d.ts.map +1 -1
- package/dist/types/src/primitives/hex.d.ts.map +1 -1
- package/dist/types/src/primitives/utils.d.ts +1 -0
- package/dist/types/src/primitives/utils.d.ts.map +1 -1
- package/dist/types/src/totp/totp.d.ts.map +1 -1
- package/dist/types/src/wallet/ProtoWallet.d.ts.map +1 -1
- package/dist/types/tsconfig.types.tsbuildinfo +1 -1
- package/dist/umd/bundle.js +3 -3
- package/dist/umd/bundle.js.map +1 -1
- package/docs/reference/primitives.md +206 -60
- package/package.json +1 -1
- package/src/primitives/AESGCM.ts +225 -103
- package/src/primitives/ECDSA.ts +25 -23
- package/src/primitives/Point.ts +142 -23
- package/src/primitives/PrivateKey.ts +2 -2
- package/src/primitives/PublicKey.ts +1 -1
- package/src/primitives/SymmetricKey.ts +28 -20
- package/src/primitives/__tests/AESGCM.test.ts +254 -354
- package/src/primitives/__tests/ECDSA.test.ts +39 -0
- package/src/primitives/__tests/Point.test.ts +112 -0
- package/src/primitives/__tests/utils.test.ts +24 -1
- package/src/primitives/hex.ts +1 -3
- package/src/primitives/utils.ts +10 -0
- package/src/totp/__tests/totp.test.ts +21 -0
- package/src/totp/totp.ts +9 -1
- package/src/wallet/ProtoWallet.ts +8 -3
- package/src/wallet/__tests/ProtoWallet.test.ts +55 -34
|
@@ -2,6 +2,18 @@ import BasePoint from './BasePoint.js';
|
|
|
2
2
|
import JPoint from './JacobianPoint.js';
|
|
3
3
|
import BigNumber from './BigNumber.js';
|
|
4
4
|
import { toArray, toHex } from './utils.js';
|
|
5
|
+
function ctSwap(swap, a, b) {
|
|
6
|
+
const mask = -swap;
|
|
7
|
+
const swapX = (a.X ^ b.X) & mask;
|
|
8
|
+
const swapY = (a.Y ^ b.Y) & mask;
|
|
9
|
+
const swapZ = (a.Z ^ b.Z) & mask;
|
|
10
|
+
a.X ^= swapX;
|
|
11
|
+
b.X ^= swapX;
|
|
12
|
+
a.Y ^= swapY;
|
|
13
|
+
b.Y ^= swapY;
|
|
14
|
+
a.Z ^= swapZ;
|
|
15
|
+
b.Z ^= swapZ;
|
|
16
|
+
}
|
|
5
17
|
// -----------------------------------------------------------------------------
|
|
6
18
|
// BigInt helpers & constants (secp256k1) – hoisted so we don't recreate them on
|
|
7
19
|
// every Point.mul() call.
|
|
@@ -45,21 +57,24 @@ export const biModInv = (a) => {
|
|
|
45
57
|
};
|
|
46
58
|
export const biModSqr = (a) => biModMul(a, a);
|
|
47
59
|
export const biModPow = (base, exp) => {
|
|
48
|
-
let result =
|
|
60
|
+
let result = 1n;
|
|
49
61
|
base = biMod(base);
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
if ((e & BI_ONE) === BI_ONE)
|
|
62
|
+
while (exp > 0n) {
|
|
63
|
+
if ((exp & 1n) !== 0n) {
|
|
53
64
|
result = biModMul(result, base);
|
|
65
|
+
}
|
|
54
66
|
base = biModMul(base, base);
|
|
55
|
-
|
|
67
|
+
exp >>= 1n;
|
|
56
68
|
}
|
|
57
69
|
return result;
|
|
58
70
|
};
|
|
59
71
|
export const P_PLUS1_DIV4 = (P_BIGINT + 1n) >> 2n;
|
|
60
72
|
export const biModSqrt = (a) => {
|
|
61
73
|
const r = biModPow(a, P_PLUS1_DIV4);
|
|
62
|
-
|
|
74
|
+
if (biModMul(r, r) !== biMod(a)) {
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
77
|
+
return r;
|
|
63
78
|
};
|
|
64
79
|
const toBigInt = (x) => {
|
|
65
80
|
if (BigNumber.isBN(x))
|
|
@@ -87,6 +102,10 @@ export const jpDouble = (P) => {
|
|
|
87
102
|
const Z3 = biModMul(BI_TWO, biModMul(Y1, Z1));
|
|
88
103
|
return { X: X3, Y: Y3, Z: Z3 };
|
|
89
104
|
};
|
|
105
|
+
// NOTE:
|
|
106
|
+
// jpAdd contains conditional branches.
|
|
107
|
+
// In mulCT, jpAdd and jpDouble are executed in a fixed pattern
|
|
108
|
+
// independent of scalar bits, satisfying TOB-4 constant-time requirements.
|
|
90
109
|
export const jpAdd = (P, Q) => {
|
|
91
110
|
if (P.Z === BI_ZERO)
|
|
92
111
|
return Q;
|
|
@@ -207,6 +226,12 @@ export default class Point extends BasePoint {
|
|
|
207
226
|
x;
|
|
208
227
|
y;
|
|
209
228
|
inf;
|
|
229
|
+
static _assertOnCurve(p) {
|
|
230
|
+
if (!p.validate()) {
|
|
231
|
+
throw new Error('Invalid point');
|
|
232
|
+
}
|
|
233
|
+
return p;
|
|
234
|
+
}
|
|
210
235
|
/**
|
|
211
236
|
* Creates a point object from a given Array. These numbers can represent coordinates in hex format, or points
|
|
212
237
|
* in multiple established formats.
|
|
@@ -225,7 +250,6 @@ export default class Point extends BasePoint {
|
|
|
225
250
|
*/
|
|
226
251
|
static fromDER(bytes) {
|
|
227
252
|
const len = 32;
|
|
228
|
-
// uncompressed, hybrid-odd, hybrid-even
|
|
229
253
|
if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) &&
|
|
230
254
|
bytes.length - 1 === 2 * len) {
|
|
231
255
|
if (bytes[0] === 0x06) {
|
|
@@ -239,11 +263,11 @@ export default class Point extends BasePoint {
|
|
|
239
263
|
}
|
|
240
264
|
}
|
|
241
265
|
const res = new Point(bytes.slice(1, 1 + len), bytes.slice(1 + len, 1 + 2 * len));
|
|
242
|
-
return res;
|
|
266
|
+
return Point._assertOnCurve(res);
|
|
243
267
|
}
|
|
244
268
|
else if ((bytes[0] === 0x02 || bytes[0] === 0x03) &&
|
|
245
269
|
bytes.length - 1 === len) {
|
|
246
|
-
return Point.fromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);
|
|
270
|
+
return Point._assertOnCurve(Point.fromX(bytes.slice(1, 1 + len), bytes[0] === 0x03));
|
|
247
271
|
}
|
|
248
272
|
throw new Error('Unknown point format');
|
|
249
273
|
}
|
|
@@ -266,7 +290,7 @@ export default class Point extends BasePoint {
|
|
|
266
290
|
*/
|
|
267
291
|
static fromString(str) {
|
|
268
292
|
const bytes = toArray(str, 'hex');
|
|
269
|
-
return Point.fromDER(bytes);
|
|
293
|
+
return Point._assertOnCurve(Point.fromDER(bytes));
|
|
270
294
|
}
|
|
271
295
|
/**
|
|
272
296
|
* Generates a point from an x coordinate and a boolean indicating whether the corresponding
|
|
@@ -288,15 +312,16 @@ export default class Point extends BasePoint {
|
|
|
288
312
|
xBigInt = biMod(xBigInt);
|
|
289
313
|
const y2 = biModAdd(biModMul(biModSqr(xBigInt), xBigInt), 7n);
|
|
290
314
|
const y = biModSqrt(y2);
|
|
291
|
-
if (y === null)
|
|
315
|
+
if (y === null) {
|
|
292
316
|
throw new Error('Invalid point');
|
|
317
|
+
}
|
|
293
318
|
let yBig = y;
|
|
294
319
|
if ((yBig & BI_ONE) !== (odd ? BI_ONE : BI_ZERO)) {
|
|
295
320
|
yBig = biModSub(P_BIGINT, yBig);
|
|
296
321
|
}
|
|
297
322
|
const xBN = new BigNumber(xBigInt.toString(16), 16);
|
|
298
323
|
const yBN = new BigNumber(yBig.toString(16), 16);
|
|
299
|
-
return new Point(xBN, yBN);
|
|
324
|
+
return Point._assertOnCurve(new Point(xBN, yBN));
|
|
300
325
|
}
|
|
301
326
|
/**
|
|
302
327
|
* Generates a point from a serialized JSON object. The function accounts for different options in the JSON object,
|
|
@@ -317,14 +342,16 @@ export default class Point extends BasePoint {
|
|
|
317
342
|
if (typeof obj === 'string') {
|
|
318
343
|
obj = JSON.parse(obj);
|
|
319
344
|
}
|
|
320
|
-
|
|
321
|
-
|
|
345
|
+
let res = new Point(obj[0], obj[1], isRed);
|
|
346
|
+
res = Point._assertOnCurve(res);
|
|
347
|
+
if (typeof obj[2] !== 'object' || obj[2] === null) {
|
|
322
348
|
return res;
|
|
323
349
|
}
|
|
324
|
-
const obj2point = (obj) => {
|
|
325
|
-
return new Point(obj[0], obj[1], isRed);
|
|
326
|
-
};
|
|
327
350
|
const pre = obj[2];
|
|
351
|
+
const obj2point = (p) => {
|
|
352
|
+
const pt = new Point(p[0], p[1], isRed);
|
|
353
|
+
return Point._assertOnCurve(pt);
|
|
354
|
+
};
|
|
328
355
|
res.precomputed = {
|
|
329
356
|
beta: null,
|
|
330
357
|
doubles: typeof pre.doubles === 'object' && pre.doubles !== null
|
|
@@ -395,7 +422,19 @@ export default class Point extends BasePoint {
|
|
|
395
422
|
* const isValid = aPoint.validate();
|
|
396
423
|
*/
|
|
397
424
|
validate() {
|
|
398
|
-
|
|
425
|
+
if (this.inf || this.x == null || this.y == null)
|
|
426
|
+
return false;
|
|
427
|
+
try {
|
|
428
|
+
const xBig = BigInt('0x' + this.x.fromRed().toString(16));
|
|
429
|
+
const yBig = BigInt('0x' + this.y.fromRed().toString(16));
|
|
430
|
+
// compute y² and x³ + 7 using bigint-secure field ops
|
|
431
|
+
const lhs = biModMul(yBig, yBig);
|
|
432
|
+
const rhs = biModAdd(biModMul(biModMul(xBig, xBig), xBig), 7n);
|
|
433
|
+
return lhs === rhs;
|
|
434
|
+
}
|
|
435
|
+
catch {
|
|
436
|
+
return false;
|
|
437
|
+
}
|
|
399
438
|
}
|
|
400
439
|
/**
|
|
401
440
|
* Encodes the coordinates of a point into an array or a hexadecimal string.
|
|
@@ -632,14 +671,16 @@ export default class Point extends BasePoint {
|
|
|
632
671
|
if (this.inf) {
|
|
633
672
|
return this;
|
|
634
673
|
}
|
|
635
|
-
|
|
636
|
-
const
|
|
637
|
-
|
|
638
|
-
kBig = -kBig;
|
|
674
|
+
const isNeg = k.isNeg();
|
|
675
|
+
const kAbs = isNeg ? k.neg() : k;
|
|
676
|
+
let kBig = BigInt('0x' + kAbs.toString(16));
|
|
639
677
|
kBig = biMod(kBig);
|
|
640
678
|
if (kBig === BI_ZERO) {
|
|
641
679
|
return new Point(null, null);
|
|
642
680
|
}
|
|
681
|
+
if (kBig === BI_ZERO) {
|
|
682
|
+
return new Point(null, null);
|
|
683
|
+
}
|
|
643
684
|
if (this.x === null || this.y === null) {
|
|
644
685
|
throw new Error('Point coordinates cannot be null');
|
|
645
686
|
}
|
|
@@ -669,6 +710,45 @@ export default class Point extends BasePoint {
|
|
|
669
710
|
}
|
|
670
711
|
return result;
|
|
671
712
|
}
|
|
713
|
+
mulCT(k) {
|
|
714
|
+
if (!BigNumber.isBN(k)) {
|
|
715
|
+
k = new BigNumber(k, 16);
|
|
716
|
+
}
|
|
717
|
+
k = k;
|
|
718
|
+
if (this.inf)
|
|
719
|
+
return new Point(null, null);
|
|
720
|
+
// ✅ SAFE sign handling (this is the fix)
|
|
721
|
+
const isNeg = k.isNeg();
|
|
722
|
+
const kAbs = isNeg ? k.neg() : k;
|
|
723
|
+
let kBig = BigInt('0x' + kAbs.toString(16));
|
|
724
|
+
kBig = biMod(kBig);
|
|
725
|
+
if (kBig === 0n)
|
|
726
|
+
return new Point(null, null);
|
|
727
|
+
const Px = this === this.curve.g
|
|
728
|
+
? GX_BIGINT
|
|
729
|
+
: BigInt('0x' + this.getX().toString(16));
|
|
730
|
+
const Py = this === this.curve.g
|
|
731
|
+
? GY_BIGINT
|
|
732
|
+
: BigInt('0x' + this.getY().toString(16));
|
|
733
|
+
let R0 = { X: 0n, Y: 1n, Z: 0n };
|
|
734
|
+
let R1 = { X: Px, Y: Py, Z: 1n };
|
|
735
|
+
const bits = kBig.toString(2);
|
|
736
|
+
for (let i = 0; i < bits.length; i++) {
|
|
737
|
+
const bit = bits[i] === '1' ? 1n : 0n;
|
|
738
|
+
ctSwap(bit, R0, R1);
|
|
739
|
+
R1 = jpAdd(R0, R1);
|
|
740
|
+
R0 = jpDouble(R0);
|
|
741
|
+
ctSwap(bit, R0, R1);
|
|
742
|
+
}
|
|
743
|
+
if (R0.Z === 0n)
|
|
744
|
+
return new Point(null, null);
|
|
745
|
+
const zInv = biModInv(R0.Z);
|
|
746
|
+
const zInv2 = biModMul(zInv, zInv);
|
|
747
|
+
const x = biModMul(R0.X, zInv2);
|
|
748
|
+
const y = biModMul(R0.Y, biModMul(zInv2, zInv));
|
|
749
|
+
const result = new Point(x.toString(16), y.toString(16));
|
|
750
|
+
return isNeg ? result.neg() : result;
|
|
751
|
+
}
|
|
672
752
|
/**
|
|
673
753
|
* Performs a multiplication and addition operation in a single step.
|
|
674
754
|
* Multiplies this Point by k1, adds the resulting Point to the result of p2 multiplied by k2.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Point.js","sourceRoot":"","sources":["../../../../src/primitives/Point.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Point.js","sourceRoot":"","sources":["../../../../src/primitives/Point.ts"],"names":[],"mappings":"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"}
|
|
@@ -231,7 +231,7 @@ export default class PrivateKey extends BigNumber {
|
|
|
231
231
|
*/
|
|
232
232
|
toPublicKey() {
|
|
233
233
|
const c = new Curve();
|
|
234
|
-
const p = c.g.
|
|
234
|
+
const p = c.g.mulCT(this);
|
|
235
235
|
return new PublicKey(p.x, p.y);
|
|
236
236
|
}
|
|
237
237
|
/**
|
|
@@ -318,7 +318,7 @@ export default class PrivateKey extends BigNumber {
|
|
|
318
318
|
if (!key.validate()) {
|
|
319
319
|
throw new Error('Public key not valid for ECDH secret derivation');
|
|
320
320
|
}
|
|
321
|
-
return key.
|
|
321
|
+
return key.mulCT(this);
|
|
322
322
|
}
|
|
323
323
|
/**
|
|
324
324
|
* Derives a child key with BRC-42.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PrivateKey.js","sourceRoot":"","sources":["../../../../src/primitives/PrivateKey.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"PrivateKey.js","sourceRoot":"","sources":["../../../../src/primitives/PrivateKey.ts"],"names":[],"mappings":"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"}
|
|
@@ -103,7 +103,7 @@ export default class PublicKey extends Point {
|
|
|
103
103
|
if (!this.validate()) {
|
|
104
104
|
throw new Error('Public key not valid for ECDH secret derivation');
|
|
105
105
|
}
|
|
106
|
-
return this.
|
|
106
|
+
return this.mulCT(priv);
|
|
107
107
|
}
|
|
108
108
|
/**
|
|
109
109
|
* Verify a signature of a message using this public key.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PublicKey.js","sourceRoot":"","sources":["../../../../src/primitives/PublicKey.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,YAAY,CAAA;AAE9B,OAAO,KAAK,MAAM,YAAY,CAAA;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACnC,OAAO,SAAS,MAAM,gBAAgB,CAAA;AACtC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACvD,OAAO,SAAS,MAAM,gBAAgB,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAE1D;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,KAAK;IAC1C;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,cAAc,CAAE,GAAe;QACpC,MAAM,CAAC,GAAG,IAAI,KAAK,EAAE,CAAA;QACrB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACtB,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IAChC,CAAC;IAED;;;;;;;;;OASG;IACH,MAAM,CAAC,UAAU,CAAE,GAAW;QAC5B,MAAM,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QAC/B,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IAChC,CAAC;IAED;;;;;;;;;OASG;IACH,MAAM,CAAC,OAAO,CAAE,KAAe;QAC7B,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QAC9B,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IAChC,CAAC;IAED;;;;;;;;;OASG;IACH,YACE,CAAwD,EACxD,IAAmD,IAAI,EACvD,QAAiB,IAAI;QAErB,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC;YACvB,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;QAC3B,CAAC;aAAM,CAAC;YACN,2FAA2F;YAC3F,IAAI,CAAC,KAAK,IAAI,IAAI,KAAK,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;gBACjD,IAAI,CAAC,CAAC,MAAM,KAAK,EAAE,IAAI,CAAC,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;oBACxC,MAAM,IAAI,KAAK,CACb,0HAA0H,CAC3H,CAAA;gBACH,CAAC;YACH,CAAC;YACD,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAA;QACpB,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,kBAAkB,CAAE,IAAgB;QAClC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAA;QACpE,CAAC;QACD,OAAO,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"PublicKey.js","sourceRoot":"","sources":["../../../../src/primitives/PublicKey.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,19 +39,19 @@ export default class SymmetricKey extends BigNumber {
|
|
|
39
39
|
* const encryptedMessage = key.encrypt('plainText', 'utf8');
|
|
40
40
|
*/
|
|
41
41
|
encrypt(msg, enc) {
|
|
42
|
-
const iv = Random(32);
|
|
43
|
-
|
|
44
|
-
const keyBytes = this.toArray('be', 32);
|
|
45
|
-
const { result, authenticationTag } = AESGCM(
|
|
42
|
+
const iv = new Uint8Array(Random(32));
|
|
43
|
+
const msgBytes = new Uint8Array(toArray(msg, enc));
|
|
44
|
+
const keyBytes = new Uint8Array(this.toArray('be', 32));
|
|
45
|
+
const { result, authenticationTag } = AESGCM(msgBytes, iv, keyBytes);
|
|
46
46
|
const totalLength = iv.length + result.length + authenticationTag.length;
|
|
47
|
-
const combined = new
|
|
47
|
+
const combined = new Uint8Array(totalLength);
|
|
48
48
|
let offset = 0;
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
return encode(combined, enc);
|
|
49
|
+
combined.set(iv, offset);
|
|
50
|
+
offset += iv.length;
|
|
51
|
+
combined.set(result, offset);
|
|
52
|
+
offset += result.length;
|
|
53
|
+
combined.set(authenticationTag, offset);
|
|
54
|
+
return encode(Array.from(combined), enc);
|
|
55
55
|
}
|
|
56
56
|
/**
|
|
57
57
|
* Decrypts a given AES-GCM encrypted message using the same key that was used for encryption.
|
|
@@ -70,21 +70,22 @@ export default class SymmetricKey extends BigNumber {
|
|
|
70
70
|
* @throws {Error} Will throw an error if the decryption fails, likely due to message tampering or incorrect decryption key.
|
|
71
71
|
*/
|
|
72
72
|
decrypt(msg, enc) {
|
|
73
|
-
|
|
73
|
+
const msgBytes = new Uint8Array(toArray(msg, enc));
|
|
74
74
|
const ivLength = 32;
|
|
75
75
|
const tagLength = 16;
|
|
76
|
-
if (
|
|
76
|
+
if (msgBytes.length < ivLength + tagLength) {
|
|
77
77
|
throw new Error('Ciphertext too short');
|
|
78
78
|
}
|
|
79
|
-
const iv =
|
|
80
|
-
const tagStart =
|
|
81
|
-
const ciphertext =
|
|
82
|
-
const messageTag =
|
|
83
|
-
const
|
|
79
|
+
const iv = msgBytes.slice(0, ivLength);
|
|
80
|
+
const tagStart = msgBytes.length - tagLength;
|
|
81
|
+
const ciphertext = msgBytes.slice(ivLength, tagStart);
|
|
82
|
+
const messageTag = msgBytes.slice(tagStart);
|
|
83
|
+
const keyBytes = new Uint8Array(this.toArray('be', 32));
|
|
84
|
+
const result = AESGCMDecrypt(ciphertext, iv, messageTag, keyBytes);
|
|
84
85
|
if (result === null) {
|
|
85
86
|
throw new Error('Decryption failed!');
|
|
86
87
|
}
|
|
87
|
-
return encode(result, enc);
|
|
88
|
+
return encode(Array.from(result), enc);
|
|
88
89
|
}
|
|
89
90
|
}
|
|
90
91
|
//# sourceMappingURL=SymmetricKey.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SymmetricKey.js","sourceRoot":"","sources":["../../../../src/primitives/SymmetricKey.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,gBAAgB,CAAA;AACtC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AACnD,OAAO,MAAM,MAAM,aAAa,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAE5C;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,SAAS;IACjD;;;;;;;;;OASG;IACH,MAAM,CAAC,UAAU;QACf,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;IACrC,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAE,GAAsB,EAAE,GAAW;QAC1C,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"SymmetricKey.js","sourceRoot":"","sources":["../../../../src/primitives/SymmetricKey.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,gBAAgB,CAAA;AACtC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AACnD,OAAO,MAAM,MAAM,aAAa,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAE5C;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,SAAS;IACjD;;;;;;;;;OASG;IACH,MAAM,CAAC,UAAU;QACf,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;IACrC,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAE,GAAsB,EAAE,GAAW;QAC1C,MAAM,EAAE,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;QACrC,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;QAClD,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAA;QAEvD,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,CAC1C,QAAQ,EACR,EAAE,EACF,QAAQ,CACT,CAAA;QAED,MAAM,WAAW,GAAG,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAA;QACxE,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAA;QAC5C,IAAI,MAAM,GAAG,CAAC,CAAA;QAEd,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;QACxB,MAAM,IAAI,EAAE,CAAC,MAAM,CAAA;QACnB,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC5B,MAAM,IAAI,MAAM,CAAC,MAAM,CAAA;QACvB,QAAQ,CAAC,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAA;QAEvC,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAA;IAC1C,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAE,GAAsB,EAAE,GAAoB;QACnD,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;QAElD,MAAM,QAAQ,GAAG,EAAE,CAAA;QACnB,MAAM,SAAS,GAAG,EAAE,CAAA;QAEpB,IAAI,QAAQ,CAAC,MAAM,GAAG,QAAQ,GAAG,SAAS,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;QACzC,CAAC;QAED,MAAM,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;QACtC,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,GAAG,SAAS,CAAA;QAC5C,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;QACrD,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAE3C,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAA;QACvD,MAAM,MAAM,GAAG,aAAa,CAC1B,UAAU,EACV,EAAE,EACF,UAAU,EACV,QAAQ,CACT,CAAA;QACD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAA;QACvC,CAAC;QACD,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAA;IACxC,CAAC;CACF"}
|
|
@@ -3,14 +3,12 @@
|
|
|
3
3
|
const PURE_HEX_REGEX = /^[0-9a-fA-F]*$/;
|
|
4
4
|
export function assertValidHex(msg) {
|
|
5
5
|
if (typeof msg !== 'string') {
|
|
6
|
-
|
|
7
|
-
throw new Error('Invalid hex string');
|
|
6
|
+
throw new TypeError('Invalid hex string');
|
|
8
7
|
}
|
|
9
8
|
// allow empty
|
|
10
9
|
if (msg.length === 0)
|
|
11
10
|
return;
|
|
12
11
|
if (!PURE_HEX_REGEX.test(msg)) {
|
|
13
|
-
console.error('assertValidHex FAIL (bad hex):', msg);
|
|
14
12
|
throw new Error('Invalid hex string');
|
|
15
13
|
}
|
|
16
14
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hex.js","sourceRoot":"","sources":["../../../../src/primitives/hex.ts"],"names":[],"mappings":"AAAA,wBAAwB;AAExB,uEAAuE;AACvE,MAAM,cAAc,GAAG,gBAAgB,CAAA;AAEvC,MAAM,UAAU,cAAc,CAAE,GAAW;IACzC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,
|
|
1
|
+
{"version":3,"file":"hex.js","sourceRoot":"","sources":["../../../../src/primitives/hex.ts"],"names":[],"mappings":"AAAA,wBAAwB;AAExB,uEAAuE;AACvE,MAAM,cAAc,GAAG,gBAAgB,CAAA;AAEvC,MAAM,UAAU,cAAc,CAAE,GAAW;IACzC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,IAAI,SAAS,CAAC,oBAAoB,CAAC,CAAA;IAC3C,CAAC;IAED,cAAc;IACd,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAM;IAE5B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAA;IACvC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,YAAY,CAAE,GAAW;IACvC,cAAc,CAAC,GAAG,CAAC,CAAA;IAEnB,+CAA+C;IAC/C,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IAE/B,IAAI,UAAU,GAAG,GAAG,CAAC,WAAW,EAAE,CAAA;IAElC,qBAAqB;IACrB,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QAChC,UAAU,GAAG,GAAG,GAAG,UAAU,CAAA;IAC/B,CAAC;IAED,OAAO,UAAU,CAAA;AACnB,CAAC"}
|
|
@@ -844,4 +844,13 @@ export function verifyNotNull(value, errorMessage = 'Expected a valid value, but
|
|
|
844
844
|
throw new Error(errorMessage);
|
|
845
845
|
return value;
|
|
846
846
|
}
|
|
847
|
+
export function constantTimeEquals(a, b) {
|
|
848
|
+
if (a.length !== b.length)
|
|
849
|
+
return false;
|
|
850
|
+
let diff = 0;
|
|
851
|
+
for (let i = 0; i < a.length; i++) {
|
|
852
|
+
diff |= a[i] ^ b[i];
|
|
853
|
+
}
|
|
854
|
+
return diff === 0;
|
|
855
|
+
}
|
|
847
856
|
//# sourceMappingURL=utils.js.map
|