@lindorm/aes 0.1.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 (159) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/README.md +1 -0
  3. package/dist/index.d.ts +1 -0
  4. package/dist/index.d.ts.map +1 -0
  5. package/dist/index.js +2 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/src/classes/AesCipher.d.ts +14 -0
  8. package/dist/src/classes/AesCipher.d.ts.map +1 -0
  9. package/dist/src/classes/AesCipher.js +50 -0
  10. package/dist/src/classes/AesCipher.js.map +1 -0
  11. package/dist/src/classes/index.d.ts +2 -0
  12. package/dist/src/classes/index.d.ts.map +1 -0
  13. package/dist/src/classes/index.js +18 -0
  14. package/dist/src/classes/index.js.map +1 -0
  15. package/dist/src/constants/index.d.ts +2 -0
  16. package/dist/src/constants/index.d.ts.map +1 -0
  17. package/dist/src/constants/index.js +18 -0
  18. package/dist/src/constants/index.js.map +1 -0
  19. package/dist/src/constants/version.d.ts +2 -0
  20. package/dist/src/constants/version.d.ts.map +1 -0
  21. package/dist/src/constants/version.js +5 -0
  22. package/dist/src/constants/version.js.map +1 -0
  23. package/dist/src/enums/AesEncryption.d.ts +9 -0
  24. package/dist/src/enums/AesEncryption.d.ts.map +1 -0
  25. package/dist/src/enums/AesEncryption.js +13 -0
  26. package/dist/src/enums/AesEncryption.js.map +1 -0
  27. package/dist/src/enums/AesEncryptionKeyAlgorithm.d.ts +9 -0
  28. package/dist/src/enums/AesEncryptionKeyAlgorithm.d.ts.map +1 -0
  29. package/dist/src/enums/AesEncryptionKeyAlgorithm.js +13 -0
  30. package/dist/src/enums/AesEncryptionKeyAlgorithm.js.map +1 -0
  31. package/dist/src/enums/AesFormat.d.ts +6 -0
  32. package/dist/src/enums/AesFormat.d.ts.map +1 -0
  33. package/dist/src/enums/AesFormat.js +10 -0
  34. package/dist/src/enums/AesFormat.js.map +1 -0
  35. package/dist/src/enums/AesIntegrityHash.d.ts +6 -0
  36. package/dist/src/enums/AesIntegrityHash.d.ts.map +1 -0
  37. package/dist/src/enums/AesIntegrityHash.js +10 -0
  38. package/dist/src/enums/AesIntegrityHash.js.map +1 -0
  39. package/dist/src/enums/index.d.ts +5 -0
  40. package/dist/src/enums/index.d.ts.map +1 -0
  41. package/dist/src/enums/index.js +21 -0
  42. package/dist/src/enums/index.js.map +1 -0
  43. package/dist/src/errors/AesError.d.ts +4 -0
  44. package/dist/src/errors/AesError.d.ts.map +1 -0
  45. package/dist/src/errors/AesError.js +8 -0
  46. package/dist/src/errors/AesError.js.map +1 -0
  47. package/dist/src/errors/index.d.ts +2 -0
  48. package/dist/src/errors/index.d.ts.map +1 -0
  49. package/dist/src/errors/index.js +18 -0
  50. package/dist/src/errors/index.js.map +1 -0
  51. package/dist/src/index.d.ts +6 -0
  52. package/dist/src/index.d.ts.map +1 -0
  53. package/dist/src/index.js +22 -0
  54. package/dist/src/index.js.map +1 -0
  55. package/dist/src/types/aes-cipher-class.d.ts +10 -0
  56. package/dist/src/types/aes-cipher-class.d.ts.map +1 -0
  57. package/dist/src/types/aes-cipher-class.js +3 -0
  58. package/dist/src/types/aes-cipher-class.js.map +1 -0
  59. package/dist/src/types/aes-cipher.d.ts +11 -0
  60. package/dist/src/types/aes-cipher.d.ts.map +1 -0
  61. package/dist/src/types/aes-cipher.js +3 -0
  62. package/dist/src/types/aes-cipher.js.map +1 -0
  63. package/dist/src/types/aes-data.d.ts +23 -0
  64. package/dist/src/types/aes-data.d.ts.map +1 -0
  65. package/dist/src/types/aes-data.js +3 -0
  66. package/dist/src/types/aes-data.js.map +1 -0
  67. package/dist/src/types/aes-encryption-data.d.ts +16 -0
  68. package/dist/src/types/aes-encryption-data.d.ts.map +1 -0
  69. package/dist/src/types/aes-encryption-data.js +3 -0
  70. package/dist/src/types/aes-encryption-data.js.map +1 -0
  71. package/dist/src/types/auth-tag.d.ts +31 -0
  72. package/dist/src/types/auth-tag.d.ts.map +1 -0
  73. package/dist/src/types/auth-tag.js +3 -0
  74. package/dist/src/types/auth-tag.js.map +1 -0
  75. package/dist/src/types/index.d.ts +6 -0
  76. package/dist/src/types/index.d.ts.map +1 -0
  77. package/dist/src/types/index.js +22 -0
  78. package/dist/src/types/index.js.map +1 -0
  79. package/dist/src/types/types.d.ts +10 -0
  80. package/dist/src/types/types.d.ts.map +1 -0
  81. package/dist/src/types/types.js +3 -0
  82. package/dist/src/types/types.js.map +1 -0
  83. package/dist/src/utils/aes-cipher.d.ts +6 -0
  84. package/dist/src/utils/aes-cipher.d.ts.map +1 -0
  85. package/dist/src/utils/aes-cipher.js +20 -0
  86. package/dist/src/utils/aes-cipher.js.map +1 -0
  87. package/dist/src/utils/aes-data.d.ts +4 -0
  88. package/dist/src/utils/aes-data.d.ts.map +1 -0
  89. package/dist/src/utils/aes-data.js +66 -0
  90. package/dist/src/utils/aes-data.js.map +1 -0
  91. package/dist/src/utils/index.d.ts +3 -0
  92. package/dist/src/utils/index.d.ts.map +1 -0
  93. package/dist/src/utils/index.js +19 -0
  94. package/dist/src/utils/index.js.map +1 -0
  95. package/dist/src/utils/private/auth-tag-hmac.d.ts +5 -0
  96. package/dist/src/utils/private/auth-tag-hmac.d.ts.map +1 -0
  97. package/dist/src/utils/private/auth-tag-hmac.js +25 -0
  98. package/dist/src/utils/private/auth-tag-hmac.js.map +1 -0
  99. package/dist/src/utils/private/auth-tag.d.ts +5 -0
  100. package/dist/src/utils/private/auth-tag.d.ts.map +1 -0
  101. package/dist/src/utils/private/auth-tag.js +58 -0
  102. package/dist/src/utils/private/auth-tag.js.map +1 -0
  103. package/dist/src/utils/private/decode-aes-string.d.ts +3 -0
  104. package/dist/src/utils/private/decode-aes-string.d.ts.map +1 -0
  105. package/dist/src/utils/private/decode-aes-string.js +39 -0
  106. package/dist/src/utils/private/decode-aes-string.js.map +1 -0
  107. package/dist/src/utils/private/ec/get-ec-keys.d.ts +21 -0
  108. package/dist/src/utils/private/ec/get-ec-keys.d.ts.map +1 -0
  109. package/dist/src/utils/private/ec/get-ec-keys.js +55 -0
  110. package/dist/src/utils/private/ec/get-ec-keys.js.map +1 -0
  111. package/dist/src/utils/private/ec/get-key-curve.d.ts +4 -0
  112. package/dist/src/utils/private/ec/get-key-curve.d.ts.map +1 -0
  113. package/dist/src/utils/private/ec/get-key-curve.js +37 -0
  114. package/dist/src/utils/private/ec/get-key-curve.js.map +1 -0
  115. package/dist/src/utils/private/encode-aes-string.d.ts +3 -0
  116. package/dist/src/utils/private/encode-aes-string.d.ts.map +1 -0
  117. package/dist/src/utils/private/encode-aes-string.js +25 -0
  118. package/dist/src/utils/private/encode-aes-string.js.map +1 -0
  119. package/dist/src/utils/private/get-decryption-key.d.ts +13 -0
  120. package/dist/src/utils/private/get-decryption-key.d.ts.map +1 -0
  121. package/dist/src/utils/private/get-decryption-key.js +33 -0
  122. package/dist/src/utils/private/get-decryption-key.js.map +1 -0
  123. package/dist/src/utils/private/get-encryption-keys.d.ts +16 -0
  124. package/dist/src/utils/private/get-encryption-keys.d.ts.map +1 -0
  125. package/dist/src/utils/private/get-encryption-keys.js +23 -0
  126. package/dist/src/utils/private/get-encryption-keys.js.map +1 -0
  127. package/dist/src/utils/private/get-initialisation-vector.d.ts +4 -0
  128. package/dist/src/utils/private/get-initialisation-vector.d.ts.map +1 -0
  129. package/dist/src/utils/private/get-initialisation-vector.js +23 -0
  130. package/dist/src/utils/private/get-initialisation-vector.js.map +1 -0
  131. package/dist/src/utils/private/oct/get-oct-keys.d.ts +14 -0
  132. package/dist/src/utils/private/oct/get-oct-keys.d.ts.map +1 -0
  133. package/dist/src/utils/private/oct/get-oct-keys.js +24 -0
  134. package/dist/src/utils/private/oct/get-oct-keys.js.map +1 -0
  135. package/dist/src/utils/private/rsa/generate-encryption-key.d.ts +4 -0
  136. package/dist/src/utils/private/rsa/generate-encryption-key.d.ts.map +1 -0
  137. package/dist/src/utils/private/rsa/generate-encryption-key.js +8 -0
  138. package/dist/src/utils/private/rsa/generate-encryption-key.js.map +1 -0
  139. package/dist/src/utils/private/rsa/get-oaep-hash.d.ts +3 -0
  140. package/dist/src/utils/private/rsa/get-oaep-hash.d.ts.map +1 -0
  141. package/dist/src/utils/private/rsa/get-oaep-hash.js +22 -0
  142. package/dist/src/utils/private/rsa/get-oaep-hash.js.map +1 -0
  143. package/dist/src/utils/private/rsa/get-rsa-keys.d.ts +21 -0
  144. package/dist/src/utils/private/rsa/get-rsa-keys.d.ts.map +1 -0
  145. package/dist/src/utils/private/rsa/get-rsa-keys.js +22 -0
  146. package/dist/src/utils/private/rsa/get-rsa-keys.js.map +1 -0
  147. package/dist/src/utils/private/rsa/public-encryption-key.d.ts +17 -0
  148. package/dist/src/utils/private/rsa/public-encryption-key.d.ts.map +1 -0
  149. package/dist/src/utils/private/rsa/public-encryption-key.js +56 -0
  150. package/dist/src/utils/private/rsa/public-encryption-key.js.map +1 -0
  151. package/dist/src/utils/private/secret/calculate-secret-length.d.ts +3 -0
  152. package/dist/src/utils/private/secret/calculate-secret-length.d.ts.map +1 -0
  153. package/dist/src/utils/private/secret/calculate-secret-length.js +21 -0
  154. package/dist/src/utils/private/secret/calculate-secret-length.js.map +1 -0
  155. package/dist/src/utils/private/secret/create-key-derivation.d.ts +10 -0
  156. package/dist/src/utils/private/secret/create-key-derivation.d.ts.map +1 -0
  157. package/dist/src/utils/private/secret/create-key-derivation.js +35 -0
  158. package/dist/src/utils/private/secret/create-key-derivation.js.map +1 -0
  159. package/package.json +33 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-decryption-key.js","sourceRoot":"","sources":["../../../../src/src/utils/private/get-decryption-key.ts"],"names":[],"mappings":";;;AACA,yCAAwC;AAExC,kDAAuD;AACvD,qDAA0D;AAC1D,qDAA0D;AAUnD,MAAM,iBAAiB,GAAG,CAAC,EAChC,UAAU,EACV,sBAAsB,EACtB,OAAO,EACP,mBAAmB,EACnB,mBAAmB,GACX,EAAU,EAAE;IACpB,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,IAAI;YACP,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACzB,MAAM,IAAI,iBAAQ,CAAC,4DAA4D,EAAE;oBAC/E,KAAK,EAAE,EAAE,mBAAmB,EAAE;iBAC/B,CAAC,CAAC;YACL,CAAC;YACD,OAAO,IAAA,iCAAmB,EAAC,EAAE,UAAU,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC,CAAC;QAE3E,KAAK,KAAK;YACR,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACzB,MAAM,IAAI,iBAAQ,CAAC,4DAA4D,EAAE;oBAC/E,KAAK,EAAE,EAAE,mBAAmB,EAAE;iBAC/B,CAAC,CAAC;YACL,CAAC;YACD,OAAO,IAAA,mCAAoB,EAAC,EAAE,sBAAsB,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC,CAAC;QAExF,KAAK,KAAK;YACR,OAAO,IAAA,mCAAoB,EAAC,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;QAEvD;YACE,MAAM,IAAI,iBAAQ,CAAC,gCAAgC,EAAE;gBACnD,KAAK,EAAE,EAAE,OAAO,EAAE;aACnB,CAAC,CAAC;IACP,CAAC;AACH,CAAC,CAAC;AAhCW,QAAA,iBAAiB,qBAgC5B"}
