@lindorm/aes 0.1.3 → 0.3.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 (251) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/dist/classes/AesKit.d.ts +2 -5
  3. package/dist/classes/AesKit.d.ts.map +1 -1
  4. package/dist/classes/AesKit.js +9 -21
  5. package/dist/classes/AesKit.js.map +1 -1
  6. package/dist/constants/private/format.d.ts +2 -0
  7. package/dist/constants/private/format.d.ts.map +1 -0
  8. package/dist/constants/private/format.js +5 -0
  9. package/dist/constants/private/format.js.map +1 -0
  10. package/dist/constants/version.d.ts +1 -1
  11. package/dist/constants/version.js +1 -1
  12. package/dist/index.d.ts +0 -1
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +0 -1
  15. package/dist/index.js.map +1 -1
  16. package/dist/types/aes-cipher.d.ts +2 -2
  17. package/dist/types/aes-cipher.d.ts.map +1 -1
  18. package/dist/types/aes-data.d.ts +11 -11
  19. package/dist/types/aes-data.d.ts.map +1 -1
  20. package/dist/types/aes-encryption-data.d.ts +11 -7
  21. package/dist/types/aes-encryption-data.d.ts.map +1 -1
  22. package/dist/types/aes-kit.d.ts +3 -7
  23. package/dist/types/aes-kit.d.ts.map +1 -1
  24. package/dist/types/curve.d.ts +4 -0
  25. package/dist/types/curve.d.ts.map +1 -0
  26. package/dist/types/curve.js +3 -0
  27. package/dist/types/curve.js.map +1 -0
  28. package/dist/types/index.d.ts +1 -0
  29. package/dist/types/index.d.ts.map +1 -1
  30. package/dist/types/index.js +1 -0
  31. package/dist/types/index.js.map +1 -1
  32. package/dist/types/private/aes-key-derivation.d.ts +2 -0
  33. package/dist/types/private/aes-key-derivation.d.ts.map +1 -0
  34. package/dist/types/private/aes-key-derivation.js +3 -0
  35. package/dist/types/private/aes-key-derivation.js.map +1 -0
  36. package/dist/types/private/aes-string.d.ts +19 -0
  37. package/dist/types/private/aes-string.d.ts.map +1 -0
  38. package/dist/types/private/aes-string.js +3 -0
  39. package/dist/types/private/aes-string.js.map +1 -0
  40. package/dist/types/{auth-tag.d.ts → private/auth-tag.d.ts} +7 -9
  41. package/dist/types/private/auth-tag.d.ts.map +1 -0
  42. package/dist/types/{auth-tag.js.map → private/auth-tag.js.map} +1 -1
  43. package/dist/types/private/content-encryption-key.d.ts +32 -0
  44. package/dist/types/private/content-encryption-key.d.ts.map +1 -0
  45. package/dist/types/private/content-encryption-key.js +3 -0
  46. package/dist/types/private/content-encryption-key.js.map +1 -0
  47. package/dist/types/private/index.d.ts +6 -0
  48. package/dist/types/private/index.d.ts.map +1 -0
  49. package/dist/{enums → types/private}/index.js +5 -4
  50. package/dist/types/private/index.js.map +1 -0
  51. package/dist/types/private/key-wrap.d.ts +23 -0
  52. package/dist/types/private/key-wrap.d.ts.map +1 -0
  53. package/dist/types/private/key-wrap.js +3 -0
  54. package/dist/types/private/key-wrap.js.map +1 -0
  55. package/dist/types/types.d.ts +3 -9
  56. package/dist/types/types.d.ts.map +1 -1
  57. package/dist/utils/private/aes-data/auth-tag-hmac.d.ts +5 -0
  58. package/dist/utils/private/aes-data/auth-tag-hmac.d.ts.map +1 -0
  59. package/dist/utils/private/aes-data/auth-tag-hmac.js +37 -0
  60. package/dist/utils/private/aes-data/auth-tag-hmac.js.map +1 -0
  61. package/dist/utils/private/aes-data/auth-tag.d.ts +5 -0
  62. package/dist/utils/private/aes-data/auth-tag.d.ts.map +1 -0
  63. package/dist/utils/private/aes-data/auth-tag.js +52 -0
  64. package/dist/utils/private/aes-data/auth-tag.js.map +1 -0
  65. package/dist/utils/private/aes-data/get-initialisation-vector.d.ts +4 -0
  66. package/dist/utils/private/aes-data/get-initialisation-vector.d.ts.map +1 -0
  67. package/dist/utils/private/{get-initialisation-vector.js → aes-data/get-initialisation-vector.js} +7 -7
  68. package/dist/utils/private/aes-data/get-initialisation-vector.js.map +1 -0
  69. package/dist/utils/private/aes-data/split-content-encryption-key.d.ts +9 -0
  70. package/dist/utils/private/aes-data/split-content-encryption-key.d.ts.map +1 -0
  71. package/dist/utils/private/aes-data/split-content-encryption-key.js +31 -0
  72. package/dist/utils/private/aes-data/split-content-encryption-key.js.map +1 -0
  73. package/dist/utils/private/aes-data.d.ts.map +1 -1
  74. package/dist/utils/private/aes-data.js +36 -25
  75. package/dist/utils/private/aes-data.js.map +1 -1
  76. package/dist/utils/private/calculate/calculate-aes-encryption.d.ts +4 -0
  77. package/dist/utils/private/calculate/calculate-aes-encryption.d.ts.map +1 -0
  78. package/dist/utils/private/calculate/calculate-aes-encryption.js +24 -0
  79. package/dist/utils/private/calculate/calculate-aes-encryption.js.map +1 -0
  80. package/dist/utils/private/calculate/calculate-content-encryption-key-size.d.ts +4 -0
  81. package/dist/utils/private/calculate/calculate-content-encryption-key-size.d.ts.map +1 -0
  82. package/dist/utils/private/calculate/calculate-content-encryption-key-size.js +24 -0
  83. package/dist/utils/private/calculate/calculate-content-encryption-key-size.js.map +1 -0
  84. package/dist/utils/private/calculate/calculate-key-wrap-encryption.d.ts +5 -0
  85. package/dist/utils/private/calculate/calculate-key-wrap-encryption.d.ts.map +1 -0
  86. package/dist/utils/private/calculate/calculate-key-wrap-encryption.js +32 -0
  87. package/dist/utils/private/calculate/calculate-key-wrap-encryption.js.map +1 -0
  88. package/dist/utils/private/calculate/calculate-key-wrap-size.d.ts +4 -0
  89. package/dist/utils/private/calculate/calculate-key-wrap-size.d.ts.map +1 -0
  90. package/dist/utils/private/calculate/calculate-key-wrap-size.js +30 -0
  91. package/dist/utils/private/calculate/calculate-key-wrap-size.js.map +1 -0
  92. package/dist/utils/private/calculate/calculate-pbkdf-hash.d.ts +4 -0
  93. package/dist/utils/private/calculate/calculate-pbkdf-hash.d.ts.map +1 -0
  94. package/dist/utils/private/calculate/calculate-pbkdf-hash.js +18 -0
  95. package/dist/utils/private/calculate/calculate-pbkdf-hash.js.map +1 -0
  96. package/dist/utils/private/calculate/calculate-rsa-oaep-hash.d.ts +4 -0
  97. package/dist/utils/private/calculate/calculate-rsa-oaep-hash.d.ts.map +1 -0
  98. package/dist/utils/private/calculate/calculate-rsa-oaep-hash.js +22 -0
  99. package/dist/utils/private/calculate/calculate-rsa-oaep-hash.js.map +1 -0
  100. package/dist/utils/private/decode-aes-string.d.ts.map +1 -1
  101. package/dist/utils/private/decode-aes-string.js +18 -15
  102. package/dist/utils/private/decode-aes-string.js.map +1 -1
  103. package/dist/utils/private/diffie-hellman/diffie-hellman-key-wrap.d.ts +4 -0
  104. package/dist/utils/private/diffie-hellman/diffie-hellman-key-wrap.d.ts.map +1 -0
  105. package/dist/utils/private/diffie-hellman/diffie-hellman-key-wrap.js +53 -0
  106. package/dist/utils/private/diffie-hellman/diffie-hellman-key-wrap.js.map +1 -0
  107. package/dist/utils/private/diffie-hellman/diffie-hellman.d.ts +4 -0
  108. package/dist/utils/private/diffie-hellman/diffie-hellman.d.ts.map +1 -0
  109. package/dist/utils/private/diffie-hellman/diffie-hellman.js +40 -0
  110. package/dist/utils/private/diffie-hellman/diffie-hellman.js.map +1 -0
  111. package/dist/utils/private/diffie-hellman/shared-secret.d.ts +13 -0
  112. package/dist/utils/private/diffie-hellman/shared-secret.d.ts.map +1 -0
  113. package/dist/utils/private/diffie-hellman/shared-secret.js +68 -0
  114. package/dist/utils/private/diffie-hellman/shared-secret.js.map +1 -0
  115. package/dist/utils/private/encode-aes-string.d.ts +1 -1
  116. package/dist/utils/private/encode-aes-string.d.ts.map +1 -1
  117. package/dist/utils/private/encode-aes-string.js +16 -11
  118. package/dist/utils/private/encode-aes-string.js.map +1 -1
  119. package/dist/utils/private/get-key/get-decryption-key.d.ts +3 -0
  120. package/dist/utils/private/get-key/get-decryption-key.d.ts.map +1 -0
  121. package/dist/utils/private/get-key/get-decryption-key.js +26 -0
  122. package/dist/utils/private/get-key/get-decryption-key.js.map +1 -0
  123. package/dist/utils/private/get-key/get-encryption-key.d.ts +3 -0
  124. package/dist/utils/private/get-key/get-encryption-key.d.ts.map +1 -0
  125. package/dist/utils/private/get-key/get-encryption-key.js +26 -0
  126. package/dist/utils/private/get-key/get-encryption-key.js.map +1 -0
  127. package/dist/utils/private/key-derivation/hkdf.d.ts +14 -0
  128. package/dist/utils/private/key-derivation/hkdf.d.ts.map +1 -0
  129. package/dist/utils/private/key-derivation/hkdf.js +12 -0
  130. package/dist/utils/private/key-derivation/hkdf.js.map +1 -0
  131. package/dist/utils/private/key-derivation/pbkdf.d.ts +17 -0
  132. package/dist/utils/private/key-derivation/pbkdf.d.ts.map +1 -0
  133. package/dist/utils/private/key-derivation/pbkdf.js +13 -0
  134. package/dist/utils/private/key-derivation/pbkdf.js.map +1 -0
  135. package/dist/utils/private/key-types/get-ec-keys.d.ts +4 -0
  136. package/dist/utils/private/key-types/get-ec-keys.d.ts.map +1 -0
  137. package/dist/utils/private/key-types/get-ec-keys.js +43 -0
  138. package/dist/utils/private/key-types/get-ec-keys.js.map +1 -0
  139. package/dist/utils/private/key-types/get-oct-keys.d.ts +4 -0
  140. package/dist/utils/private/key-types/get-oct-keys.d.ts.map +1 -0
  141. package/dist/utils/private/key-types/get-oct-keys.js +52 -0
  142. package/dist/utils/private/key-types/get-oct-keys.js.map +1 -0
  143. package/dist/utils/private/key-types/get-okp-keys.d.ts +4 -0
  144. package/dist/utils/private/key-types/get-okp-keys.d.ts.map +1 -0
  145. package/dist/utils/private/key-types/get-okp-keys.js +43 -0
  146. package/dist/utils/private/key-types/get-okp-keys.js.map +1 -0
  147. package/dist/utils/private/key-types/get-rsa-keys.d.ts +4 -0
  148. package/dist/utils/private/key-types/get-rsa-keys.d.ts.map +1 -0
  149. package/dist/utils/private/key-types/get-rsa-keys.js +58 -0
  150. package/dist/utils/private/key-types/get-rsa-keys.js.map +1 -0
  151. package/dist/utils/private/key-wrap/ecb-key-wrap.d.ts +4 -0
  152. package/dist/utils/private/key-wrap/ecb-key-wrap.d.ts.map +1 -0
  153. package/dist/utils/private/key-wrap/ecb-key-wrap.js +66 -0
  154. package/dist/utils/private/key-wrap/ecb-key-wrap.js.map +1 -0
  155. package/dist/utils/private/key-wrap/gcm-key-wrap.d.ts +4 -0
  156. package/dist/utils/private/key-wrap/gcm-key-wrap.d.ts.map +1 -0
  157. package/dist/utils/private/key-wrap/gcm-key-wrap.js +36 -0
  158. package/dist/utils/private/key-wrap/gcm-key-wrap.js.map +1 -0
  159. package/dist/utils/private/key-wrap/key-wrap.d.ts +4 -0
  160. package/dist/utils/private/key-wrap/key-wrap.d.ts.map +1 -0
  161. package/dist/utils/private/key-wrap/key-wrap.js +49 -0
  162. package/dist/utils/private/key-wrap/key-wrap.js.map +1 -0
  163. package/dist/utils/private/oct/get-oct-dir-keys.d.ts +4 -0
  164. package/dist/utils/private/oct/get-oct-dir-keys.d.ts.map +1 -0
  165. package/dist/utils/private/oct/get-oct-dir-keys.js +35 -0
  166. package/dist/utils/private/oct/get-oct-dir-keys.js.map +1 -0
  167. package/dist/utils/private/oct/get-oct-key-key-wrap.d.ts +4 -0
  168. package/dist/utils/private/oct/get-oct-key-key-wrap.d.ts.map +1 -0
  169. package/dist/utils/private/oct/get-oct-key-key-wrap.js +58 -0
  170. package/dist/utils/private/oct/get-oct-key-key-wrap.js.map +1 -0
  171. package/dist/utils/private/oct/get-oct-pbkdf-key-wrap-keys.d.ts +4 -0
  172. package/dist/utils/private/oct/get-oct-pbkdf-key-wrap-keys.d.ts.map +1 -0
  173. package/dist/utils/private/oct/get-oct-pbkdf-key-wrap-keys.js +59 -0
  174. package/dist/utils/private/oct/get-oct-pbkdf-key-wrap-keys.js.map +1 -0
  175. package/package.json +8 -5
  176. package/dist/enums/AesEncryption.d.ts +0 -9
  177. package/dist/enums/AesEncryption.d.ts.map +0 -1
  178. package/dist/enums/AesEncryption.js +0 -13
  179. package/dist/enums/AesEncryption.js.map +0 -1
  180. package/dist/enums/AesEncryptionKeyAlgorithm.d.ts +0 -9
  181. package/dist/enums/AesEncryptionKeyAlgorithm.d.ts.map +0 -1
  182. package/dist/enums/AesEncryptionKeyAlgorithm.js +0 -13
  183. package/dist/enums/AesEncryptionKeyAlgorithm.js.map +0 -1
  184. package/dist/enums/AesFormat.d.ts +0 -6
  185. package/dist/enums/AesFormat.d.ts.map +0 -1
  186. package/dist/enums/AesFormat.js +0 -10
  187. package/dist/enums/AesFormat.js.map +0 -1
  188. package/dist/enums/AesIntegrityHash.d.ts +0 -6
  189. package/dist/enums/AesIntegrityHash.d.ts.map +0 -1
  190. package/dist/enums/AesIntegrityHash.js +0 -10
  191. package/dist/enums/AesIntegrityHash.js.map +0 -1
  192. package/dist/enums/index.d.ts +0 -5
  193. package/dist/enums/index.d.ts.map +0 -1
  194. package/dist/enums/index.js.map +0 -1
  195. package/dist/types/auth-tag.d.ts.map +0 -1
  196. package/dist/utils/private/auth-tag-hmac.d.ts +0 -5
  197. package/dist/utils/private/auth-tag-hmac.d.ts.map +0 -1
  198. package/dist/utils/private/auth-tag-hmac.js +0 -25
  199. package/dist/utils/private/auth-tag-hmac.js.map +0 -1
  200. package/dist/utils/private/auth-tag.d.ts +0 -5
  201. package/dist/utils/private/auth-tag.d.ts.map +0 -1
  202. package/dist/utils/private/auth-tag.js +0 -58
  203. package/dist/utils/private/auth-tag.js.map +0 -1
  204. package/dist/utils/private/ec/get-ec-keys.d.ts +0 -21
  205. package/dist/utils/private/ec/get-ec-keys.d.ts.map +0 -1
  206. package/dist/utils/private/ec/get-ec-keys.js +0 -55
  207. package/dist/utils/private/ec/get-ec-keys.js.map +0 -1
  208. package/dist/utils/private/ec/get-key-curve.d.ts +0 -4
  209. package/dist/utils/private/ec/get-key-curve.d.ts.map +0 -1
  210. package/dist/utils/private/ec/get-key-curve.js +0 -37
  211. package/dist/utils/private/ec/get-key-curve.js.map +0 -1
  212. package/dist/utils/private/get-decryption-key.d.ts +0 -13
  213. package/dist/utils/private/get-decryption-key.d.ts.map +0 -1
  214. package/dist/utils/private/get-decryption-key.js +0 -33
  215. package/dist/utils/private/get-decryption-key.js.map +0 -1
  216. package/dist/utils/private/get-encryption-keys.d.ts +0 -16
  217. package/dist/utils/private/get-encryption-keys.d.ts.map +0 -1
  218. package/dist/utils/private/get-encryption-keys.js +0 -23
  219. package/dist/utils/private/get-encryption-keys.js.map +0 -1
  220. package/dist/utils/private/get-initialisation-vector.d.ts +0 -4
  221. package/dist/utils/private/get-initialisation-vector.d.ts.map +0 -1
  222. package/dist/utils/private/get-initialisation-vector.js.map +0 -1
  223. package/dist/utils/private/oct/get-oct-keys.d.ts +0 -14
  224. package/dist/utils/private/oct/get-oct-keys.d.ts.map +0 -1
  225. package/dist/utils/private/oct/get-oct-keys.js +0 -24
  226. package/dist/utils/private/oct/get-oct-keys.js.map +0 -1
  227. package/dist/utils/private/rsa/generate-encryption-key.d.ts +0 -4
  228. package/dist/utils/private/rsa/generate-encryption-key.d.ts.map +0 -1
  229. package/dist/utils/private/rsa/generate-encryption-key.js +0 -8
  230. package/dist/utils/private/rsa/generate-encryption-key.js.map +0 -1
  231. package/dist/utils/private/rsa/get-oaep-hash.d.ts +0 -3
  232. package/dist/utils/private/rsa/get-oaep-hash.d.ts.map +0 -1
  233. package/dist/utils/private/rsa/get-oaep-hash.js +0 -22
  234. package/dist/utils/private/rsa/get-oaep-hash.js.map +0 -1
  235. package/dist/utils/private/rsa/get-rsa-keys.d.ts +0 -21
  236. package/dist/utils/private/rsa/get-rsa-keys.d.ts.map +0 -1
  237. package/dist/utils/private/rsa/get-rsa-keys.js +0 -22
  238. package/dist/utils/private/rsa/get-rsa-keys.js.map +0 -1
  239. package/dist/utils/private/rsa/public-encryption-key.d.ts +0 -17
  240. package/dist/utils/private/rsa/public-encryption-key.d.ts.map +0 -1
  241. package/dist/utils/private/rsa/public-encryption-key.js +0 -56
  242. package/dist/utils/private/rsa/public-encryption-key.js.map +0 -1
  243. package/dist/utils/private/secret/calculate-secret-length.d.ts +0 -3
  244. package/dist/utils/private/secret/calculate-secret-length.d.ts.map +0 -1
  245. package/dist/utils/private/secret/calculate-secret-length.js +0 -21
  246. package/dist/utils/private/secret/calculate-secret-length.js.map +0 -1
  247. package/dist/utils/private/secret/create-key-derivation.d.ts +0 -10
  248. package/dist/utils/private/secret/create-key-derivation.d.ts.map +0 -1
  249. package/dist/utils/private/secret/create-key-derivation.js +0 -35
  250. package/dist/utils/private/secret/create-key-derivation.js.map +0 -1
  251. /package/dist/types/{auth-tag.js → private/auth-tag.js} +0 -0
