@jscrypto/classic 0.1.0 → 0.2.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 (40) hide show
  1. package/README.md +21 -3
  2. package/dist/ciphers/aes.js +1 -1
  3. package/dist/ciphers/aes.js.map +1 -1
  4. package/dist/ciphers/rc4.js +2 -2
  5. package/dist/ciphers/rc4.js.map +1 -1
  6. package/dist/ciphers/triple-des.js +1 -1
  7. package/dist/ciphers/triple-des.js.map +1 -1
  8. package/dist/index.cjs +330 -49
  9. package/dist/index.cjs.map +3 -3
  10. package/dist/index.mjs +312 -27
  11. package/dist/index.mjs.map +3 -3
  12. package/dist/jscrypto-classic.iife.js +415 -84
  13. package/dist/jscrypto-classic.iife.js.map +3 -3
  14. package/dist/jscrypto-classic.iife.min.js +2 -2
  15. package/dist/jscrypto-classic.iife.min.js.map +3 -3
  16. package/dist/jscrypto-classic.umd.js +415 -84
  17. package/dist/jscrypto-classic.umd.js.map +3 -3
  18. package/dist/jscrypto-classic.umd.min.js +2 -2
  19. package/dist/jscrypto-classic.umd.min.js.map +3 -3
  20. package/dist/kdfs/evpkdf.js +3 -2
  21. package/dist/kdfs/evpkdf.js.map +1 -1
  22. package/dist/kdfs/pbkdf2.js +1 -1
  23. package/dist/kdfs/pbkdf2.js.map +1 -1
  24. package/dist/modes/cbc.js +4 -4
  25. package/dist/modes/cbc.js.map +1 -1
  26. package/dist/modes/cfb.js +2 -2
  27. package/dist/modes/cfb.js.map +1 -1
  28. package/dist/modes/ctr.js +2 -2
  29. package/dist/modes/ctr.js.map +1 -1
  30. package/dist/modes/ecb.js +4 -4
  31. package/dist/modes/ecb.js.map +1 -1
  32. package/dist/modes/gcm.d.ts +1 -1
  33. package/dist/modes/gcm.d.ts.map +1 -1
  34. package/dist/modes/gcm.js +289 -4
  35. package/dist/modes/gcm.js.map +1 -1
  36. package/dist/modes/ofb.js +2 -2
  37. package/dist/modes/ofb.js.map +1 -1
  38. package/dist/paddings/iso10126.js +2 -1
  39. package/dist/paddings/iso10126.js.map +1 -1
  40. package/package.json +11 -2
@@ -7,13 +7,14 @@ export const evpKdf = {
7
7
  },
8
8
  };
