@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.
- package/CHANGELOG.md +10 -0
- package/README.md +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/src/classes/AesCipher.d.ts +14 -0
- package/dist/src/classes/AesCipher.d.ts.map +1 -0
- package/dist/src/classes/AesCipher.js +50 -0
- package/dist/src/classes/AesCipher.js.map +1 -0
- package/dist/src/classes/index.d.ts +2 -0
- package/dist/src/classes/index.d.ts.map +1 -0
- package/dist/src/classes/index.js +18 -0
- package/dist/src/classes/index.js.map +1 -0
- package/dist/src/constants/index.d.ts +2 -0
- package/dist/src/constants/index.d.ts.map +1 -0
- package/dist/src/constants/index.js +18 -0
- package/dist/src/constants/index.js.map +1 -0
- package/dist/src/constants/version.d.ts +2 -0
- package/dist/src/constants/version.d.ts.map +1 -0
- package/dist/src/constants/version.js +5 -0
- package/dist/src/constants/version.js.map +1 -0
- package/dist/src/enums/AesEncryption.d.ts +9 -0
- package/dist/src/enums/AesEncryption.d.ts.map +1 -0
- package/dist/src/enums/AesEncryption.js +13 -0
- package/dist/src/enums/AesEncryption.js.map +1 -0
- package/dist/src/enums/AesEncryptionKeyAlgorithm.d.ts +9 -0
- package/dist/src/enums/AesEncryptionKeyAlgorithm.d.ts.map +1 -0
- package/dist/src/enums/AesEncryptionKeyAlgorithm.js +13 -0
- package/dist/src/enums/AesEncryptionKeyAlgorithm.js.map +1 -0
- package/dist/src/enums/AesFormat.d.ts +6 -0
- package/dist/src/enums/AesFormat.d.ts.map +1 -0
- package/dist/src/enums/AesFormat.js +10 -0
- package/dist/src/enums/AesFormat.js.map +1 -0
- package/dist/src/enums/AesIntegrityHash.d.ts +6 -0
- package/dist/src/enums/AesIntegrityHash.d.ts.map +1 -0
- package/dist/src/enums/AesIntegrityHash.js +10 -0
- package/dist/src/enums/AesIntegrityHash.js.map +1 -0
- package/dist/src/enums/index.d.ts +5 -0
- package/dist/src/enums/index.d.ts.map +1 -0
- package/dist/src/enums/index.js +21 -0
- package/dist/src/enums/index.js.map +1 -0
- package/dist/src/errors/AesError.d.ts +4 -0
- package/dist/src/errors/AesError.d.ts.map +1 -0
- package/dist/src/errors/AesError.js +8 -0
- package/dist/src/errors/AesError.js.map +1 -0
- package/dist/src/errors/index.d.ts +2 -0
- package/dist/src/errors/index.d.ts.map +1 -0
- package/dist/src/errors/index.js +18 -0
- package/dist/src/errors/index.js.map +1 -0
- package/dist/src/index.d.ts +6 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +22 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/types/aes-cipher-class.d.ts +10 -0
- package/dist/src/types/aes-cipher-class.d.ts.map +1 -0
- package/dist/src/types/aes-cipher-class.js +3 -0
- package/dist/src/types/aes-cipher-class.js.map +1 -0
- package/dist/src/types/aes-cipher.d.ts +11 -0
- package/dist/src/types/aes-cipher.d.ts.map +1 -0
- package/dist/src/types/aes-cipher.js +3 -0
- package/dist/src/types/aes-cipher.js.map +1 -0
- package/dist/src/types/aes-data.d.ts +23 -0
- package/dist/src/types/aes-data.d.ts.map +1 -0
- package/dist/src/types/aes-data.js +3 -0
- package/dist/src/types/aes-data.js.map +1 -0
- package/dist/src/types/aes-encryption-data.d.ts +16 -0
- package/dist/src/types/aes-encryption-data.d.ts.map +1 -0
- package/dist/src/types/aes-encryption-data.js +3 -0
- package/dist/src/types/aes-encryption-data.js.map +1 -0
- package/dist/src/types/auth-tag.d.ts +31 -0
- package/dist/src/types/auth-tag.d.ts.map +1 -0
- package/dist/src/types/auth-tag.js +3 -0
- package/dist/src/types/auth-tag.js.map +1 -0
- package/dist/src/types/index.d.ts +6 -0
- package/dist/src/types/index.d.ts.map +1 -0
- package/dist/src/types/index.js +22 -0
- package/dist/src/types/index.js.map +1 -0
- package/dist/src/types/types.d.ts +10 -0
- package/dist/src/types/types.d.ts.map +1 -0
- package/dist/src/types/types.js +3 -0
- package/dist/src/types/types.js.map +1 -0
- package/dist/src/utils/aes-cipher.d.ts +6 -0
- package/dist/src/utils/aes-cipher.d.ts.map +1 -0
- package/dist/src/utils/aes-cipher.js +20 -0
- package/dist/src/utils/aes-cipher.js.map +1 -0
- package/dist/src/utils/aes-data.d.ts +4 -0
- package/dist/src/utils/aes-data.d.ts.map +1 -0
- package/dist/src/utils/aes-data.js +66 -0
- package/dist/src/utils/aes-data.js.map +1 -0
- package/dist/src/utils/index.d.ts +3 -0
- package/dist/src/utils/index.d.ts.map +1 -0
- package/dist/src/utils/index.js +19 -0
- package/dist/src/utils/index.js.map +1 -0
- package/dist/src/utils/private/auth-tag-hmac.d.ts +5 -0
- package/dist/src/utils/private/auth-tag-hmac.d.ts.map +1 -0
- package/dist/src/utils/private/auth-tag-hmac.js +25 -0
- package/dist/src/utils/private/auth-tag-hmac.js.map +1 -0
- package/dist/src/utils/private/auth-tag.d.ts +5 -0
- package/dist/src/utils/private/auth-tag.d.ts.map +1 -0
- package/dist/src/utils/private/auth-tag.js +58 -0
- package/dist/src/utils/private/auth-tag.js.map +1 -0
- package/dist/src/utils/private/decode-aes-string.d.ts +3 -0
- package/dist/src/utils/private/decode-aes-string.d.ts.map +1 -0
- package/dist/src/utils/private/decode-aes-string.js +39 -0
- package/dist/src/utils/private/decode-aes-string.js.map +1 -0
- package/dist/src/utils/private/ec/get-ec-keys.d.ts +21 -0
- package/dist/src/utils/private/ec/get-ec-keys.d.ts.map +1 -0
- package/dist/src/utils/private/ec/get-ec-keys.js +55 -0
- package/dist/src/utils/private/ec/get-ec-keys.js.map +1 -0
- package/dist/src/utils/private/ec/get-key-curve.d.ts +4 -0
- package/dist/src/utils/private/ec/get-key-curve.d.ts.map +1 -0
- package/dist/src/utils/private/ec/get-key-curve.js +37 -0
- package/dist/src/utils/private/ec/get-key-curve.js.map +1 -0
- package/dist/src/utils/private/encode-aes-string.d.ts +3 -0
- package/dist/src/utils/private/encode-aes-string.d.ts.map +1 -0
- package/dist/src/utils/private/encode-aes-string.js +25 -0
- package/dist/src/utils/private/encode-aes-string.js.map +1 -0
- package/dist/src/utils/private/get-decryption-key.d.ts +13 -0
- package/dist/src/utils/private/get-decryption-key.d.ts.map +1 -0
- package/dist/src/utils/private/get-decryption-key.js +33 -0
- package/dist/src/utils/private/get-decryption-key.js.map +1 -0
- package/dist/src/utils/private/get-encryption-keys.d.ts +16 -0
- package/dist/src/utils/private/get-encryption-keys.d.ts.map +1 -0
- package/dist/src/utils/private/get-encryption-keys.js +23 -0
- package/dist/src/utils/private/get-encryption-keys.js.map +1 -0
- package/dist/src/utils/private/get-initialisation-vector.d.ts +4 -0
- package/dist/src/utils/private/get-initialisation-vector.d.ts.map +1 -0
- package/dist/src/utils/private/get-initialisation-vector.js +23 -0
- package/dist/src/utils/private/get-initialisation-vector.js.map +1 -0
- package/dist/src/utils/private/oct/get-oct-keys.d.ts +14 -0
- package/dist/src/utils/private/oct/get-oct-keys.d.ts.map +1 -0
- package/dist/src/utils/private/oct/get-oct-keys.js +24 -0
- package/dist/src/utils/private/oct/get-oct-keys.js.map +1 -0
- package/dist/src/utils/private/rsa/generate-encryption-key.d.ts +4 -0
- package/dist/src/utils/private/rsa/generate-encryption-key.d.ts.map +1 -0
- package/dist/src/utils/private/rsa/generate-encryption-key.js +8 -0
- package/dist/src/utils/private/rsa/generate-encryption-key.js.map +1 -0
- package/dist/src/utils/private/rsa/get-oaep-hash.d.ts +3 -0
- package/dist/src/utils/private/rsa/get-oaep-hash.d.ts.map +1 -0
- package/dist/src/utils/private/rsa/get-oaep-hash.js +22 -0
- package/dist/src/utils/private/rsa/get-oaep-hash.js.map +1 -0
- package/dist/src/utils/private/rsa/get-rsa-keys.d.ts +21 -0
- package/dist/src/utils/private/rsa/get-rsa-keys.d.ts.map +1 -0
- package/dist/src/utils/private/rsa/get-rsa-keys.js +22 -0
- package/dist/src/utils/private/rsa/get-rsa-keys.js.map +1 -0
- package/dist/src/utils/private/rsa/public-encryption-key.d.ts +17 -0
- package/dist/src/utils/private/rsa/public-encryption-key.d.ts.map +1 -0
- package/dist/src/utils/private/rsa/public-encryption-key.js +56 -0
- package/dist/src/utils/private/rsa/public-encryption-key.js.map +1 -0
- package/dist/src/utils/private/secret/calculate-secret-length.d.ts +3 -0
- package/dist/src/utils/private/secret/calculate-secret-length.d.ts.map +1 -0
- package/dist/src/utils/private/secret/calculate-secret-length.js +21 -0
- package/dist/src/utils/private/secret/calculate-secret-length.js.map +1 -0
- package/dist/src/utils/private/secret/create-key-derivation.d.ts +10 -0
- package/dist/src/utils/private/secret/create-key-derivation.d.ts.map +1 -0
- package/dist/src/utils/private/secret/create-key-derivation.js +35 -0
- package/dist/src/utils/private/secret/create-key-derivation.js.map +1 -0
- 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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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
|
+
}
|