@lindorm/aes 0.1.3 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (235) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/classes/AesKit.d.ts +2 -4
  3. package/dist/classes/AesKit.d.ts.map +1 -1
  4. package/dist/classes/AesKit.js +9 -17
  5. package/dist/classes/AesKit.js.map +1 -1
  6. package/dist/constants/version.d.ts +1 -1
  7. package/dist/constants/version.js +1 -1
  8. package/dist/index.d.ts +0 -1
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +0 -1
  11. package/dist/index.js.map +1 -1
  12. package/dist/types/aes-cipher.d.ts +2 -2
  13. package/dist/types/aes-cipher.d.ts.map +1 -1
  14. package/dist/types/aes-data.d.ts +10 -10
  15. package/dist/types/aes-data.d.ts.map +1 -1
  16. package/dist/types/aes-encryption-data.d.ts +10 -6
  17. package/dist/types/aes-encryption-data.d.ts.map +1 -1
  18. package/dist/types/aes-kit.d.ts +4 -6
  19. package/dist/types/aes-kit.d.ts.map +1 -1
  20. package/dist/types/curve.d.ts +4 -0
  21. package/dist/types/curve.d.ts.map +1 -0
  22. package/dist/types/curve.js +3 -0
  23. package/dist/types/curve.js.map +1 -0
  24. package/dist/types/index.d.ts +1 -0
  25. package/dist/types/index.d.ts.map +1 -1
  26. package/dist/types/index.js +1 -0
  27. package/dist/types/index.js.map +1 -1
  28. package/dist/types/private/aes-key-derivation.d.ts +2 -0
  29. package/dist/types/private/aes-key-derivation.d.ts.map +1 -0
  30. package/dist/types/private/aes-key-derivation.js +3 -0
  31. package/dist/types/private/aes-key-derivation.js.map +1 -0
  32. package/dist/types/private/aes-string.d.ts +18 -0
  33. package/dist/types/private/aes-string.d.ts.map +1 -0
  34. package/dist/types/private/aes-string.js +3 -0
  35. package/dist/types/private/aes-string.js.map +1 -0
  36. package/dist/types/{auth-tag.d.ts → private/auth-tag.d.ts} +7 -9
  37. package/dist/types/private/auth-tag.d.ts.map +1 -0
  38. package/dist/types/{auth-tag.js.map → private/auth-tag.js.map} +1 -1
  39. package/dist/types/private/content-encryption-key.d.ts +28 -0
  40. package/dist/types/private/content-encryption-key.d.ts.map +1 -0
  41. package/dist/types/private/content-encryption-key.js +3 -0
  42. package/dist/types/private/content-encryption-key.js.map +1 -0
  43. package/dist/types/private/index.d.ts +5 -0
  44. package/dist/types/private/index.d.ts.map +1 -0
  45. package/dist/{enums → types/private}/index.js +4 -4
  46. package/dist/types/private/index.js.map +1 -0
  47. package/dist/types/types.d.ts +3 -9
  48. package/dist/types/types.d.ts.map +1 -1
  49. package/dist/utils/private/aes-data/auth-tag-hmac.d.ts +5 -0
  50. package/dist/utils/private/aes-data/auth-tag-hmac.d.ts.map +1 -0
  51. package/dist/utils/private/aes-data/auth-tag-hmac.js +37 -0
  52. package/dist/utils/private/aes-data/auth-tag-hmac.js.map +1 -0
  53. package/dist/utils/private/aes-data/auth-tag.d.ts +5 -0
  54. package/dist/utils/private/aes-data/auth-tag.d.ts.map +1 -0
  55. package/dist/utils/private/aes-data/auth-tag.js +52 -0
  56. package/dist/utils/private/aes-data/auth-tag.js.map +1 -0
  57. package/dist/utils/private/aes-data/get-initialisation-vector.d.ts +4 -0
  58. package/dist/utils/private/aes-data/get-initialisation-vector.d.ts.map +1 -0
  59. package/dist/utils/private/{get-initialisation-vector.js → aes-data/get-initialisation-vector.js} +7 -7
  60. package/dist/utils/private/aes-data/get-initialisation-vector.js.map +1 -0
  61. package/dist/utils/private/aes-data/split-content-encryption-key.d.ts +9 -0
  62. package/dist/utils/private/aes-data/split-content-encryption-key.d.ts.map +1 -0
  63. package/dist/utils/private/aes-data/split-content-encryption-key.js +31 -0
  64. package/dist/utils/private/aes-data/split-content-encryption-key.js.map +1 -0
  65. package/dist/utils/private/aes-data.d.ts.map +1 -1
  66. package/dist/utils/private/aes-data.js +31 -24
  67. package/dist/utils/private/aes-data.js.map +1 -1
  68. package/dist/utils/private/calculate/calculate-aes-encryption.d.ts +4 -0
  69. package/dist/utils/private/calculate/calculate-aes-encryption.d.ts.map +1 -0
  70. package/dist/utils/private/calculate/calculate-aes-encryption.js +24 -0
  71. package/dist/utils/private/calculate/calculate-aes-encryption.js.map +1 -0
  72. package/dist/utils/private/calculate/calculate-content-encryption-key-size.d.ts +4 -0
  73. package/dist/utils/private/calculate/calculate-content-encryption-key-size.d.ts.map +1 -0
  74. package/dist/utils/private/calculate/calculate-content-encryption-key-size.js +24 -0
  75. package/dist/utils/private/calculate/calculate-content-encryption-key-size.js.map +1 -0
  76. package/dist/utils/private/calculate/calculate-key-wrap-encryption.d.ts +5 -0
  77. package/dist/utils/private/calculate/calculate-key-wrap-encryption.d.ts.map +1 -0
  78. package/dist/utils/private/calculate/calculate-key-wrap-encryption.js +23 -0
  79. package/dist/utils/private/calculate/calculate-key-wrap-encryption.js.map +1 -0
  80. package/dist/utils/private/calculate/calculate-key-wrap-size.d.ts +4 -0
  81. package/dist/utils/private/calculate/calculate-key-wrap-size.d.ts.map +1 -0
  82. package/dist/utils/private/calculate/calculate-key-wrap-size.js +24 -0
  83. package/dist/utils/private/calculate/calculate-key-wrap-size.js.map +1 -0
  84. package/dist/utils/private/calculate/calculate-pbkdf-hash.d.ts +4 -0
  85. package/dist/utils/private/calculate/calculate-pbkdf-hash.d.ts.map +1 -0
  86. package/dist/utils/private/calculate/calculate-pbkdf-hash.js +18 -0
  87. package/dist/utils/private/calculate/calculate-pbkdf-hash.js.map +1 -0
  88. package/dist/utils/private/calculate/calculate-rsa-oaep-hash.d.ts +4 -0
  89. package/dist/utils/private/calculate/calculate-rsa-oaep-hash.d.ts.map +1 -0
  90. package/dist/utils/private/calculate/calculate-rsa-oaep-hash.js +22 -0
  91. package/dist/utils/private/calculate/calculate-rsa-oaep-hash.js.map +1 -0
  92. package/dist/utils/private/decode-aes-string.d.ts.map +1 -1
  93. package/dist/utils/private/decode-aes-string.js +13 -11
  94. package/dist/utils/private/decode-aes-string.js.map +1 -1
  95. package/dist/utils/private/diffie-hellman/diffie-hellman-key-wrap.d.ts +4 -0
  96. package/dist/utils/private/diffie-hellman/diffie-hellman-key-wrap.d.ts.map +1 -0
  97. package/dist/utils/private/diffie-hellman/diffie-hellman-key-wrap.js +50 -0
  98. package/dist/utils/private/diffie-hellman/diffie-hellman-key-wrap.js.map +1 -0
  99. package/dist/utils/private/diffie-hellman/diffie-hellman.d.ts +4 -0
  100. package/dist/utils/private/diffie-hellman/diffie-hellman.d.ts.map +1 -0
  101. package/dist/utils/private/diffie-hellman/diffie-hellman.js +40 -0
  102. package/dist/utils/private/diffie-hellman/diffie-hellman.js.map +1 -0
  103. package/dist/utils/private/diffie-hellman/shared-secret.d.ts +13 -0
  104. package/dist/utils/private/diffie-hellman/shared-secret.d.ts.map +1 -0
  105. package/dist/utils/private/diffie-hellman/shared-secret.js +68 -0
  106. package/dist/utils/private/diffie-hellman/shared-secret.js.map +1 -0
  107. package/dist/utils/private/encode-aes-string.d.ts +1 -1
  108. package/dist/utils/private/encode-aes-string.d.ts.map +1 -1
  109. package/dist/utils/private/encode-aes-string.js +12 -9
  110. package/dist/utils/private/encode-aes-string.js.map +1 -1
  111. package/dist/utils/private/get-key/get-decryption-key.d.ts +3 -0
  112. package/dist/utils/private/get-key/get-decryption-key.d.ts.map +1 -0
  113. package/dist/utils/private/get-key/get-decryption-key.js +26 -0
  114. package/dist/utils/private/get-key/get-decryption-key.js.map +1 -0
  115. package/dist/utils/private/get-key/get-encryption-key.d.ts +3 -0
  116. package/dist/utils/private/get-key/get-encryption-key.d.ts.map +1 -0
  117. package/dist/utils/private/get-key/get-encryption-key.js +26 -0
  118. package/dist/utils/private/get-key/get-encryption-key.js.map +1 -0
  119. package/dist/utils/private/key-derivation/hkdf.d.ts +14 -0
  120. package/dist/utils/private/key-derivation/hkdf.d.ts.map +1 -0
  121. package/dist/utils/private/key-derivation/hkdf.js +12 -0
  122. package/dist/utils/private/key-derivation/hkdf.js.map +1 -0
  123. package/dist/utils/private/key-derivation/pbkdf.d.ts +17 -0
  124. package/dist/utils/private/key-derivation/pbkdf.d.ts.map +1 -0
  125. package/dist/utils/private/key-derivation/pbkdf.js +13 -0
  126. package/dist/utils/private/key-derivation/pbkdf.js.map +1 -0
  127. package/dist/utils/private/key-types/get-ec-keys.d.ts +4 -0
  128. package/dist/utils/private/key-types/get-ec-keys.d.ts.map +1 -0
  129. package/dist/utils/private/key-types/get-ec-keys.js +37 -0
  130. package/dist/utils/private/key-types/get-ec-keys.js.map +1 -0
  131. package/dist/utils/private/key-types/get-oct-keys.d.ts +4 -0
  132. package/dist/utils/private/key-types/get-oct-keys.d.ts.map +1 -0
  133. package/dist/utils/private/key-types/get-oct-keys.js +46 -0
  134. package/dist/utils/private/key-types/get-oct-keys.js.map +1 -0
  135. package/dist/utils/private/key-types/get-okp-keys.d.ts +4 -0
  136. package/dist/utils/private/key-types/get-okp-keys.d.ts.map +1 -0
  137. package/dist/utils/private/key-types/get-okp-keys.js +28 -0
  138. package/dist/utils/private/key-types/get-okp-keys.js.map +1 -0
  139. package/dist/utils/private/key-types/get-rsa-keys.d.ts +4 -0
  140. package/dist/utils/private/key-types/get-rsa-keys.d.ts.map +1 -0
  141. package/dist/utils/private/key-types/get-rsa-keys.js +58 -0
  142. package/dist/utils/private/key-types/get-rsa-keys.js.map +1 -0
  143. package/dist/utils/private/key-wrap/key-wrap.d.ts +16 -0
  144. package/dist/utils/private/key-wrap/key-wrap.d.ts.map +1 -0
  145. package/dist/utils/private/key-wrap/key-wrap.js +66 -0
  146. package/dist/utils/private/key-wrap/key-wrap.js.map +1 -0
  147. package/dist/utils/private/oct/get-oct-dir-keys.d.ts +4 -0
  148. package/dist/utils/private/oct/get-oct-dir-keys.d.ts.map +1 -0
  149. package/dist/utils/private/oct/get-oct-dir-keys.js +35 -0
  150. package/dist/utils/private/oct/get-oct-dir-keys.js.map +1 -0
  151. package/dist/utils/private/oct/get-oct-key-wrap-keys.d.ts +4 -0
  152. package/dist/utils/private/oct/get-oct-key-wrap-keys.d.ts.map +1 -0
  153. package/dist/utils/private/oct/get-oct-key-wrap-keys.js +55 -0
  154. package/dist/utils/private/oct/get-oct-key-wrap-keys.js.map +1 -0
  155. package/dist/utils/private/oct/get-oct-pbkdf-key-wrap-keys.d.ts +4 -0
  156. package/dist/utils/private/oct/get-oct-pbkdf-key-wrap-keys.d.ts.map +1 -0
  157. package/dist/utils/private/oct/get-oct-pbkdf-key-wrap-keys.js +60 -0
  158. package/dist/utils/private/oct/get-oct-pbkdf-key-wrap-keys.js.map +1 -0
  159. package/package.json +8 -5
  160. package/dist/enums/AesEncryption.d.ts +0 -9
  161. package/dist/enums/AesEncryption.d.ts.map +0 -1
  162. package/dist/enums/AesEncryption.js +0 -13
  163. package/dist/enums/AesEncryption.js.map +0 -1
  164. package/dist/enums/AesEncryptionKeyAlgorithm.d.ts +0 -9
  165. package/dist/enums/AesEncryptionKeyAlgorithm.d.ts.map +0 -1
  166. package/dist/enums/AesEncryptionKeyAlgorithm.js +0 -13
  167. package/dist/enums/AesEncryptionKeyAlgorithm.js.map +0 -1
  168. package/dist/enums/AesFormat.d.ts +0 -6
  169. package/dist/enums/AesFormat.d.ts.map +0 -1
  170. package/dist/enums/AesFormat.js +0 -10
  171. package/dist/enums/AesFormat.js.map +0 -1
  172. package/dist/enums/AesIntegrityHash.d.ts +0 -6
  173. package/dist/enums/AesIntegrityHash.d.ts.map +0 -1
  174. package/dist/enums/AesIntegrityHash.js +0 -10
  175. package/dist/enums/AesIntegrityHash.js.map +0 -1
  176. package/dist/enums/index.d.ts +0 -5
  177. package/dist/enums/index.d.ts.map +0 -1
  178. package/dist/enums/index.js.map +0 -1
  179. package/dist/types/auth-tag.d.ts.map +0 -1
  180. package/dist/utils/private/auth-tag-hmac.d.ts +0 -5
  181. package/dist/utils/private/auth-tag-hmac.d.ts.map +0 -1
  182. package/dist/utils/private/auth-tag-hmac.js +0 -25
  183. package/dist/utils/private/auth-tag-hmac.js.map +0 -1
  184. package/dist/utils/private/auth-tag.d.ts +0 -5
  185. package/dist/utils/private/auth-tag.d.ts.map +0 -1
  186. package/dist/utils/private/auth-tag.js +0 -58
  187. package/dist/utils/private/auth-tag.js.map +0 -1
  188. package/dist/utils/private/ec/get-ec-keys.d.ts +0 -21
  189. package/dist/utils/private/ec/get-ec-keys.d.ts.map +0 -1
  190. package/dist/utils/private/ec/get-ec-keys.js +0 -55
  191. package/dist/utils/private/ec/get-ec-keys.js.map +0 -1
  192. package/dist/utils/private/ec/get-key-curve.d.ts +0 -4
  193. package/dist/utils/private/ec/get-key-curve.d.ts.map +0 -1
  194. package/dist/utils/private/ec/get-key-curve.js +0 -37
  195. package/dist/utils/private/ec/get-key-curve.js.map +0 -1
  196. package/dist/utils/private/get-decryption-key.d.ts +0 -13
  197. package/dist/utils/private/get-decryption-key.d.ts.map +0 -1
  198. package/dist/utils/private/get-decryption-key.js +0 -33
  199. package/dist/utils/private/get-decryption-key.js.map +0 -1
  200. package/dist/utils/private/get-encryption-keys.d.ts +0 -16
  201. package/dist/utils/private/get-encryption-keys.d.ts.map +0 -1
  202. package/dist/utils/private/get-encryption-keys.js +0 -23
  203. package/dist/utils/private/get-encryption-keys.js.map +0 -1
  204. package/dist/utils/private/get-initialisation-vector.d.ts +0 -4
  205. package/dist/utils/private/get-initialisation-vector.d.ts.map +0 -1
  206. package/dist/utils/private/get-initialisation-vector.js.map +0 -1
  207. package/dist/utils/private/oct/get-oct-keys.d.ts +0 -14
  208. package/dist/utils/private/oct/get-oct-keys.d.ts.map +0 -1
  209. package/dist/utils/private/oct/get-oct-keys.js +0 -24
  210. package/dist/utils/private/oct/get-oct-keys.js.map +0 -1
  211. package/dist/utils/private/rsa/generate-encryption-key.d.ts +0 -4
  212. package/dist/utils/private/rsa/generate-encryption-key.d.ts.map +0 -1
  213. package/dist/utils/private/rsa/generate-encryption-key.js +0 -8
  214. package/dist/utils/private/rsa/generate-encryption-key.js.map +0 -1
  215. package/dist/utils/private/rsa/get-oaep-hash.d.ts +0 -3
  216. package/dist/utils/private/rsa/get-oaep-hash.d.ts.map +0 -1
  217. package/dist/utils/private/rsa/get-oaep-hash.js +0 -22
  218. package/dist/utils/private/rsa/get-oaep-hash.js.map +0 -1
  219. package/dist/utils/private/rsa/get-rsa-keys.d.ts +0 -21
  220. package/dist/utils/private/rsa/get-rsa-keys.d.ts.map +0 -1
  221. package/dist/utils/private/rsa/get-rsa-keys.js +0 -22
  222. package/dist/utils/private/rsa/get-rsa-keys.js.map +0 -1
  223. package/dist/utils/private/rsa/public-encryption-key.d.ts +0 -17
  224. package/dist/utils/private/rsa/public-encryption-key.d.ts.map +0 -1
  225. package/dist/utils/private/rsa/public-encryption-key.js +0 -56
  226. package/dist/utils/private/rsa/public-encryption-key.js.map +0 -1
  227. package/dist/utils/private/secret/calculate-secret-length.d.ts +0 -3
  228. package/dist/utils/private/secret/calculate-secret-length.d.ts.map +0 -1
  229. package/dist/utils/private/secret/calculate-secret-length.js +0 -21
  230. package/dist/utils/private/secret/calculate-secret-length.js.map +0 -1
  231. package/dist/utils/private/secret/create-key-derivation.d.ts +0 -10
  232. package/dist/utils/private/secret/create-key-derivation.d.ts.map +0 -1
  233. package/dist/utils/private/secret/create-key-derivation.js +0 -35
  234. package/dist/utils/private/secret/create-key-derivation.js.map +0 -1
  235. /package/dist/types/{auth-tag.js → private/auth-tag.js} +0 -0
