@lindorm/aes 0.5.5 → 0.6.1

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 (169) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/MERMAID.md +155 -0
  3. package/README.md +365 -199
  4. package/__tests__/INTEROP-RESULTS.md +66 -0
  5. package/__tests__/esm-smoke.test.ts +15 -0
  6. package/__tests__/fixtures/keys.ts +60 -0
  7. package/__tests__/helpers/buffer-utils.ts +11 -0
  8. package/__tests__/helpers/index.ts +2 -0
  9. package/__tests__/helpers/jwe-adapter.ts +117 -0
  10. package/__tests__/jose-jwe.test.ts +463 -0
  11. package/__tests__/noble-ciphers.test.ts +208 -0
  12. package/dist/classes/AesKit.d.ts +10 -8
  13. package/dist/classes/AesKit.d.ts.map +1 -1
  14. package/dist/classes/AesKit.js +73 -34
  15. package/dist/classes/AesKit.js.map +1 -1
  16. package/dist/constants/private/index.d.ts +0 -1
  17. package/dist/constants/private/index.d.ts.map +1 -1
  18. package/dist/constants/private/index.js +0 -1
  19. package/dist/constants/private/index.js.map +1 -1
  20. package/dist/constants/private/version.d.ts +3 -1
  21. package/dist/constants/private/version.d.ts.map +1 -1
  22. package/dist/constants/private/version.js +4 -2
  23. package/dist/constants/private/version.js.map +1 -1
  24. package/dist/interfaces/AesKit.d.ts +12 -7
  25. package/dist/interfaces/AesKit.d.ts.map +1 -1
  26. package/dist/mocks/mock-aes-kit.d.ts.map +1 -1
  27. package/dist/mocks/mock-aes-kit.js +12 -2
  28. package/dist/mocks/mock-aes-kit.js.map +1 -1
  29. package/dist/types/aes-decryption-data.d.ts +26 -17
  30. package/dist/types/aes-decryption-data.d.ts.map +1 -1
  31. package/dist/types/aes-encryption-data.d.ts +7 -17
  32. package/dist/types/aes-encryption-data.d.ts.map +1 -1
  33. package/dist/types/content.d.ts +1 -1
  34. package/dist/types/content.d.ts.map +1 -1
  35. package/dist/types/index.d.ts +1 -0
  36. package/dist/types/index.d.ts.map +1 -1
  37. package/dist/types/private/aes-data.d.ts.map +1 -1
  38. package/dist/types/private/aes-key-derivation.d.ts +1 -1
  39. package/dist/types/private/aes-key-derivation.d.ts.map +1 -1
  40. package/dist/types/private/auth-tag.d.ts +3 -0
  41. package/dist/types/private/auth-tag.d.ts.map +1 -1
  42. package/dist/types/private/content-encryption-key.d.ts +4 -2
  43. package/dist/types/private/content-encryption-key.d.ts.map +1 -1
  44. package/dist/types/private/index.d.ts +1 -1
  45. package/dist/types/private/index.d.ts.map +1 -1
  46. package/dist/types/private/index.js +1 -1
  47. package/dist/types/private/index.js.map +1 -1
  48. package/dist/types/private/prepared-encryption.d.ts +35 -0
  49. package/dist/types/private/prepared-encryption.d.ts.map +1 -0
  50. package/dist/types/private/{aes-string.js → prepared-encryption.js} +1 -1
  51. package/dist/types/private/prepared-encryption.js.map +1 -0
  52. package/dist/utils/is-aes.d.ts.map +1 -1
  53. package/dist/utils/is-aes.js +1 -5
  54. package/dist/utils/is-aes.js.map +1 -1
  55. package/dist/utils/parse-aes.js +3 -3
  56. package/dist/utils/parse-aes.js.map +1 -1
  57. package/dist/utils/private/aes-header.d.ts +42 -0
  58. package/dist/utils/private/aes-header.d.ts.map +1 -0
  59. package/dist/utils/private/aes-header.js +75 -0
  60. package/dist/utils/private/aes-header.js.map +1 -0
  61. package/dist/utils/private/calculate/calculate-content-encryption-key-size.js +3 -3
  62. package/dist/utils/private/calculate/calculate-key-wrap-encryption.d.ts.map +1 -1
  63. package/dist/utils/private/calculate/calculate-key-wrap-encryption.js +2 -1
  64. package/dist/utils/private/calculate/calculate-key-wrap-encryption.js.map +1 -1
  65. package/dist/utils/private/content.js +1 -1
  66. package/dist/utils/private/content.js.map +1 -1
  67. package/dist/utils/private/data/auth-tag-hmac.d.ts +2 -2
  68. package/dist/utils/private/data/auth-tag-hmac.d.ts.map +1 -1
  69. package/dist/utils/private/data/auth-tag-hmac.js +12 -4
  70. package/dist/utils/private/data/auth-tag-hmac.js.map +1 -1
  71. package/dist/utils/private/data/auth-tag.d.ts +2 -2
  72. package/dist/utils/private/data/auth-tag.d.ts.map +1 -1
  73. package/dist/utils/private/data/auth-tag.js +4 -2
  74. package/dist/utils/private/data/auth-tag.js.map +1 -1
  75. package/dist/utils/private/data/split-content-encryption-key.d.ts.map +1 -1
  76. package/dist/utils/private/data/split-content-encryption-key.js +6 -2
  77. package/dist/utils/private/data/split-content-encryption-key.js.map +1 -1
  78. package/dist/utils/private/diffie-hellman/diffie-hellman-key-wrap.d.ts +2 -2
  79. package/dist/utils/private/diffie-hellman/diffie-hellman-key-wrap.d.ts.map +1 -1
  80. package/dist/utils/private/diffie-hellman/diffie-hellman-key-wrap.js +12 -8
  81. package/dist/utils/private/diffie-hellman/diffie-hellman-key-wrap.js.map +1 -1
  82. package/dist/utils/private/diffie-hellman/diffie-hellman.d.ts +2 -2
  83. package/dist/utils/private/diffie-hellman/diffie-hellman.d.ts.map +1 -1
  84. package/dist/utils/private/diffie-hellman/diffie-hellman.js +12 -8
  85. package/dist/utils/private/diffie-hellman/diffie-hellman.js.map +1 -1
  86. package/dist/utils/private/diffie-hellman/shared-secret.d.ts.map +1 -1
  87. package/dist/utils/private/diffie-hellman/shared-secret.js +5 -1
  88. package/dist/utils/private/diffie-hellman/shared-secret.js.map +1 -1
  89. package/dist/utils/private/encoded-aes.d.ts +2 -2
  90. package/dist/utils/private/encoded-aes.d.ts.map +1 -1
  91. package/dist/utils/private/encoded-aes.js +86 -149
  92. package/dist/utils/private/encoded-aes.js.map +1 -1
  93. package/dist/utils/private/encrypt-content.d.ts +3 -0
  94. package/dist/utils/private/encrypt-content.d.ts.map +1 -0
  95. package/dist/utils/private/encrypt-content.js +35 -0
  96. package/dist/utils/private/encrypt-content.js.map +1 -0
  97. package/dist/utils/private/encrypt-encoded.d.ts +9 -0
  98. package/dist/utils/private/encrypt-encoded.d.ts.map +1 -0
  99. package/dist/utils/private/encrypt-encoded.js +53 -0
  100. package/dist/utils/private/encrypt-encoded.js.map +1 -0
  101. package/dist/utils/private/encrypt-serialised.d.ts +9 -0
  102. package/dist/utils/private/encrypt-serialised.d.ts.map +1 -0
  103. package/dist/utils/private/encrypt-serialised.js +48 -0
  104. package/dist/utils/private/encrypt-serialised.js.map +1 -0
  105. package/dist/utils/private/encrypt-tokenised.d.ts +9 -0
  106. package/dist/utils/private/encrypt-tokenised.d.ts.map +1 -0
  107. package/dist/utils/private/encrypt-tokenised.js +45 -0
  108. package/dist/utils/private/encrypt-tokenised.js.map +1 -0
  109. package/dist/utils/private/encryption.d.ts.map +1 -1
  110. package/dist/utils/private/encryption.js +27 -27
  111. package/dist/utils/private/encryption.js.map +1 -1
  112. package/dist/utils/private/index.d.ts +6 -0
  113. package/dist/utils/private/index.d.ts.map +1 -1
  114. package/dist/utils/private/index.js +6 -0
  115. package/dist/utils/private/index.js.map +1 -1
  116. package/dist/utils/private/key-derivation/concat-kdf.d.ts +14 -0
  117. package/dist/utils/private/key-derivation/concat-kdf.d.ts.map +1 -0
  118. package/dist/utils/private/key-derivation/concat-kdf.js +26 -0
  119. package/dist/utils/private/key-derivation/concat-kdf.js.map +1 -0
  120. package/dist/utils/private/key-derivation/index.d.ts +1 -1
  121. package/dist/utils/private/key-derivation/index.d.ts.map +1 -1
  122. package/dist/utils/private/key-derivation/index.js +1 -1
  123. package/dist/utils/private/key-derivation/index.js.map +1 -1
  124. package/dist/utils/private/key-derivation/pbkdf.d.ts +1 -0
  125. package/dist/utils/private/key-derivation/pbkdf.d.ts.map +1 -1
  126. package/dist/utils/private/key-derivation/pbkdf.js +13 -2
  127. package/dist/utils/private/key-derivation/pbkdf.js.map +1 -1
  128. package/dist/utils/private/key-wrap/ecb-key-wrap.d.ts.map +1 -1
  129. package/dist/utils/private/key-wrap/ecb-key-wrap.js +10 -3
  130. package/dist/utils/private/key-wrap/ecb-key-wrap.js.map +1 -1
  131. package/dist/utils/private/key-wrap/gcm-key-wrap.d.ts.map +1 -1
  132. package/dist/utils/private/key-wrap/gcm-key-wrap.js +6 -0
  133. package/dist/utils/private/key-wrap/gcm-key-wrap.js.map +1 -1
  134. package/dist/utils/private/oct/get-oct-key-key-wrap.d.ts +1 -1
  135. package/dist/utils/private/oct/get-oct-key-key-wrap.d.ts.map +1 -1
  136. package/dist/utils/private/oct/get-oct-key-key-wrap.js +7 -14
  137. package/dist/utils/private/oct/get-oct-key-key-wrap.js.map +1 -1
  138. package/dist/utils/private/oct/get-oct-pbkdf-key-wrap-keys.d.ts.map +1 -1
  139. package/dist/utils/private/oct/get-oct-pbkdf-key-wrap-keys.js +2 -0
  140. package/dist/utils/private/oct/get-oct-pbkdf-key-wrap-keys.js.map +1 -1
  141. package/dist/utils/private/prepare-encryption.d.ts +3 -0
  142. package/dist/utils/private/prepare-encryption.d.ts.map +1 -0
  143. package/dist/utils/private/prepare-encryption.js +27 -0
  144. package/dist/utils/private/prepare-encryption.js.map +1 -0
  145. package/dist/utils/private/serialised-aes.d.ts.map +1 -1
  146. package/dist/utils/private/serialised-aes.js +38 -46
  147. package/dist/utils/private/serialised-aes.js.map +1 -1
  148. package/dist/utils/private/tokenised-aes.d.ts +3 -3
  149. package/dist/utils/private/tokenised-aes.d.ts.map +1 -1
  150. package/dist/utils/private/tokenised-aes.js +73 -55
  151. package/dist/utils/private/tokenised-aes.js.map +1 -1
  152. package/dist/utils/private/validate-version.d.ts +2 -0
  153. package/dist/utils/private/validate-version.d.ts.map +1 -0
  154. package/dist/utils/private/validate-version.js +27 -0
  155. package/dist/utils/private/validate-version.js.map +1 -0
  156. package/jest.config.interop.mjs +24 -0
  157. package/package.json +18 -16
  158. package/tsconfig.interop.json +9 -0
  159. package/dist/constants/private/format.d.ts +0 -2
  160. package/dist/constants/private/format.d.ts.map +0 -1
  161. package/dist/constants/private/format.js +0 -5
  162. package/dist/constants/private/format.js.map +0 -1
  163. package/dist/types/private/aes-string.d.ts +0 -21
  164. package/dist/types/private/aes-string.d.ts.map +0 -1
  165. package/dist/types/private/aes-string.js.map +0 -1
  166. package/dist/utils/private/key-derivation/hkdf.d.ts +0 -13
  167. package/dist/utils/private/key-derivation/hkdf.d.ts.map +0 -1
  168. package/dist/utils/private/key-derivation/hkdf.js +0 -12
  169. package/dist/utils/private/key-derivation/hkdf.js.map +0 -1