9
9
  export function deriveEvpKdf(params) {
10
+ var _a;
10
11
  assertPositiveInteger(params.length, 'EvpKDF length');
11
12
  if (params.iterations !== undefined) {
12
13
  assertPositiveInteger(params.iterations, 'EvpKDF iterations');
13
14
  }
14
15
  const options = {
15
16
  keySize: params.length / 4,
16
- iterations: params.iterations ?? 1,
17
+ iterations: (_a = params.iterations) !== null && _a !== void 0 ? _a : 1,
17
18
  };
18
19
  const hasher = getHasher(params.hash);
19
20
  if (hasher) {
@@ -36,7 +37,7 @@ function getHasher(hash) {
36
37
  return hasher;
37
38
  }
38
39
  function normalizeHashName(hash) {
39
- return hash.replaceAll('-', '').toUpperCase();
40
+ return hash.replace(/-/g, '').toUpperCase();
40
41
  }
41
42
  function assertPositiveInteger(value, label) {
42
43
  if (!Number.isInteger(value) || value <= 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"evpkdf.js","sourceRoot":"","sources":["../../src/kdfs/evpkdf.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAWvF,MAAM,CAAC,MAAM,MAAM,GAA2B;IAC5C,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,QAAQ;IACd,MAAM,CAAC,MAAM;QACX,OAAO,YAAY,CAAC,MAAsB,CAAC,CAAC;IAC9C,CAAC;CACF,CAAC;AAEF,MAAM,UAAU,YAAY,CAAC,MAAoB;IAC/C,qBAAqB,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACtD,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACpC,qBAAqB,CAAC,MAAM,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;IAChE,CAAC;IAED,MAAM,OAAO,GAA0B;QACrC,OAAO,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC;QAC1B,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,CAAC;KACnC,CAAC;IACF,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;IAC1B,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;IAC3G,OAAO,gBAAgB,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC;AAQD,SAAS,eAAe,CAAC,KAA0B;IACjD,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,SAAS,CAAC,IAAwB;IACzC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,MAAM,GAAI,QAAQ,CAAC,IAAgC,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;IACnF,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,4BAA4B,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,MAAkC,CAAC;AAC5C,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY;IACrC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;AAChD,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAa,EAAE,KAAa;IACzD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,UAAU,CAAC,GAAG,KAAK,8BAA8B,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"evpkdf.js","sourceRoot":"","sources":["../../src/kdfs/evpkdf.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAWvF,MAAM,CAAC,MAAM,MAAM,GAA2B;IAC5C,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,QAAQ;IACd,MAAM,CAAC,MAAM;QACX,OAAO,YAAY,CAAC,MAAsB,CAAC,CAAC;IAC9C,CAAC;CACF,CAAC;AAEF,MAAM,UAAU,YAAY,CAAC,MAAoB;;IAC/C,qBAAqB,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACtD,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACpC,qBAAqB,CAAC,MAAM,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;IAChE,CAAC;IAED,MAAM,OAAO,GAA0B;QACrC,OAAO,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC;QAC1B,UAAU,EAAE,MAAA,MAAM,CAAC,UAAU,mCAAI,CAAC;KACnC,CAAC;IACF,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;IAC1B,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;IAC3G,OAAO,gBAAgB,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC;AAQD,SAAS,eAAe,CAAC,KAA0B;IACjD,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,SAAS,CAAC,IAAwB;IACzC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,MAAM,GAAI,QAAQ,CAAC,IAAgC,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;IACnF,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,4BAA4B,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,MAAkC,CAAC;AAC5C,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY;IACrC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;AAC9C,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAa,EAAE,KAAa;IACzD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,UAAU,CAAC,GAAG,KAAK,8BAA8B,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC"}
@@ -34,7 +34,7 @@ function getHasher(hash) {
34
34
  return hasher;
35
35
  }
36
36
  function normalizeHashName(hash) {
37
- return hash.replaceAll('-', '').toUpperCase();
37
+ return hash.replace(/-/g, '').toUpperCase();
38
38
  }
39
39
  function assertPositiveInteger(value, label) {
40
40
  if (!Number.isInteger(value) || value <= 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"pbkdf2.js","sourceRoot":"","sources":["../../src/kdfs/pbkdf2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAWvF,MAAM,CAAC,MAAM,MAAM,GAA2B;IAC5C,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,QAAQ;IACd,MAAM,CAAC,MAAM;QACX,OAAO,YAAY,CAAC,MAAsB,CAAC,CAAC;IAC9C,CAAC;CACF,CAAC;AAEF,MAAM,UAAU,YAAY,CAAC,MAAoB;IAC/C,qBAAqB,CAAC,MAAM,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;IAC9D,qBAAqB,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAEtD,MAAM,OAAO,GAA0B;QACrC,OAAO,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC;QAC1B,UAAU,EAAE,MAAM,CAAC,UAAU;KAC9B,CAAC;IACF,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;IAC1B,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;IAC3G,OAAO,gBAAgB,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC;AAQD,SAAS,eAAe,CAAC,KAA0B;IACjD,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,SAAS,CAAC,IAAwB;IACzC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,MAAM,GAAI,QAAQ,CAAC,IAAgC,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;IACnF,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,4BAA4B,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,MAAqC,CAAC;AAC/C,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY;IACrC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;AAChD,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAa,EAAE,KAAa;IACzD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,UAAU,CAAC,GAAG,KAAK,8BAA8B,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"pbkdf2.js","sourceRoot":"","sources":["../../src/kdfs/pbkdf2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAWvF,MAAM,CAAC,MAAM,MAAM,GAA2B;IAC5C,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,QAAQ;IACd,MAAM,CAAC,MAAM;QACX,OAAO,YAAY,CAAC,MAAsB,CAAC,CAAC;IAC9C,CAAC;CACF,CAAC;AAEF,MAAM,UAAU,YAAY,CAAC,MAAoB;IAC/C,qBAAqB,CAAC,MAAM,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;IAC9D,qBAAqB,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAEtD,MAAM,OAAO,GAA0B;QACrC,OAAO,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC;QAC1B,UAAU,EAAE,MAAM,CAAC,UAAU;KAC9B,CAAC;IACF,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;IAC1B,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;IAC3G,OAAO,gBAAgB,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC;AAQD,SAAS,eAAe,CAAC,KAA0B;IACjD,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,SAAS,CAAC,IAAwB;IACzC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,MAAM,GAAI,QAAQ,CAAC,IAAgC,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;IACnF,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,4BAA4B,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,MAAqC,CAAC;AAC/C,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY;IACrC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;AAC9C,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAa,EAAE,KAAa;IACzD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,UAAU,CAAC,GAAG,KAAK,8BAA8B,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC"}
package/dist/modes/cbc.js CHANGED
@@ -26,8 +26,8 @@ function createCbcEncryptor(cipher, iv) {
26
26
  }
27
27
  return output;
28
28
  },
29
- finalize(input = new Uint8Array()) {
30
- return input.length === 0 ? new Uint8Array() : this.process(input);
29
+ finalize(input = new Uint8Array(0)) {
30
+ return input.length === 0 ? new Uint8Array(0) : this.process(input);
31
31
  },
32
32
  };
33
33
  }
@@ -45,8 +45,8 @@ function createCbcDecryptor(cipher, iv) {
45
45
  }
46
46
  return output;
47
47
  },
48
- finalize(input = new Uint8Array()) {
49
- return input.length === 0 ? new Uint8Array() : this.process(input);
48
+ finalize(input = new Uint8Array(0)) {
49
+ return input.length === 0 ? new Uint8Array(0) : this.process(input);
50
50
  },
51
51
  };
52
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cbc.js","sourceRoot":"","sources":["../../src/modes/cbc.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,IAAI,uBAAuB,EAC9C,QAAQ,EACR,QAAQ,GAIT,MAAM,gBAAgB,CAAC;AAExB,MAAM,CAAC,MAAM,GAAG,GAAyB;IACvC,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,KAAK;IACX,eAAe,EAAE,IAAI;IACrB,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;QAC5B,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;QACtC,OAAO,kBAAkB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACxC,CAAC;IACD,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;QAC5B,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;QACtC,OAAO,kBAAkB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACxC,CAAC;CACF,CAAC;AAEF,SAAS,kBAAkB,CAAC,MAAmB,EAAE,EAAc;IAC7D,IAAI,QAAQ,GAAG,EAAE,CAAC;IAElB,OAAO;QACL,OAAO,CAAC,KAAK;YACX,mBAAmB,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAC7C,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAE5C,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,MAAM,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBACvE,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,CAAC;gBACpF,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBAC7C,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;gBAC9B,QAAQ,GAAG,SAAS,CAAC;YACvB,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,QAAQ,CAAC,KAAK,GAAG,IAAI,UAAU,EAAE;YAC/B,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACrE,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAmB,EAAE,EAAc;IAC7D,IAAI,QAAQ,GAAG,EAAE,CAAC;IAElB,OAAO;QACL,OAAO,CAAC,KAAK;YACX,mBAAmB,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAC7C,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAE5C,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,MAAM,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBACvE,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;gBAChE,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBAC7C,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;gBAClD,QAAQ,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;YAC3B,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,QAAQ,CAAC,KAAK,GAAG,IAAI,UAAU,EAAE;YAC/B,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACrE,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,SAAiB,EAAE,KAAiB;IAC/D,uBAAuB,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;AACnD,CAAC"}
1
+ {"version":3,"file":"cbc.js","sourceRoot":"","sources":["../../src/modes/cbc.ts"],"names":[],"mappings":"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"}
package/dist/modes/cfb.js CHANGED
@@ -43,8 +43,8 @@ function createCfbTransform(cipher, iv, encrypting) {
43
43
  }
44
44
  return output;
45
45
  },
46
- finalize(input = new Uint8Array()) {
47
- return input.length === 0 ? new Uint8Array() : this.process(input);
46
+ finalize(input = new Uint8Array(0)) {
47
+ return input.length === 0 ? new Uint8Array(0) : this.process(input);
48
48
  },
49
49
  };
50
50
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cfb.js","sourceRoot":"","sources":["../../src/modes/cfb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAwD,MAAM,gBAAgB,CAAC;AAEhG,MAAM,CAAC,MAAM,GAAG,GAAyB;IACvC,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,KAAK;IACX,eAAe,EAAE,KAAK;IACtB,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;QAC5B,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;QACtC,OAAO,kBAAkB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACxC,CAAC;IACD,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;QAC5B,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;QACtC,OAAO,kBAAkB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACxC,CAAC;CACF,CAAC;AAEF,SAAS,kBAAkB,CAAC,MAAmB,EAAE,EAAc;IAC7D,OAAO,kBAAkB,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAmB,EAAE,EAAc;IAC7D,OAAO,kBAAkB,CAAC,MAAM,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAmB,EAAE,EAAc,EAAE,UAAmB;IAClF,IAAI,QAAQ,GAAe,EAAE,CAAC,KAAK,EAAE,CAAC;IACtC,IAAI,YAAY,GAAe,IAAI,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAChE,IAAI,SAAS,GAAe,IAAI,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC7D,IAAI,QAAQ,GAAG,CAAC,CAAC;IAEjB,OAAO;QACL,OAAO,CAAC,KAAK;YACX,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAE5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtC,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;oBACnB,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;gBAC5C,CAAC;gBAED,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC3B,MAAM,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;gBACnD,MAAM,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;gBACvB,YAAY,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC7D,QAAQ,EAAE,CAAC;gBAEX,IAAI,QAAQ,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC;oBAClC,QAAQ,GAAG,YAAY,CAAC;oBACxB,YAAY,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;oBAChD,QAAQ,GAAG,CAAC,CAAC;gBACf,CAAC;YACH,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,QAAQ,CAAC,KAAK,GAAG,IAAI,UAAU,EAAE;YAC/B,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACrE,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"cfb.js","sourceRoot":"","sources":["../../src/modes/cfb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAwD,MAAM,gBAAgB,CAAC;AAEhG,MAAM,CAAC,MAAM,GAAG,GAAyB;IACvC,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,KAAK;IACX,eAAe,EAAE,KAAK;IACtB,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;QAC5B,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;QACtC,OAAO,kBAAkB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACxC,CAAC;IACD,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;QAC5B,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;QACtC,OAAO,kBAAkB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACxC,CAAC;CACF,CAAC;AAEF,SAAS,kBAAkB,CAAC,MAAmB,EAAE,EAAc;IAC7D,OAAO,kBAAkB,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAmB,EAAE,EAAc;IAC7D,OAAO,kBAAkB,CAAC,MAAM,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAmB,EAAE,EAAc,EAAE,UAAmB;IAClF,IAAI,QAAQ,GAAe,EAAE,CAAC,KAAK,EAAE,CAAC;IACtC,IAAI,YAAY,GAAe,IAAI,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAChE,IAAI,SAAS,GAAe,IAAI,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC7D,IAAI,QAAQ,GAAG,CAAC,CAAC;IAEjB,OAAO;QACL,OAAO,CAAC,KAAK;YACX,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAE5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtC,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;oBACnB,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;gBAC5C,CAAC;gBAED,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC3B,MAAM,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;gBACnD,MAAM,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;gBACvB,YAAY,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC7D,QAAQ,EAAE,CAAC;gBAEX,IAAI,QAAQ,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC;oBAClC,QAAQ,GAAG,YAAY,CAAC;oBACxB,YAAY,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;oBAChD,QAAQ,GAAG,CAAC,CAAC;gBACf,CAAC;YACH,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,QAAQ,CAAC,KAAK,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC;YAChC,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtE,CAAC;KACF,CAAC;AACJ,CAAC"}
package/dist/modes/ctr.js CHANGED
@@ -30,8 +30,8 @@ function createCtrTransform(cipher, iv) {
30
30
  }
31
31
  return output;
32
32
  },
33
- finalize(input = new Uint8Array()) {
34
- return input.length === 0 ? new Uint8Array() : this.process(input);
33
+ finalize(input = new Uint8Array(0)) {
34
+ return input.length === 0 ? new Uint8Array(0) : this.process(input);
35
35
  },
36
36
  };
37
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ctr.js","sourceRoot":"","sources":["../../src/modes/ctr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAwD,MAAM,gBAAgB,CAAC;AAEhG,MAAM,CAAC,MAAM,GAAG,GAAyB;IACvC,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,KAAK;IACX,eAAe,EAAE,KAAK;IACtB,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;QAC5B,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;QACtC,OAAO,kBAAkB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACxC,CAAC;IACD,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;QAC5B,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;QACtC,OAAO,kBAAkB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACxC,CAAC;CACF,CAAC;AAEF,SAAS,kBAAkB,CAAC,MAAmB,EAAE,EAAc;IAC7D,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC;IAC3B,IAAI,SAAS,GAAe,IAAI,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC7D,IAAI,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;IAEhC,OAAO;QACL,OAAO,CAAC,KAAK;YACX,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAE5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtC,IAAI,QAAQ,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC;oBAClC,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;oBACzC,gBAAgB,CAAC,OAAO,CAAC,CAAC;oBAC1B,QAAQ,GAAG,CAAC,CAAC;gBACf,CAAC;gBAED,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;gBAC3C,QAAQ,EAAE,CAAC;YACb,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,QAAQ,CAAC,KAAK,GAAG,IAAI,UAAU,EAAE;YAC/B,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACrE,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAmB;IAC3C,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;QACrC,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YACrB,OAAO;QACT,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"ctr.js","sourceRoot":"","sources":["../../src/modes/ctr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAwD,MAAM,gBAAgB,CAAC;AAEhG,MAAM,CAAC,MAAM,GAAG,GAAyB;IACvC,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,KAAK;IACX,eAAe,EAAE,KAAK;IACtB,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;QAC5B,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;QACtC,OAAO,kBAAkB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACxC,CAAC;IACD,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;QAC5B,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;QACtC,OAAO,kBAAkB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACxC,CAAC;CACF,CAAC;AAEF,SAAS,kBAAkB,CAAC,MAAmB,EAAE,EAAc;IAC7D,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC;IAC3B,IAAI,SAAS,GAAe,IAAI,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC7D,IAAI,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;IAEhC,OAAO;QACL,OAAO,CAAC,KAAK;YACX,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAE5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtC,IAAI,QAAQ,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC;oBAClC,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;oBACzC,gBAAgB,CAAC,OAAO,CAAC,CAAC;oBAC1B,QAAQ,GAAG,CAAC,CAAC;gBACf,CAAC;gBAED,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;gBAC3C,QAAQ,EAAE,CAAC;YACb,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,QAAQ,CAAC,KAAK,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC;YAChC,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtE,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAmB;IAC3C,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;QACrC,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YACrB,OAAO;QACT,CAAC;IACH,CAAC;AACH,CAAC"}
package/dist/modes/ecb.js CHANGED
@@ -20,8 +20,8 @@ function createEcbEncryptor(cipher) {
20
20
  }
21
21
  return output;
22
22
  },
23
- finalize(input = new Uint8Array()) {
24
- return input.length === 0 ? new Uint8Array() : this.process(input);
23
+ finalize(input = new Uint8Array(0)) {
24
+ return input.length === 0 ? new Uint8Array(0) : this.process(input);
25
25
  },
26
26
  };
27
27
  }
@@ -35,8 +35,8 @@ function createEcbDecryptor(cipher) {
35
35
  }
36
36
  return output;
37
37
  },