@@ -0,0 +1,50 @@
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 = (0, key_wrap_1._aesKeyWrap)({
20
+ contentEncryptionKey,
21
+ kryptos,
22
+ keyEncryptionKey: derivedKey,
23
+ });
24
+ return {
25
+ contentEncryptionKey,
26
+ hkdfSalt,
27
+ publicEncryptionJwk,
28
+ publicEncryptionKey,
29
+ };
30
+ };
31
+ exports._getDiffieHellmanKeyWrapEncryptionKey = _getDiffieHellmanKeyWrapEncryptionKey;
32
+ const _getDiffieHellmanKeyWrapDecryptionKey = ({ hkdfSalt, kryptos, publicEncryptionJwk, publicEncryptionKey, }) => {
33
+ if (!publicEncryptionKey) {
34
+ throw new errors_1.AesError("Missing publicEncryptionKey");
35
+ }
36
+ const sharedSecret = (0, shared_secret_1._calculateSharedSecret)({ kryptos, publicEncryptionJwk });
37
+ const { derivedKey } = (0, hkdf_1._hkdf)({
38
+ derivationKey: sharedSecret,
39
+ hkdfSalt,
40
+ keyLength: (0, calculate_key_wrap_size_1._calculateKeyWrapSize)(kryptos.algorithm),
41
+ });
42
+ const unwrappedKey = (0, key_wrap_1._aesKeyUnwrap)({
43
+ keyEncryptionKey: derivedKey,
44
+ kryptos,
45
+ wrappedKey: publicEncryptionKey,
46
+ });
47
+ return { contentEncryptionKey: unwrappedKey };
48
+ };
49
+ exports._getDiffieHellmanKeyWrapDecryptionKey = _getDiffieHellmanKeyWrapDecryptionKey;
50
+ //# 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,mDAAkE;AAClE,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,mBAAmB,GAAG,IAAA,sBAAW,EAAC;QACtC,oBAAoB;QACpB,OAAO;QACP,gBAAgB,EAAE,UAAU;KAC7B,CAAC,CAAC;IAEH,OAAO;QACL,oBAAoB;QACpB,QAAQ;QACR,mBAAmB;QACnB,mBAAmB;KACpB,CAAC;AACJ,CAAC,CAAC;AA1BW,QAAA,qCAAqC,yCA0BhD;AAEK,MAAM,qCAAqC,GAAG,CAAC,EACpD,QAAQ,EACR,OAAO,EACP,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,MAAM,YAAY,GAAG,IAAA,wBAAa,EAAC;QACjC,gBAAgB,EAAE,UAAU;QAC5B,OAAO;QACP,UAAU,EAAE,mBAAmB;KAChC,CAAC,CAAC;IAEH,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,CAAC;AAChD,CAAC,CAAC;AAzBW,QAAA,qCAAqC,yCAyBhD"}
@@ -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":";;;AAAA,8CAAqD;AACrD,mCAA0E;AAC1E,4CAA2C;AAc3C,MAAM,gBAAgB,GAAG,CAAC,OAAiB,EAAY,EAAE;IACvD,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;IAED,OAAO,iBAAO,CAAC,QAAQ,CAAC;QACtB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,GAAG,EAAE,KAAK;KACJ,CAAC,CAAC;AACZ,CAAC,CAAC;AAEK,MAAM,qBAAqB,GAAG,CAAC,OAAiB,EAAkB,EAAE;IACzE,MAAM,GAAG,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAEjC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QACvB,MAAM,IAAI,iBAAQ,CAAC,+BAA+B,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,YAAY,GAAG,IAAA,sBAAa,EAAC;QACjC,UAAU,EAAE,IAAA,yBAAgB,EAAC;YAC3B,GAAG,EAAE,MAAM,CAAC,UAAU;YACtB,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,OAAO;SACd,CAAC;QACF,SAAS,EAAE,IAAA,wBAAe,EAAC;YACzB,GAAG,EAAE,GAAG,CAAC,SAAS;YAClB,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,MAAM;SACb,CAAC;KACH,CAAC,CAAC;IAEH,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAE7C,OAAO;QACL,mBAAmB,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE;QACvC,YAAY;KACb,CAAC;AACJ,CAAC,CAAC;AA5BW,QAAA,qBAAqB,yBA4BhC;AAEK,MAAM,sBAAsB,GAAG,CAAC,EACrC,OAAO,EACP,mBAAmB,GACU,EAAU,EAAE;IACzC,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,MAAM,IAAI,iBAAQ,CAAC,6BAA6B,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,GAAG,GAAG,iBAAO,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,mBAAmB,EAAE,CAAC,CAAC;IACxF,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAEnC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;QACpB,MAAM,IAAI,iBAAQ,CAAC,gCAAgC,CAAC,CAAC;IACvD,CAAC;IAED,OAAO,IAAA,sBAAa,EAAC;QACnB,UAAU,EAAE,IAAA,yBAAgB,EAAC;YAC3B,GAAG,EAAE,GAAG,CAAC,UAAU;YACnB,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,OAAO;SACd,CAAC;QACF,SAAS,EAAE,IAAA,wBAAe,EAAC;YACzB,GAAG,EAAE,QAAQ,CAAC,SAAS;YACvB,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,MAAM;SACb,CAAC;KACH,CAAC,CAAC;AACL,CAAC,CAAC;AA5BW,QAAA,sBAAsB,0BA4BjC"}
@@ -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, format, hkdfSalt, initialisationVector, keyId, pbkdfIterations, pbkdfSalt, publicEncryptionJwk, publicEncryptionKey, 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":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGhD,eAAO,MAAM,gBAAgB,+KAc1B,iBAAiB,KAAG,MA6BtB,CAAC"}
@@ -2,24 +2,27 @@
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 _encodeAesString = ({ algorithm, authTag, content, encryption, format, hkdfSalt, initialisationVector, keyId, pbkdfIterations, pbkdfSalt, publicEncryptionJwk, publicEncryptionKey, version, }) => {
6
6
  const values = (0, utils_1.removeEmpty)({
7
- v: version,
7
+ v: version.toString(),
8
8
  f: format,
9
- cek: publicEncryptionKey?.toString(format),
10
- crv: publicEncryptionJwk?.crv,
11
- eka: encryptionKeyAlgorithm,
12
- ih: integrityHash,
9
+ alg: algorithm,
13
10
  iv: initialisationVector.toString(format),
14
- kid: publicEncryptionKey && keyId ? keyId.toString(format) : undefined,
15
- tag: authTag?.toString(format),
11
+ kid: keyId.toString(format),
12
+ tag: authTag.toString(format),
13
+ hks: hkdfSalt?.toString(format),
14
+ p2c: pbkdfIterations?.toString(),
15
+ p2s: pbkdfSalt?.toString(format),
16
+ pek: publicEncryptionKey?.toString(format),
17
+ crv: publicEncryptionJwk?.crv,
18
+ kty: publicEncryptionJwk?.kty,
16
19
  x: publicEncryptionJwk?.x,
17
20
  y: publicEncryptionJwk?.y,
18
21
  });
19
22
  const array = Object.entries(values).map(([key, value]) => `${key}=${value}`);
20
23
  const str = array.join(",");
21
24
  const cnt = content.toString(format);
22
- return `$${algorithm}$${str}$${cnt}$`;
25
+ return `$${encryption}$${str}$${cnt}$`;
23
26
  };
