@bsv/sdk 1.5.2 → 1.6.0

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 (66) hide show
  1. package/dist/cjs/package.json +1 -1
  2. package/dist/cjs/src/primitives/AESGCM.js +113 -137
  3. package/dist/cjs/src/primitives/AESGCM.js.map +1 -1
  4. package/dist/cjs/src/primitives/BigNumber.js +1019 -3947
  5. package/dist/cjs/src/primitives/BigNumber.js.map +1 -1
  6. package/dist/cjs/src/primitives/K256.js +53 -37
  7. package/dist/cjs/src/primitives/K256.js.map +1 -1
  8. package/dist/cjs/src/primitives/Mersenne.js +16 -21
  9. package/dist/cjs/src/primitives/Mersenne.js.map +1 -1
  10. package/dist/cjs/src/primitives/MontgomoryMethod.js.map +1 -1
  11. package/dist/cjs/src/primitives/utils.js +27 -17
  12. package/dist/cjs/src/primitives/utils.js.map +1 -1
  13. package/dist/cjs/src/script/Spend.js +618 -858
  14. package/dist/cjs/src/script/Spend.js.map +1 -1
  15. package/dist/cjs/src/transaction/Beef.js +17 -0
  16. package/dist/cjs/src/transaction/Beef.js.map +1 -1
  17. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  18. package/dist/esm/src/primitives/AESGCM.js +112 -137
  19. package/dist/esm/src/primitives/AESGCM.js.map +1 -1
  20. package/dist/esm/src/primitives/BigNumber.js +1011 -3969
  21. package/dist/esm/src/primitives/BigNumber.js.map +1 -1
  22. package/dist/esm/src/primitives/K256.js +53 -37
  23. package/dist/esm/src/primitives/K256.js.map +1 -1
  24. package/dist/esm/src/primitives/Mersenne.js +16 -21
  25. package/dist/esm/src/primitives/Mersenne.js.map +1 -1
  26. package/dist/esm/src/primitives/MontgomoryMethod.js.map +1 -1
  27. package/dist/esm/src/primitives/utils.js +29 -17
  28. package/dist/esm/src/primitives/utils.js.map +1 -1
  29. package/dist/esm/src/script/Spend.js +618 -857
  30. package/dist/esm/src/script/Spend.js.map +1 -1
  31. package/dist/esm/src/transaction/Beef.js +17 -0
  32. package/dist/esm/src/transaction/Beef.js.map +1 -1
  33. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  34. package/dist/types/src/primitives/AESGCM.d.ts.map +1 -1
  35. package/dist/types/src/primitives/BigNumber.d.ts +238 -1705
  36. package/dist/types/src/primitives/BigNumber.d.ts.map +1 -1
  37. package/dist/types/src/primitives/K256.d.ts.map +1 -1
  38. package/dist/types/src/primitives/Mersenne.d.ts +2 -2
  39. package/dist/types/src/primitives/Mersenne.d.ts.map +1 -1
  40. package/dist/types/src/primitives/utils.d.ts +2 -0
  41. package/dist/types/src/primitives/utils.d.ts.map +1 -1
  42. package/dist/types/src/script/Spend.d.ts +11 -1
  43. package/dist/types/src/script/Spend.d.ts.map +1 -1
  44. package/dist/types/src/transaction/Beef.d.ts +21 -1
  45. package/dist/types/src/transaction/Beef.d.ts.map +1 -1
  46. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  47. package/dist/umd/bundle.js +1 -1
  48. package/docs/performance.md +70 -0
  49. package/docs/primitives.md +262 -3049
  50. package/docs/transaction.md +34 -0
  51. package/docs/wallet.md +1 -1
  52. package/package.json +1 -1
  53. package/src/auth/__tests/Peer.test.ts +38 -23
  54. package/src/auth/certificates/__tests/MasterCertificate.test.ts +27 -20
  55. package/src/auth/certificates/__tests/VerifiableCertificate.test.ts +24 -24
  56. package/src/primitives/AESGCM.ts +118 -164
  57. package/src/primitives/BigNumber.ts +867 -4180
  58. package/src/primitives/K256.ts +57 -37
  59. package/src/primitives/Mersenne.ts +16 -20
  60. package/src/primitives/MontgomoryMethod.ts +2 -2
  61. package/src/primitives/__tests/ReductionContext.test.ts +6 -1
  62. package/src/primitives/utils.ts +28 -17
  63. package/src/script/Spend.ts +634 -1309
  64. package/src/transaction/Beef.ts +18 -1
  65. package/src/transaction/__tests/Transaction.test.ts +14 -16
  66. package/src/transaction/__tests/Transaction.benchmarks.test.ts +0 -237
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bsv/sdk",
3
- "version": "1.5.2",
3
+ "version": "1.6.0",
4
4
  "type": "commonjs",