@@ -1,11 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports._decodeAesString = void 0;
4
+ const format_1 = require("../../constants/private/format");
4
5
  const errors_1 = require("../../errors");
5
- const regex = /(?<key>[a-z]+)=(?<value>.+)/g;
6
+ const regex = /(?<key>[a-z0-9]+)=(?<value>.+)/g;
6
7
  const _decodeAesString = (data) => {
7
- const [_, alg, array, content] = data.split("$");
8
- const algorithm = alg;
8
+ const [_, enc, array, content] = data.split("$");
9
+ const encryption = enc;
9
10
  const items = array.split(",");
10
11
  const values = {};
11
12
  for (const item of items) {
@@ -17,21 +18,23 @@ const _decodeAesString = (data) => {
17
18
  }
18
19
  values[match.groups.key] = match.groups.value;
19
20
  }
20
- const { cek, crv: curve, eka, f, ih, iv, kid, tag, v, x, y, kty: keyType } = values;
21
+ const { v, kid, alg, iv, tag, hks, p2c, p2s, pei, pek, pet, crv: curve, kty: keyType, x, y, } = values;
21
22
  const crv = curve;
22
- const format = f;
23
23
  const kty = keyType;
24
24
  return {
25
- encryption: algorithm,
26
- authTag: tag ? Buffer.from(tag, format) : undefined,
27
- content: Buffer.from(content, format),
28
- encryptionKeyAlgorithm: eka,
29
- format,
30
- integrityHash: ih,
31
- initialisationVector: Buffer.from(iv, format),
32
- keyId: kid ? Buffer.from(kid, format) : undefined,
33
- publicEncryptionJwk: crv && x && y && kty ? { crv, x, y, kty } : undefined,
34
- publicEncryptionKey: cek ? Buffer.from(cek, format) : undefined,
25
+ authTag: Buffer.from(tag, format_1._B64U),
26
+ content: Buffer.from(content, format_1._B64U),
27
+ encryption: encryption,
28
+ algorithm: alg,
29
+ hkdfSalt: hks ? Buffer.from(hks, format_1._B64U) : undefined,
30
+ initialisationVector: Buffer.from(iv, format_1._B64U),
31
+ keyId: Buffer.from(kid, format_1._B64U),
32
+ pbkdfIterations: p2c ? parseInt(p2c, 10) : undefined,
33
+ pbkdfSalt: p2s ? Buffer.from(p2s, format_1._B64U) : undefined,
34
+ publicEncryptionJwk: crv && x && kty ? { crv, x, y, kty } : undefined,
35
+ publicEncryptionIv: pei ? Buffer.from(pei, format_1._B64U) : undefined,
36
+ publicEncryptionKey: pek ? Buffer.from(pek, format_1._B64U) : undefined,
37
+ publicEncryptionTag: pet ? Buffer.from(pet, format_1._B64U) : undefined,
35
38
  version: parseInt(v, 10),
36
39
  };
37
40
  };