@@ -0,0 +1,16 @@
1
+ /// <reference types="node" />
2
+ import { Kryptos } from "@lindorm/kryptos";
3
+ import { Encryption, EncryptionKeyAlgorithm, PublicEncryptionJwk } from "../../types";
4
+ type Options = {
5
+ encryption: Encryption;
6
+ encryptionKeyAlgorithm?: EncryptionKeyAlgorithm;
7
+ kryptos: Kryptos;
8
+ };
9
+ type EncryptionKeys = {
10
+ encryptionKey: Buffer;
11
+ publicEncryptionJwk?: PublicEncryptionJwk;
12
+ publicEncryptionKey?: Buffer;
13
+ };
14
+ export declare const _getEncryptionKeys: ({ encryption, encryptionKeyAlgorithm, kryptos, }: Options) => EncryptionKeys;
15
+ export {};
16
+ //# sourceMappingURL=get-encryption-keys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-encryption-keys.d.ts","sourceRoot":"","sources":["../../../../src/src/utils/private/get-encryption-keys.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAKtF,KAAK,OAAO,GAAG;IACb,UAAU,EAAE,UAAU,CAAC;IACvB,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;IAChD,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,KAAK,cAAc,GAAG;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,eAAO,MAAM,kBAAkB,qDAI5B,OAAO,KAAG,cAgBZ,CAAC"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports._getEncryptionKeys = void 0;
4
+ const errors_1 = require("../../errors");
5
+ const get_ec_keys_1 = require("./ec/get-ec-keys");
6
+ const get_oct_keys_1 = require("./oct/get-oct-keys");
7
+ const get_rsa_keys_1 = require("./rsa/get-rsa-keys");
8
+ const _getEncryptionKeys = ({ encryption, encryptionKeyAlgorithm, kryptos, }) => {
9
+ switch (kryptos.type) {
10
+ case "EC":
11
+ return (0, get_ec_keys_1._getEcEncryptionKeys)({ encryption, encryptionKeyAlgorithm, kryptos });
12
+ case "RSA":
13
+ return (0, get_rsa_keys_1._getRsaEncryptionKeys)({ encryption, encryptionKeyAlgorithm, kryptos });
14
+ case "oct":
15
+ return (0, get_oct_keys_1._getOctEncryptionKeys)({ encryption, kryptos });
16
+ default:
17
+ throw new errors_1.AesError("Unexpected encryption key type", {
18
+ debug: { kryptos },
19
+ });
20
+ }
21
+ };
22
+ exports._getEncryptionKeys = _getEncryptionKeys;
23
+ //# sourceMappingURL=get-encryption-keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-encryption-keys.js","sourceRoot":"","sources":["../../../../src/src/utils/private/get-encryption-keys.ts"],"names":[],"mappings":";;;AACA,yCAAwC;AAExC,kDAAwD;AACxD,qDAA2D;AAC3D,qDAA2D;AAcpD,MAAM,kBAAkB,GAAG,CAAC,EACjC,UAAU,EACV,sBAAsB,EACtB,OAAO,GACC,EAAkB,EAAE;IAC5B,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,IAAI;YACP,OAAO,IAAA,kCAAoB,EAAC,EAAE,UAAU,EAAE,sBAAsB,EAAE,OAAO,EAAE,CAAC,CAAC;QAE/E,KAAK,KAAK;YACR,OAAO,IAAA,oCAAqB,EAAC,EAAE,UAAU,EAAE,sBAAsB,EAAE,OAAO,EAAE,CAAC,CAAC;QAEhF,KAAK,KAAK;YACR,OAAO,IAAA,oCAAqB,EAAC,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;QAExD;YACE,MAAM,IAAI,iBAAQ,CAAC,gCAAgC,EAAE;gBACnD,KAAK,EAAE,EAAE,OAAO,EAAE;aACnB,CAAC,CAAC;IACP,CAAC;AACH,CAAC,CAAC;AApBW,QAAA,kBAAkB,sBAoB7B"}
@@ -0,0 +1,4 @@
1
+ /// <reference types="node" />
2
+ import { Encryption } from "../../types";
3
+ export declare const _getInitialisationVector: (encryption: Encryption) => Buffer;
4
+ //# sourceMappingURL=get-initialisation-vector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-initialisation-vector.d.ts","sourceRoot":"","sources":["../../../../src/src/utils/private/get-initialisation-vector.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,eAAO,MAAM,wBAAwB,eAAgB,UAAU,KAAG,MAiBjE,CAAC"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports._getInitialisationVector = void 0;
4
+ const crypto_1 = require("crypto");
5
+ const errors_1 = require("../../errors");
6
+ const _getInitialisationVector = (encryption) => {
7
+ switch (encryption) {
8
+ case "aes-128-cbc":
9
+ case "aes-192-cbc":
10
+ case "aes-256-cbc":
11
+ return (0, crypto_1.randomBytes)(16);
12
+ case "aes-128-gcm":
13
+ case "aes-192-gcm":
14
+ case "aes-256-gcm":
15
+ return (0, crypto_1.randomBytes)(12);
16
+ default:
17
+ throw new errors_1.AesError("Unexpected algorithm", {
18
+ debug: { encryption },
19
+ });
20
+ }
21
+ };
22
+ exports._getInitialisationVector = _getInitialisationVector;
23
+ //# sourceMappingURL=get-initialisation-vector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-initialisation-vector.js","sourceRoot":"","sources":["../../../../src/src/utils/private/get-initialisation-vector.ts"],"names":[],"mappings":";;;AAAA,mCAAqC;AACrC,yCAAwC;AAGjC,MAAM,wBAAwB,GAAG,CAAC,UAAsB,EAAU,EAAE;IACzE,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,aAAa,CAAC;QACnB,KAAK,aAAa,CAAC;QACnB,KAAK,aAAa;YAChB,OAAO,IAAA,oBAAW,EAAC,EAAE,CAAC,CAAC;QAEzB,KAAK,aAAa,CAAC;QACnB,KAAK,aAAa,CAAC;QACnB,KAAK,aAAa;YAChB,OAAO,IAAA,oBAAW,EAAC,EAAE,CAAC,CAAC;QAEzB;YACE,MAAM,IAAI,iBAAQ,CAAC,sBAAsB,EAAE;gBACzC,KAAK,EAAE,EAAE,UAAU,EAAE;aACtB,CAAC,CAAC;IACP,CAAC;AACH,CAAC,CAAC;AAjBW,QAAA,wBAAwB,4BAiBnC"}
@@ -0,0 +1,14 @@
1
+ /// <reference types="node" />
2
+ import { Kryptos } from "@lindorm/kryptos";
3
+ import { Encryption } from "../../../types";
4
+ type EncryptOptions = {
5
+ encryption: Encryption;
6
+ kryptos: Kryptos;
7
+ };
8
+ type EncryptResult = {
9
+ encryptionKey: Buffer;
10
+ };
11
+ export declare const _getOctEncryptionKeys: ({ encryption, kryptos }: EncryptOptions) => EncryptResult;
12
+ export declare const _getOctDecryptionKey: ({ encryption, kryptos }: EncryptOptions) => Buffer;
13
+ export {};
14
+ //# sourceMappingURL=get-oct-keys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-oct-keys.d.ts","sourceRoot":"","sources":["../../../../../src/src/utils/private/oct/get-oct-keys.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAG5C,KAAK,cAAc,GAAG;IACpB,UAAU,EAAE,UAAU,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,KAAK,aAAa,GAAG;IACnB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,qBAAqB,4BAA6B,cAAc,KAAG,aAU/E,CAAC;AAEF,eAAO,MAAM,oBAAoB,4BAA6B,cAAc,KAAG,MAQ9E,CAAC"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports._getOctDecryptionKey = exports._getOctEncryptionKeys = void 0;
4
+ const errors_1 = require("../../../errors");
5
+ const create_key_derivation_1 = require("../secret/create-key-derivation");
6
+ const _getOctEncryptionKeys = ({ encryption, kryptos }) => {
7
+ const der = kryptos.export("der");
8
+ if (!der.privateKey) {
9
+ throw new errors_1.AesError("Unable to encrypt AES without private key");
10
+ }
11
+ return {
12
+ encryptionKey: (0, create_key_derivation_1._createKeyDerivation)({ encryption, initialKeyringMaterial: der.privateKey }),
13
+ };
14
+ };
15
+ exports._getOctEncryptionKeys = _getOctEncryptionKeys;
16
+ const _getOctDecryptionKey = ({ encryption, kryptos }) => {
17
+ const der = kryptos.export("der");
18
+ if (!der.privateKey) {
19
+ throw new errors_1.AesError("Unable to decrypt AES without private key");
20
+ }
21
+ return (0, create_key_derivation_1._createKeyDerivation)({ encryption, initialKeyringMaterial: der.privateKey });
22
+ };
23
+ exports._getOctDecryptionKey = _getOctDecryptionKey;
24
+ //# sourceMappingURL=get-oct-keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-oct-keys.js","sourceRoot":"","sources":["../../../../../src/src/utils/private/oct/get-oct-keys.ts"],"names":[],"mappings":";;;AACA,4CAA2C;AAE3C,2EAAuE;AAWhE,MAAM,qBAAqB,GAAG,CAAC,EAAE,UAAU,EAAE,OAAO,EAAkB,EAAiB,EAAE;IAC9F,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAElC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;QACpB,MAAM,IAAI,iBAAQ,CAAC,2CAA2C,CAAC,CAAC;IAClE,CAAC;IAED,OAAO;QACL,aAAa,EAAE,IAAA,4CAAoB,EAAC,EAAE,UAAU,EAAE,sBAAsB,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC;KAC5F,CAAC;AACJ,CAAC,CAAC;AAVW,QAAA,qBAAqB,yBAUhC;AAEK,MAAM,oBAAoB,GAAG,CAAC,EAAE,UAAU,EAAE,OAAO,EAAkB,EAAU,EAAE;IACtF,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAElC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;QACpB,MAAM,IAAI,iBAAQ,CAAC,2CAA2C,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,IAAA,4CAAoB,EAAC,EAAE,UAAU,EAAE,sBAAsB,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;AACtF,CAAC,CAAC;AARW,QAAA,oBAAoB,wBAQ/B"}
@@ -0,0 +1,4 @@
1
+ /// <reference types="node" />
2
+ import { Encryption } from "../../../types";
3
+ export declare const _generateEncryptionKey: (encryption: Encryption) => Buffer;
4
+ //# sourceMappingURL=generate-encryption-key.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-encryption-key.d.ts","sourceRoot":"","sources":["../../../../../src/src/utils/private/rsa/generate-encryption-key.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAG5C,eAAO,MAAM,sBAAsB,eAAgB,UAAU,KAAG,MACf,CAAC"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports._generateEncryptionKey = void 0;
4
+ const crypto_1 = require("crypto");
5
+ const calculate_secret_length_1 = require("../secret/calculate-secret-length");
6
+ const _generateEncryptionKey = (encryption) => (0, crypto_1.randomBytes)((0, calculate_secret_length_1._calculateSecretLength)(encryption));
7
+ exports._generateEncryptionKey = _generateEncryptionKey;
8
+ //# sourceMappingURL=generate-encryption-key.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-encryption-key.js","sourceRoot":"","sources":["../../../../../src/src/utils/private/rsa/generate-encryption-key.ts"],"names":[],"mappings":";;;AAAA,mCAAqC;AAErC,+EAA2E;AAEpE,MAAM,sBAAsB,GAAG,CAAC,UAAsB,EAAU,EAAE,CACvE,IAAA,oBAAW,EAAC,IAAA,gDAAsB,EAAC,UAAU,CAAC,CAAC,CAAC;AADrC,QAAA,sBAAsB,0BACe"}
@@ -0,0 +1,3 @@
1
+ import { EncryptionKeyAlgorithm, ShaHash } from "../../../types";
2
+ export declare const _getOaepHash: (encryption: EncryptionKeyAlgorithm) => ShaHash;
3
+ //# sourceMappingURL=get-oaep-hash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-oaep-hash.d.ts","sourceRoot":"","sources":["../../../../../src/src/utils/private/rsa/get-oaep-hash.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEjE,eAAO,MAAM,YAAY,eAAgB,sBAAsB,KAAG,OAmBjE,CAAC"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports._getOaepHash = void 0;
4
+ const errors_1 = require("../../../errors");
5
+ const _getOaepHash = (encryption) => {
6
+ switch (encryption) {
7
+ case "RSA-OAEP":
8
+ return "sha1";
9
+ case "RSA-OAEP-256":
10
+ return "sha256";
11
+ case "RSA-OAEP-384":
12
+ return "sha384";
13
+ case "RSA-OAEP-512":
14
+ return "sha512";
15
+ default:
16
+ throw new errors_1.AesError("Unexpected encryption key algorithm", {
17
+ debug: { encryption },
18
+ });
19
+ }
20
+ };
21
+ exports._getOaepHash = _getOaepHash;
22
+ //# sourceMappingURL=get-oaep-hash.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-oaep-hash.js","sourceRoot":"","sources":["../../../../../src/src/utils/private/rsa/get-oaep-hash.ts"],"names":[],"mappings":";;;AAAA,4CAA2C;AAGpC,MAAM,YAAY,GAAG,CAAC,UAAkC,EAAW,EAAE;IAC1E,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,UAAU;YACb,OAAO,MAAM,CAAC;QAEhB,KAAK,cAAc;YACjB,OAAO,QAAQ,CAAC;QAElB,KAAK,cAAc;YACjB,OAAO,QAAQ,CAAC;QAElB,KAAK,cAAc;YACjB,OAAO,QAAQ,CAAC;QAElB;YACE,MAAM,IAAI,iBAAQ,CAAC,qCAAqC,EAAE;gBACxD,KAAK,EAAE,EAAE,UAAU,EAAE;aACtB,CAAC,CAAC;IACP,CAAC;AACH,CAAC,CAAC;AAnBW,QAAA,YAAY,gBAmBvB"}
@@ -0,0 +1,21 @@
1
+ /// <reference types="node" />
2
+ import { Kryptos } from "@lindorm/kryptos";
3
+ import { Encryption, EncryptionKeyAlgorithm } from "../../../types";
4
+ type EncryptOptions = {
5
+ encryption: Encryption;
6
+ encryptionKeyAlgorithm?: EncryptionKeyAlgorithm;
7
+ kryptos: Kryptos;
8
+ };
9
+ type EncryptResult = {
10
+ encryptionKey: Buffer;
11
+ publicEncryptionKey: Buffer;
12
+ };
13
+ type DecryptOptions = {
14
+ encryptionKeyAlgorithm?: EncryptionKeyAlgorithm;
15
+ kryptos: Kryptos;
16
+ publicEncryptionKey: Buffer;
17
+ };
18
+ export declare const _getRsaEncryptionKeys: ({ encryption, encryptionKeyAlgorithm, kryptos, }: EncryptOptions) => EncryptResult;
19
+ export declare const _getRsaDecryptionKey: ({ encryptionKeyAlgorithm, kryptos, publicEncryptionKey, }: DecryptOptions) => Buffer;
20
+ export {};
21
+ //# sourceMappingURL=get-rsa-keys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-rsa-keys.d.ts","sourceRoot":"","sources":["../../../../../src/src/utils/private/rsa/get-rsa-keys.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAIpE,KAAK,cAAc,GAAG;IACpB,UAAU,EAAE,UAAU,CAAC;IACvB,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;IAChD,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,KAAK,aAAa,GAAG;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,KAAK,cAAc,GAAG;IACpB,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;IAChD,OAAO,EAAE,OAAO,CAAC;IACjB,mBAAmB,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,qBAAqB,qDAI/B,cAAc,KAAG,aASnB,CAAC;AAEF,eAAO,MAAM,oBAAoB,8DAI9B,cAAc,KAAG,MAKhB,CAAC"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports._getRsaDecryptionKey = exports._getRsaEncryptionKeys = void 0;
4
+ const generate_encryption_key_1 = require("./generate-encryption-key");
5
+ const public_encryption_key_1 = require("./public-encryption-key");
6
+ const _getRsaEncryptionKeys = ({ encryption, encryptionKeyAlgorithm, kryptos, }) => {
7
+ const encryptionKey = (0, generate_encryption_key_1._generateEncryptionKey)(encryption);
8
+ const publicEncryptionKey = (0, public_encryption_key_1._createPublicEncryptionKey)({
9
+ encryptionKey,
10
+ kryptos,
11
+ encryptionKeyAlgorithm,
12
+ });
13
+ return { encryptionKey, publicEncryptionKey };
14
+ };
15
+ exports._getRsaEncryptionKeys = _getRsaEncryptionKeys;
16
+ const _getRsaDecryptionKey = ({ encryptionKeyAlgorithm, kryptos, publicEncryptionKey, }) => (0, public_encryption_key_1._decryptPublicEncryptionKey)({
17
+ encryptionKeyAlgorithm,
18
+ kryptos,
19
+ publicEncryptionKey,
20
+ });
21
+ exports._getRsaDecryptionKey = _getRsaDecryptionKey;
22
+ //# sourceMappingURL=get-rsa-keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-rsa-keys.js","sourceRoot":"","sources":["../../../../../src/src/utils/private/rsa/get-rsa-keys.ts"],"names":[],"mappings":";;;AAEA,uEAAmE;AACnE,mEAAkG;AAmB3F,MAAM,qBAAqB,GAAG,CAAC,EACpC,UAAU,EACV,sBAAsB,EACtB,OAAO,GACQ,EAAiB,EAAE;IAClC,MAAM,aAAa,GAAG,IAAA,gDAAsB,EAAC,UAAU,CAAC,CAAC;IACzD,MAAM,mBAAmB,GAAG,IAAA,kDAA0B,EAAC;QACrD,aAAa;QACb,OAAO;QACP,sBAAsB;KACvB,CAAC,CAAC;IAEH,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,CAAC;AAChD,CAAC,CAAC;AAbW,QAAA,qBAAqB,yBAahC;AAEK,MAAM,oBAAoB,GAAG,CAAC,EACnC,sBAAsB,EACtB,OAAO,EACP,mBAAmB,GACJ,EAAU,EAAE,CAC3B,IAAA,mDAA2B,EAAC;IAC1B,sBAAsB;IACtB,OAAO;IACP,mBAAmB;CACpB,CAAC,CAAC;AATQ,QAAA,oBAAoB,wBAS5B"}
@@ -0,0 +1,17 @@
1
+ /// <reference types="node" />
2
+ import { Kryptos } from "@lindorm/kryptos";
3
+ import { EncryptionKeyAlgorithm } from "../../../types";
4
+ type EncryptOptions = {
5
+ encryptionKey: Buffer;
6
+ encryptionKeyAlgorithm?: EncryptionKeyAlgorithm;
7
+ kryptos: Kryptos;
8
+ };
9
+ type DecryptOptions = {
10
+ encryptionKeyAlgorithm?: EncryptionKeyAlgorithm;
11
+ kryptos: Kryptos;
12
+ publicEncryptionKey: Buffer;
13
+ };
14
+ export declare const _createPublicEncryptionKey: ({ encryptionKey, encryptionKeyAlgorithm, kryptos, }: EncryptOptions) => Buffer;
15
+ export declare const _decryptPublicEncryptionKey: ({ encryptionKeyAlgorithm, kryptos, publicEncryptionKey, }: DecryptOptions) => Buffer;
16
+ export {};
17
+ //# sourceMappingURL=public-encryption-key.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public-encryption-key.d.ts","sourceRoot":"","sources":["../../../../../src/src/utils/private/rsa/public-encryption-key.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAG3C,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAGxD,KAAK,cAAc,GAAG;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;IAChD,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,KAAK,cAAc,GAAG;IACpB,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;IAChD,OAAO,EAAE,OAAO,CAAC;IACjB,mBAAmB,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,0BAA0B,wDAIpC,cAAc,KAAG,MAkCnB,CAAC;AAEF,eAAO,MAAM,2BAA2B,8DAIrC,cAAc,KAAG,MA8BnB,CAAC"}
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports._decryptPublicEncryptionKey = exports._createPublicEncryptionKey = void 0;
4
+ const crypto_1 = require("crypto");
5
+ const errors_1 = require("../../../errors");
6
+ const get_oaep_hash_1 = require("./get-oaep-hash");
7
+ const _createPublicEncryptionKey = ({ encryptionKey, encryptionKeyAlgorithm, kryptos, }) => {
8
+ const { privateKey, publicKey } = kryptos.export("pem");
9
+ if (encryptionKeyAlgorithm === "RSA-PRIVATE-KEY") {
10
+ if (!privateKey) {
11
+ throw new errors_1.AesError("Unable to encrypt AES without private key");
12
+ }
13
+ return (0, crypto_1.privateEncrypt)(privateKey, encryptionKey);
14
+ }
15
+ if (encryptionKeyAlgorithm === "RSA-OAEP" ||
16
+ encryptionKeyAlgorithm === "RSA-OAEP-256" ||
17
+ encryptionKeyAlgorithm === "RSA-OAEP-384" ||
18
+ encryptionKeyAlgorithm === "RSA-OAEP-512") {
19
+ if (!publicKey) {
20
+ throw new errors_1.AesError("Unable to encrypt AES without public key");
21
+ }
22
+ return (0, crypto_1.publicEncrypt)({
23
+ key: publicKey,
24
+ padding: crypto_1.constants.RSA_PKCS1_OAEP_PADDING,
25
+ oaepHash: (0, get_oaep_hash_1._getOaepHash)(encryptionKeyAlgorithm),
26
+ }, encryptionKey);
27
+ }
28
+ throw new errors_1.AesError("Invalid encryption key algorithm", {
29
+ debug: { encryptionKeyAlgorithm, kryptos },
30
+ });
31
+ };
32
+ exports._createPublicEncryptionKey = _createPublicEncryptionKey;
33
+ const _decryptPublicEncryptionKey = ({ encryptionKeyAlgorithm, kryptos, publicEncryptionKey, }) => {
34
+ const { privateKey, publicKey } = kryptos.export("pem");
35
+ if (encryptionKeyAlgorithm === "RSA-PRIVATE-KEY" && publicKey) {
36
+ return (0, crypto_1.publicDecrypt)(publicKey, publicEncryptionKey);
37
+ }
38
+ if (encryptionKeyAlgorithm === "RSA-OAEP" ||
39
+ encryptionKeyAlgorithm === "RSA-OAEP-256" ||
40
+ encryptionKeyAlgorithm === "RSA-OAEP-384" ||
41
+ encryptionKeyAlgorithm === "RSA-OAEP-512") {
42
+ if (!privateKey) {
43
+ throw new errors_1.AesError("Unable to decrypt AES without private key");
44
+ }
45
+ return (0, crypto_1.privateDecrypt)({
46
+ key: privateKey,
47
+ padding: crypto_1.constants.RSA_PKCS1_OAEP_PADDING,
48
+ oaepHash: (0, get_oaep_hash_1._getOaepHash)(encryptionKeyAlgorithm),
49
+ }, publicEncryptionKey);
50
+ }
51
+ throw new errors_1.AesError("Invalid encryption key algorithm", {
52
+ debug: { encryptionKeyAlgorithm, kryptos },
53
+ });
54
+ };
55
+ exports._decryptPublicEncryptionKey = _decryptPublicEncryptionKey;
56
+ //# sourceMappingURL=public-encryption-key.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public-encryption-key.js","sourceRoot":"","sources":["../../../../../src/src/utils/private/rsa/public-encryption-key.ts"],"names":[],"mappings":";;;AACA,mCAAiG;AACjG,4CAA2C;AAE3C,mDAA+C;AAcxC,MAAM,0BAA0B,GAAG,CAAC,EACzC,aAAa,EACb,sBAAsB,EACtB,OAAO,GACQ,EAAU,EAAE;IAC3B,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAExD,IAAI,sBAAsB,KAAK,iBAAiB,EAAE,CAAC;QACjD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,iBAAQ,CAAC,2CAA2C,CAAC,CAAC;QAClE,CAAC;QAED,OAAO,IAAA,uBAAc,EAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IACnD,CAAC;IAED,IACE,sBAAsB,KAAK,UAAU;QACrC,sBAAsB,KAAK,cAAc;QACzC,sBAAsB,KAAK,cAAc;QACzC,sBAAsB,KAAK,cAAc,EACzC,CAAC;QACD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,iBAAQ,CAAC,0CAA0C,CAAC,CAAC;QACjE,CAAC;QAED,OAAO,IAAA,sBAAa,EAClB;YACE,GAAG,EAAE,SAAS;YACd,OAAO,EAAE,kBAAS,CAAC,sBAAsB;YACzC,QAAQ,EAAE,IAAA,4BAAY,EAAC,sBAAsB,CAAC;SAC/C,EACD,aAAa,CACd,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,iBAAQ,CAAC,kCAAkC,EAAE;QACrD,KAAK,EAAE,EAAE,sBAAsB,EAAE,OAAO,EAAE;KAC3C,CAAC,CAAC;AACL,CAAC,CAAC;AAtCW,QAAA,0BAA0B,8BAsCrC;AAEK,MAAM,2BAA2B,GAAG,CAAC,EAC1C,sBAAsB,EACtB,OAAO,EACP,mBAAmB,GACJ,EAAU,EAAE;IAC3B,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAExD,IAAI,sBAAsB,KAAK,iBAAiB,IAAI,SAAS,EAAE,CAAC;QAC9D,OAAO,IAAA,sBAAa,EAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;IACvD,CAAC;IAED,IACE,sBAAsB,KAAK,UAAU;QACrC,sBAAsB,KAAK,cAAc;QACzC,sBAAsB,KAAK,cAAc;QACzC,sBAAsB,KAAK,cAAc,EACzC,CAAC;QACD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,iBAAQ,CAAC,2CAA2C,CAAC,CAAC;QAClE,CAAC;QAED,OAAO,IAAA,uBAAc,EACnB;YACE,GAAG,EAAE,UAAU;YACf,OAAO,EAAE,kBAAS,CAAC,sBAAsB;YACzC,QAAQ,EAAE,IAAA,4BAAY,EAAC,sBAAsB,CAAC;SAC/C,EACD,mBAAmB,CACpB,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,iBAAQ,CAAC,kCAAkC,EAAE;QACrD,KAAK,EAAE,EAAE,sBAAsB,EAAE,OAAO,EAAE;KAC3C,CAAC,CAAC;AACL,CAAC,CAAC;AAlCW,QAAA,2BAA2B,+BAkCtC"}
@@ -0,0 +1,3 @@
1
+ import { Encryption } from "../../../types";
2
+ export declare const _calculateSecretLength: (encryption: Encryption) => number;
3
+ //# sourceMappingURL=calculate-secret-length.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calculate-secret-length.d.ts","sourceRoot":"","sources":["../../../../../src/src/utils/private/secret/calculate-secret-length.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,eAAO,MAAM,sBAAsB,eAAgB,UAAU,KAAG,MAiB/D,CAAC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports._calculateSecretLength = void 0;
4
+ const errors_1 = require("../../../errors");
5
+ const _calculateSecretLength = (encryption) => {
6
+ switch (encryption) {
7
+ case "aes-128-cbc":
8
+ case "aes-128-gcm":
9
+ return 16;
10
+ case "aes-192-cbc":
11
+ case "aes-192-gcm":
12
+ return 24;
13
+ case "aes-256-cbc":
14
+ case "aes-256-gcm":
15
+ return 32;
16
+ default:
17
+ throw new errors_1.AesError("Unsupported encryption", { debug: { encryption } });
18
+ }
19
+ };
20
+ exports._calculateSecretLength = _calculateSecretLength;
21
+ //# sourceMappingURL=calculate-secret-length.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calculate-secret-length.js","sourceRoot":"","sources":["../../../../../src/src/utils/private/secret/calculate-secret-length.ts"],"names":[],"mappings":";;;AAAA,4CAA2C;AAGpC,MAAM,sBAAsB,GAAG,CAAC,UAAsB,EAAU,EAAE;IACvE,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,aAAa,CAAC;QACnB,KAAK,aAAa;YAChB,OAAO,EAAE,CAAC;QAEZ,KAAK,aAAa,CAAC;QACnB,KAAK,aAAa;YAChB,OAAO,EAAE,CAAC;QAEZ,KAAK,aAAa,CAAC;QACnB,KAAK,aAAa;YAChB,OAAO,EAAE,CAAC;QAEZ;YACE,MAAM,IAAI,iBAAQ,CAAC,wBAAwB,EAAE,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;IAC5E,CAAC;AACH,CAAC,CAAC;AAjBW,QAAA,sBAAsB,0BAiBjC"}
@@ -0,0 +1,10 @@
1
+ /// <reference types="node" />
2
+ import { Encryption, ShaHash } from "../../../types";
3
+ type Options = {
4
+ encryption: Encryption;
5
+ hash?: ShaHash;
6
+ initialKeyringMaterial: Buffer;
7
+ };
8
+ export declare const _createKeyDerivation: ({ encryption, hash, initialKeyringMaterial, }: Options) => Buffer;
9
+ export {};
10
+ //# sourceMappingURL=create-key-derivation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-key-derivation.d.ts","sourceRoot":"","sources":["../../../../../src/src/utils/private/secret/create-key-derivation.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAGrD,KAAK,OAAO,GAAG;IACb,UAAU,EAAE,UAAU,CAAC;IACvB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,sBAAsB,EAAE,MAAM,CAAC;CAChC,CAAC;AAkBF,eAAO,MAAM,oBAAoB,kDAI9B,OAAO,KAAG,MAsBZ,CAAC"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports._createKeyDerivation = void 0;
4
+ const crypto_1 = require("crypto");
5
+ const errors_1 = require("../../../errors");
6
+ const calculate_secret_length_1 = require("./calculate-secret-length");
7
+ const getHashLength = (hash) => {
8
+ switch (hash) {
9
+ case "sha256":
10
+ return 32;
11
+ case "sha384":
12
+ return 48;
13
+ case "sha512":
14
+ return 64;
15
+ default:
16
+ throw new errors_1.AesError("Unexpected hash algorithm", { debug: { hash } });
17
+ }
18
+ };
19
+ const _createKeyDerivation = ({ encryption, hash = "sha256", initialKeyringMaterial, }) => {
20
+ const length = (0, calculate_secret_length_1._calculateSecretLength)(encryption);
21
+ const hashLength = getHashLength(hash);
22
+ const prk = (0, crypto_1.createHmac)(hash, Buffer.alloc(hashLength, 0)).update(initialKeyringMaterial).digest();
23
+ const blocks = [];
24
+ let block = Buffer.alloc(0);
25
+ for (let i = 1; blocks.length * hashLength < length; i++) {
26
+ block = (0, crypto_1.createHmac)(hash, prk)
27
+ .update(block)
28
+ .update(Buffer.from([i]))
29
+ .digest();
30
+ blocks.push(block);
31
+ }
32
+ return Buffer.concat(blocks).subarray(0, length);
33
+ };
34
+ exports._createKeyDerivation = _createKeyDerivation;
35
+ //# sourceMappingURL=create-key-derivation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-key-derivation.js","sourceRoot":"","sources":["../../../../../src/src/utils/private/secret/create-key-derivation.ts"],"names":[],"mappings":";;;AAAA,mCAAoC;AACpC,4CAA2C;AAE3C,uEAAmE;AAQnE,MAAM,aAAa,GAAG,CAAC,IAAa,EAAU,EAAE;IAC9C,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,QAAQ;YACX,OAAO,EAAE,CAAC;QAEZ,KAAK,QAAQ;YACX,OAAO,EAAE,CAAC;QAEZ,KAAK,QAAQ;YACX,OAAO,EAAE,CAAC;QAEZ;YACE,MAAM,IAAI,iBAAQ,CAAC,2BAA2B,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACzE,CAAC;AACH,CAAC,CAAC;AAEK,MAAM,oBAAoB,GAAG,CAAC,EACnC,UAAU,EACV,IAAI,GAAG,QAAQ,EACf,sBAAsB,GACd,EAAU,EAAE;IACpB,MAAM,MAAM,GAAG,IAAA,gDAAsB,EAAC,UAAU,CAAC,CAAC;IAClD,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAGvC,MAAM,GAAG,GAAG,IAAA,mBAAU,EAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,MAAM,EAAE,CAAC;IAGlG,MAAM,MAAM,GAAG,EAAE,CAAC;IAClB,IAAI,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAE5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,UAAU,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzD,KAAK,GAAG,IAAA,mBAAU,EAAC,IAAI,EAAE,GAAG,CAAC;aAC1B,MAAM,CAAC,KAAK,CAAC;aACb,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACxB,MAAM,EAAE,CAAC;QAEZ,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IAGD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AACnD,CAAC,CAAC;AA1BW,QAAA,oBAAoB,wBA0B/B"}
package/package.json ADDED
@@ -0,0 +1,33 @@
1
+ {
2
+ "name": "@lindorm/aes",
3
+ "version": "0.1.0",
4
+ "license": "AGPL-3.0-or-later",
5
+ "author": "Jonn Nilsson",
6
+ "repository": {
7
+ "url": "https://github.com/lindorm-io/monorepo",
8
+ "directory": "packages/aes"
9
+ },
10
+ "bugs": "https://github.com/lindorm-io/monorepo/issues",
11
+ "publishConfig": {
12
+ "access": "public"
13
+ },
14
+ "main": "dist/index.js",
15
+ "typings": "dist/index.d.ts",
16
+ "scripts": {
17
+ "build": "rimraf dist && tsc -b ./tsconfig.build.json",
18
+ "example": "ts-node example",
19
+ "integration": "compd --file docker-compose.yml jest --config jest.config.integration.js --watch --",
20
+ "test:ci": "npm run test:unit",
21
+ "test:integration": "jest --config jest.config.integration.js --",
22
+ "test:unit": "jest --config jest.config.js --",
23
+ "test": "jest --watch --",
24
+ "typecheck:ci": "tsc",
25
+ "typecheck": "tsc --watch",
26
+ "update": "ncu -u"
27
+ },
28
+ "dependencies": {
29
+ "@lindorm/errors": "^0.1.4",
30
+ "@lindorm/kryptos": "^0.2.0"
31
+ },
32
+ "gitHead": "8e11c3e24662560f47f45e9f014d985d2e15a68f"
33
+ }