24
27
  exports._encodeAesString = _encodeAesString;
25
28
  //# 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;AAItC,MAAM,gBAAgB,GAAG,CAAC,EAC/B,SAAS,EACT,OAAO,EACP,OAAO,EACP,UAAU,EACV,MAAM,EACN,QAAQ,EACR,oBAAoB,EACpB,KAAK,EACL,eAAe,EACf,SAAS,EACT,mBAAmB,EACnB,mBAAmB,EACnB,OAAO,GACW,EAAU,EAAE;IAC9B,MAAM,MAAM,GAAoB,IAAA,mBAAW,EAAC;QAC1C,CAAC,EAAE,OAAO,CAAC,QAAQ,EAAE;QACrB,CAAC,EAAE,MAAM;QAGT,GAAG,EAAE,SAAS;QACd,EAAE,EAAE,oBAAoB,CAAC,QAAQ,CAAC,MAAM,CAAC;QACzC,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC3B,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;QAG7B,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC;QAC/B,GAAG,EAAE,eAAe,EAAE,QAAQ,EAAE;QAChC,GAAG,EAAE,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC;QAChC,GAAG,EAAE,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC;QAG1C,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,MAAM,CAAC,CAAC;IAErC,OAAO,IAAI,UAAU,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC;AACzC,CAAC,CAAC;AA3CW,QAAA,gBAAgB,oBA2C3B"}