@@ -6,10 +6,6 @@ const isAesBufferData = (data) => Object.values(data).some((x) => (0, is_1.isBuf
6
6
  exports.isAesBufferData = isAesBufferData;
7
7
  const isAesSerialisedData = (options) => Object.values(options).every((x) => !(0, is_1.isBuffer)(x));
8
8
  exports.isAesSerialisedData = isAesSerialisedData;
9
- const isAesTokenised = (string) => (0, is_1.isString)(string) &&
10
- string.startsWith("$") &&
11
- string.endsWith("$") &&
12
- string.includes("v=") &&
13
- string.includes("alg=");
9
+ const isAesTokenised = (string) => (0, is_1.isString)(string) && string.startsWith("aes:");
14
10
  exports.isAesTokenised = isAesTokenised;
15
11
  //# sourceMappingURL=is-aes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"is-aes.js","sourceRoot":"","sources":["../../src/utils/is-aes.ts"],"names":[],"mappings":";;;AAAA,oCAAiD;AAG1C,MAAM,eAAe,GAAG,CAC7B,IAAmD,EACtB,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,aAAQ,EAAC,CAAC,CAAC,CAAC,CAAC;AAFlE,QAAA,eAAe,mBAEmD;AAExE,MAAM,mBAAmB,GAAG,CACjC,OAAsD,EAClB,EAAE,CACtC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAA,aAAQ,EAAC,CAAC,CAAC,CAAC,CAAC;AAHvC,QAAA,mBAAmB,uBAGoB;AAE7C,MAAM,cAAc,GAAG,CAAC,MAAc,EAAW,EAAE,CACxD,IAAA,aAAQ,EAAC,MAAM,CAAC;IAChB,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC;IACtB,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;IACpB,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;IACrB,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AALb,QAAA,cAAc,kBAKD"}
1
+ {"version":3,"file":"is-aes.js","sourceRoot":"","sources":["../../src/utils/is-aes.ts"],"names":[],"mappings":";;;AAAA,oCAAiD;AAG1C,MAAM,eAAe,GAAG,CAC7B,IAAmD,EACtB,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,aAAQ,EAAC,CAAC,CAAC,CAAC,CAAC;AAFlE,QAAA,eAAe,mBAEmD;AAExE,MAAM,mBAAmB,GAAG,CACjC,OAAsD,EAClB,EAAE,CACtC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAA,aAAQ,EAAC,CAAC,CAAC,CAAC,CAAC;AAHvC,QAAA,mBAAmB,uBAGoB;AAE7C,MAAM,cAAc,GAAG,CAAC,MAAc,EAAW,EAAE,CACxD,IAAA,aAAQ,EAAC,MAAM,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AADnC,QAAA,cAAc,kBACqB"}
@@ -6,12 +6,12 @@ const errors_1 = require("../errors");
6
6
  const is_aes_1 = require("./is-aes");
7
7
  const private_1 = require("./private");
8
8
  const parseAes = (data) => {
9
- if ((0, is_1.isString)(data) && !(0, is_aes_1.isAesTokenised)(data)) {
10
- return (0, private_1.parseEncodedAesString)(data);
11
- }
12
9
  if ((0, is_1.isString)(data) && (0, is_aes_1.isAesTokenised)(data)) {
13
10
  return (0, private_1.parseTokenisedAesString)(data);
14
11
  }
12
+ if ((0, is_1.isString)(data) && !(0, is_aes_1.isAesTokenised)(data)) {
13
+ return (0, private_1.parseEncodedAesString)(data);
14
+ }
15
15
  if ((0, is_1.isObject)(data) && (0, is_aes_1.isAesBufferData)(data)) {
16
16
  return data;
17
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"parse-aes.js","sourceRoot":"","sources":["../../src/utils/parse-aes.ts"],"names":[],"mappings":";;;AAAA,oCAAiD;AACjD,sCAAqC;AAErC,qCAAgF;AAChF,uCAImB;AAEZ,MAAM,QAAQ,GAAG,CACtB,IAA4D,EACvC,EAAE;IACvB,IAAI,IAAA,aAAQ,EAAC,IAAI,CAAC,IAAI,CAAC,IAAA,uBAAc,EAAC,IAAI,CAAC,EAAE,CAAC;QAC5C,OAAO,IAAA,+BAAqB,EAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,IAAI,IAAA,aAAQ,EAAC,IAAI,CAAC,IAAI,IAAA,uBAAc,EAAC,IAAI,CAAC,EAAE,CAAC;QAC3C,OAAO,IAAA,iCAAuB,EAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,IAAA,aAAQ,EAAC,IAAI,CAAC,IAAI,IAAA,wBAAe,EAAC,IAAI,CAAC,EAAE,CAAC;QAC5C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,IAAA,aAAQ,EAAC,IAAI,CAAC,IAAI,IAAA,4BAAmB,EAAC,IAAI,CAAC,EAAE,CAAC;QAChD,OAAO,IAAA,kCAAwB,EAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,MAAM,IAAI,iBAAQ,CAAC,kBAAkB,CAAC,CAAC;AACzC,CAAC,CAAC;AApBW,QAAA,QAAQ,YAoBnB"}
1
+ {"version":3,"file":"parse-aes.js","sourceRoot":"","sources":["../../src/utils/parse-aes.ts"],"names":[],"mappings":";;;AAAA,oCAAiD;AACjD,sCAAqC;AAErC,qCAAgF;AAChF,uCAImB;AAEZ,MAAM,QAAQ,GAAG,CACtB,IAA4D,EACvC,EAAE;IACvB,IAAI,IAAA,aAAQ,EAAC,IAAI,CAAC,IAAI,IAAA,uBAAc,EAAC,IAAI,CAAC,EAAE,CAAC;QAC3C,OAAO,IAAA,iCAAuB,EAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,IAAA,aAAQ,EAAC,IAAI,CAAC,IAAI,CAAC,IAAA,uBAAc,EAAC,IAAI,CAAC,EAAE,CAAC;QAC5C,OAAO,IAAA,+BAAqB,EAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,IAAI,IAAA,aAAQ,EAAC,IAAI,CAAC,IAAI,IAAA,wBAAe,EAAC,IAAI,CAAC,EAAE,CAAC;QAC5C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,IAAA,aAAQ,EAAC,IAAI,CAAC,IAAI,IAAA,4BAAmB,EAAC,IAAI,CAAC,EAAE,CAAC;QAChD,OAAO,IAAA,kCAAwB,EAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,MAAM,IAAI,iBAAQ,CAAC,kBAAkB,CAAC,CAAC;AACzC,CAAC,CAAC;AApBW,QAAA,QAAQ,YAoBnB"}
@@ -0,0 +1,42 @@
1
+ import { KryptosAlgorithm, KryptosEncryption } from "@lindorm/kryptos";
2
+ import { AesContentType, PublicEncryptionJwk } from "../../types";
3
+ export type AesHeaderInput = {
4
+ algorithm: KryptosAlgorithm;
5
+ contentType: AesContentType;
6
+ encryption: KryptosEncryption;
7
+ keyId: string;
8
+ pbkdfIterations?: number;
9
+ pbkdfSalt?: Buffer;
10
+ publicEncryptionIv?: Buffer;
11
+ publicEncryptionJwk?: PublicEncryptionJwk;
12
+ publicEncryptionTag?: Buffer;
13
+ };
14
+ export type AesHeader = {
15
+ alg: KryptosAlgorithm;
16
+ cty: AesContentType;
17
+ enc: KryptosEncryption;
18
+ epk?: PublicEncryptionJwk;
19
+ iv?: string;
20
+ kid: string;
21
+ p2c?: number;
22
+ p2s?: string;
23
+ tag?: string;
24
+ v: string;
25
+ };
26
+ export declare const buildAesHeader: (options: AesHeaderInput) => AesHeader;
27
+ export declare const encodeAesHeader: (header: AesHeader) => string;
28
+ export declare const decodeAesHeader: (headerB64: string) => AesHeader;
29
+ export declare const computeAad: (headerB64: string) => Buffer;
30
+ export declare const headerToDecryptionParams: (header: AesHeader) => {
31
+ algorithm: KryptosAlgorithm;
32
+ contentType: AesContentType;
33
+ encryption: KryptosEncryption;
34
+ keyId: string;
35
+ pbkdfIterations: number | undefined;
36
+ pbkdfSalt: Buffer | undefined;
37
+ publicEncryptionIv: Buffer | undefined;
38
+ publicEncryptionJwk: PublicEncryptionJwk | undefined;
39
+ publicEncryptionTag: Buffer | undefined;
40
+ version: string;
41
+ };
42
+ //# sourceMappingURL=aes-header.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aes-header.d.ts","sourceRoot":"","sources":["../../../src/utils/private/aes-header.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAGvE,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAGlE,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,EAAE,gBAAgB,CAAC;IAC5B,WAAW,EAAE,cAAc,CAAC;IAC5B,UAAU,EAAE,iBAAiB,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,GAAG,EAAE,gBAAgB,CAAC;IACtB,GAAG,EAAE,cAAc,CAAC;IACpB,GAAG,EAAE,iBAAiB,CAAC;IACvB,GAAG,CAAC,EAAE,mBAAmB,CAAC;IAC1B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAYF,eAAO,MAAM,cAAc,GAAI,SAAS,cAAc,KAAG,SAgBrD,CAAC;AAEL,eAAO,MAAM,eAAe,GAAI,QAAQ,SAAS,KAAG,MAGnD,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,WAAW,MAAM,KAAG,SAoBnD,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,WAAW,MAAM,KAAG,MAAyC,CAAC;AAEzF,eAAO,MAAM,wBAAwB,GACnC,QAAQ,SAAS,KAChB;IACD,SAAS,EAAE,gBAAgB,CAAC;IAC5B,WAAW,EAAE,cAAc,CAAC;IAC5B,UAAU,EAAE,iBAAiB,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,mBAAmB,EAAE,mBAAmB,GAAG,SAAS,CAAC;IACrD,mBAAmB,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,OAAO,EAAE,MAAM,CAAC;CAYhB,CAAC"}
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.headerToDecryptionParams = exports.computeAad = exports.decodeAesHeader = exports.encodeAesHeader = exports.buildAesHeader = void 0;
4
+ const b64_1 = require("@lindorm/b64");
5
+ const private_1 = require("../../constants/private");
6
+ const errors_1 = require("../../errors");
7
+ const validate_version_1 = require("./validate-version");
8
+ const sortKeys = (obj) => {
9
+ const sorted = {};
10
+ for (const key of Object.keys(obj).sort()) {
11
+ if (obj[key] !== undefined) {
12
+ sorted[key] = obj[key];
13
+ }
14
+ }
15
+ return sorted;
16
+ };
17
+ const buildAesHeader = (options) => sortKeys({
18
+ alg: options.algorithm,
19
+ cty: options.contentType,
20
+ enc: options.encryption,
21
+ epk: options.publicEncryptionJwk,
22
+ iv: options.publicEncryptionIv
23
+ ? b64_1.B64.encode(options.publicEncryptionIv, "b64u")
24
+ : undefined,
25
+ kid: options.keyId,
26
+ p2c: options.pbkdfIterations,
27
+ p2s: options.pbkdfSalt ? b64_1.B64.encode(options.pbkdfSalt, "b64u") : undefined,
28
+ tag: options.publicEncryptionTag
29
+ ? b64_1.B64.encode(options.publicEncryptionTag, "b64u")
30
+ : undefined,
31
+ v: private_1.AES_FORMAT_VERSION,
32
+ });
33
+ exports.buildAesHeader = buildAesHeader;
34
+ const encodeAesHeader = (header) => {
35
+ const json = JSON.stringify(header);
36
+ return b64_1.B64.encode(Buffer.from(json, "utf8"), "b64u");
37
+ };
38
+ exports.encodeAesHeader = encodeAesHeader;
39
+ const decodeAesHeader = (headerB64) => {
40
+ try {
41
+ const json = b64_1.B64.toBuffer(headerB64, "b64u").toString("utf8");
42
+ const parsed = JSON.parse(json);
43
+ if (!parsed.alg || !parsed.enc || !parsed.v) {
44
+ throw new errors_1.AesError("Invalid AES header: missing required fields", {
45
+ debug: { parsed },
46
+ });
47
+ }
48
+ (0, validate_version_1.validateAesVersion)(parsed.v);
49
+ return parsed;
50
+ }
51
+ catch (error) {
52
+ if (error instanceof errors_1.AesError)
53
+ throw error;
54
+ throw new errors_1.AesError("Failed to decode AES header", {
55
+ error: error,
56
+ });
57
+ }
58
+ };
59
+ exports.decodeAesHeader = decodeAesHeader;
60
+ const computeAad = (headerB64) => Buffer.from(headerB64, "ascii");
61
+ exports.computeAad = computeAad;
62
+ const headerToDecryptionParams = (header) => ({
63
+ algorithm: header.alg,
64
+ contentType: header.cty,
65
+ encryption: header.enc,
66
+ keyId: header.kid,
67
+ pbkdfIterations: header.p2c,
68
+ pbkdfSalt: header.p2s ? b64_1.B64.toBuffer(header.p2s, "b64u") : undefined,
69
+ publicEncryptionIv: header.iv ? b64_1.B64.toBuffer(header.iv, "b64u") : undefined,
70
+ publicEncryptionJwk: header.epk,
71
+ publicEncryptionTag: header.tag ? b64_1.B64.toBuffer(header.tag, "b64u") : undefined,
72
+ version: header.v,
73
+ });
74
+ exports.headerToDecryptionParams = headerToDecryptionParams;
75
+ //# sourceMappingURL=aes-header.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aes-header.js","sourceRoot":"","sources":["../../../src/utils/private/aes-header.ts"],"names":[],"mappings":"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"}
@@ -14,11 +14,11 @@ const calculateContentEncryptionKeySize = (encryption) => {
14
14
  case "A256GCM":
15
15
  return 32;
16
16
  case "A128CBC-HS256":
17
- return 48;
17
+ return 32;
18
18
  case "A192CBC-HS384":
19
- return 72;
19
+ return 48;
20
20
  case "A256CBC-HS512":
21
- return 96;
21
+ return 64;
22
22
  default:
23
23
  throw new errors_1.AesError("Unsupported encryption", { debug: { encryption } });
24
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"calculate-key-wrap-encryption.d.ts","sourceRoot":"","sources":["../../../../src/utils/private/calculate/calculate-key-wrap-encryption.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,KAAK,iBAAiB,GAClB,aAAa,GACb,aAAa,GACb,aAAa,GACb,aAAa,GACb,aAAa,GACb,aAAa,CAAC;AAElB,eAAO,MAAM,0BAA0B,GAAI,SAAS,QAAQ,KAAG,iBAgC9D,CAAC"}
1
+ {"version":3,"file":"calculate-key-wrap-encryption.d.ts","sourceRoot":"","sources":["../../../../src/utils/private/calculate/calculate-key-wrap-encryption.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG5C,KAAK,iBAAiB,GAClB,aAAa,GACb,aAAa,GACb,aAAa,GACb,aAAa,GACb,aAAa,GACb,aAAa,CAAC;AAElB,eAAO,MAAM,0BAA0B,GAAI,SAAS,QAAQ,KAAG,iBAgC9D,CAAC"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.calculateKeyWrapEncryption = void 0;
4
+ const errors_1 = require("../../../errors");
4
5
  const calculateKeyWrapEncryption = (kryptos) => {
5
6
  switch (kryptos.algorithm) {
6
7
  case "A128KW":
@@ -25,7 +26,7 @@ const calculateKeyWrapEncryption = (kryptos) => {
25
26
  case "ECDH-ES+A256GCMKW":
26
27
  return "aes-256-gcm";
27
28
  default:
28
- throw new Error("Unsupported keywrap encryption");
29
+ throw new errors_1.AesError("Unsupported keywrap encryption");
29
30
  }
30
31
  };
31
32
  exports.calculateKeyWrapEncryption = calculateKeyWrapEncryption;
@@ -1 +1 @@
1
- {"version":3,"file":"calculate-key-wrap-encryption.js","sourceRoot":"","sources":["../../../../src/utils/private/calculate/calculate-key-wrap-encryption.ts"],"names":[],"mappings":";;;AAUO,MAAM,0BAA0B,GAAG,CAAC,OAAiB,EAAqB,EAAE;IACjF,QAAQ,OAAO,CAAC,SAAS,EAAE,CAAC;QAC1B,KAAK,QAAQ,CAAC;QACd,KAAK,gBAAgB,CAAC;QACtB,KAAK,oBAAoB;YACvB,OAAO,aAAa,CAAC;QAEvB,KAAK,QAAQ,CAAC;QACd,KAAK,gBAAgB,CAAC;QACtB,KAAK,oBAAoB;YACvB,OAAO,aAAa,CAAC;QAEvB,KAAK,QAAQ,CAAC;QACd,KAAK,gBAAgB,CAAC;QACtB,KAAK,oBAAoB;YACvB,OAAO,aAAa,CAAC;QAEvB,KAAK,WAAW,CAAC;QACjB,KAAK,mBAAmB;YACtB,OAAO,aAAa,CAAC;QAEvB,KAAK,WAAW,CAAC;QACjB,KAAK,mBAAmB;YACtB,OAAO,aAAa,CAAC;QAEvB,KAAK,WAAW,CAAC;QACjB,KAAK,mBAAmB;YACtB,OAAO,aAAa,CAAC;QAEvB;YACE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACtD,CAAC;AACH,CAAC,CAAC;AAhCW,QAAA,0BAA0B,8BAgCrC"}
1
+ {"version":3,"file":"calculate-key-wrap-encryption.js","sourceRoot":"","sources":["../../../../src/utils/private/calculate/calculate-key-wrap-encryption.ts"],"names":[],"mappings":";;;AACA,4CAA2C;AAUpC,MAAM,0BAA0B,GAAG,CAAC,OAAiB,EAAqB,EAAE;IACjF,QAAQ,OAAO,CAAC,SAAS,EAAE,CAAC;QAC1B,KAAK,QAAQ,CAAC;QACd,KAAK,gBAAgB,CAAC;QACtB,KAAK,oBAAoB;YACvB,OAAO,aAAa,CAAC;QAEvB,KAAK,QAAQ,CAAC;QACd,KAAK,gBAAgB,CAAC;QACtB,KAAK,oBAAoB;YACvB,OAAO,aAAa,CAAC;QAEvB,KAAK,QAAQ,CAAC;QACd,KAAK,gBAAgB,CAAC;QACtB,KAAK,oBAAoB;YACvB,OAAO,aAAa,CAAC;QAEvB,KAAK,WAAW,CAAC;QACjB,KAAK,mBAAmB;YACtB,OAAO,aAAa,CAAC;QAEvB,KAAK,WAAW,CAAC;QACjB,KAAK,mBAAmB;YACtB,OAAO,aAAa,CAAC;QAEvB,KAAK,WAAW,CAAC;QACjB,KAAK,mBAAmB;YACtB,OAAO,aAAa,CAAC;QAEvB;YACE,MAAM,IAAI,iBAAQ,CAAC,gCAAgC,CAAC,CAAC;IACzD,CAAC;AACH,CAAC,CAAC;AAhCW,QAAA,0BAA0B,8BAgCrC"}
@@ -10,7 +10,7 @@ const calculateContentType = (content) => {
10
10
  if ((0, is_1.isBuffer)(content)) {
11
11
  return "application/octet-stream";
12
12
  }
13
- if ((0, is_1.isArray)(content) || (0, is_1.isNumber)(content) || (0, is_1.isObject)(content)) {
13
+ if ((0, is_1.isArray)(content) || (0, is_1.isBoolean)(content) || (0, is_1.isNumber)(content) || (0, is_1.isObject)(content)) {
14
14
  return "application/json";
15
15
  }
16
16
  throw new errors_1.AesError("Invalid content type", {
@@ -1 +1 @@
1
- {"version":3,"file":"content.js","sourceRoot":"","sources":["../../../src/utils/private/content.ts"],"names":[],"mappings":";;;AAAA,oCAA8E;AAC9E,yCAAwC;AAGjC,MAAM,oBAAoB,GAAG,CAAC,OAAY,EAAkB,EAAE;IACnE,IAAI,IAAA,aAAQ,EAAC,OAAO,CAAC,EAAE,CAAC;QACtB,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,IAAI,IAAA,aAAQ,EAAC,OAAO,CAAC,EAAE,CAAC;QACtB,OAAO,0BAA0B,CAAC;IACpC,CAAC;IAED,IAAI,IAAA,YAAO,EAAC,OAAO,CAAC,IAAI,IAAA,aAAQ,EAAC,OAAO,CAAC,IAAI,IAAA,aAAQ,EAAC,OAAO,CAAC,EAAE,CAAC;QAC/D,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAED,MAAM,IAAI,iBAAQ,CAAC,sBAAsB,EAAE;QACzC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,OAAO,EAAE;KACzC,CAAC,CAAC;AACL,CAAC,CAAC;AAhBW,QAAA,oBAAoB,wBAgB/B;AAEK,MAAM,eAAe,GAAG,CAAC,OAAY,EAAE,WAA2B,EAAU,EAAE;IACnF,QAAQ,WAAW,EAAE,CAAC;QACpB,KAAK,kBAAkB;YACrB,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;QAEtD,KAAK,0BAA0B;YAC7B,OAAO,OAAO,CAAC;QAEjB,KAAK,YAAY;YACf,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAEtC;YACE,MAAM,IAAI,iBAAQ,CAAC,sBAAsB,EAAE;gBACzC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,OAAO,EAAE;aACzC,CAAC,CAAC;IACP,CAAC;AACH,CAAC,CAAC;AAhBW,QAAA,eAAe,mBAgB1B;AAEK,MAAM,YAAY,GAAG,CAC1B,OAAe,EACf,cAA8B,YAAY,EACvC,EAAE;IACL,QAAQ,WAAW,EAAE,CAAC;QACpB,KAAK,kBAAkB;YACrB,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAM,CAAC;QAEnD,KAAK,0BAA0B;YAC7B,OAAO,OAAY,CAAC;QAEtB,KAAK,YAAY;YACf,OAAO,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAM,CAAC;QAEvC;YACE,MAAM,IAAI,iBAAQ,CAAC,yBAAyB,EAAE;gBAC5C,KAAK,EAAE,EAAE,WAAW,EAAE;aACvB,CAAC,CAAC;IACP,CAAC;AACH,CAAC,CAAC;AAnBW,QAAA,YAAY,gBAmBvB"}
1
+ {"version":3,"file":"content.js","sourceRoot":"","sources":["../../../src/utils/private/content.ts"],"names":[],"mappings":";;;AAAA,oCAAyF;AACzF,yCAAwC;AAGjC,MAAM,oBAAoB,GAAG,CAAC,OAAY,EAAkB,EAAE;IACnE,IAAI,IAAA,aAAQ,EAAC,OAAO,CAAC,EAAE,CAAC;QACtB,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,IAAI,IAAA,aAAQ,EAAC,OAAO,CAAC,EAAE,CAAC;QACtB,OAAO,0BAA0B,CAAC;IACpC,CAAC;IAED,IAAI,IAAA,YAAO,EAAC,OAAO,CAAC,IAAI,IAAA,cAAS,EAAC,OAAO,CAAC,IAAI,IAAA,aAAQ,EAAC,OAAO,CAAC,IAAI,IAAA,aAAQ,EAAC,OAAO,CAAC,EAAE,CAAC;QACrF,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAED,MAAM,IAAI,iBAAQ,CAAC,sBAAsB,EAAE;QACzC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,OAAO,EAAE;KACzC,CAAC,CAAC;AACL,CAAC,CAAC;AAhBW,QAAA,oBAAoB,wBAgB/B;AAEK,MAAM,eAAe,GAAG,CAAC,OAAY,EAAE,WAA2B,EAAU,EAAE;IACnF,QAAQ,WAAW,EAAE,CAAC;QACpB,KAAK,kBAAkB;YACrB,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;QAEtD,KAAK,0BAA0B;YAC7B,OAAO,OAAO,CAAC;QAEjB,KAAK,YAAY;YACf,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAEtC;YACE,MAAM,IAAI,iBAAQ,CAAC,sBAAsB,EAAE;gBACzC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,OAAO,EAAE;aACzC,CAAC,CAAC;IACP,CAAC;AACH,CAAC,CAAC;AAhBW,QAAA,eAAe,mBAgB1B;AAEK,MAAM,YAAY,GAAG,CAC1B,OAAe,EACf,cAA8B,YAAY,EACvC,EAAE;IACL,QAAQ,WAAW,EAAE,CAAC;QACpB,KAAK,kBAAkB;YACrB,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAM,CAAC;QAEnD,KAAK,0BAA0B;YAC7B,OAAO,OAAY,CAAC;QAEtB,KAAK,YAAY;YACf,OAAO,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAM,CAAC;QAEvC;YACE,MAAM,IAAI,iBAAQ,CAAC,yBAAyB,EAAE;gBAC5C,KAAK,EAAE,EAAE,WAAW,EAAE;aACvB,CAAC,CAAC;IACP,CAAC;AACH,CAAC,CAAC;AAnBW,QAAA,YAAY,gBAmBvB"}
@@ -1,4 +1,4 @@
1
1
  import { CreateHmacAuthTag, VerifyHmacAuthTag } from "../../../types/private";
2
- export declare const createHmacAuthTag: ({ content, hashKey, initialisationVector, encryption, }: CreateHmacAuthTag) => Buffer;
3
- export declare const assertHmacAuthTag: ({ authTag, content, encryption, hashKey, initialisationVector, }: VerifyHmacAuthTag) => void;
2
+ export declare const createHmacAuthTag: ({ aad, content, hashKey, initialisationVector, encryption, }: CreateHmacAuthTag) => Buffer;
3
+ export declare const assertHmacAuthTag: ({ aad, authTag, content, encryption, hashKey, initialisationVector, }: VerifyHmacAuthTag) => void;
4
4
  //# sourceMappingURL=auth-tag-hmac.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth-tag-hmac.d.ts","sourceRoot":"","sources":["../../../../src/utils/private/data/auth-tag-hmac.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAkB9E,eAAO,MAAM,iBAAiB,GAAI,yDAK/B,iBAAiB,KAAG,MAOtB,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,kEAM/B,iBAAiB,KAAG,IAWtB,CAAC"}
1
+ {"version":3,"file":"auth-tag-hmac.d.ts","sourceRoot":"","sources":["../../../../src/utils/private/data/auth-tag-hmac.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAkB9E,eAAO,MAAM,iBAAiB,GAAI,8DAM/B,iBAAiB,KAAG,MAiBtB,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,uEAO/B,iBAAiB,KAAG,IAYtB,CAAC"}
@@ -15,21 +15,29 @@ const shaHash = (encryption) => {
15
15
  throw new errors_1.AesError("Unexpected algorithm");
16
16
  }
17
17
  };
18
- const createHmacAuthTag = ({ content, hashKey, initialisationVector, encryption, }) => {
18
+ const createHmacAuthTag = ({ aad, content, hashKey, initialisationVector, encryption, }) => {
19
19
  const hmac = (0, crypto_1.createHmac)(shaHash(encryption), hashKey);
20
+ if (aad) {
21
+ hmac.update(aad);
22
+ }
20
23
  hmac.update(initialisationVector);
21
24
  hmac.update(content);
22
- return hmac.digest();
25
+ const al = Buffer.alloc(8);
26
+ al.writeBigUInt64BE(BigInt((aad?.length ?? 0) * 8));
27
+ hmac.update(al);
28
+ const fullTag = hmac.digest();
29
+ return fullTag.subarray(0, fullTag.length / 2);
23
30
  };
24
31
  exports.createHmacAuthTag = createHmacAuthTag;
25
- const assertHmacAuthTag = ({ authTag, content, encryption, hashKey, initialisationVector, }) => {
32
+ const assertHmacAuthTag = ({ aad, authTag, content, encryption, hashKey, initialisationVector, }) => {
26
33
  const generated = (0, exports.createHmacAuthTag)({
34
+ aad,
27
35
  content,
28
36
  encryption,
29
37
  hashKey,
30
38
  initialisationVector,
31
39
  });
32
- if (Buffer.compare(generated, authTag) === 0)
40
+ if (generated.length === authTag.length && (0, crypto_1.timingSafeEqual)(generated, authTag))
33
41
  return;
34
42
  throw new errors_1.AesError("Auth tag verification failed");
35
43
  };
@@ -1 +1 @@
1
- {"version":3,"file":"auth-tag-hmac.js","sourceRoot":"","sources":["../../../../src/utils/private/data/auth-tag-hmac.ts"],"names":[],"mappings":";;;AAEA,mCAAoC;AACpC,4CAA2C;AAG3C,MAAM,OAAO,GAAG,CAAC,UAA6B,EAAgB,EAAE;IAC9D,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,eAAe;YAClB,OAAO,QAAQ,CAAC;QAElB,KAAK,eAAe;YAClB,OAAO,QAAQ,CAAC;QAElB,KAAK,eAAe;YAClB,OAAO,QAAQ,CAAC;QAElB;YACE,MAAM,IAAI,iBAAQ,CAAC,sBAAsB,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC,CAAC;AAEK,MAAM,iBAAiB,GAAG,CAAC,EAChC,OAAO,EACP,OAAO,EACP,oBAAoB,EACpB,UAAU,GACQ,EAAU,EAAE;IAC9B,MAAM,IAAI,GAAG,IAAA,mBAAU,EAAC,OAAO,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,CAAC;IAEtD,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAClC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAErB,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;AACvB,CAAC,CAAC;AAZW,QAAA,iBAAiB,qBAY5B;AAEK,MAAM,iBAAiB,GAAG,CAAC,EAChC,OAAO,EACP,OAAO,EACP,UAAU,EACV,OAAO,EACP,oBAAoB,GACF,EAAQ,EAAE;IAC5B,MAAM,SAAS,GAAG,IAAA,yBAAiB,EAAC;QAClC,OAAO;QACP,UAAU;QACV,OAAO;QACP,oBAAoB;KACrB,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO;IAErD,MAAM,IAAI,iBAAQ,CAAC,8BAA8B,CAAC,CAAC;AACrD,CAAC,CAAC;AAjBW,QAAA,iBAAiB,qBAiB5B"}
1
+ {"version":3,"file":"auth-tag-hmac.js","sourceRoot":"","sources":["../../../../src/utils/private/data/auth-tag-hmac.ts"],"names":[],"mappings":";;;AAEA,mCAAqD;AACrD,4CAA2C;AAG3C,MAAM,OAAO,GAAG,CAAC,UAA6B,EAAgB,EAAE;IAC9D,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,eAAe;YAClB,OAAO,QAAQ,CAAC;QAElB,KAAK,eAAe;YAClB,OAAO,QAAQ,CAAC;QAElB,KAAK,eAAe;YAClB,OAAO,QAAQ,CAAC;QAElB;YACE,MAAM,IAAI,iBAAQ,CAAC,sBAAsB,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC,CAAC;AAEK,MAAM,iBAAiB,GAAG,CAAC,EAChC,GAAG,EACH,OAAO,EACP,OAAO,EACP,oBAAoB,EACpB,UAAU,GACQ,EAAU,EAAE;IAC9B,MAAM,IAAI,GAAG,IAAA,mBAAU,EAAC,OAAO,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,CAAC;IAKtD,IAAI,GAAG,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAClC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACrB,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3B,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACpD,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAEhB,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IAC9B,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACjD,CAAC,CAAC;AAvBW,QAAA,iBAAiB,qBAuB5B;AAEK,MAAM,iBAAiB,GAAG,CAAC,EAChC,GAAG,EACH,OAAO,EACP,OAAO,EACP,UAAU,EACV,OAAO,EACP,oBAAoB,GACF,EAAQ,EAAE;IAC5B,MAAM,SAAS,GAAG,IAAA,yBAAiB,EAAC;QAClC,GAAG;QACH,OAAO;QACP,UAAU;QACV,OAAO;QACP,oBAAoB;KACrB,CAAC,CAAC;IAEH,IAAI,SAAS,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,IAAI,IAAA,wBAAe,EAAC,SAAS,EAAE,OAAO,CAAC;QAAE,OAAO;IAEvF,MAAM,IAAI,iBAAQ,CAAC,8BAA8B,CAAC,CAAC;AACrD,CAAC,CAAC;AAnBW,QAAA,iBAAiB,qBAmB5B"}
@@ -1,4 +1,4 @@
1
1
  import { GetAuthTagOptions, SetAuthTagOptions } from "../../../types/private";
2
- export declare const createAuthTag: ({ encryption, cipher, content, hashKey, initialisationVector, }: GetAuthTagOptions) => Buffer;
3
- export declare const assertAuthTag: ({ authTag, content, hashKey, decipher, encryption, initialisationVector, }: SetAuthTagOptions) => void;
2
+ export declare const createAuthTag: ({ aad, encryption, cipher, content, hashKey, initialisationVector, }: GetAuthTagOptions) => Buffer;
3
+ export declare const assertAuthTag: ({ aad, authTag, content, hashKey, decipher, encryption, initialisationVector, }: SetAuthTagOptions) => void;
4
4
  //# sourceMappingURL=auth-tag.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth-tag.d.ts","sourceRoot":"","sources":["../../../../src/utils/private/data/auth-tag.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAG9E,eAAO,MAAM,aAAa,GAAI,iEAM3B,iBAAiB,KAAG,MAoBtB,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,4EAO3B,iBAAiB,KAAG,IA2BtB,CAAC"}
1
+ {"version":3,"file":"auth-tag.d.ts","sourceRoot":"","sources":["../../../../src/utils/private/data/auth-tag.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAG9E,eAAO,MAAM,aAAa,GAAI,sEAO3B,iBAAiB,KAAG,MAqBtB,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,iFAQ3B,iBAAiB,KAAG,IA4BtB,CAAC"}
@@ -3,12 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.assertAuthTag = exports.createAuthTag = void 0;
4
4
  const errors_1 = require("../../../errors");
5
5
  const auth_tag_hmac_1 = require("./auth-tag-hmac");
6
- const createAuthTag = ({ encryption, cipher, content, hashKey, initialisationVector, }) => {
6
+ const createAuthTag = ({ aad, encryption, cipher, content, hashKey, initialisationVector, }) => {
7
7
  switch (encryption) {
8
8
  case "A128CBC-HS256":
9
9
  case "A192CBC-HS384":
10
10
  case "A256CBC-HS512":
11
11
  return (0, auth_tag_hmac_1.createHmacAuthTag)({
12
+ aad,
12
13
  content,
13
14
  encryption,
14
15
  hashKey,
@@ -23,7 +24,7 @@ const createAuthTag = ({ encryption, cipher, content, hashKey, initialisationVec
23
24
  }
24
25
  };
25
26
  exports.createAuthTag = createAuthTag;
26
- const assertAuthTag = ({ authTag, content, hashKey, decipher, encryption, initialisationVector, }) => {
27
+ const assertAuthTag = ({ aad, authTag, content, hashKey, decipher, encryption, initialisationVector, }) => {
27
28
  if (!authTag) {
28
29
  throw new errors_1.AesError("Auth tag is missing");
29
30
  }
@@ -32,6 +33,7 @@ const assertAuthTag = ({ authTag, content, hashKey, decipher, encryption, initia
32
33
  case "A192CBC-HS384":
33
34
  case "A256CBC-HS512":
34
35
  (0, auth_tag_hmac_1.assertHmacAuthTag)({
36
+ aad,
35
37
  authTag,
36
38
  content,
37
39
  encryption,
@@ -1 +1 @@
1
- {"version":3,"file":"auth-tag.js","sourceRoot":"","sources":["../../../../src/utils/private/data/auth-tag.ts"],"names":[],"mappings":";;;AACA,4CAA2C;AAE3C,mDAAuE;AAEhE,MAAM,aAAa,GAAG,CAAC,EAC5B,UAAU,EACV,MAAM,EACN,OAAO,EACP,OAAO,EACP,oBAAoB,GACF,EAAU,EAAE;IAC9B,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,eAAe,CAAC;QACrB,KAAK,eAAe,CAAC;QACrB,KAAK,eAAe;YAClB,OAAO,IAAA,iCAAiB,EAAC;gBACvB,OAAO;gBACP,UAAU;gBACV,OAAO;gBACP,oBAAoB;aACrB,CAAC,CAAC;QAEL,KAAK,SAAS,CAAC;QACf,KAAK,SAAS,CAAC;QACf,KAAK,SAAS;YACZ,OAAQ,MAAoB,CAAC,UAAU,EAAE,CAAC;QAE5C;YACE,MAAM,IAAI,iBAAQ,CAAC,sBAAsB,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC,CAAC;AA1BW,QAAA,aAAa,iBA0BxB;AAEK,MAAM,aAAa,GAAG,CAAC,EAC5B,OAAO,EACP,OAAO,EACP,OAAO,EACP,QAAQ,EACR,UAAU,EACV,oBAAoB,GACF,EAAQ,EAAE;IAC5B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,iBAAQ,CAAC,qBAAqB,CAAC,CAAC;IAC5C,CAAC;IAED,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,eAAe,CAAC;QACrB,KAAK,eAAe,CAAC;QACrB,KAAK,eAAe;YAClB,IAAA,iCAAiB,EAAC;gBAChB,OAAO;gBACP,OAAO;gBACP,UAAU;gBACV,OAAO;gBACP,oBAAoB;aACrB,CAAC,CAAC;YACH,OAAO;QAET,KAAK,SAAS,CAAC;QACf,KAAK,SAAS,CAAC;QACf,KAAK,SAAS;YACX,QAAwB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAC9C,OAAO;QAET;YACE,MAAM,IAAI,iBAAQ,CAAC,sBAAsB,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC,CAAC;AAlCW,QAAA,aAAa,iBAkCxB"}
1
+ {"version":3,"file":"auth-tag.js","sourceRoot":"","sources":["../../../../src/utils/private/data/auth-tag.ts"],"names":[],"mappings":";;;AACA,4CAA2C;AAE3C,mDAAuE;AAEhE,MAAM,aAAa,GAAG,CAAC,EAC5B,GAAG,EACH,UAAU,EACV,MAAM,EACN,OAAO,EACP,OAAO,EACP,oBAAoB,GACF,EAAU,EAAE;IAC9B,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,eAAe,CAAC;QACrB,KAAK,eAAe,CAAC;QACrB,KAAK,eAAe;YAClB,OAAO,IAAA,iCAAiB,EAAC;gBACvB,GAAG;gBACH,OAAO;gBACP,UAAU;gBACV,OAAO;gBACP,oBAAoB;aACrB,CAAC,CAAC;QAEL,KAAK,SAAS,CAAC;QACf,KAAK,SAAS,CAAC;QACf,KAAK,SAAS;YACZ,OAAQ,MAAoB,CAAC,UAAU,EAAE,CAAC;QAE5C;YACE,MAAM,IAAI,iBAAQ,CAAC,sBAAsB,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC,CAAC;AA5BW,QAAA,aAAa,iBA4BxB;AAEK,MAAM,aAAa,GAAG,CAAC,EAC5B,GAAG,EACH,OAAO,EACP,OAAO,EACP,OAAO,EACP,QAAQ,EACR,UAAU,EACV,oBAAoB,GACF,EAAQ,EAAE;IAC5B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,iBAAQ,CAAC,qBAAqB,CAAC,CAAC;IAC5C,CAAC;IAED,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,eAAe,CAAC;QACrB,KAAK,eAAe,CAAC;QACrB,KAAK,eAAe;YAClB,IAAA,iCAAiB,EAAC;gBAChB,GAAG;gBACH,OAAO;gBACP,OAAO;gBACP,UAAU;gBACV,OAAO;gBACP,oBAAoB;aACrB,CAAC,CAAC;YACH,OAAO;QAET,KAAK,SAAS,CAAC;QACf,KAAK,SAAS,CAAC;QACf,KAAK,SAAS;YACX,QAAwB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAC9C,OAAO;QAET;YACE,MAAM,IAAI,iBAAQ,CAAC,sBAAsB,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC,CAAC;AApCW,QAAA,aAAa,iBAoCxB"}
@@ -1 +1 @@
1
- {"version":3,"file":"split-content-encryption-key.d.ts","sourceRoot":"","sources":["../../../../src/utils/private/data/split-content-encryption-key.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAIrD,KAAK,MAAM,GAAG;IACZ,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAqBF,eAAO,MAAM,yBAAyB,GACpC,YAAY,iBAAiB,EAC7B,sBAAsB,MAAM,KAC3B,MAcF,CAAC"}
1
+ {"version":3,"file":"split-content-encryption-key.d.ts","sourceRoot":"","sources":["../../../../src/utils/private/data/split-content-encryption-key.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAIrD,KAAK,MAAM,GAAG;IACZ,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAqBF,eAAO,MAAM,yBAAyB,GACpC,YAAY,iBAAiB,EAC7B,sBAAsB,MAAM,KAC3B,MAmBF,CAAC"}
@@ -19,10 +19,14 @@ const encryptionKeyLength = (encryption) => {
19
19
  };
20
20
  const splitContentEncryptionKey = (encryption, contentEncryptionKey) => {
21
21
  const keyLength = encryptionKeyLength(encryption);
22
+ if (encryption.includes("CBC")) {
23
+ const hashKey = contentEncryptionKey.subarray(0, keyLength);
24
+ const encryptionKey = contentEncryptionKey.subarray(keyLength);
25
+ return { encryptionKey, hashKey };
26
+ }
22
27
  const encryptionKey = contentEncryptionKey.subarray(0, keyLength);
23
28
  const hashKey = contentEncryptionKey.subarray(keyLength);
24
- if (hashKey.length &&
25
- (encryption === "A128GCM" || encryption === "A192GCM" || encryption === "A256GCM")) {
29
+ if (hashKey.length) {
26
30
  throw new errors_1.AesError("Unexpected hash key");
27
31
  }
28
32
  return { encryptionKey, hashKey };
@@ -1 +1 @@
1
- {"version":3,"file":"split-content-encryption-key.js","sourceRoot":"","sources":["../../../../src/utils/private/data/split-content-encryption-key.ts"],"names":[],"mappings":";;;AAEA,4CAA2C;AAO3C,MAAM,mBAAmB,GAAG,CAAC,UAA6B,EAAgB,EAAE;IAC1E,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,eAAe,CAAC;QACrB,KAAK,SAAS;YACZ,OAAO,EAAE,CAAC;QAEZ,KAAK,eAAe,CAAC;QACrB,KAAK,SAAS;YACZ,OAAO,EAAE,CAAC;QAEZ,KAAK,eAAe,CAAC;QACrB,KAAK,SAAS;YACZ,OAAO,EAAE,CAAC;QAEZ;YACE,MAAM,IAAI,iBAAQ,CAAC,sBAAsB,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC,CAAC;AAEK,MAAM,yBAAyB,GAAG,CACvC,UAA6B,EAC7B,oBAA4B,EACpB,EAAE;IACV,MAAM,SAAS,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAElD,MAAM,aAAa,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IAClE,MAAM,OAAO,GAAG,oBAAoB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAEzD,IACE,OAAO,CAAC,MAAM;QACd,CAAC,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,CAAC,EAClF,CAAC;QACD,MAAM,IAAI,iBAAQ,CAAC,qBAAqB,CAAC,CAAC;IAC5C,CAAC;IAED,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC;AACpC,CAAC,CAAC;AAjBW,QAAA,yBAAyB,6BAiBpC"}
1
+ {"version":3,"file":"split-content-encryption-key.js","sourceRoot":"","sources":["../../../../src/utils/private/data/split-content-encryption-key.ts"],"names":[],"mappings":";;;AAEA,4CAA2C;AAO3C,MAAM,mBAAmB,GAAG,CAAC,UAA6B,EAAgB,EAAE;IAC1E,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,eAAe,CAAC;QACrB,KAAK,SAAS;YACZ,OAAO,EAAE,CAAC;QAEZ,KAAK,eAAe,CAAC;QACrB,KAAK,SAAS;YACZ,OAAO,EAAE,CAAC;QAEZ,KAAK,eAAe,CAAC;QACrB,KAAK,SAAS;YACZ,OAAO,EAAE,CAAC;QAEZ;YACE,MAAM,IAAI,iBAAQ,CAAC,sBAAsB,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC,CAAC;AAEK,MAAM,yBAAyB,GAAG,CACvC,UAA6B,EAC7B,oBAA4B,EACpB,EAAE;IACV,MAAM,SAAS,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAElD,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAE/B,MAAM,OAAO,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QAC5D,MAAM,aAAa,GAAG,oBAAoB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC/D,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC;IACpC,CAAC;IAGD,MAAM,aAAa,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IAClE,MAAM,OAAO,GAAG,oBAAoB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAEzD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,IAAI,iBAAQ,CAAC,qBAAqB,CAAC,CAAC;IAC5C,CAAC;IAED,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC;AACpC,CAAC,CAAC;AAtBW,QAAA,yBAAyB,6BAsBpC"}
@@ -1,4 +1,4 @@
1
1
  import { CreateCekOptions, CreateCekResult, DecryptCekOptions, DecryptCekResult } from "../../../types/private";
2
- export declare const getDiffieHellmanKeyWrapEncryptionKey: ({ encryption, kryptos, }: CreateCekOptions) => CreateCekResult;
3
- export declare const getDiffieHellmanKeyWrapDecryptionKey: ({ hkdfSalt, kryptos, publicEncryptionJwk, publicEncryptionIv, publicEncryptionKey, publicEncryptionTag, }: DecryptCekOptions) => DecryptCekResult;
2
+ export declare const getDiffieHellmanKeyWrapEncryptionKey: ({ apu, apv, encryption, kryptos, }: CreateCekOptions) => CreateCekResult;
3
+ export declare const getDiffieHellmanKeyWrapDecryptionKey: ({ apu, apv, kryptos, publicEncryptionJwk, publicEncryptionIv, publicEncryptionKey, publicEncryptionTag, }: DecryptCekOptions) => DecryptCekResult;
4
4
  //# sourceMappingURL=diffie-hellman-key-wrap.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"diffie-hellman-key-wrap.d.ts","sourceRoot":"","sources":["../../../../src/utils/private/diffie-hellman/diffie-hellman-key-wrap.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,wBAAwB,CAAC;AAMhC,eAAO,MAAM,oCAAoC,GAAI,0BAGlD,gBAAgB,KAAG,eAyBrB,CAAC;AAEF,eAAO,MAAM,oCAAoC,GAAI,2GAOlD,iBAAiB,KAAG,gBAoBtB,CAAC"}
1
+ {"version":3,"file":"diffie-hellman-key-wrap.d.ts","sourceRoot":"","sources":["../../../../src/utils/private/diffie-hellman/diffie-hellman-key-wrap.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,wBAAwB,CAAC;AAMhC,eAAO,MAAM,oCAAoC,GAAI,oCAKlD,gBAAgB,KAAG,eA2BrB,CAAC;AAEF,eAAO,MAAM,oCAAoC,GAAI,2GAQlD,iBAAiB,KAAG,gBAsBtB,CAAC"}
@@ -7,13 +7,16 @@ const calculate_1 = require("../calculate");
7
7
  const key_derivation_1 = require("../key-derivation");
8
8
  const key_wrap_1 = require("../key-wrap");
9
9
  const shared_secret_1 = require("./shared-secret");
10
- const getDiffieHellmanKeyWrapEncryptionKey = ({ encryption, kryptos, }) => {
10
+ const getDiffieHellmanKeyWrapEncryptionKey = ({ apu, apv, encryption, kryptos, }) => {
11
11
  const { publicEncryptionJwk, sharedSecret } = (0, shared_secret_1.generateSharedSecret)(kryptos);
12
12
  const cekSize = (0, calculate_1.calculateContentEncryptionKeySize)(encryption);
13
13
  const contentEncryptionKey = (0, crypto_1.randomBytes)(cekSize);
14
- const { derivedKey, hkdfSalt } = (0, key_derivation_1.hkdf)({
15
- derivationKey: sharedSecret,
14
+ const { derivedKey } = (0, key_derivation_1.concatKdf)({
15
+ algorithm: kryptos.algorithm,
16
+ apu,
17
+ apv,
16
18
  keyLength: (0, calculate_1.calculateKeyWrapSize)(kryptos.algorithm),
19
+ sharedSecret,
17
20
  });
18
21
  const { publicEncryptionKey, publicEncryptionIv, publicEncryptionTag } = (0, key_wrap_1.keyWrap)({
19
22
  contentEncryptionKey,
@@ -22,7 +25,6 @@ const getDiffieHellmanKeyWrapEncryptionKey = ({ encryption, kryptos, }) => {
22
25
  });
23
26
  return {
24
27
  contentEncryptionKey,
25
- hkdfSalt,
26
28
  publicEncryptionJwk,
27
29
  publicEncryptionKey,
28
30
  publicEncryptionIv,
@@ -30,15 +32,17 @@ const getDiffieHellmanKeyWrapEncryptionKey = ({ encryption, kryptos, }) => {
30
32
  };
31
33
  };
32
34
  exports.getDiffieHellmanKeyWrapEncryptionKey = getDiffieHellmanKeyWrapEncryptionKey;
33
- const getDiffieHellmanKeyWrapDecryptionKey = ({ hkdfSalt, kryptos, publicEncryptionJwk, publicEncryptionIv, publicEncryptionKey, publicEncryptionTag, }) => {
35
+ const getDiffieHellmanKeyWrapDecryptionKey = ({ apu, apv, kryptos, publicEncryptionJwk, publicEncryptionIv, publicEncryptionKey, publicEncryptionTag, }) => {
34
36
  if (!publicEncryptionKey) {
35
37
  throw new errors_1.AesError("Missing publicEncryptionKey");
36
38
  }
37
39
  const sharedSecret = (0, shared_secret_1.calculateSharedSecret)({ kryptos, publicEncryptionJwk });
38
- const { derivedKey } = (0, key_derivation_1.hkdf)({
39
- derivationKey: sharedSecret,
40
- hkdfSalt,
40
+ const { derivedKey } = (0, key_derivation_1.concatKdf)({
41
+ algorithm: kryptos.algorithm,
42
+ apu,
43
+ apv,
41
44
  keyLength: (0, calculate_1.calculateKeyWrapSize)(kryptos.algorithm),
45
+ sharedSecret,
42
46
  });
43
47
  return (0, key_wrap_1.keyUnwrap)({
44
48
  keyEncryptionKey: derivedKey,
@@ -1 +1 @@
1
- {"version":3,"file":"diffie-hellman-key-wrap.js","sourceRoot":"","sources":["../../../../src/utils/private/diffie-hellman/diffie-hellman-key-wrap.ts"],"names":[],"mappings":";;;AAAA,mCAAqC;AACrC,4CAA2C;AAO3C,4CAAuF;AACvF,sDAAyC;AACzC,0CAAiD;AACjD,mDAA8E;AAEvE,MAAM,oCAAoC,GAAG,CAAC,EACnD,UAAU,EACV,OAAO,GACU,EAAmB,EAAE;IACtC,MAAM,EAAE,mBAAmB,EAAE,YAAY,EAAE,GAAG,IAAA,oCAAoB,EAAC,OAAO,CAAC,CAAC;IAE5E,MAAM,OAAO,GAAG,IAAA,6CAAiC,EAAC,UAAU,CAAC,CAAC;IAC9D,MAAM,oBAAoB,GAAG,IAAA,oBAAW,EAAC,OAAO,CAAC,CAAC;IAElD,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,IAAA,qBAAI,EAAC;QACpC,aAAa,EAAE,YAAY;QAC3B,SAAS,EAAE,IAAA,gCAAoB,EAAC,OAAO,CAAC,SAAS,CAAC;KACnD,CAAC,CAAC;IAEH,MAAM,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,GAAG,IAAA,kBAAO,EAAC;QAC/E,oBAAoB;QACpB,OAAO;QACP,gBAAgB,EAAE,UAAU;KAC7B,CAAC,CAAC;IAEH,OAAO;QACL,oBAAoB;QACpB,QAAQ;QACR,mBAAmB;QACnB,mBAAmB;QACnB,kBAAkB;QAClB,mBAAmB;KACpB,CAAC;AACJ,CAAC,CAAC;AA5BW,QAAA,oCAAoC,wCA4B/C;AAEK,MAAM,oCAAoC,GAAG,CAAC,EACnD,QAAQ,EACR,OAAO,EACP,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,GACD,EAAoB,EAAE;IACxC,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,MAAM,IAAI,iBAAQ,CAAC,6BAA6B,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,YAAY,GAAG,IAAA,qCAAqB,EAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC,CAAC;IAE7E,MAAM,EAAE,UAAU,EAAE,GAAG,IAAA,qBAAI,EAAC;QAC1B,aAAa,EAAE,YAAY;QAC3B,QAAQ;QACR,SAAS,EAAE,IAAA,gCAAoB,EAAC,OAAO,CAAC,SAAS,CAAC;KACnD,CAAC,CAAC;IAEH,OAAO,IAAA,oBAAS,EAAC;QACf,gBAAgB,EAAE,UAAU;QAC5B,OAAO;QACP,kBAAkB;QAClB,mBAAmB;QACnB,mBAAmB;KACpB,CAAC,CAAC;AACL,CAAC,CAAC;AA3BW,QAAA,oCAAoC,wCA2B/C"}
1
+ {"version":3,"file":"diffie-hellman-key-wrap.js","sourceRoot":"","sources":["../../../../src/utils/private/diffie-hellman/diffie-hellman-key-wrap.ts"],"names":[],"mappings":";;;AAAA,mCAAqC;AACrC,4CAA2C;AAO3C,4CAAuF;AACvF,sDAA8C;AAC9C,0CAAiD;AACjD,mDAA8E;AAEvE,MAAM,oCAAoC,GAAG,CAAC,EACnD,GAAG,EACH,GAAG,EACH,UAAU,EACV,OAAO,GACU,EAAmB,EAAE;IACtC,MAAM,EAAE,mBAAmB,EAAE,YAAY,EAAE,GAAG,IAAA,oCAAoB,EAAC,OAAO,CAAC,CAAC;IAE5E,MAAM,OAAO,GAAG,IAAA,6CAAiC,EAAC,UAAU,CAAC,CAAC;IAC9D,MAAM,oBAAoB,GAAG,IAAA,oBAAW,EAAC,OAAO,CAAC,CAAC;IAElD,MAAM,EAAE,UAAU,EAAE,GAAG,IAAA,0BAAS,EAAC;QAC/B,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,GAAG;QACH,GAAG;QACH,SAAS,EAAE,IAAA,gCAAoB,EAAC,OAAO,CAAC,SAAS,CAAC;QAClD,YAAY;KACb,CAAC,CAAC;IAEH,MAAM,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,GAAG,IAAA,kBAAO,EAAC;QAC/E,oBAAoB;QACpB,OAAO;QACP,gBAAgB,EAAE,UAAU;KAC7B,CAAC,CAAC;IAEH,OAAO;QACL,oBAAoB;QACpB,mBAAmB;QACnB,mBAAmB;QACnB,kBAAkB;QAClB,mBAAmB;KACpB,CAAC;AACJ,CAAC,CAAC;AAhCW,QAAA,oCAAoC,wCAgC/C;AAEK,MAAM,oCAAoC,GAAG,CAAC,EACnD,GAAG,EACH,GAAG,EACH,OAAO,EACP,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,GACD,EAAoB,EAAE;IACxC,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,MAAM,IAAI,iBAAQ,CAAC,6BAA6B,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,YAAY,GAAG,IAAA,qCAAqB,EAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC,CAAC;IAE7E,MAAM,EAAE,UAAU,EAAE,GAAG,IAAA,0BAAS,EAAC;QAC/B,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,GAAG;QACH,GAAG;QACH,SAAS,EAAE,IAAA,gCAAoB,EAAC,OAAO,CAAC,SAAS,CAAC;QAClD,YAAY;KACb,CAAC,CAAC;IAEH,OAAO,IAAA,oBAAS,EAAC;QACf,gBAAgB,EAAE,UAAU;QAC5B,OAAO;QACP,kBAAkB;QAClB,mBAAmB;QACnB,mBAAmB;KACpB,CAAC,CAAC;AACL,CAAC,CAAC;AA9BW,QAAA,oCAAoC,wCA8B/C"}
@@ -1,4 +1,4 @@
1
1
  import { CreateCekOptions, CreateCekResult, DecryptCekOptions, DecryptCekResult } from "../../../types/private";
2
- export declare const getDiffieHellmanEncryptionKey: ({ encryption, kryptos, }: CreateCekOptions) => CreateCekResult;
3
- export declare const getDiffieHellmanDecryptionKey: ({ encryption, hkdfSalt, kryptos, publicEncryptionJwk, }: DecryptCekOptions) => DecryptCekResult;
2
+ export declare const getDiffieHellmanEncryptionKey: ({ apu, apv, encryption, kryptos, }: CreateCekOptions) => CreateCekResult;
3
+ export declare const getDiffieHellmanDecryptionKey: ({ apu, apv, encryption, kryptos, publicEncryptionJwk, }: DecryptCekOptions) => DecryptCekResult;
4
4
  //# sourceMappingURL=diffie-hellman.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"diffie-hellman.d.ts","sourceRoot":"","sources":["../../../../src/utils/private/diffie-hellman/diffie-hellman.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,wBAAwB,CAAC;AAKhC,eAAO,MAAM,6BAA6B,GAAI,0BAG3C,gBAAgB,KAAG,eAcrB,CAAC;AAEF,eAAO,MAAM,6BAA6B,GAAI,yDAK3C,iBAAiB,KAAG,gBAkBtB,CAAC"}
1
+ {"version":3,"file":"diffie-hellman.d.ts","sourceRoot":"","sources":["../../../../src/utils/private/diffie-hellman/diffie-hellman.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,wBAAwB,CAAC;AAKhC,eAAO,MAAM,6BAA6B,GAAI,oCAK3C,gBAAgB,KAAG,eAgBrB,CAAC;AAEF,eAAO,MAAM,6BAA6B,GAAI,yDAM3C,iBAAiB,KAAG,gBAoBtB,CAAC"}
@@ -6,21 +6,23 @@ const errors_1 = require("../../../errors");
6
6
  const calculate_1 = require("../calculate");
7
7
  const key_derivation_1 = require("../key-derivation");
8
8
  const shared_secret_1 = require("./shared-secret");
9
- const getDiffieHellmanEncryptionKey = ({ encryption, kryptos, }) => {
9
+ const getDiffieHellmanEncryptionKey = ({ apu, apv, encryption, kryptos, }) => {
10
10
  const { publicEncryptionJwk, sharedSecret } = (0, shared_secret_1.generateSharedSecret)(kryptos);
11
11
  const keyLength = (0, calculate_1.calculateContentEncryptionKeySize)(encryption);
12
- const { derivedKey, hkdfSalt } = (0, key_derivation_1.hkdf)({
13
- derivationKey: sharedSecret,
12
+ const { derivedKey } = (0, key_derivation_1.concatKdf)({
13
+ algorithm: encryption,
14
+ apu,
15
+ apv,
14
16
  keyLength,
17
+ sharedSecret,
15
18
  });
16
19
  return {
17
20
  contentEncryptionKey: derivedKey,
18
- hkdfSalt,
19
21
  publicEncryptionJwk,
20
22
  };
21
23
  };
22
24
  exports.getDiffieHellmanEncryptionKey = getDiffieHellmanEncryptionKey;
23
- const getDiffieHellmanDecryptionKey = ({ encryption, hkdfSalt, kryptos, publicEncryptionJwk, }) => {
25
+ const getDiffieHellmanDecryptionKey = ({ apu, apv, encryption, kryptos, publicEncryptionJwk, }) => {
24
26
  if (!kryptos_1.KryptosKit.isEc(kryptos) && !kryptos_1.KryptosKit.isOkp(kryptos)) {
25
27
  throw new errors_1.AesError("Invalid kryptos type");
26
28
  }
@@ -29,10 +31,12 @@ const getDiffieHellmanDecryptionKey = ({ encryption, hkdfSalt, kryptos, publicEn
29
31
  }
30
32
  const sharedSecret = (0, shared_secret_1.calculateSharedSecret)({ kryptos, publicEncryptionJwk });
31
33
  const keyLength = (0, calculate_1.calculateContentEncryptionKeySize)(encryption);
32
- const { derivedKey } = (0, key_derivation_1.hkdf)({
33
- derivationKey: sharedSecret,
34
- hkdfSalt,
34
+ const { derivedKey } = (0, key_derivation_1.concatKdf)({
35
+ algorithm: encryption,
36
+ apu,
37
+ apv,
35
38
  keyLength,
39
+ sharedSecret,
36
40
  });
37
41
  return { contentEncryptionKey: derivedKey };
38
42
  };
@@ -1 +1 @@
1
- {"version":3,"file":"diffie-hellman.js","sourceRoot":"","sources":["../../../../src/utils/private/diffie-hellman/diffie-hellman.ts"],"names":[],"mappings":";;;AAAA,8CAA8C;AAC9C,4CAA2C;AAO3C,4CAAiE;AACjE,sDAAyC;AACzC,mDAA8E;AAEvE,MAAM,6BAA6B,GAAG,CAAC,EAC5C,UAAU,EACV,OAAO,GACU,EAAmB,EAAE;IACtC,MAAM,EAAE,mBAAmB,EAAE,YAAY,EAAE,GAAG,IAAA,oCAAoB,EAAC,OAAO,CAAC,CAAC;IAC5E,MAAM,SAAS,GAAG,IAAA,6CAAiC,EAAC,UAAU,CAAC,CAAC;IAEhE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,IAAA,qBAAI,EAAC;QACpC,aAAa,EAAE,YAAY;QAC3B,SAAS;KACV,CAAC,CAAC;IAEH,OAAO;QACL,oBAAoB,EAAE,UAAU;QAChC,QAAQ;QACR,mBAAmB;KACpB,CAAC;AACJ,CAAC,CAAC;AAjBW,QAAA,6BAA6B,iCAiBxC;AAEK,MAAM,6BAA6B,GAAG,CAAC,EAC5C,UAAU,EACV,QAAQ,EACR,OAAO,EACP,mBAAmB,GACD,EAAoB,EAAE;IACxC,IAAI,CAAC,oBAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAU,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5D,MAAM,IAAI,iBAAQ,CAAC,sBAAsB,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,MAAM,IAAI,iBAAQ,CAAC,6BAA6B,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,YAAY,GAAG,IAAA,qCAAqB,EAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC,CAAC;IAC7E,MAAM,SAAS,GAAG,IAAA,6CAAiC,EAAC,UAAU,CAAC,CAAC;IAEhE,MAAM,EAAE,UAAU,EAAE,GAAG,IAAA,qBAAI,EAAC;QAC1B,aAAa,EAAE,YAAY;QAC3B,QAAQ;QACR,SAAS;KACV,CAAC,CAAC;IAEH,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,CAAC;AAC9C,CAAC,CAAC;AAvBW,QAAA,6BAA6B,iCAuBxC"}
1
+ {"version":3,"file":"diffie-hellman.js","sourceRoot":"","sources":["../../../../src/utils/private/diffie-hellman/diffie-hellman.ts"],"names":[],"mappings":";;;AAAA,8CAA8C;AAC9C,4CAA2C;AAO3C,4CAAiE;AACjE,sDAA8C;AAC9C,mDAA8E;AAEvE,MAAM,6BAA6B,GAAG,CAAC,EAC5C,GAAG,EACH,GAAG,EACH,UAAU,EACV,OAAO,GACU,EAAmB,EAAE;IACtC,MAAM,EAAE,mBAAmB,EAAE,YAAY,EAAE,GAAG,IAAA,oCAAoB,EAAC,OAAO,CAAC,CAAC;IAC5E,MAAM,SAAS,GAAG,IAAA,6CAAiC,EAAC,UAAU,CAAC,CAAC;IAEhE,MAAM,EAAE,UAAU,EAAE,GAAG,IAAA,0BAAS,EAAC;QAC/B,SAAS,EAAE,UAAU;QACrB,GAAG;QACH,GAAG;QACH,SAAS;QACT,YAAY;KACb,CAAC,CAAC;IAEH,OAAO;QACL,oBAAoB,EAAE,UAAU;QAChC,mBAAmB;KACpB,CAAC;AACJ,CAAC,CAAC;AArBW,QAAA,6BAA6B,iCAqBxC;AAEK,MAAM,6BAA6B,GAAG,CAAC,EAC5C,GAAG,EACH,GAAG,EACH,UAAU,EACV,OAAO,EACP,mBAAmB,GACD,EAAoB,EAAE;IACxC,IAAI,CAAC,oBAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAU,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5D,MAAM,IAAI,iBAAQ,CAAC,sBAAsB,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,MAAM,IAAI,iBAAQ,CAAC,6BAA6B,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,YAAY,GAAG,IAAA,qCAAqB,EAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC,CAAC;IAC7E,MAAM,SAAS,GAAG,IAAA,6CAAiC,EAAC,UAAU,CAAC,CAAC;IAEhE,MAAM,EAAE,UAAU,EAAE,GAAG,IAAA,0BAAS,EAAC;QAC/B,SAAS,EAAE,UAAU;QACrB,GAAG;QACH,GAAG;QACH,SAAS;QACT,YAAY;KACb,CAAC,CAAC;IAEH,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,CAAC;AAC9C,CAAC,CAAC;AA1BW,QAAA,6BAA6B,iCA0BxC"}
@@ -1 +1 @@
1
- {"version":3,"file":"shared-secret.d.ts","sourceRoot":"","sources":["../../../../src/utils/private/diffie-hellman/shared-secret.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,QAAQ,EAIT,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,KAAK,cAAc,GAAG;IACpB,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,KAAK,4BAA4B,GAAG,IAAI,CACtC,iBAAiB,EACjB,SAAS,GAAG,qBAAqB,CAClC,CAAC;AAoBF,eAAO,MAAM,oBAAoB,GAAI,SAAS,QAAQ,KAAG,cA+BxD,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,mCAGnC,4BAA4B,KAAG,MA4BjC,CAAC"}
1
+ {"version":3,"file":"shared-secret.d.ts","sourceRoot":"","sources":["../../../../src/utils/private/diffie-hellman/shared-secret.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,QAAQ,EAIT,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,KAAK,cAAc,GAAG;IACpB,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,KAAK,4BAA4B,GAAG,IAAI,CACtC,iBAAiB,EACjB,SAAS,GAAG,qBAAqB,CAClC,CAAC;AAoBF,eAAO,MAAM,oBAAoB,GAAI,SAAS,QAAQ,KAAG,cA+BxD,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,mCAGnC,4BAA4B,KAAG,MAgCjC,CAAC"}
@@ -52,7 +52,11 @@ const calculateSharedSecret = ({ kryptos, publicEncryptionJwk, }) => {
52
52
  if (!publicEncryptionJwk) {
53
53
  throw new errors_1.AesError("Missing publicEncryptionJwk");
54
54
  }
55
- const pek = kryptos_1.KryptosKit.from.jwk({ alg: "ECDH-ES", use: "enc", ...publicEncryptionJwk });
55
+ const pek = kryptos_1.KryptosKit.from.jwk({
56
+ alg: kryptos.algorithm,
57
+ use: "enc",
58
+ ...publicEncryptionJwk,
59
+ });
56
60
  const der = kryptos.export("der");
57
61
  const receiver = pek.export("der");
58
62
  if (!der.privateKey) {
@@ -1 +1 @@
1
- {"version":3,"file":"shared-secret.js","sourceRoot":"","sources":["../../../../src/utils/private/diffie-hellman/shared-secret.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shared-secret.js","sourceRoot":"","sources":["../../../../src/utils/private/diffie-hellman/shared-secret.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { AesEncryptionRecord } from "../../types";
1
+ import { AesEncryptionRecord, ParsedAesDecryptionRecord } from "../../types";
2
2
  export declare const createEncodedAesString: (data: AesEncryptionRecord) => string;
3
- export declare const parseEncodedAesString: (encoded: string) => AesEncryptionRecord;
3
+ export declare const parseEncodedAesString: (encoded: string) => ParsedAesDecryptionRecord;
4
4
  //# sourceMappingURL=encoded-aes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"encoded-aes.d.ts","sourceRoot":"","sources":["../../../src/utils/private/encoded-aes.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,mBAAmB,EAAuB,MAAM,aAAa,CAAC;AAEvF,eAAO,MAAM,sBAAsB,GAAI,MAAM,mBAAmB,KAAG,MAmGlE,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,SAAS,MAAM,KAAG,mBAuGvD,CAAC"}
1
+ {"version":3,"file":"encoded-aes.d.ts","sourceRoot":"","sources":["../../../src/utils/private/encoded-aes.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AA2C7E,eAAO,MAAM,sBAAsB,GAAI,MAAM,mBAAmB,KAAG,MAwClE,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,SAAS,MAAM,KAAG,yBA+EvD,CAAC"}