@@ -1 +1 @@
1
- {"version":3,"file":"decode-aes-string.js","sourceRoot":"","sources":["../../../src/utils/private/decode-aes-string.ts"],"names":[],"mappings":";;;AACA,yCAAwC;AASxC,MAAM,KAAK,GAAG,8BAA8B,CAAC;AAEtC,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAqB,EAAE;IAClE,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAEjD,MAAM,SAAS,GAAG,GAAiB,CAAC;IACpC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/B,MAAM,MAAM,GAA2B,EAAE,CAAC;IAE1C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE3C,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;YACjD,MAAM,IAAI,iBAAQ,CAAC,2BAA2B,EAAE;gBAC9C,KAAK,EAAE,EAAE,IAAI,EAAE;aAChB,CAAC,CAAC;QACL,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;IAChD,CAAC;IAED,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IACpF,MAAM,GAAG,GAAG,KAAqB,CAAC;IAClC,MAAM,MAAM,GAAG,CAAiB,CAAC;IACjC,MAAM,GAAG,GAAG,OAAe,CAAC;IAE5B,OAAO;QACL,UAAU,EAAE,SAAS;QACrB,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;QACnD,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC;QACrC,sBAAsB,EAAE,GAA6B;QACrD,MAAM;QACN,aAAa,EAAE,EAAmB;QAClC,oBAAoB,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC;QAC7C,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;QACjD,mBAAmB,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS;QAC1E,mBAAmB,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;QAC/D,OAAO,EAAE,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC;KACzB,CAAC;AACJ,CAAC,CAAC;AArCW,QAAA,gBAAgB,oBAqC3B"}
1
+ {"version":3,"file":"decode-aes-string.js","sourceRoot":"","sources":["../../../src/utils/private/decode-aes-string.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
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;
4
+ //# sourceMappingURL=diffie-hellman-key-wrap.d.ts.map
@@ -0,0 +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;AAOhC,eAAO,MAAM,qCAAqC,6BAG/C,gBAAgB,KAAG,eAyBrB,CAAC;AAEF,eAAO,MAAM,qCAAqC,8GAO/C,iBAAiB,KAAG,gBAoBtB,CAAC"}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports._getDiffieHellmanKeyWrapDecryptionKey = exports._getDiffieHellmanKeyWrapEncryptionKey = void 0;
4
+ const crypto_1 = require("crypto");
5
+ const errors_1 = require("../../../errors");
6
+ const calculate_content_encryption_key_size_1 = require("../calculate/calculate-content-encryption-key-size");
7
+ const calculate_key_wrap_size_1 = require("../calculate/calculate-key-wrap-size");
8
+ const hkdf_1 = require("../key-derivation/hkdf");
9
+ const key_wrap_1 = require("../key-wrap/key-wrap");
10
+ const shared_secret_1 = require("./shared-secret");
11
+ const _getDiffieHellmanKeyWrapEncryptionKey = ({ encryption, kryptos, }) => {
12
+ const { publicEncryptionJwk, sharedSecret } = (0, shared_secret_1._generateSharedSecret)(kryptos);
13
+ const cekSize = (0, calculate_content_encryption_key_size_1._calculateContentEncryptionKeySize)(encryption);
14
+ const contentEncryptionKey = (0, crypto_1.randomBytes)(cekSize);
15
+ const { derivedKey, hkdfSalt } = (0, hkdf_1._hkdf)({
16
+ derivationKey: sharedSecret,
17
+ keyLength: (0, calculate_key_wrap_size_1._calculateKeyWrapSize)(kryptos.algorithm),
18
+ });
19
+ const { publicEncryptionKey, publicEncryptionIv, publicEncryptionTag } = (0, key_wrap_1._keyWrap)({
20
+ contentEncryptionKey,
21
+ kryptos,
22
+ keyEncryptionKey: derivedKey,
23
+ });
24
+ return {
25
+ contentEncryptionKey,
26
+ hkdfSalt,
27
+ publicEncryptionJwk,
28
+ publicEncryptionKey,
29
+ publicEncryptionIv,
30
+ publicEncryptionTag,
31
+ };
32
+ };
33
+ exports._getDiffieHellmanKeyWrapEncryptionKey = _getDiffieHellmanKeyWrapEncryptionKey;
34
+ const _getDiffieHellmanKeyWrapDecryptionKey = ({ hkdfSalt, kryptos, publicEncryptionJwk, publicEncryptionIv, publicEncryptionKey, publicEncryptionTag, }) => {
35
+ if (!publicEncryptionKey) {
36
+ throw new errors_1.AesError("Missing publicEncryptionKey");
37
+ }
38
+ const sharedSecret = (0, shared_secret_1._calculateSharedSecret)({ kryptos, publicEncryptionJwk });
39
+ const { derivedKey } = (0, hkdf_1._hkdf)({
40
+ derivationKey: sharedSecret,
41
+ hkdfSalt,
42
+ keyLength: (0, calculate_key_wrap_size_1._calculateKeyWrapSize)(kryptos.algorithm),
43
+ });
44
+ return (0, key_wrap_1._keyUnwrap)({
45
+ keyEncryptionKey: derivedKey,
46
+ kryptos,
47
+ publicEncryptionIv,
48
+ publicEncryptionKey,
49
+ publicEncryptionTag,
50
+ });
51
+ };
52
+ exports._getDiffieHellmanKeyWrapDecryptionKey = _getDiffieHellmanKeyWrapDecryptionKey;
53
+ //# sourceMappingURL=diffie-hellman-key-wrap.js.map
@@ -0,0 +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,8GAAwG;AACxG,kFAA6E;AAC7E,iDAA+C;AAC/C,mDAA4D;AAC5D,mDAAgF;AAEzE,MAAM,qCAAqC,GAAG,CAAC,EACpD,UAAU,EACV,OAAO,GACU,EAAmB,EAAE;IACtC,MAAM,EAAE,mBAAmB,EAAE,YAAY,EAAE,GAAG,IAAA,qCAAqB,EAAC,OAAO,CAAC,CAAC;IAE7E,MAAM,OAAO,GAAG,IAAA,0EAAkC,EAAC,UAAU,CAAC,CAAC;IAC/D,MAAM,oBAAoB,GAAG,IAAA,oBAAW,EAAC,OAAO,CAAC,CAAC;IAElD,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,IAAA,YAAK,EAAC;QACrC,aAAa,EAAE,YAAY;QAC3B,SAAS,EAAE,IAAA,+CAAqB,EAAC,OAAO,CAAC,SAAS,CAAC;KACpD,CAAC,CAAC;IAEH,MAAM,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,GAAG,IAAA,mBAAQ,EAAC;QAChF,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,qCAAqC,yCA4BhD;AAEK,MAAM,qCAAqC,GAAG,CAAC,EACpD,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,sCAAsB,EAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC,CAAC;IAE9E,MAAM,EAAE,UAAU,EAAE,GAAG,IAAA,YAAK,EAAC;QAC3B,aAAa,EAAE,YAAY;QAC3B,QAAQ;QACR,SAAS,EAAE,IAAA,+CAAqB,EAAC,OAAO,CAAC,SAAS,CAAC;KACpD,CAAC,CAAC;IAEH,OAAO,IAAA,qBAAU,EAAC;QAChB,gBAAgB,EAAE,UAAU;QAC5B,OAAO;QACP,kBAAkB;QAClB,mBAAmB;QACnB,mBAAmB;KACpB,CAAC,CAAC;AACL,CAAC,CAAC;AA3BW,QAAA,qCAAqC,yCA2BhD"}
@@ -0,0 +1,4 @@
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;
4
+ //# sourceMappingURL=diffie-hellman.d.ts.map
@@ -0,0 +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,8BAA8B,6BAGxC,gBAAgB,KAAG,eAcrB,CAAC;AAEF,eAAO,MAAM,8BAA8B,4DAKxC,iBAAiB,KAAG,gBAkBtB,CAAC"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports._getDiffieHellmanDecryptionKey = exports._getDiffieHellmanEncryptionKey = void 0;
4
+ const kryptos_1 = require("@lindorm/kryptos");
5
+ const errors_1 = require("../../../errors");
6
+ const calculate_content_encryption_key_size_1 = require("../calculate/calculate-content-encryption-key-size");
7
+ const hkdf_1 = require("../key-derivation/hkdf");
8
+ const shared_secret_1 = require("./shared-secret");
9
+ const _getDiffieHellmanEncryptionKey = ({ encryption, kryptos, }) => {
10
+ const { publicEncryptionJwk, sharedSecret } = (0, shared_secret_1._generateSharedSecret)(kryptos);
11
+ const keyLength = (0, calculate_content_encryption_key_size_1._calculateContentEncryptionKeySize)(encryption);
12
+ const { derivedKey, hkdfSalt } = (0, hkdf_1._hkdf)({
13
+ derivationKey: sharedSecret,
14
+ keyLength,
15
+ });
16
+ return {
17
+ contentEncryptionKey: derivedKey,
18
+ hkdfSalt,
19
+ publicEncryptionJwk,
20
+ };
21
+ };
22
+ exports._getDiffieHellmanEncryptionKey = _getDiffieHellmanEncryptionKey;
23
+ const _getDiffieHellmanDecryptionKey = ({ encryption, hkdfSalt, kryptos, publicEncryptionJwk, }) => {
24
+ if (!kryptos_1.Kryptos.isEc(kryptos) && !kryptos_1.Kryptos.isOkp(kryptos)) {
25
+ throw new errors_1.AesError("Invalid kryptos type");
26
+ }
27
+ if (!publicEncryptionJwk) {
28
+ throw new errors_1.AesError("Missing publicEncryptionJwk");
29
+ }
30
+ const sharedSecret = (0, shared_secret_1._calculateSharedSecret)({ kryptos, publicEncryptionJwk });
31
+ const keyLength = (0, calculate_content_encryption_key_size_1._calculateContentEncryptionKeySize)(encryption);
32
+ const { derivedKey } = (0, hkdf_1._hkdf)({
33
+ derivationKey: sharedSecret,
34
+ hkdfSalt,
35
+ keyLength,
36
+ });
37
+ return { contentEncryptionKey: derivedKey };
38
+ };
39
+ exports._getDiffieHellmanDecryptionKey = _getDiffieHellmanDecryptionKey;
40
+ //# sourceMappingURL=diffie-hellman.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diffie-hellman.js","sourceRoot":"","sources":["../../../../src/utils/private/diffie-hellman/diffie-hellman.ts"],"names":[],"mappings":";;;AAAA,8CAA2C;AAC3C,4CAA2C;AAO3C,8GAAwG;AACxG,iDAA+C;AAC/C,mDAAgF;AAEzE,MAAM,8BAA8B,GAAG,CAAC,EAC7C,UAAU,EACV,OAAO,GACU,EAAmB,EAAE;IACtC,MAAM,EAAE,mBAAmB,EAAE,YAAY,EAAE,GAAG,IAAA,qCAAqB,EAAC,OAAO,CAAC,CAAC;IAC7E,MAAM,SAAS,GAAG,IAAA,0EAAkC,EAAC,UAAU,CAAC,CAAC;IAEjE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,IAAA,YAAK,EAAC;QACrC,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,8BAA8B,kCAiBzC;AAEK,MAAM,8BAA8B,GAAG,CAAC,EAC7C,UAAU,EACV,QAAQ,EACR,OAAO,EACP,mBAAmB,GACD,EAAoB,EAAE;IACxC,IAAI,CAAC,iBAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACtD,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,sCAAsB,EAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC,CAAC;IAC9E,MAAM,SAAS,GAAG,IAAA,0EAAkC,EAAC,UAAU,CAAC,CAAC;IAEjE,MAAM,EAAE,UAAU,EAAE,GAAG,IAAA,YAAK,EAAC;QAC3B,aAAa,EAAE,YAAY;QAC3B,QAAQ;QACR,SAAS;KACV,CAAC,CAAC;IAEH,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,CAAC;AAC9C,CAAC,CAAC;AAvBW,QAAA,8BAA8B,kCAuBzC"}
@@ -0,0 +1,13 @@
1
+ /// <reference types="node" />
2
+ import { IKryptos } from "@lindorm/kryptos";
3
+ import { PublicEncryptionJwk } from "../../../types";
4
+ import { DecryptCekOptions } from "../../../types/private";
5
+ type GenerateResult = {
6
+ publicEncryptionJwk: PublicEncryptionJwk;
7
+ sharedSecret: Buffer;
8
+ };
9
+ type CalculateSharedSecretOptions = Pick<DecryptCekOptions, "kryptos" | "publicEncryptionJwk">;
10
+ export declare const _generateSharedSecret: (kryptos: IKryptos) => GenerateResult;
11
+ export declare const _calculateSharedSecret: ({ kryptos, publicEncryptionJwk, }: CalculateSharedSecretOptions) => Buffer;
12
+ export {};
13
+ //# sourceMappingURL=shared-secret.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared-secret.d.ts","sourceRoot":"","sources":["../../../../src/utils/private/diffie-hellman/shared-secret.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAW,MAAM,kBAAkB,CAAC;AAGrD,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;AAeF,eAAO,MAAM,qBAAqB,YAAa,QAAQ,KAAG,cA4BzD,CAAC;AAEF,eAAO,MAAM,sBAAsB,sCAGhC,4BAA4B,KAAG,MAyBjC,CAAC"}
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports._calculateSharedSecret = exports._generateSharedSecret = void 0;
4
+ const kryptos_1 = require("@lindorm/kryptos");
5
+ const crypto_1 = require("crypto");
6
+ const errors_1 = require("../../../errors");
7
+ const _generateKryptos = (kryptos) => {
8
+ if (!kryptos_1.Kryptos.isEc(kryptos) && !kryptos_1.Kryptos.isOkp(kryptos)) {
9
+ throw new errors_1.AesError("Invalid kryptos type");
10
+ }
11
+ return kryptos_1.Kryptos.generate({
12
+ algorithm: kryptos.algorithm,
13
+ curve: kryptos.curve,
14
+ type: kryptos.type,
15
+ use: "enc",
16
+ });
17
+ };
18
+ const _generateSharedSecret = (kryptos) => {
19
+ const pek = _generateKryptos(kryptos);
20
+ const der = kryptos.export("der");
21
+ const sender = pek.export("der");
22
+ if (!sender.privateKey) {
23
+ throw new errors_1.AesError("Sender private key is missing");
24
+ }
25
+ const sharedSecret = (0, crypto_1.diffieHellman)({
26
+ privateKey: (0, crypto_1.createPrivateKey)({
27
+ key: sender.privateKey,
28
+ format: "der",
29
+ type: "pkcs8",
30
+ }),
31
+ publicKey: (0, crypto_1.createPublicKey)({
32
+ key: der.publicKey,
33
+ format: "der",
34
+ type: "spki",
35
+ }),
36
+ });
37
+ const { crv, kty, x, y } = pek.export("jwk");
38
+ return {
39
+ publicEncryptionJwk: { crv, kty, x, y },
40
+ sharedSecret,
41
+ };
42
+ };
43
+ exports._generateSharedSecret = _generateSharedSecret;
44
+ const _calculateSharedSecret = ({ kryptos, publicEncryptionJwk, }) => {
45
+ if (!publicEncryptionJwk) {
46
+ throw new errors_1.AesError("Missing publicEncryptionJwk");
47
+ }
48
+ const pek = kryptos_1.Kryptos.from("jwk", { alg: "ECDH-ES", use: "enc", ...publicEncryptionJwk });
49
+ const der = kryptos.export("der");
50
+ const receiver = pek.export("der");
51
+ if (!der.privateKey) {
52
+ throw new errors_1.AesError("Kryptos private key is missing");
53
+ }
54
+ return (0, crypto_1.diffieHellman)({
55
+ privateKey: (0, crypto_1.createPrivateKey)({
56
+ key: der.privateKey,
57
+ format: "der",
58
+ type: "pkcs8",
59
+ }),
60
+ publicKey: (0, crypto_1.createPublicKey)({
61
+ key: receiver.publicKey,
62
+ format: "der",
63
+ type: "spki",
64
+ }),
65
+ });
66
+ };
67
+ exports._calculateSharedSecret = _calculateSharedSecret;
68
+ //# sourceMappingURL=shared-secret.js.map
@@ -0,0 +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,3 +1,3 @@
1
1
  import { AesEncryptionData } from "../../types";
2
- export declare const _encodeAesString: ({ encryption: algorithm, authTag, content, encryptionKeyAlgorithm, format, initialisationVector, integrityHash, keyId, publicEncryptionJwk, publicEncryptionKey, version, }: AesEncryptionData) => string;
2
+ export declare const _encodeAesString: ({ algorithm, authTag, content, encryption, hkdfSalt, initialisationVector, keyId, pbkdfIterations, pbkdfSalt, publicEncryptionIv, publicEncryptionJwk, publicEncryptionKey, publicEncryptionTag, version, }: AesEncryptionData) => string;
3
3
  //# sourceMappingURL=encode-aes-string.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"encode-aes-string.d.ts","sourceRoot":"","sources":["../../../src/utils/private/encode-aes-string.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,eAAO,MAAM,gBAAgB,gLAY1B,iBAAiB,KAAG,MAoBtB,CAAC"}
1
+ {"version":3,"file":"encode-aes-string.d.ts","sourceRoot":"","sources":["../../../src/utils/private/encode-aes-string.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGhD,eAAO,MAAM,gBAAgB,gNAe1B,iBAAiB,KAAG,MAgCtB,CAAC"}
@@ -2,24 +2,29 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports._encodeAesString = void 0;
4
4
  const utils_1 = require("@lindorm/utils");
5
- const _encodeAesString = ({ encryption: algorithm, authTag, content, encryptionKeyAlgorithm, format, initialisationVector, integrityHash, keyId, publicEncryptionJwk, publicEncryptionKey, version, }) => {
5
+ const format_1 = require("../../constants/private/format");
6
+ const _encodeAesString = ({ algorithm, authTag, content, encryption, hkdfSalt, initialisationVector, keyId, pbkdfIterations, pbkdfSalt, publicEncryptionIv, publicEncryptionJwk, publicEncryptionKey, publicEncryptionTag, version, }) => {
6
7
  const values = (0, utils_1.removeEmpty)({
7
- v: version,
8
- f: format,
9
- cek: publicEncryptionKey?.toString(format),
8
+ v: version.toString(),
9
+ kid: keyId.toString(format_1._B64U),
10
+ alg: algorithm,
11
+ iv: initialisationVector.toString(format_1._B64U),
12
+ tag: authTag.toString(format_1._B64U),
13
+ hks: hkdfSalt?.toString(format_1._B64U),
14
+ p2c: pbkdfIterations?.toString(),
15
+ p2s: pbkdfSalt?.toString(format_1._B64U),
16
+ pei: publicEncryptionIv?.toString(format_1._B64U),
17
+ pek: publicEncryptionKey?.toString(format_1._B64U),
18
+ pet: publicEncryptionTag?.toString(format_1._B64U),
10
19
  crv: publicEncryptionJwk?.crv,
11
- eka: encryptionKeyAlgorithm,
12
- ih: integrityHash,
13
- iv: initialisationVector.toString(format),
14
- kid: publicEncryptionKey && keyId ? keyId.toString(format) : undefined,
15
- tag: authTag?.toString(format),
20
+ kty: publicEncryptionJwk?.kty,
16
21
  x: publicEncryptionJwk?.x,
17
22
  y: publicEncryptionJwk?.y,
18
23
  });
19
24
  const array = Object.entries(values).map(([key, value]) => `${key}=${value}`);
20
25
  const str = array.join(",");
21
- const cnt = content.toString(format);
22
- return `$${algorithm}$${str}$${cnt}$`;
26
+ const cnt = content.toString(format_1._B64U);
27
+ return `$${encryption}$${str}$${cnt}$`;
23
28
  };
24
29
  exports._encodeAesString = _encodeAesString;
25
30
  //# sourceMappingURL=encode-aes-string.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"encode-aes-string.js","sourceRoot":"","sources":["../../../src/utils/private/encode-aes-string.ts"],"names":[],"mappings":";;;AAAA,0CAA6C;AAGtC,MAAM,gBAAgB,GAAG,CAAC,EAC/B,UAAU,EAAE,SAAS,EACrB,OAAO,EACP,OAAO,EACP,sBAAsB,EACtB,MAAM,EACN,oBAAoB,EACpB,aAAa,EACb,KAAK,EACL,mBAAmB,EACnB,mBAAmB,EACnB,OAAO,GACW,EAAU,EAAE;IAC9B,MAAM,MAAM,GAAG,IAAA,mBAAW,EAAC;QACzB,CAAC,EAAE,OAAO;QACV,CAAC,EAAE,MAAM;QACT,GAAG,EAAE,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC;QAC1C,GAAG,EAAE,mBAAmB,EAAE,GAAG;QAC7B,GAAG,EAAE,sBAAsB;QAC3B,EAAE,EAAE,aAAa;QACjB,EAAE,EAAE,oBAAoB,CAAC,QAAQ,CAAC,MAAM,CAAC;QACzC,GAAG,EAAE,mBAAmB,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;QACtE,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC;QAC9B,CAAC,EAAE,mBAAmB,EAAE,CAAC;QACzB,CAAC,EAAE,mBAAmB,EAAE,CAAC;KAC1B,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC;IAE9E,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5B,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAErC,OAAO,IAAI,SAAS,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC;AACxC,CAAC,CAAC;AAhCW,QAAA,gBAAgB,oBAgC3B"}
1
+ {"version":3,"file":"encode-aes-string.js","sourceRoot":"","sources":["../../../src/utils/private/encode-aes-string.ts"],"names":[],"mappings":";;;AAAA,0CAA6C;AAC7C,2DAAuD;AAIhD,MAAM,gBAAgB,GAAG,CAAC,EAC/B,SAAS,EACT,OAAO,EACP,OAAO,EACP,UAAU,EACV,QAAQ,EACR,oBAAoB,EACpB,KAAK,EACL,eAAe,EACf,SAAS,EACT,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,OAAO,GACW,EAAU,EAAE;IAC9B,MAAM,MAAM,GAAoB,IAAA,mBAAW,EAAC;QAC1C,CAAC,EAAE,OAAO,CAAC,QAAQ,EAAE;QACrB,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,cAAK,CAAC;QAG1B,GAAG,EAAE,SAAS;QACd,EAAE,EAAE,oBAAoB,CAAC,QAAQ,CAAC,cAAK,CAAC;QACxC,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC,cAAK,CAAC;QAG5B,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,cAAK,CAAC;QAC9B,GAAG,EAAE,eAAe,EAAE,QAAQ,EAAE;QAChC,GAAG,EAAE,SAAS,EAAE,QAAQ,CAAC,cAAK,CAAC;QAG/B,GAAG,EAAE,kBAAkB,EAAE,QAAQ,CAAC,cAAK,CAAC;QACxC,GAAG,EAAE,mBAAmB,EAAE,QAAQ,CAAC,cAAK,CAAC;QACzC,GAAG,EAAE,mBAAmB,EAAE,QAAQ,CAAC,cAAK,CAAC;QAGzC,GAAG,EAAE,mBAAmB,EAAE,GAAG;QAC7B,GAAG,EAAE,mBAAmB,EAAE,GAAG;QAC7B,CAAC,EAAE,mBAAmB,EAAE,CAAC;QACzB,CAAC,EAAE,mBAAmB,EAAE,CAAC;KAC1B,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC;IAE9E,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5B,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,cAAK,CAAC,CAAC;IAEpC,OAAO,IAAI,UAAU,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC;AACzC,CAAC,CAAC;AA/CW,QAAA,gBAAgB,oBA+C3B"}
@@ -0,0 +1,3 @@
1
+ import { DecryptCekOptions, DecryptCekResult } from "../../../types/private";
2
+ export declare const _getDecryptionKey: (options: DecryptCekOptions) => DecryptCekResult;
3
+ //# sourceMappingURL=get-decryption-key.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-decryption-key.d.ts","sourceRoot":"","sources":["../../../../src/utils/private/get-key/get-decryption-key.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAM7E,eAAO,MAAM,iBAAiB,YAAa,iBAAiB,KAAG,gBAmB9D,CAAC"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports._getDecryptionKey = void 0;
4
+ const errors_1 = require("../../../errors");
5
+ const get_ec_keys_1 = require("../key-types/get-ec-keys");
6
+ const get_oct_keys_1 = require("../key-types/get-oct-keys");
7
+ const get_okp_keys_1 = require("../key-types/get-okp-keys");
8
+ const get_rsa_keys_1 = require("../key-types/get-rsa-keys");
9
+ const _getDecryptionKey = (options) => {
10
+ switch (options.kryptos.type) {
11
+ case "EC":
12
+ return (0, get_ec_keys_1._getEcDecryptionKey)(options);
13
+ case "oct":
14
+ return (0, get_oct_keys_1._getOctDecryptionKey)(options);
15
+ case "OKP":
16
+ return (0, get_okp_keys_1._getOkpDecryptionKey)(options);
17
+ case "RSA":
18
+ return (0, get_rsa_keys_1._getRsaDecryptionKey)(options);
19
+ default:
20
+ throw new errors_1.AesError("Unexpected Kryptos", {
21
+ debug: { kryptos: options.kryptos.toJSON() },
22
+ });
23
+ }
24
+ };
25
+ exports._getDecryptionKey = _getDecryptionKey;
26
+ //# sourceMappingURL=get-decryption-key.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-decryption-key.js","sourceRoot":"","sources":["../../../../src/utils/private/get-key/get-decryption-key.ts"],"names":[],"mappings":";;;AAAA,4CAA2C;AAE3C,0DAA+D;AAC/D,4DAAiE;AACjE,4DAAiE;AACjE,4DAAiE;AAE1D,MAAM,iBAAiB,GAAG,CAAC,OAA0B,EAAoB,EAAE;IAChF,QAAQ,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC7B,KAAK,IAAI;YACP,OAAO,IAAA,iCAAmB,EAAC,OAAO,CAAC,CAAC;QAEtC,KAAK,KAAK;YACR,OAAO,IAAA,mCAAoB,EAAC,OAAO,CAAC,CAAC;QAEvC,KAAK,KAAK;YACR,OAAO,IAAA,mCAAoB,EAAC,OAAO,CAAC,CAAC;QAEvC,KAAK,KAAK;YACR,OAAO,IAAA,mCAAoB,EAAC,OAAO,CAAC,CAAC;QAEvC;YACE,MAAM,IAAI,iBAAQ,CAAC,oBAAoB,EAAE;gBACvC,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE;aAC7C,CAAC,CAAC;IACP,CAAC;AACH,CAAC,CAAC;AAnBW,QAAA,iBAAiB,qBAmB5B"}
@@ -0,0 +1,3 @@
1
+ import { CreateCekOptions, CreateCekResult } from "../../../types/private";
2
+ export declare const _getEncryptionKey: (options: CreateCekOptions) => CreateCekResult;
3
+ //# sourceMappingURL=get-encryption-key.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-encryption-key.d.ts","sourceRoot":"","sources":["../../../../src/utils/private/get-key/get-encryption-key.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAM3E,eAAO,MAAM,iBAAiB,YAAa,gBAAgB,KAAG,eAmB7D,CAAC"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports._getEncryptionKey = void 0;
4
+ const errors_1 = require("../../../errors");
5
+ const get_ec_keys_1 = require("../key-types/get-ec-keys");
6
+ const get_oct_keys_1 = require("../key-types/get-oct-keys");
7
+ const get_okp_keys_1 = require("../key-types/get-okp-keys");
8
+ const get_rsa_keys_1 = require("../key-types/get-rsa-keys");
9
+ const _getEncryptionKey = (options) => {
10
+ switch (options.kryptos.type) {
11
+ case "EC":
12
+ return (0, get_ec_keys_1._getEcEncryptionKey)(options);
13
+ case "oct":
14
+ return (0, get_oct_keys_1._getOctEncryptionKey)(options);
15
+ case "OKP":
16
+ return (0, get_okp_keys_1._getOkpEncryptionKey)(options);
17
+ case "RSA":
18
+ return (0, get_rsa_keys_1._getRsaEncryptionKey)(options);
19
+ default:
20
+ throw new errors_1.AesError("Unexpected Kryptos", {
21
+ debug: { kryptos: options.kryptos.toJSON() },
22
+ });
23
+ }
24
+ };
25
+ exports._getEncryptionKey = _getEncryptionKey;
26
+ //# sourceMappingURL=get-encryption-key.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-encryption-key.js","sourceRoot":"","sources":["../../../../src/utils/private/get-key/get-encryption-key.ts"],"names":[],"mappings":";;;AAAA,4CAA2C;AAE3C,0DAA+D;AAC/D,4DAAiE;AACjE,4DAAiE;AACjE,4DAAiE;AAE1D,MAAM,iBAAiB,GAAG,CAAC,OAAyB,EAAmB,EAAE;IAC9E,QAAQ,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC7B,KAAK,IAAI;YACP,OAAO,IAAA,iCAAmB,EAAC,OAAO,CAAC,CAAC;QAEtC,KAAK,KAAK;YACR,OAAO,IAAA,mCAAoB,EAAC,OAAO,CAAC,CAAC;QAEvC,KAAK,KAAK;YACR,OAAO,IAAA,mCAAoB,EAAC,OAAO,CAAC,CAAC;QAEvC,KAAK,KAAK;YACR,OAAO,IAAA,mCAAoB,EAAC,OAAO,CAAC,CAAC;QAEvC;YACE,MAAM,IAAI,iBAAQ,CAAC,oBAAoB,EAAE;gBACvC,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE;aAC7C,CAAC,CAAC;IACP,CAAC;AACH,CAAC,CAAC;AAnBW,QAAA,iBAAiB,qBAmB5B"}
@@ -0,0 +1,14 @@
1
+ /// <reference types="node" />
2
+ import { AesKeyLength } from "@lindorm/types";
3
+ type Options = {
4
+ derivationKey: Buffer;
5
+ hkdfSalt?: Buffer;
6
+ keyLength: AesKeyLength;
7
+ };
8
+ type Result = {
9
+ derivedKey: Buffer;
10
+ hkdfSalt: Buffer;
11
+ };
12
+ export declare const _hkdf: (options: Options) => Result;
13
+ export {};
14
+ //# sourceMappingURL=hkdf.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hkdf.d.ts","sourceRoot":"","sources":["../../../../src/utils/private/key-derivation/hkdf.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,KAAK,OAAO,GAAG;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,YAAY,CAAC;CACzB,CAAC;AAEF,KAAK,MAAM,GAAG;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,KAAK,YAAa,OAAO,KAAG,MASxC,CAAC"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports._hkdf = void 0;
4
+ const crypto_1 = require("crypto");
5
+ const _hkdf = (options) => {
6
+ const hkdfSalt = options.hkdfSalt ?? (0, crypto_1.randomBytes)(16);
7
+ const info = Buffer.from("lindorm.hkdf", "utf-8");
8
+ const derivedKey = Buffer.from((0, crypto_1.hkdfSync)("SHA256", options.derivationKey, hkdfSalt, info, options.keyLength));
9
+ return { derivedKey, hkdfSalt };
10
+ };
11
+ exports._hkdf = _hkdf;
12
+ //# sourceMappingURL=hkdf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hkdf.js","sourceRoot":"","sources":["../../../../src/utils/private/key-derivation/hkdf.ts"],"names":[],"mappings":";;;AACA,mCAA+C;AAaxC,MAAM,KAAK,GAAG,CAAC,OAAgB,EAAU,EAAE;IAChD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,IAAA,oBAAW,EAAC,EAAE,CAAC,CAAC;IACrD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IAElD,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAC5B,IAAA,iBAAQ,EAAC,QAAQ,EAAE,OAAO,CAAC,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,CAC7E,CAAC;IAEF,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;AAClC,CAAC,CAAC;AATW,QAAA,KAAK,SAShB"}
@@ -0,0 +1,17 @@
1
+ /// <reference types="node" />
2
+ import { AesKeyLength, ShaAlgorithm } from "@lindorm/types";
3
+ type Options = {
4
+ algorithm: ShaAlgorithm;
5
+ derivationKey: Buffer;
6
+ keyLength: AesKeyLength;
7
+ pbkdfIterations?: number;
8
+ pbkdfSalt?: Buffer;
9
+ };
10
+ type Result = {
11
+ derivedKey: Buffer;
12
+ pbkdfIterations: number;
13
+ pbkdfSalt: Buffer;
14
+ };
15
+ export declare const _pbkdf: (options: Options) => Result;
16
+ export {};
17
+ //# sourceMappingURL=pbkdf.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pbkdf.d.ts","sourceRoot":"","sources":["../../../../src/utils/private/key-derivation/pbkdf.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG5D,KAAK,OAAO,GAAG;IACb,SAAS,EAAE,YAAY,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,YAAY,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,MAAM,GAAG;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAKF,eAAO,MAAM,MAAM,YAAa,OAAO,KAAG,MAazC,CAAC"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports._pbkdf = void 0;
4
+ const crypto_1 = require("crypto");
5
+ const randomIterations = () => Math.floor(Math.random() * 20000) + 90000;
6
+ const _pbkdf = (options) => {
7
+ const pbkdfSalt = options.pbkdfSalt ?? (0, crypto_1.randomBytes)(16);
8
+ const pbkdfIterations = options.pbkdfIterations ?? randomIterations();
9
+ const derivedKey = (0, crypto_1.pbkdf2Sync)(options.derivationKey, pbkdfSalt, pbkdfIterations, options.keyLength, options.algorithm);
10
+ return { derivedKey, pbkdfIterations, pbkdfSalt };
11
+ };
12
+ exports._pbkdf = _pbkdf;
13
+ //# sourceMappingURL=pbkdf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pbkdf.js","sourceRoot":"","sources":["../../../../src/utils/private/key-derivation/pbkdf.ts"],"names":[],"mappings":";;;AACA,mCAAiD;AAiBjD,MAAM,gBAAgB,GAAG,GAAW,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC;AAE1E,MAAM,MAAM,GAAG,CAAC,OAAgB,EAAU,EAAE;IACjD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAA,oBAAW,EAAC,EAAE,CAAC,CAAC;IACvD,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,gBAAgB,EAAE,CAAC;IAEtE,MAAM,UAAU,GAAG,IAAA,mBAAU,EAC3B,OAAO,CAAC,aAAa,EACrB,SAAS,EACT,eAAe,EACf,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,SAAS,CAClB,CAAC;IAEF,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC;AACpD,CAAC,CAAC;AAbW,QAAA,MAAM,UAajB"}
@@ -0,0 +1,4 @@
1
+ import { CreateCekOptions, CreateCekResult, DecryptCekOptions, DecryptCekResult } from "../../../types/private";
2
+ export declare const _getEcEncryptionKey: (options: CreateCekOptions) => CreateCekResult;
3
+ export declare const _getEcDecryptionKey: (options: DecryptCekOptions) => DecryptCekResult;
4
+ //# sourceMappingURL=get-ec-keys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-ec-keys.d.ts","sourceRoot":"","sources":["../../../../src/utils/private/key-types/get-ec-keys.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,wBAAwB,CAAC;AAUhC,eAAO,MAAM,mBAAmB,YAAa,gBAAgB,KAAG,eAkB/D,CAAC;AAEF,eAAO,MAAM,mBAAmB,YAAa,iBAAiB,KAAG,gBAkBhE,CAAC"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports._getEcDecryptionKey = exports._getEcEncryptionKey = void 0;
4
+ const errors_1 = require("../../../errors");
5
+ const diffie_hellman_1 = require("../diffie-hellman/diffie-hellman");
6
+ const diffie_hellman_key_wrap_1 = require("../diffie-hellman/diffie-hellman-key-wrap");
7
+ const _getEcEncryptionKey = (options) => {
8
+ switch (options.kryptos.algorithm) {
9
+ case "ECDH-ES":
10
+ return (0, diffie_hellman_1._getDiffieHellmanEncryptionKey)(options);
11
+ case "ECDH-ES+A128KW":
12
+ case "ECDH-ES+A192KW":
13
+ case "ECDH-ES+A256KW":
14
+ case "ECDH-ES+A128GCMKW":
15
+ case "ECDH-ES+A192GCMKW":
16
+ case "ECDH-ES+A256GCMKW":
17
+ return (0, diffie_hellman_key_wrap_1._getDiffieHellmanKeyWrapEncryptionKey)(options);
18
+ default:
19
+ throw new errors_1.AesError("Unexpected Kryptos", {
20
+ debug: { kryptos: options.kryptos.toJSON() },
21
+ });
22
+ }
23
+ };
24
+ exports._getEcEncryptionKey = _getEcEncryptionKey;
25
+ const _getEcDecryptionKey = (options) => {
26
+ switch (options.kryptos.algorithm) {
27
+ case "ECDH-ES":
28
+ return (0, diffie_hellman_1._getDiffieHellmanDecryptionKey)(options);
29
+ case "ECDH-ES+A128KW":
30
+ case "ECDH-ES+A192KW":
31
+ case "ECDH-ES+A256KW":
32
+ case "ECDH-ES+A128GCMKW":
33
+ case "ECDH-ES+A192GCMKW":
34
+ case "ECDH-ES+A256GCMKW":
35
+ return (0, diffie_hellman_key_wrap_1._getDiffieHellmanKeyWrapDecryptionKey)(options);
36
+ default:
37
+ throw new errors_1.AesError("Unexpected Kryptos", {
38
+ debug: { kryptos: options.kryptos.toJSON() },
39
+ });
40
+ }
41
+ };
42
+ exports._getEcDecryptionKey = _getEcDecryptionKey;
43
+ //# sourceMappingURL=get-ec-keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-ec-keys.js","sourceRoot":"","sources":["../../../../src/utils/private/key-types/get-ec-keys.ts"],"names":[],"mappings":";;;AAAA,4CAA2C;AAO3C,qEAG0C;AAC1C,uFAGmD;AAE5C,MAAM,mBAAmB,GAAG,CAAC,OAAyB,EAAmB,EAAE;IAChF,QAAQ,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QAClC,KAAK,SAAS;YACZ,OAAO,IAAA,+CAA8B,EAAC,OAAO,CAAC,CAAC;QAEjD,KAAK,gBAAgB,CAAC;QACtB,KAAK,gBAAgB,CAAC;QACtB,KAAK,gBAAgB,CAAC;QACtB,KAAK,mBAAmB,CAAC;QACzB,KAAK,mBAAmB,CAAC;QACzB,KAAK,mBAAmB;YACtB,OAAO,IAAA,+DAAqC,EAAC,OAAO,CAAC,CAAC;QAExD;YACE,MAAM,IAAI,iBAAQ,CAAC,oBAAoB,EAAE;gBACvC,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE;aAC7C,CAAC,CAAC;IACP,CAAC;AACH,CAAC,CAAC;AAlBW,QAAA,mBAAmB,uBAkB9B;AAEK,MAAM,mBAAmB,GAAG,CAAC,OAA0B,EAAoB,EAAE;IAClF,QAAQ,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QAClC,KAAK,SAAS;YACZ,OAAO,IAAA,+CAA8B,EAAC,OAAO,CAAC,CAAC;QAEjD,KAAK,gBAAgB,CAAC;QACtB,KAAK,gBAAgB,CAAC;QACtB,KAAK,gBAAgB,CAAC;QACtB,KAAK,mBAAmB,CAAC;QACzB,KAAK,mBAAmB,CAAC;QACzB,KAAK,mBAAmB;YACtB,OAAO,IAAA,+DAAqC,EAAC,OAAO,CAAC,CAAC;QAExD;YACE,MAAM,IAAI,iBAAQ,CAAC,oBAAoB,EAAE;gBACvC,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE;aAC7C,CAAC,CAAC;IACP,CAAC;AACH,CAAC,CAAC;AAlBW,QAAA,mBAAmB,uBAkB9B"}
@@ -0,0 +1,4 @@
1
+ import { CreateCekOptions, CreateCekResult, DecryptCekOptions, DecryptCekResult } from "../../../types/private";
2
+ export declare const _getOctEncryptionKey: (options: CreateCekOptions) => CreateCekResult;
3
+ export declare const _getOctDecryptionKey: (options: DecryptCekOptions) => DecryptCekResult;
4
+ //# sourceMappingURL=get-oct-keys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-oct-keys.d.ts","sourceRoot":"","sources":["../../../../src/utils/private/key-types/get-oct-keys.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,wBAAwB,CAAC;AAchC,eAAO,MAAM,oBAAoB,YAAa,gBAAgB,KAAG,eAuBhE,CAAC;AAEF,eAAO,MAAM,oBAAoB,YAAa,iBAAiB,KAAG,gBAuBjE,CAAC"}