@lindorm/aes 0.1.3 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +26 -0
- package/dist/classes/AesKit.d.ts +2 -5
- package/dist/classes/AesKit.d.ts.map +1 -1
- package/dist/classes/AesKit.js +9 -21
- package/dist/classes/AesKit.js.map +1 -1
- package/dist/constants/private/format.d.ts +2 -0
- package/dist/constants/private/format.d.ts.map +1 -0
- package/dist/constants/private/format.js +5 -0
- package/dist/constants/private/format.js.map +1 -0
- package/dist/constants/version.d.ts +1 -1
- package/dist/constants/version.js +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/types/aes-cipher.d.ts +2 -2
- package/dist/types/aes-cipher.d.ts.map +1 -1
- package/dist/types/aes-data.d.ts +11 -11
- package/dist/types/aes-data.d.ts.map +1 -1
- package/dist/types/aes-encryption-data.d.ts +11 -7
- package/dist/types/aes-encryption-data.d.ts.map +1 -1
- package/dist/types/aes-kit.d.ts +3 -7
- package/dist/types/aes-kit.d.ts.map +1 -1
- package/dist/types/curve.d.ts +4 -0
- package/dist/types/curve.d.ts.map +1 -0
- package/dist/types/curve.js +3 -0
- package/dist/types/curve.js.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/private/aes-key-derivation.d.ts +2 -0
- package/dist/types/private/aes-key-derivation.d.ts.map +1 -0
- package/dist/types/private/aes-key-derivation.js +3 -0
- package/dist/types/private/aes-key-derivation.js.map +1 -0
- package/dist/types/private/aes-string.d.ts +19 -0
- package/dist/types/private/aes-string.d.ts.map +1 -0
- package/dist/types/private/aes-string.js +3 -0
- package/dist/types/private/aes-string.js.map +1 -0
- package/dist/types/{auth-tag.d.ts → private/auth-tag.d.ts} +7 -9
- package/dist/types/private/auth-tag.d.ts.map +1 -0
- package/dist/types/{auth-tag.js.map → private/auth-tag.js.map} +1 -1
- package/dist/types/private/content-encryption-key.d.ts +32 -0
- package/dist/types/private/content-encryption-key.d.ts.map +1 -0
- package/dist/types/private/content-encryption-key.js +3 -0
- package/dist/types/private/content-encryption-key.js.map +1 -0
- package/dist/types/private/index.d.ts +6 -0
- package/dist/types/private/index.d.ts.map +1 -0
- package/dist/{enums → types/private}/index.js +5 -4
- package/dist/types/private/index.js.map +1 -0
- package/dist/types/private/key-wrap.d.ts +23 -0
- package/dist/types/private/key-wrap.d.ts.map +1 -0
- package/dist/types/private/key-wrap.js +3 -0
- package/dist/types/private/key-wrap.js.map +1 -0
- package/dist/types/types.d.ts +3 -9
- package/dist/types/types.d.ts.map +1 -1
- package/dist/utils/private/aes-data/auth-tag-hmac.d.ts +5 -0
- package/dist/utils/private/aes-data/auth-tag-hmac.d.ts.map +1 -0
- package/dist/utils/private/aes-data/auth-tag-hmac.js +37 -0
- package/dist/utils/private/aes-data/auth-tag-hmac.js.map +1 -0
- package/dist/utils/private/aes-data/auth-tag.d.ts +5 -0
- package/dist/utils/private/aes-data/auth-tag.d.ts.map +1 -0
- package/dist/utils/private/aes-data/auth-tag.js +52 -0
- package/dist/utils/private/aes-data/auth-tag.js.map +1 -0
- package/dist/utils/private/aes-data/get-initialisation-vector.d.ts +4 -0
- package/dist/utils/private/aes-data/get-initialisation-vector.d.ts.map +1 -0
- package/dist/utils/private/{get-initialisation-vector.js → aes-data/get-initialisation-vector.js} +7 -7
- package/dist/utils/private/aes-data/get-initialisation-vector.js.map +1 -0
- package/dist/utils/private/aes-data/split-content-encryption-key.d.ts +9 -0
- package/dist/utils/private/aes-data/split-content-encryption-key.d.ts.map +1 -0
- package/dist/utils/private/aes-data/split-content-encryption-key.js +31 -0
- package/dist/utils/private/aes-data/split-content-encryption-key.js.map +1 -0
- package/dist/utils/private/aes-data.d.ts.map +1 -1
- package/dist/utils/private/aes-data.js +36 -25
- package/dist/utils/private/aes-data.js.map +1 -1
- package/dist/utils/private/calculate/calculate-aes-encryption.d.ts +4 -0
- package/dist/utils/private/calculate/calculate-aes-encryption.d.ts.map +1 -0
- package/dist/utils/private/calculate/calculate-aes-encryption.js +24 -0
- package/dist/utils/private/calculate/calculate-aes-encryption.js.map +1 -0
- package/dist/utils/private/calculate/calculate-content-encryption-key-size.d.ts +4 -0
- package/dist/utils/private/calculate/calculate-content-encryption-key-size.d.ts.map +1 -0
- package/dist/utils/private/calculate/calculate-content-encryption-key-size.js +24 -0
- package/dist/utils/private/calculate/calculate-content-encryption-key-size.js.map +1 -0
- package/dist/utils/private/calculate/calculate-key-wrap-encryption.d.ts +5 -0
- package/dist/utils/private/calculate/calculate-key-wrap-encryption.d.ts.map +1 -0
- package/dist/utils/private/calculate/calculate-key-wrap-encryption.js +32 -0
- package/dist/utils/private/calculate/calculate-key-wrap-encryption.js.map +1 -0
- package/dist/utils/private/calculate/calculate-key-wrap-size.d.ts +4 -0
- package/dist/utils/private/calculate/calculate-key-wrap-size.d.ts.map +1 -0
- package/dist/utils/private/calculate/calculate-key-wrap-size.js +30 -0
- package/dist/utils/private/calculate/calculate-key-wrap-size.js.map +1 -0
- package/dist/utils/private/calculate/calculate-pbkdf-hash.d.ts +4 -0
- package/dist/utils/private/calculate/calculate-pbkdf-hash.d.ts.map +1 -0
- package/dist/utils/private/calculate/calculate-pbkdf-hash.js +18 -0
- package/dist/utils/private/calculate/calculate-pbkdf-hash.js.map +1 -0
- package/dist/utils/private/calculate/calculate-rsa-oaep-hash.d.ts +4 -0
- package/dist/utils/private/calculate/calculate-rsa-oaep-hash.d.ts.map +1 -0
- package/dist/utils/private/calculate/calculate-rsa-oaep-hash.js +22 -0
- package/dist/utils/private/calculate/calculate-rsa-oaep-hash.js.map +1 -0
- package/dist/utils/private/decode-aes-string.d.ts.map +1 -1
- package/dist/utils/private/decode-aes-string.js +18 -15
- package/dist/utils/private/decode-aes-string.js.map +1 -1
- package/dist/utils/private/diffie-hellman/diffie-hellman-key-wrap.d.ts +4 -0
- package/dist/utils/private/diffie-hellman/diffie-hellman-key-wrap.d.ts.map +1 -0
- package/dist/utils/private/diffie-hellman/diffie-hellman-key-wrap.js +53 -0
- package/dist/utils/private/diffie-hellman/diffie-hellman-key-wrap.js.map +1 -0
- package/dist/utils/private/diffie-hellman/diffie-hellman.d.ts +4 -0
- package/dist/utils/private/diffie-hellman/diffie-hellman.d.ts.map +1 -0
- package/dist/utils/private/diffie-hellman/diffie-hellman.js +40 -0
- package/dist/utils/private/diffie-hellman/diffie-hellman.js.map +1 -0
- package/dist/utils/private/diffie-hellman/shared-secret.d.ts +13 -0
- package/dist/utils/private/diffie-hellman/shared-secret.d.ts.map +1 -0
- package/dist/utils/private/diffie-hellman/shared-secret.js +68 -0
- package/dist/utils/private/diffie-hellman/shared-secret.js.map +1 -0
- package/dist/utils/private/encode-aes-string.d.ts +1 -1
- package/dist/utils/private/encode-aes-string.d.ts.map +1 -1
- package/dist/utils/private/encode-aes-string.js +16 -11
- package/dist/utils/private/encode-aes-string.js.map +1 -1
- package/dist/utils/private/get-key/get-decryption-key.d.ts +3 -0
- package/dist/utils/private/get-key/get-decryption-key.d.ts.map +1 -0
- package/dist/utils/private/get-key/get-decryption-key.js +26 -0
- package/dist/utils/private/get-key/get-decryption-key.js.map +1 -0
- package/dist/utils/private/get-key/get-encryption-key.d.ts +3 -0
- package/dist/utils/private/get-key/get-encryption-key.d.ts.map +1 -0
- package/dist/utils/private/get-key/get-encryption-key.js +26 -0
- package/dist/utils/private/get-key/get-encryption-key.js.map +1 -0
- package/dist/utils/private/key-derivation/hkdf.d.ts +14 -0
- package/dist/utils/private/key-derivation/hkdf.d.ts.map +1 -0
- package/dist/utils/private/key-derivation/hkdf.js +12 -0
- package/dist/utils/private/key-derivation/hkdf.js.map +1 -0
- package/dist/utils/private/key-derivation/pbkdf.d.ts +17 -0
- package/dist/utils/private/key-derivation/pbkdf.d.ts.map +1 -0
- package/dist/utils/private/key-derivation/pbkdf.js +13 -0
- package/dist/utils/private/key-derivation/pbkdf.js.map +1 -0
- package/dist/utils/private/key-types/get-ec-keys.d.ts +4 -0
- package/dist/utils/private/key-types/get-ec-keys.d.ts.map +1 -0
- package/dist/utils/private/key-types/get-ec-keys.js +43 -0
- package/dist/utils/private/key-types/get-ec-keys.js.map +1 -0
- package/dist/utils/private/key-types/get-oct-keys.d.ts +4 -0
- package/dist/utils/private/key-types/get-oct-keys.d.ts.map +1 -0
- package/dist/utils/private/key-types/get-oct-keys.js +52 -0
- package/dist/utils/private/key-types/get-oct-keys.js.map +1 -0
- package/dist/utils/private/key-types/get-okp-keys.d.ts +4 -0
- package/dist/utils/private/key-types/get-okp-keys.d.ts.map +1 -0
- package/dist/utils/private/key-types/get-okp-keys.js +43 -0
- package/dist/utils/private/key-types/get-okp-keys.js.map +1 -0
- package/dist/utils/private/key-types/get-rsa-keys.d.ts +4 -0
- package/dist/utils/private/key-types/get-rsa-keys.d.ts.map +1 -0
- package/dist/utils/private/key-types/get-rsa-keys.js +58 -0
- package/dist/utils/private/key-types/get-rsa-keys.js.map +1 -0
- package/dist/utils/private/key-wrap/ecb-key-wrap.d.ts +4 -0
- package/dist/utils/private/key-wrap/ecb-key-wrap.d.ts.map +1 -0
- package/dist/utils/private/key-wrap/ecb-key-wrap.js +66 -0
- package/dist/utils/private/key-wrap/ecb-key-wrap.js.map +1 -0
- package/dist/utils/private/key-wrap/gcm-key-wrap.d.ts +4 -0
- package/dist/utils/private/key-wrap/gcm-key-wrap.d.ts.map +1 -0
- package/dist/utils/private/key-wrap/gcm-key-wrap.js +36 -0
- package/dist/utils/private/key-wrap/gcm-key-wrap.js.map +1 -0
- package/dist/utils/private/key-wrap/key-wrap.d.ts +4 -0
- package/dist/utils/private/key-wrap/key-wrap.d.ts.map +1 -0
- package/dist/utils/private/key-wrap/key-wrap.js +49 -0
- package/dist/utils/private/key-wrap/key-wrap.js.map +1 -0
- package/dist/utils/private/oct/get-oct-dir-keys.d.ts +4 -0
- package/dist/utils/private/oct/get-oct-dir-keys.d.ts.map +1 -0
- package/dist/utils/private/oct/get-oct-dir-keys.js +35 -0
- package/dist/utils/private/oct/get-oct-dir-keys.js.map +1 -0
- package/dist/utils/private/oct/get-oct-key-key-wrap.d.ts +4 -0
- package/dist/utils/private/oct/get-oct-key-key-wrap.d.ts.map +1 -0
- package/dist/utils/private/oct/get-oct-key-key-wrap.js +58 -0
- package/dist/utils/private/oct/get-oct-key-key-wrap.js.map +1 -0
- package/dist/utils/private/oct/get-oct-pbkdf-key-wrap-keys.d.ts +4 -0
- package/dist/utils/private/oct/get-oct-pbkdf-key-wrap-keys.d.ts.map +1 -0
- package/dist/utils/private/oct/get-oct-pbkdf-key-wrap-keys.js +59 -0
- package/dist/utils/private/oct/get-oct-pbkdf-key-wrap-keys.js.map +1 -0
- package/package.json +8 -5
- package/dist/enums/AesEncryption.d.ts +0 -9
- package/dist/enums/AesEncryption.d.ts.map +0 -1
- package/dist/enums/AesEncryption.js +0 -13
- package/dist/enums/AesEncryption.js.map +0 -1
- package/dist/enums/AesEncryptionKeyAlgorithm.d.ts +0 -9
- package/dist/enums/AesEncryptionKeyAlgorithm.d.ts.map +0 -1
- package/dist/enums/AesEncryptionKeyAlgorithm.js +0 -13
- package/dist/enums/AesEncryptionKeyAlgorithm.js.map +0 -1
- package/dist/enums/AesFormat.d.ts +0 -6
- package/dist/enums/AesFormat.d.ts.map +0 -1
- package/dist/enums/AesFormat.js +0 -10
- package/dist/enums/AesFormat.js.map +0 -1
- package/dist/enums/AesIntegrityHash.d.ts +0 -6
- package/dist/enums/AesIntegrityHash.d.ts.map +0 -1
- package/dist/enums/AesIntegrityHash.js +0 -10
- package/dist/enums/AesIntegrityHash.js.map +0 -1
- package/dist/enums/index.d.ts +0 -5
- package/dist/enums/index.d.ts.map +0 -1
- package/dist/enums/index.js.map +0 -1
- package/dist/types/auth-tag.d.ts.map +0 -1
- package/dist/utils/private/auth-tag-hmac.d.ts +0 -5
- package/dist/utils/private/auth-tag-hmac.d.ts.map +0 -1
- package/dist/utils/private/auth-tag-hmac.js +0 -25
- package/dist/utils/private/auth-tag-hmac.js.map +0 -1
- package/dist/utils/private/auth-tag.d.ts +0 -5
- package/dist/utils/private/auth-tag.d.ts.map +0 -1
- package/dist/utils/private/auth-tag.js +0 -58
- package/dist/utils/private/auth-tag.js.map +0 -1
- package/dist/utils/private/ec/get-ec-keys.d.ts +0 -21
- package/dist/utils/private/ec/get-ec-keys.d.ts.map +0 -1
- package/dist/utils/private/ec/get-ec-keys.js +0 -55
- package/dist/utils/private/ec/get-ec-keys.js.map +0 -1
- package/dist/utils/private/ec/get-key-curve.d.ts +0 -4
- package/dist/utils/private/ec/get-key-curve.d.ts.map +0 -1
- package/dist/utils/private/ec/get-key-curve.js +0 -37
- package/dist/utils/private/ec/get-key-curve.js.map +0 -1
- package/dist/utils/private/get-decryption-key.d.ts +0 -13
- package/dist/utils/private/get-decryption-key.d.ts.map +0 -1
- package/dist/utils/private/get-decryption-key.js +0 -33
- package/dist/utils/private/get-decryption-key.js.map +0 -1
- package/dist/utils/private/get-encryption-keys.d.ts +0 -16
- package/dist/utils/private/get-encryption-keys.d.ts.map +0 -1
- package/dist/utils/private/get-encryption-keys.js +0 -23
- package/dist/utils/private/get-encryption-keys.js.map +0 -1
- package/dist/utils/private/get-initialisation-vector.d.ts +0 -4
- package/dist/utils/private/get-initialisation-vector.d.ts.map +0 -1
- package/dist/utils/private/get-initialisation-vector.js.map +0 -1
- package/dist/utils/private/oct/get-oct-keys.d.ts +0 -14
- package/dist/utils/private/oct/get-oct-keys.d.ts.map +0 -1
- package/dist/utils/private/oct/get-oct-keys.js +0 -24
- package/dist/utils/private/oct/get-oct-keys.js.map +0 -1
- package/dist/utils/private/rsa/generate-encryption-key.d.ts +0 -4
- package/dist/utils/private/rsa/generate-encryption-key.d.ts.map +0 -1
- package/dist/utils/private/rsa/generate-encryption-key.js +0 -8
- package/dist/utils/private/rsa/generate-encryption-key.js.map +0 -1
- package/dist/utils/private/rsa/get-oaep-hash.d.ts +0 -3
- package/dist/utils/private/rsa/get-oaep-hash.d.ts.map +0 -1
- package/dist/utils/private/rsa/get-oaep-hash.js +0 -22
- package/dist/utils/private/rsa/get-oaep-hash.js.map +0 -1
- package/dist/utils/private/rsa/get-rsa-keys.d.ts +0 -21
- package/dist/utils/private/rsa/get-rsa-keys.d.ts.map +0 -1
- package/dist/utils/private/rsa/get-rsa-keys.js +0 -22
- package/dist/utils/private/rsa/get-rsa-keys.js.map +0 -1
- package/dist/utils/private/rsa/public-encryption-key.d.ts +0 -17
- package/dist/utils/private/rsa/public-encryption-key.d.ts.map +0 -1
- package/dist/utils/private/rsa/public-encryption-key.js +0 -56
- package/dist/utils/private/rsa/public-encryption-key.js.map +0 -1
- package/dist/utils/private/secret/calculate-secret-length.d.ts +0 -3
- package/dist/utils/private/secret/calculate-secret-length.d.ts.map +0 -1
- package/dist/utils/private/secret/calculate-secret-length.js +0 -21
- package/dist/utils/private/secret/calculate-secret-length.js.map +0 -1
- package/dist/utils/private/secret/create-key-derivation.d.ts +0 -10
- package/dist/utils/private/secret/create-key-derivation.d.ts.map +0 -1
- package/dist/utils/private/secret/create-key-derivation.js +0 -35
- package/dist/utils/private/secret/create-key-derivation.js.map +0 -1
- /package/dist/types/{auth-tag.js → private/auth-tag.js} +0 -0
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports._decodeAesString = void 0;
|
|
4
|
+
const format_1 = require("../../constants/private/format");
|
|
4
5
|
const errors_1 = require("../../errors");
|
|
5
|
-
const regex = /(?<key>[a-
|
|
6
|
+
const regex = /(?<key>[a-z0-9]+)=(?<value>.+)/g;
|
|
6
7
|
const _decodeAesString = (data) => {
|
|
7
|
-
const [_,
|
|
8
|
-
const
|
|
8
|
+
const [_, enc, array, content] = data.split("$");
|
|
9
|
+
const encryption = enc;
|
|
9
10
|
const items = array.split(",");
|
|
10
11
|
const values = {};
|
|
11
12
|
for (const item of items) {
|
|
@@ -17,21 +18,23 @@ const _decodeAesString = (data) => {
|
|
|
17
18
|
}
|
|
18
19
|
values[match.groups.key] = match.groups.value;
|
|
19
20
|
}
|
|
20
|
-
const {
|
|
21
|
+
const { v, kid, alg, iv, tag, hks, p2c, p2s, pei, pek, pet, crv: curve, kty: keyType, x, y, } = values;
|
|
21
22
|
const crv = curve;
|
|
22
|
-
const format = f;
|
|
23
23
|
const kty = keyType;
|
|
24
24
|
return {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
25
|
+
authTag: Buffer.from(tag, format_1._B64U),
|
|
26
|
+
content: Buffer.from(content, format_1._B64U),
|
|
27
|
+
encryption: encryption,
|
|
28
|
+
algorithm: alg,
|
|
29
|
+
hkdfSalt: hks ? Buffer.from(hks, format_1._B64U) : undefined,
|
|
30
|
+
initialisationVector: Buffer.from(iv, format_1._B64U),
|
|
31
|
+
keyId: Buffer.from(kid, format_1._B64U),
|
|
32
|
+
pbkdfIterations: p2c ? parseInt(p2c, 10) : undefined,
|
|
33
|
+
pbkdfSalt: p2s ? Buffer.from(p2s, format_1._B64U) : undefined,
|
|
34
|
+
publicEncryptionJwk: crv && x && kty ? { crv, x, y, kty } : undefined,
|
|
35
|
+
publicEncryptionIv: pei ? Buffer.from(pei, format_1._B64U) : undefined,
|
|
36
|
+
publicEncryptionKey: pek ? Buffer.from(pek, format_1._B64U) : undefined,
|
|
37
|
+
publicEncryptionTag: pet ? Buffer.from(pet, format_1._B64U) : undefined,
|
|
35
38
|
version: parseInt(v, 10),
|
|
36
39
|
};
|
|
37
40
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decode-aes-string.js","sourceRoot":"","sources":["../../../src/utils/private/decode-aes-string.ts"],"names":[],"mappings":";;;AACA,yCAAwC;
|
|
1
|
+
{"version":3,"file":"decode-aes-string.js","sourceRoot":"","sources":["../../../src/utils/private/decode-aes-string.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { CreateCekOptions, CreateCekResult, DecryptCekOptions, DecryptCekResult } from "../../../types/private";
|
|
2
|
+
export declare const _getDiffieHellmanKeyWrapEncryptionKey: ({ encryption, kryptos, }: CreateCekOptions) => CreateCekResult;
|
|
3
|
+
export declare const _getDiffieHellmanKeyWrapDecryptionKey: ({ hkdfSalt, kryptos, publicEncryptionJwk, publicEncryptionIv, publicEncryptionKey, publicEncryptionTag, }: DecryptCekOptions) => DecryptCekResult;
|
|
4
|
+
//# sourceMappingURL=diffie-hellman-key-wrap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diffie-hellman-key-wrap.d.ts","sourceRoot":"","sources":["../../../../src/utils/private/diffie-hellman/diffie-hellman-key-wrap.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,wBAAwB,CAAC;AAOhC,eAAO,MAAM,qCAAqC,6BAG/C,gBAAgB,KAAG,eAyBrB,CAAC;AAEF,eAAO,MAAM,qCAAqC,8GAO/C,iBAAiB,KAAG,gBAoBtB,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports._getDiffieHellmanKeyWrapDecryptionKey = exports._getDiffieHellmanKeyWrapEncryptionKey = void 0;
|
|
4
|
+
const crypto_1 = require("crypto");
|
|
5
|
+
const errors_1 = require("../../../errors");
|
|
6
|
+
const calculate_content_encryption_key_size_1 = require("../calculate/calculate-content-encryption-key-size");
|
|
7
|
+
const calculate_key_wrap_size_1 = require("../calculate/calculate-key-wrap-size");
|
|
8
|
+
const hkdf_1 = require("../key-derivation/hkdf");
|
|
9
|
+
const key_wrap_1 = require("../key-wrap/key-wrap");
|
|
10
|
+
const shared_secret_1 = require("./shared-secret");
|
|
11
|
+
const _getDiffieHellmanKeyWrapEncryptionKey = ({ encryption, kryptos, }) => {
|
|
12
|
+
const { publicEncryptionJwk, sharedSecret } = (0, shared_secret_1._generateSharedSecret)(kryptos);
|
|
13
|
+
const cekSize = (0, calculate_content_encryption_key_size_1._calculateContentEncryptionKeySize)(encryption);
|
|
14
|
+
const contentEncryptionKey = (0, crypto_1.randomBytes)(cekSize);
|
|
15
|
+
const { derivedKey, hkdfSalt } = (0, hkdf_1._hkdf)({
|
|
16
|
+
derivationKey: sharedSecret,
|
|
17
|
+
keyLength: (0, calculate_key_wrap_size_1._calculateKeyWrapSize)(kryptos.algorithm),
|
|
18
|
+
});
|
|
19
|
+
const { publicEncryptionKey, publicEncryptionIv, publicEncryptionTag } = (0, key_wrap_1._keyWrap)({
|
|
20
|
+
contentEncryptionKey,
|
|
21
|
+
kryptos,
|
|
22
|
+
keyEncryptionKey: derivedKey,
|
|
23
|
+
});
|
|
24
|
+
return {
|
|
25
|
+
contentEncryptionKey,
|
|
26
|
+
hkdfSalt,
|
|
27
|
+
publicEncryptionJwk,
|
|
28
|
+
publicEncryptionKey,
|
|
29
|
+
publicEncryptionIv,
|
|
30
|
+
publicEncryptionTag,
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
exports._getDiffieHellmanKeyWrapEncryptionKey = _getDiffieHellmanKeyWrapEncryptionKey;
|
|
34
|
+
const _getDiffieHellmanKeyWrapDecryptionKey = ({ hkdfSalt, kryptos, publicEncryptionJwk, publicEncryptionIv, publicEncryptionKey, publicEncryptionTag, }) => {
|
|
35
|
+
if (!publicEncryptionKey) {
|
|
36
|
+
throw new errors_1.AesError("Missing publicEncryptionKey");
|
|
37
|
+
}
|
|
38
|
+
const sharedSecret = (0, shared_secret_1._calculateSharedSecret)({ kryptos, publicEncryptionJwk });
|
|
39
|
+
const { derivedKey } = (0, hkdf_1._hkdf)({
|
|
40
|
+
derivationKey: sharedSecret,
|
|
41
|
+
hkdfSalt,
|
|
42
|
+
keyLength: (0, calculate_key_wrap_size_1._calculateKeyWrapSize)(kryptos.algorithm),
|
|
43
|
+
});
|
|
44
|
+
return (0, key_wrap_1._keyUnwrap)({
|
|
45
|
+
keyEncryptionKey: derivedKey,
|
|
46
|
+
kryptos,
|
|
47
|
+
publicEncryptionIv,
|
|
48
|
+
publicEncryptionKey,
|
|
49
|
+
publicEncryptionTag,
|
|
50
|
+
});
|
|
51
|
+
};
|
|
52
|
+
exports._getDiffieHellmanKeyWrapDecryptionKey = _getDiffieHellmanKeyWrapDecryptionKey;
|
|
53
|
+
//# sourceMappingURL=diffie-hellman-key-wrap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diffie-hellman-key-wrap.js","sourceRoot":"","sources":["../../../../src/utils/private/diffie-hellman/diffie-hellman-key-wrap.ts"],"names":[],"mappings":";;;AAAA,mCAAqC;AACrC,4CAA2C;AAO3C,8GAAwG;AACxG,kFAA6E;AAC7E,iDAA+C;AAC/C,mDAA4D;AAC5D,mDAAgF;AAEzE,MAAM,qCAAqC,GAAG,CAAC,EACpD,UAAU,EACV,OAAO,GACU,EAAmB,EAAE;IACtC,MAAM,EAAE,mBAAmB,EAAE,YAAY,EAAE,GAAG,IAAA,qCAAqB,EAAC,OAAO,CAAC,CAAC;IAE7E,MAAM,OAAO,GAAG,IAAA,0EAAkC,EAAC,UAAU,CAAC,CAAC;IAC/D,MAAM,oBAAoB,GAAG,IAAA,oBAAW,EAAC,OAAO,CAAC,CAAC;IAElD,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,IAAA,YAAK,EAAC;QACrC,aAAa,EAAE,YAAY;QAC3B,SAAS,EAAE,IAAA,+CAAqB,EAAC,OAAO,CAAC,SAAS,CAAC;KACpD,CAAC,CAAC;IAEH,MAAM,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,GAAG,IAAA,mBAAQ,EAAC;QAChF,oBAAoB;QACpB,OAAO;QACP,gBAAgB,EAAE,UAAU;KAC7B,CAAC,CAAC;IAEH,OAAO;QACL,oBAAoB;QACpB,QAAQ;QACR,mBAAmB;QACnB,mBAAmB;QACnB,kBAAkB;QAClB,mBAAmB;KACpB,CAAC;AACJ,CAAC,CAAC;AA5BW,QAAA,qCAAqC,yCA4BhD;AAEK,MAAM,qCAAqC,GAAG,CAAC,EACpD,QAAQ,EACR,OAAO,EACP,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,GACD,EAAoB,EAAE;IACxC,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,MAAM,IAAI,iBAAQ,CAAC,6BAA6B,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,YAAY,GAAG,IAAA,sCAAsB,EAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC,CAAC;IAE9E,MAAM,EAAE,UAAU,EAAE,GAAG,IAAA,YAAK,EAAC;QAC3B,aAAa,EAAE,YAAY;QAC3B,QAAQ;QACR,SAAS,EAAE,IAAA,+CAAqB,EAAC,OAAO,CAAC,SAAS,CAAC;KACpD,CAAC,CAAC;IAEH,OAAO,IAAA,qBAAU,EAAC;QAChB,gBAAgB,EAAE,UAAU;QAC5B,OAAO;QACP,kBAAkB;QAClB,mBAAmB;QACnB,mBAAmB;KACpB,CAAC,CAAC;AACL,CAAC,CAAC;AA3BW,QAAA,qCAAqC,yCA2BhD"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { CreateCekOptions, CreateCekResult, DecryptCekOptions, DecryptCekResult } from "../../../types/private";
|
|
2
|
+
export declare const _getDiffieHellmanEncryptionKey: ({ encryption, kryptos, }: CreateCekOptions) => CreateCekResult;
|
|
3
|
+
export declare const _getDiffieHellmanDecryptionKey: ({ encryption, hkdfSalt, kryptos, publicEncryptionJwk, }: DecryptCekOptions) => DecryptCekResult;
|
|
4
|
+
//# sourceMappingURL=diffie-hellman.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diffie-hellman.d.ts","sourceRoot":"","sources":["../../../../src/utils/private/diffie-hellman/diffie-hellman.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,wBAAwB,CAAC;AAKhC,eAAO,MAAM,8BAA8B,6BAGxC,gBAAgB,KAAG,eAcrB,CAAC;AAEF,eAAO,MAAM,8BAA8B,4DAKxC,iBAAiB,KAAG,gBAkBtB,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports._getDiffieHellmanDecryptionKey = exports._getDiffieHellmanEncryptionKey = void 0;
|
|
4
|
+
const kryptos_1 = require("@lindorm/kryptos");
|
|
5
|
+
const errors_1 = require("../../../errors");
|
|
6
|
+
const calculate_content_encryption_key_size_1 = require("../calculate/calculate-content-encryption-key-size");
|
|
7
|
+
const hkdf_1 = require("../key-derivation/hkdf");
|
|
8
|
+
const shared_secret_1 = require("./shared-secret");
|
|
9
|
+
const _getDiffieHellmanEncryptionKey = ({ encryption, kryptos, }) => {
|
|
10
|
+
const { publicEncryptionJwk, sharedSecret } = (0, shared_secret_1._generateSharedSecret)(kryptos);
|
|
11
|
+
const keyLength = (0, calculate_content_encryption_key_size_1._calculateContentEncryptionKeySize)(encryption);
|
|
12
|
+
const { derivedKey, hkdfSalt } = (0, hkdf_1._hkdf)({
|
|
13
|
+
derivationKey: sharedSecret,
|
|
14
|
+
keyLength,
|
|
15
|
+
});
|
|
16
|
+
return {
|
|
17
|
+
contentEncryptionKey: derivedKey,
|
|
18
|
+
hkdfSalt,
|
|
19
|
+
publicEncryptionJwk,
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
exports._getDiffieHellmanEncryptionKey = _getDiffieHellmanEncryptionKey;
|
|
23
|
+
const _getDiffieHellmanDecryptionKey = ({ encryption, hkdfSalt, kryptos, publicEncryptionJwk, }) => {
|
|
24
|
+
if (!kryptos_1.Kryptos.isEc(kryptos) && !kryptos_1.Kryptos.isOkp(kryptos)) {
|
|
25
|
+
throw new errors_1.AesError("Invalid kryptos type");
|
|
26
|
+
}
|
|
27
|
+
if (!publicEncryptionJwk) {
|
|
28
|
+
throw new errors_1.AesError("Missing publicEncryptionJwk");
|
|
29
|
+
}
|
|
30
|
+
const sharedSecret = (0, shared_secret_1._calculateSharedSecret)({ kryptos, publicEncryptionJwk });
|
|
31
|
+
const keyLength = (0, calculate_content_encryption_key_size_1._calculateContentEncryptionKeySize)(encryption);
|
|
32
|
+
const { derivedKey } = (0, hkdf_1._hkdf)({
|
|
33
|
+
derivationKey: sharedSecret,
|
|
34
|
+
hkdfSalt,
|
|
35
|
+
keyLength,
|
|
36
|
+
});
|
|
37
|
+
return { contentEncryptionKey: derivedKey };
|
|
38
|
+
};
|
|
39
|
+
exports._getDiffieHellmanDecryptionKey = _getDiffieHellmanDecryptionKey;
|
|
40
|
+
//# sourceMappingURL=diffie-hellman.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diffie-hellman.js","sourceRoot":"","sources":["../../../../src/utils/private/diffie-hellman/diffie-hellman.ts"],"names":[],"mappings":";;;AAAA,8CAA2C;AAC3C,4CAA2C;AAO3C,8GAAwG;AACxG,iDAA+C;AAC/C,mDAAgF;AAEzE,MAAM,8BAA8B,GAAG,CAAC,EAC7C,UAAU,EACV,OAAO,GACU,EAAmB,EAAE;IACtC,MAAM,EAAE,mBAAmB,EAAE,YAAY,EAAE,GAAG,IAAA,qCAAqB,EAAC,OAAO,CAAC,CAAC;IAC7E,MAAM,SAAS,GAAG,IAAA,0EAAkC,EAAC,UAAU,CAAC,CAAC;IAEjE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,IAAA,YAAK,EAAC;QACrC,aAAa,EAAE,YAAY;QAC3B,SAAS;KACV,CAAC,CAAC;IAEH,OAAO;QACL,oBAAoB,EAAE,UAAU;QAChC,QAAQ;QACR,mBAAmB;KACpB,CAAC;AACJ,CAAC,CAAC;AAjBW,QAAA,8BAA8B,kCAiBzC;AAEK,MAAM,8BAA8B,GAAG,CAAC,EAC7C,UAAU,EACV,QAAQ,EACR,OAAO,EACP,mBAAmB,GACD,EAAoB,EAAE;IACxC,IAAI,CAAC,iBAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,iBAAQ,CAAC,sBAAsB,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,MAAM,IAAI,iBAAQ,CAAC,6BAA6B,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,YAAY,GAAG,IAAA,sCAAsB,EAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC,CAAC;IAC9E,MAAM,SAAS,GAAG,IAAA,0EAAkC,EAAC,UAAU,CAAC,CAAC;IAEjE,MAAM,EAAE,UAAU,EAAE,GAAG,IAAA,YAAK,EAAC;QAC3B,aAAa,EAAE,YAAY;QAC3B,QAAQ;QACR,SAAS;KACV,CAAC,CAAC;IAEH,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,CAAC;AAC9C,CAAC,CAAC;AAvBW,QAAA,8BAA8B,kCAuBzC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { IKryptos } from "@lindorm/kryptos";
|
|
3
|
+
import { PublicEncryptionJwk } from "../../../types";
|
|
4
|
+
import { DecryptCekOptions } from "../../../types/private";
|
|
5
|
+
type GenerateResult = {
|
|
6
|
+
publicEncryptionJwk: PublicEncryptionJwk;
|
|
7
|
+
sharedSecret: Buffer;
|
|
8
|
+
};
|
|
9
|
+
type CalculateSharedSecretOptions = Pick<DecryptCekOptions, "kryptos" | "publicEncryptionJwk">;
|
|
10
|
+
export declare const _generateSharedSecret: (kryptos: IKryptos) => GenerateResult;
|
|
11
|
+
export declare const _calculateSharedSecret: ({ kryptos, publicEncryptionJwk, }: CalculateSharedSecretOptions) => Buffer;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=shared-secret.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared-secret.d.ts","sourceRoot":"","sources":["../../../../src/utils/private/diffie-hellman/shared-secret.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAW,MAAM,kBAAkB,CAAC;AAGrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,KAAK,cAAc,GAAG;IACpB,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,KAAK,4BAA4B,GAAG,IAAI,CACtC,iBAAiB,EACjB,SAAS,GAAG,qBAAqB,CAClC,CAAC;AAeF,eAAO,MAAM,qBAAqB,YAAa,QAAQ,KAAG,cA4BzD,CAAC;AAEF,eAAO,MAAM,sBAAsB,sCAGhC,4BAA4B,KAAG,MAyBjC,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports._calculateSharedSecret = exports._generateSharedSecret = void 0;
|
|
4
|
+
const kryptos_1 = require("@lindorm/kryptos");
|
|
5
|
+
const crypto_1 = require("crypto");
|
|
6
|
+
const errors_1 = require("../../../errors");
|
|
7
|
+
const _generateKryptos = (kryptos) => {
|
|
8
|
+
if (!kryptos_1.Kryptos.isEc(kryptos) && !kryptos_1.Kryptos.isOkp(kryptos)) {
|
|
9
|
+
throw new errors_1.AesError("Invalid kryptos type");
|
|
10
|
+
}
|
|
11
|
+
return kryptos_1.Kryptos.generate({
|
|
12
|
+
algorithm: kryptos.algorithm,
|
|
13
|
+
curve: kryptos.curve,
|
|
14
|
+
type: kryptos.type,
|
|
15
|
+
use: "enc",
|
|
16
|
+
});
|
|
17
|
+
};
|
|
18
|
+
const _generateSharedSecret = (kryptos) => {
|
|
19
|
+
const pek = _generateKryptos(kryptos);
|
|
20
|
+
const der = kryptos.export("der");
|
|
21
|
+
const sender = pek.export("der");
|
|
22
|
+
if (!sender.privateKey) {
|
|
23
|
+
throw new errors_1.AesError("Sender private key is missing");
|
|
24
|
+
}
|
|
25
|
+
const sharedSecret = (0, crypto_1.diffieHellman)({
|
|
26
|
+
privateKey: (0, crypto_1.createPrivateKey)({
|
|
27
|
+
key: sender.privateKey,
|
|
28
|
+
format: "der",
|
|
29
|
+
type: "pkcs8",
|
|
30
|
+
}),
|
|
31
|
+
publicKey: (0, crypto_1.createPublicKey)({
|
|
32
|
+
key: der.publicKey,
|
|
33
|
+
format: "der",
|
|
34
|
+
type: "spki",
|
|
35
|
+
}),
|
|
36
|
+
});
|
|
37
|
+
const { crv, kty, x, y } = pek.export("jwk");
|
|
38
|
+
return {
|
|
39
|
+
publicEncryptionJwk: { crv, kty, x, y },
|
|
40
|
+
sharedSecret,
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
exports._generateSharedSecret = _generateSharedSecret;
|
|
44
|
+
const _calculateSharedSecret = ({ kryptos, publicEncryptionJwk, }) => {
|
|
45
|
+
if (!publicEncryptionJwk) {
|
|
46
|
+
throw new errors_1.AesError("Missing publicEncryptionJwk");
|
|
47
|
+
}
|
|
48
|
+
const pek = kryptos_1.Kryptos.from("jwk", { alg: "ECDH-ES", use: "enc", ...publicEncryptionJwk });
|
|
49
|
+
const der = kryptos.export("der");
|
|
50
|
+
const receiver = pek.export("der");
|
|
51
|
+
if (!der.privateKey) {
|
|
52
|
+
throw new errors_1.AesError("Kryptos private key is missing");
|
|
53
|
+
}
|
|
54
|
+
return (0, crypto_1.diffieHellman)({
|
|
55
|
+
privateKey: (0, crypto_1.createPrivateKey)({
|
|
56
|
+
key: der.privateKey,
|
|
57
|
+
format: "der",
|
|
58
|
+
type: "pkcs8",
|
|
59
|
+
}),
|
|
60
|
+
publicKey: (0, crypto_1.createPublicKey)({
|
|
61
|
+
key: receiver.publicKey,
|
|
62
|
+
format: "der",
|
|
63
|
+
type: "spki",
|
|
64
|
+
}),
|
|
65
|
+
});
|
|
66
|
+
};
|
|
67
|
+
exports._calculateSharedSecret = _calculateSharedSecret;
|
|
68
|
+
//# sourceMappingURL=shared-secret.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared-secret.js","sourceRoot":"","sources":["../../../../src/utils/private/diffie-hellman/shared-secret.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { AesEncryptionData } from "../../types";
|
|
2
|
-
export declare const _encodeAesString: ({
|
|
2
|
+
export declare const _encodeAesString: ({ algorithm, authTag, content, encryption, hkdfSalt, initialisationVector, keyId, pbkdfIterations, pbkdfSalt, publicEncryptionIv, publicEncryptionJwk, publicEncryptionKey, publicEncryptionTag, version, }: AesEncryptionData) => string;
|
|
3
3
|
//# sourceMappingURL=encode-aes-string.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encode-aes-string.d.ts","sourceRoot":"","sources":["../../../src/utils/private/encode-aes-string.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"encode-aes-string.d.ts","sourceRoot":"","sources":["../../../src/utils/private/encode-aes-string.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGhD,eAAO,MAAM,gBAAgB,gNAe1B,iBAAiB,KAAG,MAgCtB,CAAC"}
|
|
@@ -2,24 +2,29 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports._encodeAesString = void 0;
|
|
4
4
|
const utils_1 = require("@lindorm/utils");
|
|
5
|
-
const
|
|
5
|
+
const format_1 = require("../../constants/private/format");
|
|
6
|
+
const _encodeAesString = ({ algorithm, authTag, content, encryption, hkdfSalt, initialisationVector, keyId, pbkdfIterations, pbkdfSalt, publicEncryptionIv, publicEncryptionJwk, publicEncryptionKey, publicEncryptionTag, version, }) => {
|
|
6
7
|
const values = (0, utils_1.removeEmpty)({
|
|
7
|
-
v: version,
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
v: version.toString(),
|
|
9
|
+
kid: keyId.toString(format_1._B64U),
|
|
10
|
+
alg: algorithm,
|
|
11
|
+
iv: initialisationVector.toString(format_1._B64U),
|
|
12
|
+
tag: authTag.toString(format_1._B64U),
|
|
13
|
+
hks: hkdfSalt?.toString(format_1._B64U),
|
|
14
|
+
p2c: pbkdfIterations?.toString(),
|
|
15
|
+
p2s: pbkdfSalt?.toString(format_1._B64U),
|
|
16
|
+
pei: publicEncryptionIv?.toString(format_1._B64U),
|
|
17
|
+
pek: publicEncryptionKey?.toString(format_1._B64U),
|
|
18
|
+
pet: publicEncryptionTag?.toString(format_1._B64U),
|
|
10
19
|
crv: publicEncryptionJwk?.crv,
|
|
11
|
-
|
|
12
|
-
ih: integrityHash,
|
|
13
|
-
iv: initialisationVector.toString(format),
|
|
14
|
-
kid: publicEncryptionKey && keyId ? keyId.toString(format) : undefined,
|
|
15
|
-
tag: authTag?.toString(format),
|
|
20
|
+
kty: publicEncryptionJwk?.kty,
|
|
16
21
|
x: publicEncryptionJwk?.x,
|
|
17
22
|
y: publicEncryptionJwk?.y,
|
|
18
23
|
});
|
|
19
24
|
const array = Object.entries(values).map(([key, value]) => `${key}=${value}`);
|
|
20
25
|
const str = array.join(",");
|
|
21
|
-
const cnt = content.toString(
|
|
22
|
-
return `$${
|
|
26
|
+
const cnt = content.toString(format_1._B64U);
|
|
27
|
+
return `$${encryption}$${str}$${cnt}$`;
|
|
23
28
|
};
|
|
24
29
|
exports._encodeAesString = _encodeAesString;
|
|
25
30
|
//# sourceMappingURL=encode-aes-string.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encode-aes-string.js","sourceRoot":"","sources":["../../../src/utils/private/encode-aes-string.ts"],"names":[],"mappings":";;;AAAA,0CAA6C;
|
|
1
|
+
{"version":3,"file":"encode-aes-string.js","sourceRoot":"","sources":["../../../src/utils/private/encode-aes-string.ts"],"names":[],"mappings":";;;AAAA,0CAA6C;AAC7C,2DAAuD;AAIhD,MAAM,gBAAgB,GAAG,CAAC,EAC/B,SAAS,EACT,OAAO,EACP,OAAO,EACP,UAAU,EACV,QAAQ,EACR,oBAAoB,EACpB,KAAK,EACL,eAAe,EACf,SAAS,EACT,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,OAAO,GACW,EAAU,EAAE;IAC9B,MAAM,MAAM,GAAoB,IAAA,mBAAW,EAAC;QAC1C,CAAC,EAAE,OAAO,CAAC,QAAQ,EAAE;QACrB,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,cAAK,CAAC;QAG1B,GAAG,EAAE,SAAS;QACd,EAAE,EAAE,oBAAoB,CAAC,QAAQ,CAAC,cAAK,CAAC;QACxC,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC,cAAK,CAAC;QAG5B,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,cAAK,CAAC;QAC9B,GAAG,EAAE,eAAe,EAAE,QAAQ,EAAE;QAChC,GAAG,EAAE,SAAS,EAAE,QAAQ,CAAC,cAAK,CAAC;QAG/B,GAAG,EAAE,kBAAkB,EAAE,QAAQ,CAAC,cAAK,CAAC;QACxC,GAAG,EAAE,mBAAmB,EAAE,QAAQ,CAAC,cAAK,CAAC;QACzC,GAAG,EAAE,mBAAmB,EAAE,QAAQ,CAAC,cAAK,CAAC;QAGzC,GAAG,EAAE,mBAAmB,EAAE,GAAG;QAC7B,GAAG,EAAE,mBAAmB,EAAE,GAAG;QAC7B,CAAC,EAAE,mBAAmB,EAAE,CAAC;QACzB,CAAC,EAAE,mBAAmB,EAAE,CAAC;KAC1B,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC;IAE9E,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5B,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,cAAK,CAAC,CAAC;IAEpC,OAAO,IAAI,UAAU,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC;AACzC,CAAC,CAAC;AA/CW,QAAA,gBAAgB,oBA+C3B"}
|
|
@@ -0,0 +1 @@
|
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"get-encryption-key.d.ts","sourceRoot":"","sources":["../../../../src/utils/private/get-key/get-encryption-key.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAM3E,eAAO,MAAM,iBAAiB,YAAa,gBAAgB,KAAG,eAmB7D,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports._getEncryptionKey = void 0;
|
|
4
|
+
const errors_1 = require("../../../errors");
|
|
5
|
+
const get_ec_keys_1 = require("../key-types/get-ec-keys");
|
|
6
|
+
const get_oct_keys_1 = require("../key-types/get-oct-keys");
|
|
7
|
+
const get_okp_keys_1 = require("../key-types/get-okp-keys");
|
|
8
|
+
const get_rsa_keys_1 = require("../key-types/get-rsa-keys");
|
|
9
|
+
const _getEncryptionKey = (options) => {
|
|
10
|
+
switch (options.kryptos.type) {
|
|
11
|
+
case "EC":
|
|
12
|
+
return (0, get_ec_keys_1._getEcEncryptionKey)(options);
|
|
13
|
+
case "oct":
|
|
14
|
+
return (0, get_oct_keys_1._getOctEncryptionKey)(options);
|
|
15
|
+
case "OKP":
|
|
16
|
+
return (0, get_okp_keys_1._getOkpEncryptionKey)(options);
|
|
17
|
+
case "RSA":
|
|
18
|
+
return (0, get_rsa_keys_1._getRsaEncryptionKey)(options);
|
|
19
|
+
default:
|
|
20
|
+
throw new errors_1.AesError("Unexpected Kryptos", {
|
|
21
|
+
debug: { kryptos: options.kryptos.toJSON() },
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
exports._getEncryptionKey = _getEncryptionKey;
|
|
26
|
+
//# sourceMappingURL=get-encryption-key.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-encryption-key.js","sourceRoot":"","sources":["../../../../src/utils/private/get-key/get-encryption-key.ts"],"names":[],"mappings":";;;AAAA,4CAA2C;AAE3C,0DAA+D;AAC/D,4DAAiE;AACjE,4DAAiE;AACjE,4DAAiE;AAE1D,MAAM,iBAAiB,GAAG,CAAC,OAAyB,EAAmB,EAAE;IAC9E,QAAQ,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC7B,KAAK,IAAI;YACP,OAAO,IAAA,iCAAmB,EAAC,OAAO,CAAC,CAAC;QAEtC,KAAK,KAAK;YACR,OAAO,IAAA,mCAAoB,EAAC,OAAO,CAAC,CAAC;QAEvC,KAAK,KAAK;YACR,OAAO,IAAA,mCAAoB,EAAC,OAAO,CAAC,CAAC;QAEvC,KAAK,KAAK;YACR,OAAO,IAAA,mCAAoB,EAAC,OAAO,CAAC,CAAC;QAEvC;YACE,MAAM,IAAI,iBAAQ,CAAC,oBAAoB,EAAE;gBACvC,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE;aAC7C,CAAC,CAAC;IACP,CAAC;AACH,CAAC,CAAC;AAnBW,QAAA,iBAAiB,qBAmB5B"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { AesKeyLength } from "@lindorm/types";
|
|
3
|
+
type Options = {
|
|
4
|
+
derivationKey: Buffer;
|
|
5
|
+
hkdfSalt?: Buffer;
|
|
6
|
+
keyLength: AesKeyLength;
|
|
7
|
+
};
|
|
8
|
+
type Result = {
|
|
9
|
+
derivedKey: Buffer;
|
|
10
|
+
hkdfSalt: Buffer;
|
|
11
|
+
};
|
|
12
|
+
export declare const _hkdf: (options: Options) => Result;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=hkdf.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hkdf.d.ts","sourceRoot":"","sources":["../../../../src/utils/private/key-derivation/hkdf.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,KAAK,OAAO,GAAG;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,YAAY,CAAC;CACzB,CAAC;AAEF,KAAK,MAAM,GAAG;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,KAAK,YAAa,OAAO,KAAG,MASxC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports._hkdf = void 0;
|
|
4
|
+
const crypto_1 = require("crypto");
|
|
5
|
+
const _hkdf = (options) => {
|
|
6
|
+
const hkdfSalt = options.hkdfSalt ?? (0, crypto_1.randomBytes)(16);
|
|
7
|
+
const info = Buffer.from("lindorm.hkdf", "utf-8");
|
|
8
|
+
const derivedKey = Buffer.from((0, crypto_1.hkdfSync)("SHA256", options.derivationKey, hkdfSalt, info, options.keyLength));
|
|
9
|
+
return { derivedKey, hkdfSalt };
|
|
10
|
+
};
|
|
11
|
+
exports._hkdf = _hkdf;
|
|
12
|
+
//# sourceMappingURL=hkdf.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hkdf.js","sourceRoot":"","sources":["../../../../src/utils/private/key-derivation/hkdf.ts"],"names":[],"mappings":";;;AACA,mCAA+C;AAaxC,MAAM,KAAK,GAAG,CAAC,OAAgB,EAAU,EAAE;IAChD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,IAAA,oBAAW,EAAC,EAAE,CAAC,CAAC;IACrD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IAElD,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAC5B,IAAA,iBAAQ,EAAC,QAAQ,EAAE,OAAO,CAAC,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,CAC7E,CAAC;IAEF,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;AAClC,CAAC,CAAC;AATW,QAAA,KAAK,SAShB"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { AesKeyLength, ShaAlgorithm } from "@lindorm/types";
|
|
3
|
+
type Options = {
|
|
4
|
+
algorithm: ShaAlgorithm;
|
|
5
|
+
derivationKey: Buffer;
|
|
6
|
+
keyLength: AesKeyLength;
|
|
7
|
+
pbkdfIterations?: number;
|
|
8
|
+
pbkdfSalt?: Buffer;
|
|
9
|
+
};
|
|
10
|
+
type Result = {
|
|
11
|
+
derivedKey: Buffer;
|
|
12
|
+
pbkdfIterations: number;
|
|
13
|
+
pbkdfSalt: Buffer;
|
|
14
|
+
};
|
|
15
|
+
export declare const _pbkdf: (options: Options) => Result;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=pbkdf.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pbkdf.d.ts","sourceRoot":"","sources":["../../../../src/utils/private/key-derivation/pbkdf.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG5D,KAAK,OAAO,GAAG;IACb,SAAS,EAAE,YAAY,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,YAAY,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,MAAM,GAAG;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAKF,eAAO,MAAM,MAAM,YAAa,OAAO,KAAG,MAazC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports._pbkdf = void 0;
|
|
4
|
+
const crypto_1 = require("crypto");
|
|
5
|
+
const randomIterations = () => Math.floor(Math.random() * 20000) + 90000;
|
|
6
|
+
const _pbkdf = (options) => {
|
|
7
|
+
const pbkdfSalt = options.pbkdfSalt ?? (0, crypto_1.randomBytes)(16);
|
|
8
|
+
const pbkdfIterations = options.pbkdfIterations ?? randomIterations();
|
|
9
|
+
const derivedKey = (0, crypto_1.pbkdf2Sync)(options.derivationKey, pbkdfSalt, pbkdfIterations, options.keyLength, options.algorithm);
|
|
10
|
+
return { derivedKey, pbkdfIterations, pbkdfSalt };
|
|
11
|
+
};
|
|
12
|
+
exports._pbkdf = _pbkdf;
|
|
13
|
+
//# sourceMappingURL=pbkdf.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pbkdf.js","sourceRoot":"","sources":["../../../../src/utils/private/key-derivation/pbkdf.ts"],"names":[],"mappings":";;;AACA,mCAAiD;AAiBjD,MAAM,gBAAgB,GAAG,GAAW,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC;AAE1E,MAAM,MAAM,GAAG,CAAC,OAAgB,EAAU,EAAE;IACjD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAA,oBAAW,EAAC,EAAE,CAAC,CAAC;IACvD,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,gBAAgB,EAAE,CAAC;IAEtE,MAAM,UAAU,GAAG,IAAA,mBAAU,EAC3B,OAAO,CAAC,aAAa,EACrB,SAAS,EACT,eAAe,EACf,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,SAAS,CAClB,CAAC;IAEF,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC;AACpD,CAAC,CAAC;AAbW,QAAA,MAAM,UAajB"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { CreateCekOptions, CreateCekResult, DecryptCekOptions, DecryptCekResult } from "../../../types/private";
|
|
2
|
+
export declare const _getEcEncryptionKey: (options: CreateCekOptions) => CreateCekResult;
|
|
3
|
+
export declare const _getEcDecryptionKey: (options: DecryptCekOptions) => DecryptCekResult;
|
|
4
|
+
//# sourceMappingURL=get-ec-keys.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-ec-keys.d.ts","sourceRoot":"","sources":["../../../../src/utils/private/key-types/get-ec-keys.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,wBAAwB,CAAC;AAUhC,eAAO,MAAM,mBAAmB,YAAa,gBAAgB,KAAG,eAkB/D,CAAC;AAEF,eAAO,MAAM,mBAAmB,YAAa,iBAAiB,KAAG,gBAkBhE,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports._getEcDecryptionKey = exports._getEcEncryptionKey = void 0;
|
|
4
|
+
const errors_1 = require("../../../errors");
|
|
5
|
+
const diffie_hellman_1 = require("../diffie-hellman/diffie-hellman");
|
|
6
|
+
const diffie_hellman_key_wrap_1 = require("../diffie-hellman/diffie-hellman-key-wrap");
|
|
7
|
+
const _getEcEncryptionKey = (options) => {
|
|
8
|
+
switch (options.kryptos.algorithm) {
|
|
9
|
+
case "ECDH-ES":
|
|
10
|
+
return (0, diffie_hellman_1._getDiffieHellmanEncryptionKey)(options);
|
|
11
|
+
case "ECDH-ES+A128KW":
|
|
12
|
+
case "ECDH-ES+A192KW":
|
|
13
|
+
case "ECDH-ES+A256KW":
|
|
14
|
+
case "ECDH-ES+A128GCMKW":
|
|
15
|
+
case "ECDH-ES+A192GCMKW":
|
|
16
|
+
case "ECDH-ES+A256GCMKW":
|
|
17
|
+
return (0, diffie_hellman_key_wrap_1._getDiffieHellmanKeyWrapEncryptionKey)(options);
|
|
18
|
+
default:
|
|
19
|
+
throw new errors_1.AesError("Unexpected Kryptos", {
|
|
20
|
+
debug: { kryptos: options.kryptos.toJSON() },
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
exports._getEcEncryptionKey = _getEcEncryptionKey;
|
|
25
|
+
const _getEcDecryptionKey = (options) => {
|
|
26
|
+
switch (options.kryptos.algorithm) {
|
|
27
|
+
case "ECDH-ES":
|
|
28
|
+
return (0, diffie_hellman_1._getDiffieHellmanDecryptionKey)(options);
|
|
29
|
+
case "ECDH-ES+A128KW":
|
|
30
|
+
case "ECDH-ES+A192KW":
|
|
31
|
+
case "ECDH-ES+A256KW":
|
|
32
|
+
case "ECDH-ES+A128GCMKW":
|
|
33
|
+
case "ECDH-ES+A192GCMKW":
|
|
34
|
+
case "ECDH-ES+A256GCMKW":
|
|
35
|
+
return (0, diffie_hellman_key_wrap_1._getDiffieHellmanKeyWrapDecryptionKey)(options);
|
|
36
|
+
default:
|
|
37
|
+
throw new errors_1.AesError("Unexpected Kryptos", {
|
|
38
|
+
debug: { kryptos: options.kryptos.toJSON() },
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
exports._getEcDecryptionKey = _getEcDecryptionKey;
|
|
43
|
+
//# sourceMappingURL=get-ec-keys.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-ec-keys.js","sourceRoot":"","sources":["../../../../src/utils/private/key-types/get-ec-keys.ts"],"names":[],"mappings":";;;AAAA,4CAA2C;AAO3C,qEAG0C;AAC1C,uFAGmD;AAE5C,MAAM,mBAAmB,GAAG,CAAC,OAAyB,EAAmB,EAAE;IAChF,QAAQ,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QAClC,KAAK,SAAS;YACZ,OAAO,IAAA,+CAA8B,EAAC,OAAO,CAAC,CAAC;QAEjD,KAAK,gBAAgB,CAAC;QACtB,KAAK,gBAAgB,CAAC;QACtB,KAAK,gBAAgB,CAAC;QACtB,KAAK,mBAAmB,CAAC;QACzB,KAAK,mBAAmB,CAAC;QACzB,KAAK,mBAAmB;YACtB,OAAO,IAAA,+DAAqC,EAAC,OAAO,CAAC,CAAC;QAExD;YACE,MAAM,IAAI,iBAAQ,CAAC,oBAAoB,EAAE;gBACvC,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE;aAC7C,CAAC,CAAC;IACP,CAAC;AACH,CAAC,CAAC;AAlBW,QAAA,mBAAmB,uBAkB9B;AAEK,MAAM,mBAAmB,GAAG,CAAC,OAA0B,EAAoB,EAAE;IAClF,QAAQ,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QAClC,KAAK,SAAS;YACZ,OAAO,IAAA,+CAA8B,EAAC,OAAO,CAAC,CAAC;QAEjD,KAAK,gBAAgB,CAAC;QACtB,KAAK,gBAAgB,CAAC;QACtB,KAAK,gBAAgB,CAAC;QACtB,KAAK,mBAAmB,CAAC;QACzB,KAAK,mBAAmB,CAAC;QACzB,KAAK,mBAAmB;YACtB,OAAO,IAAA,+DAAqC,EAAC,OAAO,CAAC,CAAC;QAExD;YACE,MAAM,IAAI,iBAAQ,CAAC,oBAAoB,EAAE;gBACvC,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE;aAC7C,CAAC,CAAC;IACP,CAAC;AACH,CAAC,CAAC;AAlBW,QAAA,mBAAmB,uBAkB9B"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { CreateCekOptions, CreateCekResult, DecryptCekOptions, DecryptCekResult } from "../../../types/private";
|
|
2
|
+
export declare const _getOctEncryptionKey: (options: CreateCekOptions) => CreateCekResult;
|
|
3
|
+
export declare const _getOctDecryptionKey: (options: DecryptCekOptions) => DecryptCekResult;
|
|
4
|
+
//# sourceMappingURL=get-oct-keys.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-oct-keys.d.ts","sourceRoot":"","sources":["../../../../src/utils/private/key-types/get-oct-keys.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,wBAAwB,CAAC;AAchC,eAAO,MAAM,oBAAoB,YAAa,gBAAgB,KAAG,eAuBhE,CAAC;AAEF,eAAO,MAAM,oBAAoB,YAAa,iBAAiB,KAAG,gBAuBjE,CAAC"}
|