@lindorm/aes 0.5.5 → 0.6.1
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 +30 -0
- package/MERMAID.md +155 -0
- package/README.md +365 -199
- package/__tests__/INTEROP-RESULTS.md +66 -0
- package/__tests__/esm-smoke.test.ts +15 -0
- package/__tests__/fixtures/keys.ts +60 -0
- package/__tests__/helpers/buffer-utils.ts +11 -0
- package/__tests__/helpers/index.ts +2 -0
- package/__tests__/helpers/jwe-adapter.ts +117 -0
- package/__tests__/jose-jwe.test.ts +463 -0
- package/__tests__/noble-ciphers.test.ts +208 -0
- package/dist/classes/AesKit.d.ts +10 -8
- package/dist/classes/AesKit.d.ts.map +1 -1
- package/dist/classes/AesKit.js +73 -34
- package/dist/classes/AesKit.js.map +1 -1
- package/dist/constants/private/index.d.ts +0 -1
- package/dist/constants/private/index.d.ts.map +1 -1
- package/dist/constants/private/index.js +0 -1
- package/dist/constants/private/index.js.map +1 -1
- package/dist/constants/private/version.d.ts +3 -1
- package/dist/constants/private/version.d.ts.map +1 -1
- package/dist/constants/private/version.js +4 -2
- package/dist/constants/private/version.js.map +1 -1
- package/dist/interfaces/AesKit.d.ts +12 -7
- package/dist/interfaces/AesKit.d.ts.map +1 -1
- package/dist/mocks/mock-aes-kit.d.ts.map +1 -1
- package/dist/mocks/mock-aes-kit.js +12 -2
- package/dist/mocks/mock-aes-kit.js.map +1 -1
- package/dist/types/aes-decryption-data.d.ts +26 -17
- package/dist/types/aes-decryption-data.d.ts.map +1 -1
- package/dist/types/aes-encryption-data.d.ts +7 -17
- package/dist/types/aes-encryption-data.d.ts.map +1 -1
- package/dist/types/content.d.ts +1 -1
- package/dist/types/content.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/private/aes-data.d.ts.map +1 -1
- package/dist/types/private/aes-key-derivation.d.ts +1 -1
- package/dist/types/private/aes-key-derivation.d.ts.map +1 -1
- package/dist/types/private/auth-tag.d.ts +3 -0
- package/dist/types/private/auth-tag.d.ts.map +1 -1
- package/dist/types/private/content-encryption-key.d.ts +4 -2
- package/dist/types/private/content-encryption-key.d.ts.map +1 -1
- package/dist/types/private/index.d.ts +1 -1
- package/dist/types/private/index.d.ts.map +1 -1
- package/dist/types/private/index.js +1 -1
- package/dist/types/private/index.js.map +1 -1
- package/dist/types/private/prepared-encryption.d.ts +35 -0
- package/dist/types/private/prepared-encryption.d.ts.map +1 -0
- package/dist/types/private/{aes-string.js → prepared-encryption.js} +1 -1
- package/dist/types/private/prepared-encryption.js.map +1 -0
- package/dist/utils/is-aes.d.ts.map +1 -1
- package/dist/utils/is-aes.js +1 -5
- package/dist/utils/is-aes.js.map +1 -1
- package/dist/utils/parse-aes.js +3 -3
- package/dist/utils/parse-aes.js.map +1 -1
- package/dist/utils/private/aes-header.d.ts +42 -0
- package/dist/utils/private/aes-header.d.ts.map +1 -0
- package/dist/utils/private/aes-header.js +75 -0
- package/dist/utils/private/aes-header.js.map +1 -0
- package/dist/utils/private/calculate/calculate-content-encryption-key-size.js +3 -3
- package/dist/utils/private/calculate/calculate-key-wrap-encryption.d.ts.map +1 -1
- package/dist/utils/private/calculate/calculate-key-wrap-encryption.js +2 -1
- package/dist/utils/private/calculate/calculate-key-wrap-encryption.js.map +1 -1
- package/dist/utils/private/content.js +1 -1
- package/dist/utils/private/content.js.map +1 -1
- package/dist/utils/private/data/auth-tag-hmac.d.ts +2 -2
- package/dist/utils/private/data/auth-tag-hmac.d.ts.map +1 -1
- package/dist/utils/private/data/auth-tag-hmac.js +12 -4
- package/dist/utils/private/data/auth-tag-hmac.js.map +1 -1
- package/dist/utils/private/data/auth-tag.d.ts +2 -2
- package/dist/utils/private/data/auth-tag.d.ts.map +1 -1
- package/dist/utils/private/data/auth-tag.js +4 -2
- package/dist/utils/private/data/auth-tag.js.map +1 -1
- package/dist/utils/private/data/split-content-encryption-key.d.ts.map +1 -1
- package/dist/utils/private/data/split-content-encryption-key.js +6 -2
- package/dist/utils/private/data/split-content-encryption-key.js.map +1 -1
- package/dist/utils/private/diffie-hellman/diffie-hellman-key-wrap.d.ts +2 -2
- package/dist/utils/private/diffie-hellman/diffie-hellman-key-wrap.d.ts.map +1 -1
- package/dist/utils/private/diffie-hellman/diffie-hellman-key-wrap.js +12 -8
- package/dist/utils/private/diffie-hellman/diffie-hellman-key-wrap.js.map +1 -1
- package/dist/utils/private/diffie-hellman/diffie-hellman.d.ts +2 -2
- package/dist/utils/private/diffie-hellman/diffie-hellman.d.ts.map +1 -1
- package/dist/utils/private/diffie-hellman/diffie-hellman.js +12 -8
- package/dist/utils/private/diffie-hellman/diffie-hellman.js.map +1 -1
- package/dist/utils/private/diffie-hellman/shared-secret.d.ts.map +1 -1
- package/dist/utils/private/diffie-hellman/shared-secret.js +5 -1
- package/dist/utils/private/diffie-hellman/shared-secret.js.map +1 -1
- package/dist/utils/private/encoded-aes.d.ts +2 -2
- package/dist/utils/private/encoded-aes.d.ts.map +1 -1
- package/dist/utils/private/encoded-aes.js +86 -149
- package/dist/utils/private/encoded-aes.js.map +1 -1
- package/dist/utils/private/encrypt-content.d.ts +3 -0
- package/dist/utils/private/encrypt-content.d.ts.map +1 -0
- package/dist/utils/private/encrypt-content.js +35 -0
- package/dist/utils/private/encrypt-content.js.map +1 -0
- package/dist/utils/private/encrypt-encoded.d.ts +9 -0
- package/dist/utils/private/encrypt-encoded.d.ts.map +1 -0
- package/dist/utils/private/encrypt-encoded.js +53 -0
- package/dist/utils/private/encrypt-encoded.js.map +1 -0
- package/dist/utils/private/encrypt-serialised.d.ts +9 -0
- package/dist/utils/private/encrypt-serialised.d.ts.map +1 -0
- package/dist/utils/private/encrypt-serialised.js +48 -0
- package/dist/utils/private/encrypt-serialised.js.map +1 -0
- package/dist/utils/private/encrypt-tokenised.d.ts +9 -0
- package/dist/utils/private/encrypt-tokenised.d.ts.map +1 -0
- package/dist/utils/private/encrypt-tokenised.js +45 -0
- package/dist/utils/private/encrypt-tokenised.js.map +1 -0
- package/dist/utils/private/encryption.d.ts.map +1 -1
- package/dist/utils/private/encryption.js +27 -27
- package/dist/utils/private/encryption.js.map +1 -1
- package/dist/utils/private/index.d.ts +6 -0
- package/dist/utils/private/index.d.ts.map +1 -1
- package/dist/utils/private/index.js +6 -0
- package/dist/utils/private/index.js.map +1 -1
- package/dist/utils/private/key-derivation/concat-kdf.d.ts +14 -0
- package/dist/utils/private/key-derivation/concat-kdf.d.ts.map +1 -0
- package/dist/utils/private/key-derivation/concat-kdf.js +26 -0
- package/dist/utils/private/key-derivation/concat-kdf.js.map +1 -0
- package/dist/utils/private/key-derivation/index.d.ts +1 -1
- package/dist/utils/private/key-derivation/index.d.ts.map +1 -1
- package/dist/utils/private/key-derivation/index.js +1 -1
- package/dist/utils/private/key-derivation/index.js.map +1 -1
- package/dist/utils/private/key-derivation/pbkdf.d.ts +1 -0
- package/dist/utils/private/key-derivation/pbkdf.d.ts.map +1 -1
- package/dist/utils/private/key-derivation/pbkdf.js +13 -2
- package/dist/utils/private/key-derivation/pbkdf.js.map +1 -1
- package/dist/utils/private/key-wrap/ecb-key-wrap.d.ts.map +1 -1
- package/dist/utils/private/key-wrap/ecb-key-wrap.js +10 -3
- package/dist/utils/private/key-wrap/ecb-key-wrap.js.map +1 -1
- package/dist/utils/private/key-wrap/gcm-key-wrap.d.ts.map +1 -1
- package/dist/utils/private/key-wrap/gcm-key-wrap.js +6 -0
- package/dist/utils/private/key-wrap/gcm-key-wrap.js.map +1 -1
- package/dist/utils/private/oct/get-oct-key-key-wrap.d.ts +1 -1
- package/dist/utils/private/oct/get-oct-key-key-wrap.d.ts.map +1 -1
- package/dist/utils/private/oct/get-oct-key-key-wrap.js +7 -14
- package/dist/utils/private/oct/get-oct-key-key-wrap.js.map +1 -1
- package/dist/utils/private/oct/get-oct-pbkdf-key-wrap-keys.d.ts.map +1 -1
- package/dist/utils/private/oct/get-oct-pbkdf-key-wrap-keys.js +2 -0
- package/dist/utils/private/oct/get-oct-pbkdf-key-wrap-keys.js.map +1 -1
- package/dist/utils/private/prepare-encryption.d.ts +3 -0
- package/dist/utils/private/prepare-encryption.d.ts.map +1 -0
- package/dist/utils/private/prepare-encryption.js +27 -0
- package/dist/utils/private/prepare-encryption.js.map +1 -0
- package/dist/utils/private/serialised-aes.d.ts.map +1 -1
- package/dist/utils/private/serialised-aes.js +38 -46
- package/dist/utils/private/serialised-aes.js.map +1 -1
- package/dist/utils/private/tokenised-aes.d.ts +3 -3
- package/dist/utils/private/tokenised-aes.d.ts.map +1 -1
- package/dist/utils/private/tokenised-aes.js +73 -55
- package/dist/utils/private/tokenised-aes.js.map +1 -1
- package/dist/utils/private/validate-version.d.ts +2 -0
- package/dist/utils/private/validate-version.d.ts.map +1 -0
- package/dist/utils/private/validate-version.js +27 -0
- package/dist/utils/private/validate-version.js.map +1 -0
- package/jest.config.interop.mjs +24 -0
- package/package.json +18 -16
- package/tsconfig.interop.json +9 -0
- package/dist/constants/private/format.d.ts +0 -2
- package/dist/constants/private/format.d.ts.map +0 -1
- package/dist/constants/private/format.js +0 -5
- package/dist/constants/private/format.js.map +0 -1
- package/dist/types/private/aes-string.d.ts +0 -21
- package/dist/types/private/aes-string.d.ts.map +0 -1
- package/dist/types/private/aes-string.js.map +0 -1
- package/dist/utils/private/key-derivation/hkdf.d.ts +0 -13
- package/dist/utils/private/key-derivation/hkdf.d.ts.map +0 -1
- package/dist/utils/private/key-derivation/hkdf.js +0 -12
- package/dist/utils/private/key-derivation/hkdf.js.map +0 -1
|
@@ -2,52 +2,44 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.parseSerialisedAesRecord = exports.createSerialisedAesRecord = void 0;
|
|
4
4
|
const b64_1 = require("@lindorm/b64");
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
:
|
|
26
|
-
|
|
27
|
-
|
|
5
|
+
const private_1 = require("../../constants/private");
|
|
6
|
+
const aes_header_1 = require("./aes-header");
|
|
7
|
+
const createSerialisedAesRecord = (data) => {
|
|
8
|
+
const header = (0, aes_header_1.buildAesHeader)({
|
|
9
|
+
algorithm: data.algorithm,
|
|
10
|
+
contentType: data.contentType,
|
|
11
|
+
encryption: data.encryption,
|
|
12
|
+
keyId: data.keyId,
|
|
13
|
+
pbkdfIterations: data.pbkdfIterations,
|
|
14
|
+
pbkdfSalt: data.pbkdfSalt,
|
|
15
|
+
publicEncryptionIv: data.publicEncryptionIv,
|
|
16
|
+
publicEncryptionJwk: data.publicEncryptionJwk,
|
|
17
|
+
publicEncryptionTag: data.publicEncryptionTag,
|
|
18
|
+
});
|
|
19
|
+
return {
|
|
20
|
+
cek: data.publicEncryptionKey
|
|
21
|
+
? b64_1.B64.encode(data.publicEncryptionKey, "b64u")
|
|
22
|
+
: undefined,
|
|
23
|
+
ciphertext: b64_1.B64.encode(data.content, "b64u"),
|
|
24
|
+
header: (0, aes_header_1.encodeAesHeader)(header),
|
|
25
|
+
iv: b64_1.B64.encode(data.initialisationVector, "b64u"),
|
|
26
|
+
tag: b64_1.B64.encode(data.authTag, "b64u"),
|
|
27
|
+
v: private_1.AES_FORMAT_VERSION,
|
|
28
|
+
};
|
|
29
|
+
};
|
|
28
30
|
exports.createSerialisedAesRecord = createSerialisedAesRecord;
|
|
29
|
-
const parseSerialisedAesRecord = (options) =>
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
: undefined,
|
|
43
|
-
publicEncryptionJwk: options.publicEncryptionJwk,
|
|
44
|
-
publicEncryptionKey: options.publicEncryptionKey
|
|
45
|
-
? b64_1.B64.toBuffer(options.publicEncryptionKey)
|
|
46
|
-
: undefined,
|
|
47
|
-
publicEncryptionTag: options.publicEncryptionTag
|
|
48
|
-
? b64_1.B64.toBuffer(options.publicEncryptionTag)
|
|
49
|
-
: undefined,
|
|
50
|
-
version: options.version,
|
|
51
|
-
});
|
|
31
|
+
const parseSerialisedAesRecord = (options) => {
|
|
32
|
+
const header = (0, aes_header_1.decodeAesHeader)(options.header);
|
|
33
|
+
const params = (0, aes_header_1.headerToDecryptionParams)(header);
|
|
34
|
+
const aad = (0, aes_header_1.computeAad)(options.header);
|
|
35
|
+
return {
|
|
36
|
+
...params,
|
|
37
|
+
aad,
|
|
38
|
+
authTag: b64_1.B64.toBuffer(options.tag, "b64u"),
|
|
39
|
+
content: b64_1.B64.toBuffer(options.ciphertext, "b64u"),
|
|
40
|
+
initialisationVector: b64_1.B64.toBuffer(options.iv, "b64u"),
|
|
41
|
+
publicEncryptionKey: options.cek ? b64_1.B64.toBuffer(options.cek, "b64u") : undefined,
|
|
42
|
+
};
|
|
43
|
+
};
|
|
52
44
|
exports.parseSerialisedAesRecord = parseSerialisedAesRecord;
|
|
53
45
|
//# sourceMappingURL=serialised-aes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialised-aes.js","sourceRoot":"","sources":["../../../src/utils/private/serialised-aes.ts"],"names":[],"mappings":";;;AAAA,sCAAmC;
|
|
1
|
+
{"version":3,"file":"serialised-aes.js","sourceRoot":"","sources":["../../../src/utils/private/serialised-aes.ts"],"names":[],"mappings":";;;AAAA,sCAAmC;AACnC,qDAA6D;AAO7D,6CAMsB;AAiBf,MAAM,yBAAyB,GAAG,CACvC,IAAyB,EACA,EAAE;IAC3B,MAAM,MAAM,GAAG,IAAA,2BAAc,EAAC;QAC5B,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;QAC3C,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;QAC7C,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;KAC9C,CAAC,CAAC;IAEH,OAAO;QACL,GAAG,EAAE,IAAI,CAAC,mBAAmB;YAC3B,CAAC,CAAC,SAAG,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC;YAC9C,CAAC,CAAC,SAAS;QACb,UAAU,EAAE,SAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC;QAC5C,MAAM,EAAE,IAAA,4BAAe,EAAC,MAAM,CAAC;QAC/B,EAAE,EAAE,SAAG,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC;QACjD,GAAG,EAAE,SAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC;QACrC,CAAC,EAAE,4BAAkB;KACtB,CAAC;AACJ,CAAC,CAAC;AAzBW,QAAA,yBAAyB,6BAyBpC;AAEK,MAAM,wBAAwB,GAAG,CACtC,OAAgC,EACX,EAAE;IACvB,MAAM,MAAM,GAAG,IAAA,4BAAe,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,IAAA,qCAAwB,EAAC,MAAM,CAAC,CAAC;IAChD,MAAM,GAAG,GAAG,IAAA,uBAAU,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAEvC,OAAO;QACL,GAAG,MAAM;QACT,GAAG;QACH,OAAO,EAAE,SAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC;QAC1C,OAAO,EAAE,SAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC;QACjD,oBAAoB,EAAE,SAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC;QACtD,mBAAmB,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,SAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;KACjF,CAAC;AACJ,CAAC,CAAC;AAfW,QAAA,wBAAwB,4BAenC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AesEncryptionRecord } from "../../types";
|
|
2
|
-
export declare const createTokenisedAesString: (
|
|
3
|
-
export declare const parseTokenisedAesString: (data: string) =>
|
|
1
|
+
import { AesEncryptionRecord, ParsedAesDecryptionRecord } from "../../types";
|
|
2
|
+
export declare const createTokenisedAesString: (data: AesEncryptionRecord) => string;
|
|
3
|
+
export declare const parseTokenisedAesString: (data: string) => ParsedAesDecryptionRecord;
|
|
4
4
|
//# sourceMappingURL=tokenised-aes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokenised-aes.d.ts","sourceRoot":"","sources":["../../../src/utils/private/tokenised-aes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tokenised-aes.d.ts","sourceRoot":"","sources":["../../../src/utils/private/tokenised-aes.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAsB7E,eAAO,MAAM,wBAAwB,GAAI,MAAM,mBAAmB,KAAG,MAwBpE,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,MAAM,MAAM,KAAG,yBAqEtD,CAAC"}
|
|
@@ -1,68 +1,86 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.parseTokenisedAesString = exports.createTokenisedAesString = void 0;
|
|
4
|
-
const
|
|
5
|
-
const private_1 = require("../../constants/private");
|
|
4
|
+
const b64_1 = require("@lindorm/b64");
|
|
6
5
|
const errors_1 = require("../../errors");
|
|
7
|
-
const
|
|
8
|
-
const createTokenisedAesString = (
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
pei: publicEncryptionIv?.toString(private_1.B64U),
|
|
20
|
-
pek: publicEncryptionKey?.toString(private_1.B64U),
|
|
21
|
-
pet: publicEncryptionTag?.toString(private_1.B64U),
|
|
22
|
-
crv: publicEncryptionJwk?.crv,
|
|
23
|
-
kty: publicEncryptionJwk?.kty,
|
|
24
|
-
x: publicEncryptionJwk?.x,
|
|
25
|
-
y: publicEncryptionJwk?.y,
|
|
6
|
+
const aes_header_1 = require("./aes-header");
|
|
7
|
+
const createTokenisedAesString = (data) => {
|
|
8
|
+
const header = (0, aes_header_1.buildAesHeader)({
|
|
9
|
+
algorithm: data.algorithm,
|
|
10
|
+
contentType: data.contentType,
|
|
11
|
+
encryption: data.encryption,
|
|
12
|
+
keyId: data.keyId,
|
|
13
|
+
pbkdfIterations: data.pbkdfIterations,
|
|
14
|
+
pbkdfSalt: data.pbkdfSalt,
|
|
15
|
+
publicEncryptionIv: data.publicEncryptionIv,
|
|
16
|
+
publicEncryptionJwk: data.publicEncryptionJwk,
|
|
17
|
+
publicEncryptionTag: data.publicEncryptionTag,
|
|
26
18
|
});
|
|
27
|
-
const
|
|
28
|
-
const
|
|
29
|
-
const
|
|
30
|
-
|
|
19
|
+
const headerB64 = (0, aes_header_1.encodeAesHeader)(header);
|
|
20
|
+
const ivB64 = b64_1.B64.encode(data.initialisationVector, "b64u");
|
|
21
|
+
const tagB64 = b64_1.B64.encode(data.authTag, "b64u");
|
|
22
|
+
const ciphertextB64 = b64_1.B64.encode(data.content, "b64u");
|
|
23
|
+
if (data.publicEncryptionKey) {
|
|
24
|
+
const cekB64 = b64_1.B64.encode(data.publicEncryptionKey, "b64u");
|
|
25
|
+
return `aes:${headerB64}$${cekB64}$${ivB64}$${tagB64}$${ciphertextB64}`;
|
|
26
|
+
}
|
|
27
|
+
return `aes:${headerB64}$${ivB64}$${tagB64}$${ciphertextB64}`;
|
|
31
28
|
};
|
|
32
29
|
exports.createTokenisedAesString = createTokenisedAesString;
|
|
33
30
|
const parseTokenisedAesString = (data) => {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
const
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
31
|
+
if (!data.startsWith("aes:")) {
|
|
32
|
+
throw new errors_1.AesError("Invalid tokenised AES string: must start with 'aes:'");
|
|
33
|
+
}
|
|
34
|
+
const withoutPrefix = data.slice(4);
|
|
35
|
+
const parts = withoutPrefix.split("$");
|
|
36
|
+
if (parts.length < 4 || parts.length > 5) {
|
|
37
|
+
throw new errors_1.AesError("Invalid tokenised AES string: unexpected number of segments", {
|
|
38
|
+
debug: { segmentCount: parts.length },
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
const headerB64 = parts[0];
|
|
42
|
+
const header = (0, aes_header_1.decodeAesHeader)(headerB64);
|
|
43
|
+
const params = (0, aes_header_1.headerToDecryptionParams)(header);
|
|
44
|
+
const aad = (0, aes_header_1.computeAad)(headerB64);
|
|
45
|
+
const isDirect = header.alg === "dir" || header.alg === "ECDH-ES";
|
|
46
|
+
const hasCek = parts.length === 5;
|
|
47
|
+
if (isDirect && hasCek) {
|
|
48
|
+
throw new errors_1.AesError("Invalid tokenised AES string: dir/ECDH-ES must not have CEK segment");
|
|
49
|
+
}
|
|
50
|
+
if (!isDirect && !hasCek) {
|
|
51
|
+
throw new errors_1.AesError("Invalid tokenised AES string: non-dir algorithm must have CEK segment");
|
|
52
|
+
}
|
|
53
|
+
let publicEncryptionKey;
|
|
54
|
+
let ivB64;
|
|
55
|
+
let tagB64;
|
|
56
|
+
let ciphertextB64;
|
|
57
|
+
if (hasCek) {
|
|
58
|
+
publicEncryptionKey = b64_1.B64.toBuffer(parts[1], "b64u");
|
|
59
|
+
ivB64 = parts[2];
|
|
60
|
+
tagB64 = parts[3];
|
|
61
|
+
ciphertextB64 = parts[4];
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
ivB64 = parts[1];
|
|
65
|
+
tagB64 = parts[2];
|
|
66
|
+
ciphertextB64 = parts[3];
|
|
46
67
|
}
|
|
47
|
-
const { v, kid, alg, cty, iv, tag, hks, p2c, p2s, pei, pek, pet, crv: curve, kty: keyType, x, y, } = values;
|
|
48
|
-
const crv = curve;
|
|
49
|
-
const kty = keyType;
|
|
50
68
|
return {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
initialisationVector:
|
|
58
|
-
keyId:
|
|
59
|
-
pbkdfIterations:
|
|
60
|
-
pbkdfSalt:
|
|
61
|
-
publicEncryptionIv:
|
|
62
|
-
publicEncryptionJwk:
|
|
63
|
-
publicEncryptionKey
|
|
64
|
-
publicEncryptionTag:
|
|
65
|
-
version:
|
|
69
|
+
aad,
|
|
70
|
+
algorithm: params.algorithm,
|
|
71
|
+
authTag: b64_1.B64.toBuffer(tagB64, "b64u"),
|
|
72
|
+
content: b64_1.B64.toBuffer(ciphertextB64, "b64u"),
|
|
73
|
+
contentType: params.contentType,
|
|
74
|
+
encryption: params.encryption,
|
|
75
|
+
initialisationVector: b64_1.B64.toBuffer(ivB64, "b64u"),
|
|
76
|
+
keyId: params.keyId,
|
|
77
|
+
pbkdfIterations: params.pbkdfIterations,
|
|
78
|
+
pbkdfSalt: params.pbkdfSalt,
|
|
79
|
+
publicEncryptionIv: params.publicEncryptionIv,
|
|
80
|
+
publicEncryptionJwk: params.publicEncryptionJwk,
|
|
81
|
+
publicEncryptionKey,
|
|
82
|
+
publicEncryptionTag: params.publicEncryptionTag,
|
|
83
|
+
version: params.version,
|
|
66
84
|
};
|
|
67
85
|
};
|
|
68
86
|
exports.parseTokenisedAesString = parseTokenisedAesString;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokenised-aes.js","sourceRoot":"","sources":["../../../src/utils/private/tokenised-aes.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"tokenised-aes.js","sourceRoot":"","sources":["../../../src/utils/private/tokenised-aes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-version.d.ts","sourceRoot":"","sources":["../../../src/utils/private/validate-version.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,kBAAkB,GAAI,GAAG,MAAM,KAAG,MA0B9C,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateAesVersion = void 0;
|
|
4
|
+
const private_1 = require("../../constants/private");
|
|
5
|
+
const errors_1 = require("../../errors");
|
|
6
|
+
const validateAesVersion = (v) => {
|
|
7
|
+
if (/^\d+$/.test(v)) {
|
|
8
|
+
throw new errors_1.AesError("Legacy AES version format is no longer supported", {
|
|
9
|
+
debug: { version: v },
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
const match = /^(\d+)\.(\d+)$/.exec(v);
|
|
13
|
+
if (!match) {
|
|
14
|
+
throw new errors_1.AesError("Invalid AES version format", {
|
|
15
|
+
debug: { version: v, expected: "X.Y" },
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
const major = parseInt(match[1], 10);
|
|
19
|
+
if (major !== private_1.AES_FORMAT_MAJOR) {
|
|
20
|
+
throw new errors_1.AesError("Incompatible AES version", {
|
|
21
|
+
debug: { version: v, expectedMajor: private_1.AES_FORMAT_MAJOR },
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
return v;
|
|
25
|
+
};
|
|
26
|
+
exports.validateAesVersion = validateAesVersion;
|
|
27
|
+
//# sourceMappingURL=validate-version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-version.js","sourceRoot":"","sources":["../../../src/utils/private/validate-version.ts"],"names":[],"mappings":";;;AAAA,qDAA2D;AAC3D,yCAAwC;AASjC,MAAM,kBAAkB,GAAG,CAAC,CAAS,EAAU,EAAE;IAEtD,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACpB,MAAM,IAAI,iBAAQ,CAAC,kDAAkD,EAAE;YACrE,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE;SACtB,CAAC,CAAC;IACL,CAAC;IAGD,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAEvC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,iBAAQ,CAAC,4BAA4B,EAAE;YAC/C,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;SACvC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAErC,IAAI,KAAK,KAAK,0BAAgB,EAAE,CAAC;QAC/B,MAAM,IAAI,iBAAQ,CAAC,0BAA0B,EAAE;YAC7C,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,aAAa,EAAE,0BAAgB,EAAE;SACvD,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AA1BW,QAAA,kBAAkB,sBA0B7B"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import base from "../../jest.config.base.mjs";
|
|
2
|
+
import packageJson from "./package.json" with { type: "json" };
|
|
3
|
+
|
|
4
|
+
export default {
|
|
5
|
+
...base,
|
|
6
|
+
displayName: `${packageJson.name}/interop`,
|
|
7
|
+
roots: ["<rootDir>/__tests__"],
|
|
8
|
+
extensionsToTreatAsEsm: [".ts"],
|
|
9
|
+
moduleNameMapper: {
|
|
10
|
+
"^(\\.{1,2}/.*)\\.js$": "$1",
|
|
11
|
+
},
|
|
12
|
+
transform: {
|
|
13
|
+
"^.+\\.tsx?$": [
|
|
14
|
+
"ts-jest",
|
|
15
|
+
{
|
|
16
|
+
useESM: true,
|
|
17
|
+
tsconfig: "tsconfig.interop.json",
|
|
18
|
+
},
|
|
19
|
+
],
|
|
20
|
+
},
|
|
21
|
+
transformIgnorePatterns: ["node_modules/(?!(@noble/ciphers|jose)/)"],
|
|
22
|
+
collectCoverageFrom: [],
|
|
23
|
+
coverageThreshold: {},
|
|
24
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lindorm/aes",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.1",
|
|
4
4
|
"license": "AGPL-3.0-or-later",
|
|
5
5
|
"author": "Jonn Nilsson",
|
|
6
6
|
"repository": {
|
|
@@ -16,26 +16,28 @@
|
|
|
16
16
|
"scripts": {
|
|
17
17
|
"build": "rimraf dist && tsc -b ./tsconfig.build.json",
|
|
18
18
|
"example": "ts-node example",
|
|
19
|
-
"integration": "compd --file docker-compose.yml jest --config jest.config.integration.js --watch",
|
|
20
|
-
"integration:focus": "compd --file docker-compose.yml jest --config jest.config.integration.js --watch $1",
|
|
21
19
|
"prettier": "prettier --write ./src/*",
|
|
22
|
-
"test": "jest --
|
|
23
|
-
"test:ci": "
|
|
24
|
-
"test:
|
|
25
|
-
"test:
|
|
26
|
-
"typecheck": "tsc
|
|
27
|
-
"typecheck:
|
|
20
|
+
"test": "jest --",
|
|
21
|
+
"test:ci": "jest",
|
|
22
|
+
"test:interop": "NODE_OPTIONS='--experimental-vm-modules' jest --config jest.config.interop.mjs --no-coverage",
|
|
23
|
+
"test:watch": "jest --watch --",
|
|
24
|
+
"typecheck": "tsc",
|
|
25
|
+
"typecheck:watch": "tsc --watch",
|
|
28
26
|
"update": "ncu -i",
|
|
29
|
-
"update:auto": "ncu -u"
|
|
27
|
+
"update:auto": "ncu -u",
|
|
28
|
+
"verify": "npm run typecheck; npm run build; npm test"
|
|
30
29
|
},
|
|
31
30
|
"dependencies": {
|
|
32
|
-
"@lindorm/b64": "^0.1.
|
|
33
|
-
"@lindorm/errors": "^0.1.
|
|
34
|
-
"@lindorm/is": "^0.1.
|
|
35
|
-
"@lindorm/kryptos": "^0.
|
|
31
|
+
"@lindorm/b64": "^0.1.8",
|
|
32
|
+
"@lindorm/errors": "^0.1.14",
|
|
33
|
+
"@lindorm/is": "^0.1.13",
|
|
34
|
+
"@lindorm/kryptos": "^0.5.1",
|
|
35
|
+
"@lindorm/utils": "^0.6.0"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
|
-
"@lindorm/types": "^0.
|
|
38
|
+
"@lindorm/types": "^0.4.0",
|
|
39
|
+
"@noble/ciphers": "^1.2.1",
|
|
40
|
+
"jose": "^6.1.3"
|
|
39
41
|
},
|
|
40
|
-
"gitHead": "
|
|
42
|
+
"gitHead": "e9f119d722596c1980328d88e588db4ab49dd04b"
|
|
41
43
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../src/constants/private/format.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,IAAI,EAAG,WAAoB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../../src/constants/private/format.ts"],"names":[],"mappings":";;;AAAa,QAAA,IAAI,GAAG,WAAoB,CAAC"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { KryptosAlgorithm, KryptosCurve, KryptosType } from "@lindorm/kryptos";
|
|
2
|
-
import { AesContentType } from "../content";
|
|
3
|
-
export type AesStringValues = {
|
|
4
|
-
v: string;
|
|
5
|
-
alg: KryptosAlgorithm;
|
|
6
|
-
cty: AesContentType;
|
|
7
|
-
crv: KryptosCurve | undefined;
|
|
8
|
-
hks: string | undefined;
|
|
9
|
-
iv: string;
|
|
10
|
-
kid: string;
|
|
11
|
-
kty: KryptosType | undefined;
|
|
12
|
-
p2c: string | undefined;
|
|
13
|
-
p2s: string | undefined;
|
|
14
|
-
pei: string | undefined;
|
|
15
|
-
pek: string | undefined;
|
|
16
|
-
pet: string | undefined;
|
|
17
|
-
tag: string;
|
|
18
|
-
x: string | undefined;
|
|
19
|
-
y: string | undefined;
|
|
20
|
-
};
|
|
21
|
-
//# sourceMappingURL=aes-string.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"aes-string.d.ts","sourceRoot":"","sources":["../../../src/types/private/aes-string.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,MAAM,eAAe,GAAG;IAC5B,CAAC,EAAE,MAAM,CAAC;IACV,GAAG,EAAE,gBAAgB,CAAC;IACtB,GAAG,EAAE,cAAc,CAAC;IACpB,GAAG,EAAE,YAAY,GAAG,SAAS,CAAC;IAC9B,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,WAAW,GAAG,SAAS,CAAC;IAC7B,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACvB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"aes-string.js","sourceRoot":"","sources":["../../../src/types/private/aes-string.ts"],"names":[],"mappings":""}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { AesKeyLength } from "@lindorm/types";
|
|
2
|
-
type Options = {
|
|
3
|
-
derivationKey: Buffer;
|
|
4
|
-
hkdfSalt?: Buffer;
|
|
5
|
-
keyLength: AesKeyLength;
|
|
6
|
-
};
|
|
7
|
-
type Result = {
|
|
8
|
-
derivedKey: Buffer;
|
|
9
|
-
hkdfSalt: Buffer;
|
|
10
|
-
};
|
|
11
|
-
export declare const hkdf: (options: Options) => Result;
|
|
12
|
-
export {};
|
|
13
|
-
//# sourceMappingURL=hkdf.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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,IAAI,GAAI,SAAS,OAAO,KAAG,MASvC,CAAC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hkdf.js","sourceRoot":"","sources":["../../../../src/utils/private/key-derivation/hkdf.ts"],"names":[],"mappings":";;;AACA,mCAA+C;AAaxC,MAAM,IAAI,GAAG,CAAC,OAAgB,EAAU,EAAE;IAC/C,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,IAAI,QASf"}
|