5
5
  "description": "BSV Blockchain Software Development Kit",
6
6
  "files": [
@@ -2,47 +2,54 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AESGCMDecrypt = exports.AESGCM = exports.ghash = exports.incrementLeastSignificantThirtyTwoBits = exports.multiply = exports.rightShift = exports.exclusiveOR = exports.getBytes = exports.checkBit = exports.AES = void 0;
4
4
  // @ts-nocheck
5
- const SBox = [[0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76],
6
- [0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0],
7
- [0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15],
8
- [0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75],
9
- [0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84],
10
- [0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf],
11
- [0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8],
12
- [0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2],
13
- [0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73],
14
- [0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb],
15
- [0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79],
16
- [0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08],
17
- [0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a],
18
- [0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e],
19
- [0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf],
20
- [0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16]];
21
- const Rcon = [[0x00, 0x00, 0x00, 0x00], [0x01, 0x00, 0x00, 0x00], [0x02, 0x00, 0x00, 0x00], [0x04, 0x00, 0x00, 0x00],
5
+ const SBox = new Uint8Array([
6
+ 0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76,
7
+ 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0,
8
+ 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15,
9
+ 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75,
10
+ 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84,
11
+ 0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf,
12
+ 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8,
13
+ 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2,
14
+ 0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73,
15
+ 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb,
16
+ 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79,
17
+ 0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08,
18
+ 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a,
19
+ 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e,
20
+ 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf,
21
+ 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16
22
+ ]);
23
+ const Rcon = [
24
+ [0x00, 0x00, 0x00, 0x00], [0x01, 0x00, 0x00, 0x00], [0x02, 0x00, 0x00, 0x00], [0x04, 0x00, 0x00, 0x00],
22
25
  [0x08, 0x00, 0x00, 0x00], [0x10, 0x00, 0x00, 0x00], [0x20, 0x00, 0x00, 0x00], [0x40, 0x00, 0x00, 0x00],
23
- [0x80, 0x00, 0x00, 0x00], [0x1b, 0x00, 0x00, 0x00], [0x36, 0x00, 0x00, 0x00]];
26
+ [0x80, 0x00, 0x00, 0x00], [0x1b, 0x00, 0x00, 0x00], [0x36, 0x00, 0x00, 0x00]
27
+ ].map(v => new Uint8Array(v));
28
+ const mul2 = new Uint8Array(256);
29
+ const mul3 = new Uint8Array(256);
30
+ for (let i = 0; i < 256; i++) {
31
+ const m2 = ((i << 1) ^ ((i & 0x80) !== 0 ? 0x1b : 0)) & 0xff;
32
+ mul2[i] = m2;
33
+ mul3[i] = m2 ^ i;
34
+ }
24
35
  function addRoundKey(state, roundKeyArray, offset) {
25
- let i;
26
- let j;
27
- for (i = 0; i < 4; i++) {
28
- for (j = 0; j < 4; j++) {
29
- state[i][j] = state[i][j] ^ roundKeyArray[offset + j][i];
36
+ for (let c = 0; c < 4; c++) {
37
+ const keyCol = roundKeyArray[offset + c];
38
+ for (let r = 0; r < 4; r++) {
39
+ state[r][c] ^= keyCol[r];
30
40
  }
31
41
  }
32
42
  }
33
43
  function subBytes(state) {
34
- let i;
35
- let j;
36
- for (i = 0; i < 4; i++) {
37
- for (j = 0; j < 4; j++) {
38
- state[i][j] = SBox[(state[i][j] & 0xF0) >> 4][(state[i][j] & 0x0F)];
44
+ for (let r = 0; r < 4; r++) {
45
+ for (let c = 0; c < 4; c++) {
46
+ state[r][c] = SBox[state[r][c]];
39
47
  }
40
48
  }
41
49
  }
42
50
  function subWord(value) {
43
- let i;
44
- for (i = 0; i < 4; i++) {
45
- value[i] = SBox[(value[i] & 0xF0) >> 4][(value[i] & 0x0F)];
51
+ for (let i = 0; i < 4; i++) {
52
+ value[i] = SBox[value[i]];
46
53
  }
47
54
  }
48
55
  function rotWord(value) {
@@ -53,93 +60,58 @@ function rotWord(value) {
53
60
  value[3] = temp;
54
61
  }
55
62
  function shiftRows(state) {
56
- let i;
57
- let j;
58
- let k;
59
- let l;
60
- let temp;
61
- for (i = 1; i < 4; i++) {
62
- for (j = 0; j < ((i - 1) % 2) + 1; j++) {
63
- temp = state[i][j];
64
- k = j;
65
- while (true) {
66
- l = k + i;
67
- if (l >= 4) {
68
- l = l - 4;
69
- }
70
- if (l === j) {
71
- break;
72
- }
73
- state[i][k] = state[i][l];
74
- k = l;
75
- }
76
- state[i][k] = temp;
77
- }
78
- }
79
- }
80
- function finiteFieldMultiplication(value0, value1) {
81
- let i;
82
- let result = 0;
83
- for (i = 0; i < 8; i++) {
84
- if ((value1 & 1) !== 0) {
85
- result = result ^ value0;
86
- }
87
- if ((value0 & 0x80) !== 0) {
88
- value0 = value0 << 1;
89
- value0 = value0 ^ 0x11b;
90
- }
91
- else {
92
- value0 = value0 << 1;
93
- }
94
- value1 = value1 >> 1;
95
- }
96
- return result;
63
+ let tmp = state[1][0];
64
+ state[1][0] = state[1][1];
65
+ state[1][1] = state[1][2];
66
+ state[1][2] = state[1][3];
67
+ state[1][3] = tmp;
68
+ tmp = state[2][0];
69
+ const tmp2 = state[2][1];
70
+ state[2][0] = state[2][2];
71
+ state[2][1] = state[2][3];
72
+ state[2][2] = tmp;
73
+ state[2][3] = tmp2;
74
+ tmp = state[3][3];
75
+ state[3][3] = state[3][2];
76
+ state[3][2] = state[3][1];
77
+ state[3][1] = state[3][0];
78
+ state[3][0] = tmp;
97
79
  }
98
80
  function mixColumns(state) {
99
- let i;
100
- let j;
101
- const temp = [[], [], [], []];
102
- for (i = 0; i < 4; i++) {
103
- temp[0][i] = finiteFieldMultiplication(0x02, state[0][i]) ^ finiteFieldMultiplication(0x03, state[1][i]) ^
104
- state[2][i] ^ state[3][i];
105
- temp[1][i] = state[0][i] ^ finiteFieldMultiplication(0x02, state[1][i]) ^
106
- finiteFieldMultiplication(0x03, state[2][i]) ^ state[3][i];
107
- temp[2][i] = state[0][i] ^ state[1][i] ^ finiteFieldMultiplication(0x02, state[2][i]) ^
108
- finiteFieldMultiplication(0x03, state[3][i]);
109
- temp[3][i] = finiteFieldMultiplication(0x03, state[0][i]) ^ state[1][i] ^ state[2][i] ^
110
- finiteFieldMultiplication(0x02, state[3][i]);
111
- }
112
- for (i = 0; i < 4; i++) {
113
- for (j = 0; j < 4; j++) {
114
- state[i][j] = temp[i][j];
115
- }
81
+ for (let c = 0; c < 4; c++) {
82
+ const s0 = state[0][c];
83
+ const s1 = state[1][c];
84
+ const s2 = state[2][c];
85
+ const s3 = state[3][c];
86
+ state[0][c] = mul2[s0] ^ mul3[s1] ^ s2 ^ s3;
87
+ state[1][c] = s0 ^ mul2[s1] ^ mul3[s2] ^ s3;
88
+ state[2][c] = s0 ^ s1 ^ mul2[s2] ^ mul3[s3];
89
+ state[3][c] = mul3[s0] ^ s1 ^ s2 ^ mul2[s3];
116
90
  }
117
91
  }
118
92
  function keyExpansion(roundLimit, key) {
119
- let i;
120
- let j;
121
- const nK = parseInt(String(key.length / 4));
93
+ const nK = key.length / 4;
122
94
  const result = [];
123
- for (i = 0; i < key.length; i++) {
124
- if (i % 4 === 0) {
95
+ for (let i = 0; i < key.length; i++) {
96
+ if (i % 4 === 0)
125
97
  result.push([]);
126
- }
127
- result[parseInt(String(i / 4))].push(key[i]);
98
+ result[i >> 2].push(key[i]);
128
99
  }
129
- for (i = nK; i < 4 * roundLimit; i++) {
100
+ for (let i = nK; i < 4 * roundLimit; i++) {
130
101
  result[i] = [];
131
102
  const temp = result[i - 1].slice();
132
103
  if (i % nK === 0) {
133
104
  rotWord(temp);
134
105
  subWord(temp);
135
- for (j = 0; j < 4; j++) {
136
- temp[j] = temp[j] ^ Rcon[parseInt(String(i / nK))][j];
106
+ const r = Rcon[i / nK];
107
+ for (let j = 0; j < 4; j++) {
108
+ temp[j] ^= r[j];
137
109
  }
138
110
  }
139
111
  else if (nK > 6 && (i % nK) === 4) {
140
112
  subWord(temp);
141
113
  }
142
- for (j = 0; j < 4; j++) {
114
+ for (let j = 0; j < 4; j++) {
143
115
  result[i][j] = result[i - nK][j] ^ temp[j];
144
116
  }
145
117
  }
@@ -174,10 +146,12 @@ function AES(input, key) {
174
146
  throw new Error('Illegal key length: ' + String(key.length));
175
147
  }
176
148
  const w = keyExpansion(roundLimit, ekey);
177
- for (i = 0; i < 15; i++) {
178
- state[parseInt(String(i / 4))].push(input[(i * 4) % 15]);
149
+ for (let c = 0; c < 4; c++) {
150
+ state[0][c] = input[c * 4];
151
+ state[1][c] = input[c * 4 + 1];
152
+ state[2][c] = input[c * 4 + 2];
153
+ state[3][c] = input[c * 4 + 3];
179
154
  }
180
- state[3].push(input[15]);
181
155
  addRoundKey(state, w, 0);
182
156
  for (round = 1; round < roundLimit; round++) {
183
157
  subBytes(state);
@@ -209,23 +183,23 @@ const getBytes = function (numericValue) {
209
183
  };
210
184
  exports.getBytes = getBytes;
211
185
  const createZeroBlock = function (length) {
212
- let i;
213
- const result = [];
214
- for (i = 0; i < length; i++) {
215
- result.push(0x00);
216
- }
217
- return result;
186
+ return new Array(length).fill(0);
218
187
  };
219
188
  const R = [0xe1].concat(createZeroBlock(15));
220
189
  const exclusiveOR = function (block0, block1) {
221
- let i;
222
- const result = [];
223
- for (i = 0; i < block0.length; i++) {
190
+ const len = block0.length;
191
+ const result = new Array(len);
192
+ for (let i = 0; i < len; i++) {
224
193
  result[i] = block0[i] ^ block1[i];
225
194
  }
226
195
  return result;
227
196
  };
228
197
  exports.exclusiveOR = exclusiveOR;
198
+ const xorInto = function (target, block) {
199
+ for (let i = 0; i < target.length; i++) {
200
+ target[i] ^= block[i];
201
+ }
202
+ };
229
203
  const rightShift = function (block) {
230
204
  let i;
231
205
  let carry = 0;
@@ -242,20 +216,19 @@ const rightShift = function (block) {
242
216
  };
243
217
  exports.rightShift = rightShift;
244
218
  const multiply = function (block0, block1) {
245
- let i;
246
- let j;
247
- let v = block1.slice();
248
- let z = createZeroBlock(16);
249
- for (i = 0; i < 16; i++) {
250
- for (j = 7; j !== -1; j--) {
251
- if ((0, exports.checkBit)(block0, i, j) !== 0) {
252
- z = (0, exports.exclusiveOR)(z, v);
219
+ const v = block1.slice();
220
+ const z = createZeroBlock(16);
221
+ for (let i = 0; i < 16; i++) {
222
+ for (let j = 7; j >= 0; j--) {
223
+ if ((block0[i] & (1 << j)) !== 0) {
224
+ xorInto(z, v);
253
225
  }
254
- if ((0, exports.checkBit)(v, 15, 0) !== 0) {
255
- v = (0, exports.exclusiveOR)((0, exports.rightShift)(v), R);
226
+ if ((v[15] & 1) !== 0) {
227
+ (0, exports.rightShift)(v);
228
+ xorInto(v, R);
256
229
  }
257
230
  else {
258
- v = (0, exports.rightShift)(v);
231
+ (0, exports.rightShift)(v);
259
232
  }
260
233
  }
261
234
  }
@@ -278,28 +251,31 @@ const incrementLeastSignificantThirtyTwoBits = function (block) {
278
251
  };
279
252
  exports.incrementLeastSignificantThirtyTwoBits = incrementLeastSignificantThirtyTwoBits;
280
253
  function ghash(input, hashSubKey) {
281
- let i;
254
+ var _a;
282
255
  let result = createZeroBlock(16);
283
- for (i = 0; i < input.length; i += 16) {
284
- result = (0, exports.multiply)((0, exports.exclusiveOR)(result, input.slice(i, Math.min(i + 16, input.length))), hashSubKey);
256
+ for (let i = 0; i < input.length; i += 16) {
257
+ const block = result.slice();
258
+ for (let j = 0; j < 16; j++) {
259
+ block[j] ^= (_a = input[i + j]) !== null && _a !== void 0 ? _a : 0;
260
+ }
261
+ result = (0, exports.multiply)(block, hashSubKey);
285
262
  }
286
263
  return result;
287
264
  }
288
265
  exports.ghash = ghash;
289
266
  function gctr(input, initialCounterBlock, key) {
290
- let i;
291
- let j;
292
- let y;
267
+ if (input.length === 0)
268
+ return [];
269
+ const output = new Array(input.length);
293
270
  let counterBlock = initialCounterBlock;
294
- const output = [];
295
- if (input.length === 0) {
296
- return input;
297
- }
271
+ let pos = 0;
298
272
  const n = Math.ceil(input.length / 16);
299
- for (i = 0; i < n; i++) {
300
- y = (0, exports.exclusiveOR)(input.slice(i * 16, Math.min((i + 1) * 16, input.length)), AES(counterBlock, key));
301
- for (j = 0; j < y.length; j++) {
302
- output.push(y[j]);
273
+ for (let i = 0; i < n; i++) {
274
+ const counter = AES(counterBlock, key);
275
+ const chunk = Math.min(16, input.length - pos);
276
+ for (let j = 0; j < chunk; j++) {
277
+ output[pos] = input[pos] ^ counter[j];
278
+ pos++;
303
279
  }
304
280
  if (i + 1 < n) {
305
281
  counterBlock = (0, exports.incrementLeastSignificantThirtyTwoBits)(counterBlock);
@@ -1 +1 @@
1
- {"version":3,"file":"AESGCM.js","sourceRoot":"","sources":["../../../../src/primitives/AESGCM.ts"],"names":[],"mappings":";;;AACA,cAAc;AACd,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;IAC5G,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;IAChG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;IAChG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;IAChG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;IAChG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;IAChG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;IAChG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;IAChG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;IAChG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;IAChG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;IAChG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;IAChG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;IAChG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI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"}
1
+ {"version":3,"file":"AESGCM.js","sourceRoot":"","sources":["../../../../src/primitives/AESGCM.ts"],"names":[],"mappings":";;;AACA,cAAc;AACd,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC;IAC1B,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IA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"}