38
- finalize(input = new Uint8Array()) {
39
- return input.length === 0 ? new Uint8Array() : this.process(input);
38
+ finalize(input = new Uint8Array(0)) {
39
+ return input.length === 0 ? new Uint8Array(0) : this.process(input);
40
40
  },
41
41
  };
42
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ecb.js","sourceRoot":"","sources":["../../src/modes/ecb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,IAAI,uBAAuB,EAAwD,MAAM,gBAAgB,CAAC;AAEtI,MAAM,CAAC,MAAM,GAAG,GAAyB;IACvC,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,KAAK;IACX,eAAe,EAAE,IAAI;IACrB,eAAe,CAAC,EAAE,MAAM,EAAE;QACxB,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IACD,eAAe,CAAC,EAAE,MAAM,EAAE;QACxB,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;CACF,CAAC;AAEF,SAAS,kBAAkB,CAAC,MAAmB;IAC7C,OAAO;QACL,OAAO,CAAC,KAAK;YACX,mBAAmB,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAC7C,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAE5C,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,MAAM,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBACvE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YAC7F,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,QAAQ,CAAC,KAAK,GAAG,IAAI,UAAU,EAAE;YAC/B,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACrE,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAmB;IAC7C,OAAO;QACL,OAAO,CAAC,KAAK;YACX,mBAAmB,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAC7C,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAE5C,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,MAAM,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBACvE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YAC7F,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,QAAQ,CAAC,KAAK,GAAG,IAAI,UAAU,EAAE;YAC/B,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACrE,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,SAAiB,EAAE,KAAiB;IAC/D,uBAAuB,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;AACnD,CAAC"}
1
+ {"version":3,"file":"ecb.js","sourceRoot":"","sources":["../../src/modes/ecb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,IAAI,uBAAuB,EAAwD,MAAM,gBAAgB,CAAC;AAEtI,MAAM,CAAC,MAAM,GAAG,GAAyB;IACvC,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,KAAK;IACX,eAAe,EAAE,IAAI;IACrB,eAAe,CAAC,EAAE,MAAM,EAAE;QACxB,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IACD,eAAe,CAAC,EAAE,MAAM,EAAE;QACxB,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;CACF,CAAC;AAEF,SAAS,kBAAkB,CAAC,MAAmB;IAC7C,OAAO;QACL,OAAO,CAAC,KAAK;YACX,mBAAmB,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAC7C,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAE5C,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,MAAM,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBACvE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YAC7F,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,QAAQ,CAAC,KAAK,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC;YAChC,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtE,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAmB;IAC7C,OAAO;QACL,OAAO,CAAC,KAAK;YACX,mBAAmB,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAC7C,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAE5C,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,MAAM,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBACvE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YAC7F,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,QAAQ,CAAC,KAAK,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC;YAChC,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtE,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,SAAiB,EAAE,KAAiB;IAC/D,uBAAuB,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;AACnD,CAAC"}
@@ -1,3 +1,3 @@
1
- import type { ModeComponent } from '@jscrypto/core';
1
+ import { type ModeComponent } from '@jscrypto/core';
2
2
  export declare const gcm: ModeComponent<'GCM'>;
3
3
  //# sourceMappingURL=gcm.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gcm.d.ts","sourceRoot":"","sources":["../../src/modes/gcm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,eAAO,MAAM,GAAG,EAAE,aAAa,CAAC,KAAK,CAYpC,CAAC"}
1
+ {"version":3,"file":"gcm.d.ts","sourceRoot":"","sources":["../../src/modes/gcm.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,aAAa,EAEnB,MAAM,gBAAgB,CAAC;AAExB,eAAO,MAAM,GAAG,EAAE,aAAa,CAAC,KAAK,CAYpC,CAAC"}
package/dist/modes/gcm.js CHANGED
@@ -1,14 +1,299 @@
1
+ import { assertBytes, concatBytes, equalBytes, } from '@jscrypto/core';
1
2
  export const gcm = {
2
3
  kind: 'mode',
3
4
  name: 'GCM',
4
5
  aead: true,
5
6
  requiredBlockSize: 16,
6
7
  requiresPadding: false,
7
- createEncryptor() {
8
- throw new Error('GCM mode is not implemented yet.');
8
+ createEncryptor({ cipher, iv, options }) {
9
+ return createGcmEncryptor(cipher, getNonce(iv, options), getAad(options), getTagLength(options));
9
10
  },
10
- createDecryptor() {
11
- throw new Error('GCM mode is not implemented yet.');
11
+ createDecryptor({ cipher, iv, options }) {
12
+ return createGcmDecryptor(cipher, getNonce(iv, options), getAad(options), getTagLength(options), getTag(options));
12
13
  },
13
14
  };
15
+ const BLOCK_SIZE = 16;
16
+ const DEFAULT_TAG_LENGTH = 16;
17
+ const R_WORD = 0xe1000000;
18
+ function createGcmEncryptor(cipher, nonce, aad, tagLength) {
19
+ assertGcmCipher(cipher);
20
+ const auth = createGhash(cipher.encryptBlock(new Uint8Array(BLOCK_SIZE)));
21
+ auth.update(aad);
22
+ auth.pad();
23
+ const j0 = createInitialCounter(auth.h, nonce);
24
+ const tagMask = cipher.encryptBlock(j0);
25
+ const counter = j0.slice();
26
+ incrementCounter(counter);
27
+ const xor = createCounterXor(cipher, counter);
28
+ let ciphertextLength = 0;
29
+ return {
30
+ process(input) {
31
+ const ciphertext = xor(input);
32
+ auth.update(ciphertext);
33
+ ciphertextLength += ciphertext.length;
34
+ return ciphertext;
35
+ },
36
+ finalize(input = new Uint8Array(0)) {
37
+ const ciphertext = input.length === 0 ? new Uint8Array(0) : this.process(input);
38
+ const tag = createTag(auth, tagMask, aad.length, ciphertextLength, tagLength);
39
+ return concatBytes(ciphertext, tag);
40
+ },
41
+ };
42
+ }
43
+ function createGcmDecryptor(cipher, nonce, aad, tagLength, detachedTag) {
44
+ assertGcmCipher(cipher);
45
+ const h = cipher.encryptBlock(new Uint8Array(BLOCK_SIZE));
46
+ const j0 = createInitialCounter(h, nonce);
47
+ const tagMask = cipher.encryptBlock(j0);
48
+ let pending = new Uint8Array(0);
49
+ return {
50
+ process(input) {
51
+ pending = concatBytes(pending, input);
52
+ return new Uint8Array(0);
53
+ },
54
+ finalize(input = new Uint8Array(0)) {
55
+ if (input.length !== 0) {
56
+ this.process(input);
57
+ }
58
+ let ciphertext = pending;
59
+ let tag = detachedTag;
60
+ if (!tag) {
61
+ if (pending.length < tagLength) {
62
+ throw new Error('GCM ciphertext must include an authentication tag.');
63
+ }
64
+ ciphertext = new Uint8Array(pending.subarray(0, pending.length - tagLength));
65
+ tag = new Uint8Array(pending.subarray(pending.length - tagLength));
66
+ }
67
+ const auth = createGhash(h);
68
+ auth.update(aad);
69
+ auth.pad();
70
+ auth.update(ciphertext);
71
+ const expectedTag = createTag(auth, tagMask, aad.length, ciphertext.length, tagLength);
72
+ if (!equalBytes(expectedTag, tag)) {
73
+ throw new Error('GCM authentication failed.');
74
+ }
75
+ const counter = j0.slice();
76
+ incrementCounter(counter);
77
+ const plaintext = createCounterXor(cipher, counter)(ciphertext);
78
+ pending = new Uint8Array(0);
79
+ return plaintext;
80
+ },
81
+ };
82
+ }
83
+ function createGhash(h) {
84
+ const hValue = blockToWords(h);
85
+ let state = createZeroWords();
86
+ let pending = new Uint8Array(0);
87
+ function updateBlock(block) {
88
+ state = multiplyGf128(xorWords(state, blockToWords(padBlock(block))), hValue);
89
+ }
90
+ return {
91
+ h,
92
+ update(input) {
93
+ const data = concatBytes(pending, input);
94
+ const processLength = data.length - (data.length % BLOCK_SIZE);
95
+ for (let offset = 0; offset < processLength; offset += BLOCK_SIZE) {
96
+ updateBlock(data.subarray(offset, offset + BLOCK_SIZE));
97
+ }
98
+ pending = data.slice(processLength);
99
+ },
100
+ pad() {
101
+ if (pending.length !== 0) {
102
+ updateBlock(pending);
103
+ pending = new Uint8Array(0);
104
+ }
105
+ },
106
+ digest(aadLength, ciphertextLength) {
107
+ this.pad();
108
+ updateBlock(createLengthBlock(aadLength, ciphertextLength));
109
+ return wordsToBlock(state);
110
+ },
111
+ };
112
+ }
113
+ function createInitialCounter(h, nonce) {
114
+ if (nonce.length === 0) {
115
+ throw new Error('GCM mode requires a nonce.');
116
+ }
117
+ if (nonce.length === 12) {
118
+ const j0 = new Uint8Array(BLOCK_SIZE);
119
+ j0.set(nonce);
120
+ j0[15] = 1;
121
+ return j0;
122
+ }
123
+ const auth = createGhash(h);
124
+ auth.update(nonce);
125
+ return auth.digest(0, nonce.length);
126
+ }
127
+ function createCounterXor(cipher, counter) {
128
+ let keystream = new Uint8Array(0);
129
+ let position = BLOCK_SIZE;
130
+ return (input) => {
131
+ const output = new Uint8Array(input.length);
132
+ for (let i = 0; i < input.length; i++) {
133
+ if (position === BLOCK_SIZE) {
134
+ keystream = cipher.encryptBlock(counter);
135
+ incrementCounter(counter);
136
+ position = 0;
137
+ }
138
+ output[i] = input[i] ^ keystream[position];
139
+ position++;
140
+ }
141
+ return output;
142
+ };
143
+ }
144
+ function createTag(auth, tagMask, aadLength, ciphertextLength, tagLength) {
145
+ const tag = auth.digest(aadLength, ciphertextLength);
146
+ for (let i = 0; i < tag.length; i++) {
147
+ tag[i] ^= tagMask[i];
148
+ }
149
+ return tag.subarray(0, tagLength);
150
+ }
151
+ function createZeroWords() {
152
+ return [0, 0, 0, 0];
153
+ }
154
+ function multiplyGf128(x, y) {
155
+ const z = createZeroWords();
156
+ const v = [y[0], y[1], y[2], y[3]];
157
+ for (let i = 0; i < 128; i++) {
158
+ if ((x[i >>> 5] & (0x80000000 >>> (i & 31))) !== 0) {
159
+ xorWordsInPlace(z, v);
160
+ }
161
+ shiftRightAndReduce(v);
162
+ }
163
+ return z;
164
+ }
165
+ function shiftRightAndReduce(words) {
166
+ const lsb = words[3] & 1;
167
+ words[3] = ((words[3] >>> 1) | ((words[2] & 1) << 31)) >>> 0;
168
+ words[2] = ((words[2] >>> 1) | ((words[1] & 1) << 31)) >>> 0;
169
+ words[1] = ((words[1] >>> 1) | ((words[0] & 1) << 31)) >>> 0;
170
+ words[0] >>>= 1;
171
+ if (lsb) {
172
+ words[0] = (words[0] ^ R_WORD) >>> 0;
173
+ }
174
+ }
175
+ function xorWords(left, right) {
176
+ return [
177
+ (left[0] ^ right[0]) >>> 0,
178
+ (left[1] ^ right[1]) >>> 0,
179
+ (left[2] ^ right[2]) >>> 0,
180
+ (left[3] ^ right[3]) >>> 0,
181
+ ];
182
+ }
183
+ function xorWordsInPlace(left, right) {
184
+ left[0] = (left[0] ^ right[0]) >>> 0;
185
+ left[1] = (left[1] ^ right[1]) >>> 0;
186
+ left[2] = (left[2] ^ right[2]) >>> 0;
187
+ left[3] = (left[3] ^ right[3]) >>> 0;
188
+ }
189
+ function incrementCounter(counter) {
190
+ const value = ((((counter[12] << 24) >>> 0) |
191
+ (counter[13] << 16) |
192
+ (counter[14] << 8) |
193
+ counter[15]) + 1) >>> 0;
194
+ counter[12] = value >>> 24;
195
+ counter[13] = value >>> 16;
196
+ counter[14] = value >>> 8;
197
+ counter[15] = value;
198
+ }
199
+ function padBlock(input) {
200
+ if (input.length === BLOCK_SIZE) {
201
+ return input;
202
+ }
203
+ const output = new Uint8Array(BLOCK_SIZE);
204
+ output.set(input);
205
+ return output;
206
+ }
207
+ function createLengthBlock(aadLength, ciphertextLength) {
208
+ const output = new Uint8Array(BLOCK_SIZE);
209
+ writeBitLength64BE(aadLength, output, 0);
210
+ writeBitLength64BE(ciphertextLength, output, 8);
211
+ return output;
212
+ }
213
+ function writeBitLength64BE(byteLength, output, offset) {
214
+ const high = Math.floor(byteLength / 0x20000000);
215
+ const low = (byteLength % 0x20000000) * 8;
216
+ writeUint32BE(high, output, offset);
217
+ writeUint32BE(low, output, offset + 4);
218
+ }
219
+ function blockToWords(input) {
220
+ return [
221
+ readUint32BE(input, 0),
222
+ readUint32BE(input, 4),
223
+ readUint32BE(input, 8),
224
+ readUint32BE(input, 12),
225
+ ];
226
+ }
227
+ function wordsToBlock(words) {
228
+ const output = new Uint8Array(BLOCK_SIZE);
229
+ writeUint32BE(words[0], output, 0);
230
+ writeUint32BE(words[1], output, 4);
231
+ writeUint32BE(words[2], output, 8);
232
+ writeUint32BE(words[3], output, 12);
233
+ return output;
234
+ }
235
+ function readUint32BE(input, offset) {
236
+ return (((input[offset] << 24) >>> 0) |
237
+ (input[offset + 1] << 16) |
238
+ (input[offset + 2] << 8) |
239
+ input[offset + 3]) >>> 0;
240
+ }
241
+ function writeUint32BE(value, output, offset) {
242
+ output[offset] = value >>> 24;
243
+ output[offset + 1] = value >>> 16;
244
+ output[offset + 2] = value >>> 8;
245
+ output[offset + 3] = value;
246
+ }
247
+ function getNonce(iv, options) {
248
+ const nonce = getOptions(options).nonce;
249
+ if (nonce !== undefined) {
250
+ assertBytes(nonce, 'GCM nonce');
251
+ if (iv !== undefined) {
252
+ throw new Error('GCM mode accepts either iv or nonce, not both.');
253
+ }
254
+ return nonce;
255
+ }
256
+ if (!iv) {
257
+ throw new Error('GCM mode requires an IV/nonce.');
258
+ }
259
+ return iv;
260
+ }
261
+ function getAad(options) {
262
+ const aad = getOptions(options).aad;
263
+ if (aad === undefined) {
264
+ return new Uint8Array(0);
265
+ }
266
+ assertBytes(aad, 'GCM aad');
267
+ return aad;
268
+ }
269
+ function getTag(options) {
270
+ const tag = getOptions(options).tag;
271
+ if (tag === undefined) {
272
+ return undefined;
273
+ }
274
+ assertBytes(tag, 'GCM tag');
275
+ return tag;
276
+ }
277
+ function getTagLength(options) {
278
+ const tag = getTag(options);
279
+ if (tag) {
280
+ return tag.length;
281
+ }
282
+ const tagLength = getOptions(options).tagLength;
283
+ if (tagLength === undefined) {
284
+ return DEFAULT_TAG_LENGTH;
285
+ }
286
+ if (typeof tagLength !== 'number' || !Number.isInteger(tagLength) || tagLength < 4 || tagLength > BLOCK_SIZE) {
287
+ throw new RangeError('GCM tagLength must be an integer between 4 and 16 bytes.');
288
+ }
289
+ return tagLength;
290
+ }
291
+ function getOptions(options) {
292
+ return typeof options === 'object' && options !== null ? options : {};
293
+ }
294
+ function assertGcmCipher(cipher) {
295
+ if (cipher.blockSize !== BLOCK_SIZE) {
296
+ throw new Error('GCM mode requires a 128-bit block cipher.');
297
+ }
298
+ }
14
299
  //# sourceMappingURL=gcm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gcm.js","sourceRoot":"","sources":["../../src/modes/gcm.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,GAAG,GAAyB;IACvC,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,IAAI;IACV,iBAAiB,EAAE,EAAE;IACrB,eAAe,EAAE,KAAK;IACtB,eAAe;QACb,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IACD,eAAe;QACb,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"gcm.js","sourceRoot":"","sources":["../../src/modes/gcm.ts"],"names":[],"mappings":"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"}
package/dist/modes/ofb.js CHANGED
@@ -30,8 +30,8 @@ function createOfbTransform(cipher, iv) {
30
30
  }
31
31
  return output;
32
32
  },
33
- finalize(input = new Uint8Array()) {
34
- return input.length === 0 ? new Uint8Array() : this.process(input);
33
+ finalize(input = new Uint8Array(0)) {
34
+ return input.length === 0 ? new Uint8Array(0) : this.process(input);
35
35
  },
36
36
  };
37
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ofb.js","sourceRoot":"","sources":["../../src/modes/ofb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAwD,MAAM,gBAAgB,CAAC;AAEhG,MAAM,CAAC,MAAM,GAAG,GAAyB;IACvC,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,KAAK;IACX,eAAe,EAAE,KAAK;IACtB,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;QAC5B,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;QACtC,OAAO,kBAAkB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACxC,CAAC;IACD,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;QAC5B,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;QACtC,OAAO,kBAAkB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACxC,CAAC;CACF,CAAC;AAEF,SAAS,kBAAkB,CAAC,MAAmB,EAAE,EAAc;IAC7D,IAAI,QAAQ,GAAe,EAAE,CAAC,KAAK,EAAE,CAAC;IACtC,IAAI,SAAS,GAAe,IAAI,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC7D,IAAI,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;IAEhC,OAAO;QACL,OAAO,CAAC,KAAK;YACX,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAE5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtC,IAAI,QAAQ,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC;oBAClC,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;oBACzC,SAAS,GAAG,QAAQ,CAAC;oBACrB,QAAQ,GAAG,CAAC,CAAC;gBACf,CAAC;gBAED,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;gBAC3C,QAAQ,EAAE,CAAC;YACb,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,QAAQ,CAAC,KAAK,GAAG,IAAI,UAAU,EAAE;YAC/B,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACrE,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"ofb.js","sourceRoot":"","sources":["../../src/modes/ofb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAwD,MAAM,gBAAgB,CAAC;AAEhG,MAAM,CAAC,MAAM,GAAG,GAAyB;IACvC,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,KAAK;IACX,eAAe,EAAE,KAAK;IACtB,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;QAC5B,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;QACtC,OAAO,kBAAkB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACxC,CAAC;IACD,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;QAC5B,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;QACtC,OAAO,kBAAkB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACxC,CAAC;CACF,CAAC;AAEF,SAAS,kBAAkB,CAAC,MAAmB,EAAE,EAAc;IAC7D,IAAI,QAAQ,GAAe,EAAE,CAAC,KAAK,EAAE,CAAC;IACtC,IAAI,SAAS,GAAe,IAAI,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC7D,IAAI,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;IAEhC,OAAO;QACL,OAAO,CAAC,KAAK;YACX,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAE5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtC,IAAI,QAAQ,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC;oBAClC,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;oBACzC,SAAS,GAAG,QAAQ,CAAC;oBACrB,QAAQ,GAAG,CAAC,CAAC;gBACf,CAAC;gBAED,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;gBAC3C,QAAQ,EAAE,CAAC;YACb,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,QAAQ,CAAC,KAAK,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC;YAChC,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtE,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -30,11 +30,12 @@ function getPaddingLength(inputLength, blockSize) {
30
30
  return getBlockPaddingLength(inputLength, blockSize);
31
31
  }
32
32
  function fillRandom(bytes) {
33
+ var _a;
33
34
  if (bytes.length === 0) {
34
35
  return;
35
36
  }
36
37
  const crypto = globalThis;
37
- crypto.crypto?.getRandomValues(bytes);
38
+ (_a = crypto.crypto) === null || _a === void 0 ? void 0 : _a.getRandomValues(bytes);
38
39
  if (bytes.some((byte) => byte !== 0)) {
39
40
  return;
40
41
  }
@@ -1 +1 @@
1
- {"version":3,"file":"iso10126.js","sourceRoot":"","sources":["../../src/paddings/iso10126.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,IAAI,mBAAmB,EACtC,iBAAiB,IAAI,qBAAqB,EAC1C,qBAAqB,GAEtB,MAAM,gBAAgB,CAAC;AAExB,MAAM,CAAC,MAAM,QAAQ,GAAiC;IACpD,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,UAAU;IAEhB,GAAG,CAAC,KAAK,EAAE,SAAS;QAClB,eAAe,CAAC,SAAS,CAAC,CAAC;QAC3B,MAAM,aAAa,GAAG,gBAAgB,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAChE,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,aAAa,CAAC,CAAC;QAC5D,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAClB,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QAC7D,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC;QAC1C,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,KAAK,EAAE,SAAS;QACpB,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACpC,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC9C,IAAI,aAAa,KAAK,CAAC,IAAI,aAAa,GAAG,SAAS,IAAI,aAAa,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YACrF,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,aAAa,CAAC,CAAC;IACtD,CAAC;CACF,CAAC;AAEF,SAAS,eAAe,CAAC,SAAiB;IACxC,mBAAmB,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAiB,EAAE,SAAiB;IAC7D,qBAAqB,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,gBAAgB,CAAC,WAAmB,EAAE,SAAiB;IAC9D,OAAO,qBAAqB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,UAAU,CAAC,KAAiB;IACnC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,UAId,CAAC;IACF,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC;IACtC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC;QACrC,OAAO;IACT,CAAC;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"iso10126.js","sourceRoot":"","sources":["../../src/paddings/iso10126.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,IAAI,mBAAmB,EACtC,iBAAiB,IAAI,qBAAqB,EAC1C,qBAAqB,GAEtB,MAAM,gBAAgB,CAAC;AAExB,MAAM,CAAC,MAAM,QAAQ,GAAiC;IACpD,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,UAAU;IAEhB,GAAG,CAAC,KAAK,EAAE,SAAS;QAClB,eAAe,CAAC,SAAS,CAAC,CAAC;QAC3B,MAAM,aAAa,GAAG,gBAAgB,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAChE,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,aAAa,CAAC,CAAC;QAC5D,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAClB,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QAC7D,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC;QAC1C,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,KAAK,EAAE,SAAS;QACpB,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACpC,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC9C,IAAI,aAAa,KAAK,CAAC,IAAI,aAAa,GAAG,SAAS,IAAI,aAAa,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YACrF,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,aAAa,CAAC,CAAC;IACtD,CAAC;CACF,CAAC;AAEF,SAAS,eAAe,CAAC,SAAiB;IACxC,mBAAmB,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAiB,EAAE,SAAiB;IAC7D,qBAAqB,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,gBAAgB,CAAC,WAAmB,EAAE,SAAiB;IAC9D,OAAO,qBAAqB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,UAAU,CAAC,KAAiB;;IACnC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,UAId,CAAC;IACF,MAAA,MAAM,CAAC,MAAM,0CAAE,eAAe,CAAC,KAAK,CAAC,CAAC;IACtC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC;QACrC,OAAO;IACT,CAAC;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jscrypto/classic",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "Classic cipher, mode, padding, KDF, and format components for @jscrypto.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -21,7 +21,7 @@
21
21
  "LICENSE"
22
22
  ],
23
23
  "dependencies": {
24
- "@jscrypto/core": "0.1.0",
24
+ "@jscrypto/core": "0.2.0",
25
25
  "crypto-js": "^4.2.0"
26
26
  },
27
27
  "scripts": {
@@ -37,6 +37,15 @@
37
37
  "rc4",
38
38
  "crypto-js"
39
39
  ],
40
+ "repository": {
41
+ "type": "git",
42
+ "url": "git+https://github.com/emn178/jscrypto.git",
43
+ "directory": "packages/classic"
44
+ },
45
+ "bugs": {
46
+ "url": "https://github.com/emn178/jscrypto/issues"
47
+ },
48
+ "homepage": "https://github.com/emn178/jscrypto#readme",
40
49
  "author": "Chen, Yi-Cyuan <emn178@gmail.com>",
41
50
  "publishConfig": {
42
51
  "access": "public"