@@ -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,eAe/D,CAAC;AAEF,eAAO,MAAM,mBAAmB,YAAa,iBAAiB,KAAG,gBAehE,CAAC"}
@@ -0,0 +1,37 @@
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
+ return (0, diffie_hellman_key_wrap_1._getDiffieHellmanKeyWrapEncryptionKey)(options);
15
+ default:
16
+ throw new errors_1.AesError("Unexpected Kryptos", {
17
+ debug: { kryptos: options.kryptos.toJSON() },
18
+ });
19
+ }
20
+ };
21
+ exports._getEcEncryptionKey = _getEcEncryptionKey;
22
+ const _getEcDecryptionKey = (options) => {
23
+ switch (options.kryptos.algorithm) {
24
+ case "ECDH-ES":
25
+ return (0, diffie_hellman_1._getDiffieHellmanDecryptionKey)(options);
26
+ case "ECDH-ES+A128KW":
27
+ case "ECDH-ES+A192KW":
28
+ case "ECDH-ES+A256KW":
29
+ return (0, diffie_hellman_key_wrap_1._getDiffieHellmanKeyWrapDecryptionKey)(options);
30
+ default:
31
+ throw new errors_1.AesError("Unexpected Kryptos", {
32
+ debug: { kryptos: options.kryptos.toJSON() },
33
+ });
34
+ }
35
+ };
36
+ exports._getEcDecryptionKey = _getEcDecryptionKey;
37
+ //# 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;YACnB,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;AAfW,QAAA,mBAAmB,uBAe9B;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;YACnB,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;AAfW,QAAA,mBAAmB,uBAe9B"}
@@ -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,eAoBhE,CAAC;AAEF,eAAO,MAAM,oBAAoB,YAAa,iBAAiB,KAAG,gBAoBjE,CAAC"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports._getOctDecryptionKey = exports._getOctEncryptionKey = void 0;
4
+ const errors_1 = require("../../../errors");
5
+ const get_oct_dir_keys_1 = require("../oct/get-oct-dir-keys");
6
+ const get_oct_key_wrap_keys_1 = require("../oct/get-oct-key-wrap-keys");
7
+ const get_oct_pbkdf_key_wrap_keys_1 = require("../oct/get-oct-pbkdf-key-wrap-keys");
8
+ const _getOctEncryptionKey = (options) => {
9
+ switch (options.kryptos.algorithm) {
10
+ case "dir":
11
+ return (0, get_oct_dir_keys_1._getOctDirEncryptionKey)(options);
12
+ case "A128KW":
13
+ case "A192KW":
14
+ case "A256KW":
15
+ return (0, get_oct_key_wrap_keys_1._getOctKeyWrapEncryptionKey)(options);
16
+ case "PBES2-HS256+A128KW":
17
+ case "PBES2-HS384+A192KW":
18
+ case "PBES2-HS512+A256KW":
19
+ return (0, get_oct_pbkdf_key_wrap_keys_1._getOctPbkdfKeyWrapEncryptionKey)(options);
20
+ default:
21
+ throw new errors_1.AesError("Unexpected Kryptos", {
22
+ debug: { kryptos: options.kryptos.toJSON() },
23
+ });
24
+ }
25
+ };
26
+ exports._getOctEncryptionKey = _getOctEncryptionKey;
27
+ const _getOctDecryptionKey = (options) => {
28
+ switch (options.kryptos.algorithm) {
29
+ case "dir":
30
+ return (0, get_oct_dir_keys_1._getOctDirDecryptionKey)(options);
31
+ case "A128KW":
32
+ case "A192KW":
33
+ case "A256KW":
34
+ return (0, get_oct_key_wrap_keys_1._getOctKeyWrapDecryptionKey)(options);
35
+ case "PBES2-HS256+A128KW":
36
+ case "PBES2-HS384+A192KW":
37
+ case "PBES2-HS512+A256KW":
38
+ return (0, get_oct_pbkdf_key_wrap_keys_1._getOctPbkdfKeyWrapDecryptionKey)(options);
39
+ default:
40
+ throw new errors_1.AesError("Unexpected Kryptos", {
41
+ debug: { kryptos: options.kryptos.toJSON() },
42
+ });
43
+ }
44
+ };
45
+ exports._getOctDecryptionKey = _getOctDecryptionKey;
46
+ //# sourceMappingURL=get-oct-keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-oct-keys.js","sourceRoot":"","sources":["../../../../src/utils/private/key-types/get-oct-keys.ts"],"names":[],"mappings":";;;AAAA,4CAA2C;AAO3C,8DAGiC;AACjC,wEAGsC;AACtC,oFAG4C;AAErC,MAAM,oBAAoB,GAAG,CAAC,OAAyB,EAAmB,EAAE;IACjF,QAAQ,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QAClC,KAAK,KAAK;YACR,OAAO,IAAA,0CAAuB,EAAC,OAAO,CAAC,CAAC;QAE1C,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ;YACX,OAAO,IAAA,mDAA2B,EAAC,OAAO,CAAC,CAAC;QAE9C,KAAK,oBAAoB,CAAC;QAC1B,KAAK,oBAAoB,CAAC;QAC1B,KAAK,oBAAoB;YACvB,OAAO,IAAA,8DAAgC,EAAC,OAAO,CAAC,CAAC;QAEnD;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;AApBW,QAAA,oBAAoB,wBAoB/B;AAEK,MAAM,oBAAoB,GAAG,CAAC,OAA0B,EAAoB,EAAE;IACnF,QAAQ,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QAClC,KAAK,KAAK;YACR,OAAO,IAAA,0CAAuB,EAAC,OAAO,CAAC,CAAC;QAE1C,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ;YACX,OAAO,IAAA,mDAA2B,EAAC,OAAO,CAAC,CAAC;QAE9C,KAAK,oBAAoB,CAAC;QAC1B,KAAK,oBAAoB,CAAC;QAC1B,KAAK,oBAAoB;YACvB,OAAO,IAAA,8DAAgC,EAAC,OAAO,CAAC,CAAC;QAEnD;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;AApBW,QAAA,oBAAoB,wBAoB/B"}
@@ -0,0 +1,4 @@
1
+ import { CreateCekOptions, CreateCekResult, DecryptCekOptions, DecryptCekResult } from "../../../types/private";
2
+ export declare const _getOkpEncryptionKey: (options: CreateCekOptions) => CreateCekResult;
3
+ export declare const _getOkpDecryptionKey: (options: DecryptCekOptions) => DecryptCekResult;
4
+ //# sourceMappingURL=get-okp-keys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-okp-keys.d.ts","sourceRoot":"","sources":["../../../../src/utils/private/key-types/get-okp-keys.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,wBAAwB,CAAC;AAMhC,eAAO,MAAM,oBAAoB,YAAa,gBAAgB,KAAG,eAUhE,CAAC;AAEF,eAAO,MAAM,oBAAoB,YAAa,iBAAiB,KAAG,gBAUjE,CAAC"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports._getOkpDecryptionKey = exports._getOkpEncryptionKey = void 0;
4
+ const errors_1 = require("../../../errors");
5
+ const diffie_hellman_1 = require("../diffie-hellman/diffie-hellman");
6
+ const _getOkpEncryptionKey = (options) => {
7
+ switch (options.kryptos.algorithm) {
8
+ case "ECDH-ES":
9
+ return (0, diffie_hellman_1._getDiffieHellmanEncryptionKey)(options);
10
+ default:
11
+ throw new errors_1.AesError("Unexpected Kryptos", {
12
+ debug: { kryptos: options.kryptos.toJSON() },
13
+ });
14
+ }
15
+ };
16
+ exports._getOkpEncryptionKey = _getOkpEncryptionKey;
17
+ const _getOkpDecryptionKey = (options) => {
18
+ switch (options.kryptos.algorithm) {
19
+ case "ECDH-ES":
20
+ return (0, diffie_hellman_1._getDiffieHellmanDecryptionKey)(options);
21
+ default:
22
+ throw new errors_1.AesError("Unexpected Kryptos", {
23
+ debug: { kryptos: options.kryptos.toJSON() },
24
+ });
25
+ }
26
+ };
27
+ exports._getOkpDecryptionKey = _getOkpDecryptionKey;
28
+ //# sourceMappingURL=get-okp-keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-okp-keys.js","sourceRoot":"","sources":["../../../../src/utils/private/key-types/get-okp-keys.ts"],"names":[],"mappings":";;;AAAA,4CAA2C;AAO3C,qEAG0C;AAEnC,MAAM,oBAAoB,GAAG,CAAC,OAAyB,EAAmB,EAAE;IACjF,QAAQ,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QAClC,KAAK,SAAS;YACZ,OAAO,IAAA,+CAA8B,EAAC,OAAO,CAAC,CAAC;QAEjD;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;AAVW,QAAA,oBAAoB,wBAU/B;AAEK,MAAM,oBAAoB,GAAG,CAAC,OAA0B,EAAoB,EAAE;IACnF,QAAQ,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QAClC,KAAK,SAAS;YACZ,OAAO,IAAA,+CAA8B,EAAC,OAAO,CAAC,CAAC;QAEjD;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;AAVW,QAAA,oBAAoB,wBAU/B"}
@@ -0,0 +1,4 @@
1
+ import { CreateCekOptions, CreateCekResult, DecryptCekOptions, DecryptCekResult } from "../../../types/private";
2
+ export declare const _getRsaEncryptionKey: ({ encryption, kryptos, }: CreateCekOptions) => CreateCekResult;
3
+ export declare const _getRsaDecryptionKey: ({ kryptos, publicEncryptionKey, }: DecryptCekOptions) => DecryptCekResult;
4
+ //# sourceMappingURL=get-rsa-keys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-rsa-keys.d.ts","sourceRoot":"","sources":["../../../../src/utils/private/key-types/get-rsa-keys.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,wBAAwB,CAAC;AAIhC,eAAO,MAAM,oBAAoB,6BAG9B,gBAAgB,KAAG,eA6BrB,CAAC;AAEF,eAAO,MAAM,oBAAoB,sCAG9B,iBAAiB,KAAG,gBAmCtB,CAAC"}