@lindorm/aegis 0.3.6 → 0.4.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.
Files changed (108) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/README.md +247 -163
  3. package/__tests__/__mocks__/cbor.ts +17 -0
  4. package/__tests__/cose-interop.test.ts +1127 -0
  5. package/__tests__/jwe-interop.test.ts +331 -0
  6. package/__tests__/jwt-interop.test.ts +183 -0
  7. package/dist/classes/Aegis.d.ts.map +1 -1
  8. package/dist/classes/Aegis.js +12 -7
  9. package/dist/classes/Aegis.js.map +1 -1
  10. package/dist/classes/CweKit.d.ts.map +1 -1
  11. package/dist/classes/CweKit.js +31 -37
  12. package/dist/classes/CweKit.js.map +1 -1
  13. package/dist/classes/CwsKit.d.ts.map +1 -1
  14. package/dist/classes/CwsKit.js +8 -3
  15. package/dist/classes/CwsKit.js.map +1 -1
  16. package/dist/classes/CwtKit.d.ts.map +1 -1
  17. package/dist/classes/CwtKit.js +10 -14
  18. package/dist/classes/CwtKit.js.map +1 -1
  19. package/dist/classes/JweKit.d.ts.map +1 -1
  20. package/dist/classes/JweKit.js +24 -47
  21. package/dist/classes/JweKit.js.map +1 -1
  22. package/dist/classes/JwsKit.d.ts.map +1 -1
  23. package/dist/classes/JwsKit.js +9 -2
  24. package/dist/classes/JwsKit.js.map +1 -1
  25. package/dist/classes/JwtKit.d.ts.map +1 -1
  26. package/dist/classes/JwtKit.js +10 -9
  27. package/dist/classes/JwtKit.js.map +1 -1
  28. package/dist/classes/SignatureKit.d.ts.map +1 -1
  29. package/dist/classes/SignatureKit.js +2 -1
  30. package/dist/classes/SignatureKit.js.map +1 -1
  31. package/dist/constants/private/cose.d.ts +0 -1
  32. package/dist/constants/private/cose.d.ts.map +1 -1
  33. package/dist/constants/private/cose.js +5 -23
  34. package/dist/constants/private/cose.js.map +1 -1
  35. package/dist/types/aegis.d.ts +3 -1
  36. package/dist/types/aegis.d.ts.map +1 -1
  37. package/dist/types/cose-target.d.ts +2 -0
  38. package/dist/types/cose-target.d.ts.map +1 -0
  39. package/dist/types/{operators.js → cose-target.js} +1 -1
  40. package/dist/types/cose-target.js.map +1 -0
  41. package/dist/types/cwe/cwe-decode.d.ts +6 -2
  42. package/dist/types/cwe/cwe-decode.d.ts.map +1 -1
  43. package/dist/types/cwe/cwe-decrypt.d.ts +2 -2
  44. package/dist/types/cwe/cwe-decrypt.d.ts.map +1 -1
  45. package/dist/types/cwe/cwe-encrypt.d.ts +2 -0
  46. package/dist/types/cwe/cwe-encrypt.d.ts.map +1 -1
  47. package/dist/types/cws/cws-sign.d.ts +2 -0
  48. package/dist/types/cws/cws-sign.d.ts.map +1 -1
  49. package/dist/types/cwt/cwt-sign.d.ts +4 -1
  50. package/dist/types/cwt/cwt-sign.d.ts.map +1 -1
  51. package/dist/types/header.d.ts +6 -10
  52. package/dist/types/header.d.ts.map +1 -1
  53. package/dist/types/index.d.ts +1 -1
  54. package/dist/types/index.d.ts.map +1 -1
  55. package/dist/types/index.js +1 -1
  56. package/dist/types/index.js.map +1 -1
  57. package/dist/types/jwt/jwt-validate.d.ts +21 -21
  58. package/dist/types/jwt/jwt-validate.d.ts.map +1 -1
  59. package/dist/types/jwt/jwt-verify.d.ts +21 -21
  60. package/dist/types/jwt/jwt-verify.d.ts.map +1 -1
  61. package/dist/utils/private/auth-tag-length.js.map +1 -1
  62. package/dist/utils/private/cose/claims.d.ts +3 -3
  63. package/dist/utils/private/cose/claims.d.ts.map +1 -1
  64. package/dist/utils/private/cose/claims.js +27 -5
  65. package/dist/utils/private/cose/claims.js.map +1 -1
  66. package/dist/utils/private/cose/header.d.ts +3 -3
  67. package/dist/utils/private/cose/header.d.ts.map +1 -1
  68. package/dist/utils/private/cose/header.js +19 -26
  69. package/dist/utils/private/cose/header.js.map +1 -1
  70. package/dist/utils/private/cose/key.d.ts +1 -1
  71. package/dist/utils/private/cose/key.d.ts.map +1 -1
  72. package/dist/utils/private/cose/key.js +16 -12
  73. package/dist/utils/private/cose/key.js.map +1 -1
  74. package/dist/utils/private/cose-sign-token.d.ts +1 -2
  75. package/dist/utils/private/cose-sign-token.d.ts.map +1 -1
  76. package/dist/utils/private/cose-sign-token.js.map +1 -1
  77. package/dist/utils/private/index.d.ts +0 -1
  78. package/dist/utils/private/index.d.ts.map +1 -1
  79. package/dist/utils/private/index.js +0 -1
  80. package/dist/utils/private/index.js.map +1 -1
  81. package/dist/utils/private/jose-header.d.ts.map +1 -1
  82. package/dist/utils/private/jose-header.js +12 -17
  83. package/dist/utils/private/jose-header.js.map +1 -1
  84. package/dist/utils/private/jwt-validate.d.ts +3 -3
  85. package/dist/utils/private/jwt-validate.d.ts.map +1 -1
  86. package/dist/utils/private/jwt-validate.js +9 -9
  87. package/dist/utils/private/jwt-validate.js.map +1 -1
  88. package/dist/utils/private/jwt-verify.d.ts +3 -3
  89. package/dist/utils/private/jwt-verify.d.ts.map +1 -1
  90. package/dist/utils/private/jwt-verify.js +14 -14
  91. package/dist/utils/private/jwt-verify.js.map +1 -1
  92. package/dist/utils/private/token-header.d.ts.map +1 -1
  93. package/dist/utils/private/token-header.js +2 -10
  94. package/dist/utils/private/token-header.js.map +1 -1
  95. package/dist/utils/private/validate.d.ts +2 -3
  96. package/dist/utils/private/validate.d.ts.map +1 -1
  97. package/dist/utils/private/validate.js +9 -10
  98. package/dist/utils/private/validate.js.map +1 -1
  99. package/jest.config.interop.mjs +27 -0
  100. package/package.json +26 -25
  101. package/tsconfig.interop.json +9 -0
  102. package/dist/types/operators.d.ts +0 -27
  103. package/dist/types/operators.d.ts.map +0 -1
  104. package/dist/types/operators.js.map +0 -1
  105. package/dist/utils/private/validate-value.d.ts +0 -3
  106. package/dist/utils/private/validate-value.d.ts.map +0 -1
  107. package/dist/utils/private/validate-value.js +0 -91
  108. package/dist/utils/private/validate-value.js.map +0 -1
@@ -0,0 +1,331 @@
1
+ import { KryptosKit } from "@lindorm/kryptos";
2
+ import { createMockLogger } from "@lindorm/logger";
3
+ import { CompactEncrypt, compactDecrypt, importJWK } from "jose";
4
+ import { JweKit } from "../src/classes/JweKit";
5
+
6
+ // ---------------------------------------------------------------------------
7
+ // Shared constants
8
+ // ---------------------------------------------------------------------------
9
+
10
+ const PLAINTEXT = "hello aegis jwe interop";
11
+ const logger = createMockLogger();
12
+
13
+ // ---------------------------------------------------------------------------
14
+ // Key generation helpers
15
+ // ---------------------------------------------------------------------------
16
+
17
+ const createOctKwKey = () => KryptosKit.generate.enc.oct({ algorithm: "A128KW" });
18
+
19
+ const createOctDirKey = (encryption: "A256GCM" | "A128GCM" = "A256GCM") =>
20
+ KryptosKit.generate.enc.oct({ algorithm: "dir", encryption });
21
+
22
+ const createRsaOaepKey = () => KryptosKit.generate.enc.rsa({ algorithm: "RSA-OAEP-256" });
23
+
24
+ const createEcdhEsKey = () =>
25
+ KryptosKit.generate.enc.ec({ algorithm: "ECDH-ES", curve: "P-256" });
26
+
27
+ // ---------------------------------------------------------------------------
28
+ // Helper: export public-only JWK for jose encryption
29
+ // ---------------------------------------------------------------------------
30
+
31
+ const toPublicJwk = (jwk: Record<string, unknown>): Record<string, unknown> => {
32
+ const { d, dp, dq, p, q, qi, ...publicParts } = jwk as any;
33
+ return publicParts;
34
+ };
35
+
36
+ // ---------------------------------------------------------------------------
37
+ // A128KW + A128GCM
38
+ // ---------------------------------------------------------------------------
39
+
40
+ describe("JWE interop: aegis <-> jose", () => {
41
+ describe("A128KW + A128GCM", () => {
42
+ test("aegis encrypt -> jose decrypt", async () => {
43
+ const kryptos = createOctKwKey();
44
+ const kit = new JweKit({ logger, kryptos, encryption: "A128GCM" });
45
+
46
+ const { token } = kit.encrypt(PLAINTEXT);
47
+
48
+ const jwk = kryptos.export("jwk");
49
+ const joseKey = await importJWK(jwk, "A128KW");
50
+
51
+ const result = await compactDecrypt(token, joseKey);
52
+
53
+ expect(new TextDecoder().decode(result.plaintext)).toBe(PLAINTEXT);
54
+ expect(result.protectedHeader.alg).toBe("A128KW");
55
+ expect(result.protectedHeader.enc).toBe("A128GCM");
56
+ });
57
+
58
+ test("jose encrypt -> aegis decrypt", async () => {
59
+ const kryptos = createOctKwKey();
60
+ const kit = new JweKit({ logger, kryptos, encryption: "A128GCM" });
61
+
62
+ const jwk = kryptos.export("jwk");
63
+ const joseKey = await importJWK(jwk, "A128KW");
64
+
65
+ const token = await new CompactEncrypt(new TextEncoder().encode(PLAINTEXT))
66
+ .setProtectedHeader({
67
+ alg: "A128KW",
68
+ enc: "A128GCM",
69
+ typ: "JWE",
70
+ kid: kryptos.id,
71
+ cty: "text/plain; charset=utf-8",
72
+ })
73
+ .encrypt(joseKey);
74
+
75
+ const result = kit.decrypt(token);
76
+
77
+ expect(result.payload).toBe(PLAINTEXT);
78
+ expect(result.header.algorithm).toBe("A128KW");
79
+ expect(result.header.encryption).toBe("A128GCM");
80
+ });
81
+ });
82
+
83
+ // ---------------------------------------------------------------------------
84
+ // A128KW + A256GCM
85
+ // ---------------------------------------------------------------------------
86
+
87
+ describe("A128KW + A256GCM", () => {
88
+ test("aegis encrypt -> jose decrypt", async () => {
89
+ const kryptos = createOctKwKey();
90
+ const kit = new JweKit({ logger, kryptos, encryption: "A256GCM" });
91
+
92
+ const { token } = kit.encrypt(PLAINTEXT);
93
+
94
+ const jwk = kryptos.export("jwk");
95
+ const joseKey = await importJWK(jwk, "A128KW");
96
+
97
+ const result = await compactDecrypt(token, joseKey);
98
+
99
+ expect(new TextDecoder().decode(result.plaintext)).toBe(PLAINTEXT);
100
+ });
101
+
102
+ test("jose encrypt -> aegis decrypt", async () => {
103
+ const kryptos = createOctKwKey();
104
+ const kit = new JweKit({ logger, kryptos, encryption: "A256GCM" });
105
+
106
+ const jwk = kryptos.export("jwk");
107
+ const joseKey = await importJWK(jwk, "A128KW");
108
+
109
+ const token = await new CompactEncrypt(new TextEncoder().encode(PLAINTEXT))
110
+ .setProtectedHeader({
111
+ alg: "A128KW",
112
+ enc: "A256GCM",
113
+ typ: "JWE",
114
+ kid: kryptos.id,
115
+ cty: "text/plain; charset=utf-8",
116
+ })
117
+ .encrypt(joseKey);
118
+
119
+ const result = kit.decrypt(token);
120
+
121
+ expect(result.payload).toBe(PLAINTEXT);
122
+ });
123
+ });
124
+
125
+ // ---------------------------------------------------------------------------
126
+ // RSA-OAEP-256 + A256GCM
127
+ // ---------------------------------------------------------------------------
128
+
129
+ describe("RSA-OAEP-256 + A256GCM", () => {
130
+ test("aegis encrypt -> jose decrypt", async () => {
131
+ const kryptos = createRsaOaepKey();
132
+ const kit = new JweKit({ logger, kryptos, encryption: "A256GCM" });
133
+
134
+ const { token } = kit.encrypt(PLAINTEXT);
135
+
136
+ // jose needs private key for RSA decryption
137
+ const jwk = kryptos.export("jwk");
138
+ const joseKey = await importJWK(jwk, "RSA-OAEP-256");
139
+
140
+ const result = await compactDecrypt(token, joseKey);
141
+
142
+ expect(new TextDecoder().decode(result.plaintext)).toBe(PLAINTEXT);
143
+ expect(result.protectedHeader.alg).toBe("RSA-OAEP-256");
144
+ expect(result.protectedHeader.enc).toBe("A256GCM");
145
+ });
146
+
147
+ test("jose encrypt -> aegis decrypt", async () => {
148
+ const kryptos = createRsaOaepKey();
149
+ const kit = new JweKit({ logger, kryptos, encryption: "A256GCM" });
150
+
151
+ // jose encrypts with public key
152
+ const jwk = kryptos.export("jwk");
153
+ const publicJwk = toPublicJwk(jwk);
154
+ const joseKey = await importJWK(publicJwk, "RSA-OAEP-256");
155
+
156
+ const token = await new CompactEncrypt(new TextEncoder().encode(PLAINTEXT))
157
+ .setProtectedHeader({
158
+ alg: "RSA-OAEP-256",
159
+ enc: "A256GCM",
160
+ typ: "JWE",
161
+ kid: kryptos.id,
162
+ cty: "text/plain; charset=utf-8",
163
+ })
164
+ .encrypt(joseKey);
165
+
166
+ const result = kit.decrypt(token);
167
+
168
+ expect(result.payload).toBe(PLAINTEXT);
169
+ expect(result.header.algorithm).toBe("RSA-OAEP-256");
170
+ expect(result.header.encryption).toBe("A256GCM");
171
+ });
172
+ });
173
+
174
+ // ---------------------------------------------------------------------------
175
+ // RSA-OAEP-256 + A128CBC-HS256
176
+ // ---------------------------------------------------------------------------
177
+
178
+ describe("RSA-OAEP-256 + A128CBC-HS256", () => {
179
+ test("aegis encrypt -> jose decrypt", async () => {
180
+ const kryptos = createRsaOaepKey();
181
+ const kit = new JweKit({ logger, kryptos, encryption: "A128CBC-HS256" });
182
+
183
+ const { token } = kit.encrypt(PLAINTEXT);
184
+
185
+ const jwk = kryptos.export("jwk");
186
+ const joseKey = await importJWK(jwk, "RSA-OAEP-256");
187
+
188
+ const result = await compactDecrypt(token, joseKey);
189
+
190
+ expect(new TextDecoder().decode(result.plaintext)).toBe(PLAINTEXT);
191
+ expect(result.protectedHeader.enc).toBe("A128CBC-HS256");
192
+ });
193
+
194
+ test("jose encrypt -> aegis decrypt", async () => {
195
+ const kryptos = createRsaOaepKey();
196
+ const kit = new JweKit({ logger, kryptos, encryption: "A128CBC-HS256" });
197
+
198
+ const jwk = kryptos.export("jwk");
199
+ const publicJwk = toPublicJwk(jwk);
200
+ const joseKey = await importJWK(publicJwk, "RSA-OAEP-256");
201
+
202
+ const token = await new CompactEncrypt(new TextEncoder().encode(PLAINTEXT))
203
+ .setProtectedHeader({
204
+ alg: "RSA-OAEP-256",
205
+ enc: "A128CBC-HS256",
206
+ typ: "JWE",
207
+ kid: kryptos.id,
208
+ cty: "text/plain; charset=utf-8",
209
+ })
210
+ .encrypt(joseKey);
211
+
212
+ const result = kit.decrypt(token);
213
+
214
+ expect(result.payload).toBe(PLAINTEXT);
215
+ expect(result.header.encryption).toBe("A128CBC-HS256");
216
+ });
217
+ });
218
+
219
+ // ---------------------------------------------------------------------------
220
+ // A128KW + A128CBC-HS256
221
+ // ---------------------------------------------------------------------------
222
+
223
+ describe("A128KW + A128CBC-HS256", () => {
224
+ test("aegis encrypt -> jose decrypt", async () => {
225
+ const kryptos = createOctKwKey();
226
+ const kit = new JweKit({ logger, kryptos, encryption: "A128CBC-HS256" });
227
+
228
+ const { token } = kit.encrypt(PLAINTEXT);
229
+
230
+ const jwk = kryptos.export("jwk");
231
+ const joseKey = await importJWK(jwk, "A128KW");
232
+
233
+ const result = await compactDecrypt(token, joseKey);
234
+
235
+ expect(new TextDecoder().decode(result.plaintext)).toBe(PLAINTEXT);
236
+ expect(result.protectedHeader.enc).toBe("A128CBC-HS256");
237
+ });
238
+
239
+ test("jose encrypt -> aegis decrypt", async () => {
240
+ const kryptos = createOctKwKey();
241
+ const kit = new JweKit({ logger, kryptos, encryption: "A128CBC-HS256" });
242
+
243
+ const jwk = kryptos.export("jwk");
244
+ const joseKey = await importJWK(jwk, "A128KW");
245
+
246
+ const token = await new CompactEncrypt(new TextEncoder().encode(PLAINTEXT))
247
+ .setProtectedHeader({
248
+ alg: "A128KW",
249
+ enc: "A128CBC-HS256",
250
+ typ: "JWE",
251
+ kid: kryptos.id,
252
+ cty: "text/plain; charset=utf-8",
253
+ })
254
+ .encrypt(joseKey);
255
+
256
+ const result = kit.decrypt(token);
257
+
258
+ expect(result.payload).toBe(PLAINTEXT);
259
+ expect(result.header.encryption).toBe("A128CBC-HS256");
260
+ });
261
+ });
262
+
263
+ // ---------------------------------------------------------------------------
264
+ // dir + A256GCM
265
+ // ---------------------------------------------------------------------------
266
+
267
+ describe("dir + A256GCM", () => {
268
+ test("aegis encrypt -> jose decrypt", async () => {
269
+ const kryptos = createOctDirKey("A256GCM");
270
+ const kit = new JweKit({ logger, kryptos, encryption: "A256GCM" });
271
+
272
+ const { token } = kit.encrypt(PLAINTEXT);
273
+
274
+ const jwk = kryptos.export("jwk");
275
+ const joseKey = await importJWK(jwk, "dir");
276
+
277
+ const result = await compactDecrypt(token, joseKey);
278
+
279
+ expect(new TextDecoder().decode(result.plaintext)).toBe(PLAINTEXT);
280
+ expect(result.protectedHeader.alg).toBe("dir");
281
+ expect(result.protectedHeader.enc).toBe("A256GCM");
282
+ });
283
+
284
+ test("jose encrypt -> aegis decrypt", async () => {
285
+ const kryptos = createOctDirKey("A256GCM");
286
+ const kit = new JweKit({ logger, kryptos, encryption: "A256GCM" });
287
+
288
+ const jwk = kryptos.export("jwk");
289
+ const joseKey = await importJWK(jwk, "dir");
290
+
291
+ const token = await new CompactEncrypt(new TextEncoder().encode(PLAINTEXT))
292
+ .setProtectedHeader({
293
+ alg: "dir",
294
+ enc: "A256GCM",
295
+ typ: "JWE",
296
+ kid: kryptos.id,
297
+ cty: "text/plain; charset=utf-8",
298
+ })
299
+ .encrypt(joseKey);
300
+
301
+ const result = kit.decrypt(token);
302
+
303
+ expect(result.payload).toBe(PLAINTEXT);
304
+ expect(result.header.algorithm).toBe("dir");
305
+ expect(result.header.encryption).toBe("A256GCM");
306
+ });
307
+ });
308
+
309
+ // ---------------------------------------------------------------------------
310
+ // ECDH-ES + A256GCM (EC P-256)
311
+ // ---------------------------------------------------------------------------
312
+
313
+ describe("ECDH-ES + A256GCM", () => {
314
+ test("aegis encrypt -> jose decrypt", async () => {
315
+ const kryptos = createEcdhEsKey();
316
+ const kit = new JweKit({ logger, kryptos, encryption: "A256GCM" });
317
+
318
+ const { token } = kit.encrypt(PLAINTEXT);
319
+
320
+ // jose needs private key for ECDH-ES decryption
321
+ const jwk = kryptos.export("jwk");
322
+ const joseKey = await importJWK(jwk, "ECDH-ES");
323
+
324
+ const result = await compactDecrypt(token, joseKey);
325
+
326
+ expect(new TextDecoder().decode(result.plaintext)).toBe(PLAINTEXT);
327
+ expect(result.protectedHeader.alg).toBe("ECDH-ES");
328
+ expect(result.protectedHeader.enc).toBe("A256GCM");
329
+ });
330
+ });
331
+ });
@@ -0,0 +1,183 @@
1
+ import { KryptosKit } from "@lindorm/kryptos";
2
+ import { createMockLogger } from "@lindorm/logger";
3
+ import { importJWK, jwtVerify, SignJWT } from "jose";
4
+ import type { JwtPayload } from "jsonwebtoken";
5
+ import { createRequire } from "module";
6
+ import { JwtKit } from "../src/classes/JwtKit";
7
+
8
+ const require = createRequire(import.meta.url);
9
+ const jsonwebtoken = require("jsonwebtoken") as typeof import("jsonwebtoken");
10
+
11
+ // ---------------------------------------------------------------------------
12
+ // Shared constants
13
+ // ---------------------------------------------------------------------------
14
+
15
+ const ISSUER = "https://interop.test.lindorm.io/";
16
+ const SUBJECT = "d4e5f6a7-b8c9-4d0e-1a2b-3c4d5e6f7890";
17
+ const logger = createMockLogger();
18
+
19
+ // ---------------------------------------------------------------------------
20
+ // Key generation helpers
21
+ // ---------------------------------------------------------------------------
22
+
23
+ const createEcSigKey = () =>
24
+ KryptosKit.generate.sig.ec({ algorithm: "ES256", curve: "P-256" });
25
+
26
+ const createRsaSigKey = () => KryptosKit.generate.sig.rsa({ algorithm: "RS256" });
27
+
28
+ const createOctSigKey = () => KryptosKit.generate.sig.oct({ algorithm: "HS256" });
29
+
30
+ // ---------------------------------------------------------------------------
31
+ // Helper: export public-only JWK for jose verification
32
+ // ---------------------------------------------------------------------------
33
+
34
+ const toPublicJwk = (jwk: Record<string, unknown>): Record<string, unknown> => {
35
+ const { d, dp, dq, p, q, qi, k, ...publicParts } = jwk as any;
36
+ return publicParts;
37
+ };
38
+
39
+ // ---------------------------------------------------------------------------
40
+ // jose JWT interop
41
+ // ---------------------------------------------------------------------------
42
+
43
+ describe("JWT interop: aegis <-> jose", () => {
44
+ describe.each([
45
+ { name: "EC / ES256", createKey: createEcSigKey, asymmetric: true },
46
+ { name: "RSA / RS256", createKey: createRsaSigKey, asymmetric: true },
47
+ { name: "oct / HS256", createKey: createOctSigKey, asymmetric: false },
48
+ ])("$name", ({ createKey, asymmetric }) => {
49
+ test("aegis sign -> jose verify", async () => {
50
+ const kryptos = createKey();
51
+ const kit = new JwtKit({ issuer: ISSUER, logger, kryptos });
52
+
53
+ const { token } = kit.sign({
54
+ expires: "1h",
55
+ subject: SUBJECT,
56
+ tokenType: "access_token",
57
+ });
58
+
59
+ // jose needs public key for asymmetric verification, full key for symmetric
60
+ const jwk = kryptos.export("jwk");
61
+ const verifyJwk = asymmetric ? toPublicJwk(jwk) : jwk;
62
+ const joseKey = await importJWK(verifyJwk, jwk.alg);
63
+
64
+ const result = await jwtVerify(token, joseKey);
65
+
66
+ expect(result.payload.iss).toBe(ISSUER);
67
+ expect(result.payload.sub).toBe(SUBJECT);
68
+ expect(result.payload.token_type).toBe("access_token");
69
+ expect(result.payload.exp).toBeDefined();
70
+ });
71
+
72
+ test("jose sign -> aegis verify", async () => {
73
+ const kryptos = createKey();
74
+ const kit = new JwtKit({ issuer: ISSUER, logger, kryptos });
75
+
76
+ // jose needs private key for signing
77
+ const jwk = kryptos.export("jwk");
78
+ const joseKey = await importJWK(jwk, jwk.alg);
79
+
80
+ const token = await new SignJWT({ token_type: "access_token" })
81
+ .setProtectedHeader({ alg: jwk.alg, typ: "JWT" })
82
+ .setIssuer(ISSUER)
83
+ .setSubject(SUBJECT)
84
+ .setExpirationTime("1h")
85
+ .setIssuedAt()
86
+ .sign(joseKey);
87
+
88
+ const result = kit.verify(token);
89
+
90
+ expect(result.payload.issuer).toBe(ISSUER);
91
+ expect(result.payload.subject).toBe(SUBJECT);
92
+ expect(result.payload.tokenType).toBe("access_token");
93
+ expect(result.payload.expiresAt).toBeInstanceOf(Date);
94
+ });
95
+ });
96
+ });
97
+
98
+ // ---------------------------------------------------------------------------
99
+ // jsonwebtoken JWT interop
100
+ // ---------------------------------------------------------------------------
101
+
102
+ describe("JWT interop: aegis <-> jsonwebtoken", () => {
103
+ describe("RS256", () => {
104
+ test("aegis sign -> jsonwebtoken verify", () => {
105
+ const kryptos = createRsaSigKey();
106
+ const kit = new JwtKit({ issuer: ISSUER, logger, kryptos });
107
+
108
+ const { token } = kit.sign({
109
+ expires: "1h",
110
+ subject: SUBJECT,
111
+ tokenType: "access_token",
112
+ });
113
+
114
+ const { publicKey } = kryptos.export("pem");
115
+ const result = jsonwebtoken.verify(token, publicKey!) as JwtPayload;
116
+
117
+ expect(result.iss).toBe(ISSUER);
118
+ expect(result.sub).toBe(SUBJECT);
119
+ expect(result.token_type).toBe("access_token");
120
+ expect(result.exp).toBeDefined();
121
+ });
122
+
123
+ test("jsonwebtoken sign -> aegis verify", () => {
124
+ const kryptos = createRsaSigKey();
125
+ const kit = new JwtKit({ issuer: ISSUER, logger, kryptos });
126
+
127
+ const { privateKey } = kryptos.export("pem");
128
+
129
+ const token = jsonwebtoken.sign({ token_type: "access_token" }, privateKey!, {
130
+ algorithm: "RS256",
131
+ expiresIn: "1h",
132
+ issuer: ISSUER,
133
+ subject: SUBJECT,
134
+ });
135
+
136
+ const result = kit.verify(token);
137
+
138
+ expect(result.payload.issuer).toBe(ISSUER);
139
+ expect(result.payload.subject).toBe(SUBJECT);
140
+ expect(result.payload.tokenType).toBe("access_token");
141
+ });
142
+ });
143
+
144
+ describe("HS256", () => {
145
+ test("aegis sign -> jsonwebtoken verify", () => {
146
+ const kryptos = createOctSigKey();
147
+ const kit = new JwtKit({ issuer: ISSUER, logger, kryptos });
148
+
149
+ const { token } = kit.sign({
150
+ expires: "1h",
151
+ subject: SUBJECT,
152
+ tokenType: "access_token",
153
+ });
154
+
155
+ const { privateKey } = kryptos.export("der");
156
+ const result = jsonwebtoken.verify(token, privateKey!) as JwtPayload;
157
+
158
+ expect(result.iss).toBe(ISSUER);
159
+ expect(result.sub).toBe(SUBJECT);
160
+ expect(result.token_type).toBe("access_token");
161
+ });
162
+
163
+ test("jsonwebtoken sign -> aegis verify", () => {
164
+ const kryptos = createOctSigKey();
165
+ const kit = new JwtKit({ issuer: ISSUER, logger, kryptos });
166
+
167
+ const { privateKey } = kryptos.export("der");
168
+
169
+ const token = jsonwebtoken.sign({ token_type: "access_token" }, privateKey!, {
170
+ algorithm: "HS256",
171
+ expiresIn: "1h",
172
+ issuer: ISSUER,
173
+ subject: SUBJECT,
174
+ });
175
+
176
+ const result = kit.verify(token);
177
+
178
+ expect(result.payload.issuer).toBe(ISSUER);
179
+ expect(result.payload.subject).toBe(SUBJECT);
180
+ expect(result.payload.tokenType).toBe("access_token");
181
+ });
182
+ });
183
+ });
@@ -1 +1 @@
1
- {"version":3,"file":"Aegis.d.ts","sourceRoot":"","sources":["../../src/classes/Aegis.ts"],"names":[],"mappings":"AAkBA,OAAO,EACL,MAAM,EACN,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACV,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,YAAY,EAIZ,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EAOV,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EAYT,iBAAiB,EAEjB,gBAAgB,EACjB,MAAM,UAAU,CAAC;AA2BlB,qBAAa,KAAM,YAAW,MAAM;IAClC,SAAgB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAEtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAW;IACnC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;IAC/D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAC/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;gBAE5C,OAAO,EAAE,YAAY;IAWxC,IAAW,GAAG,IAAI,SAAS,CAK1B;IAED,IAAW,GAAG,IAAI,SAAS,CAK1B;IAED,IAAW,GAAG,IAAI,SAAS,CAK1B;IAED,IAAW,GAAG,IAAI,SAAS,CAK1B;IAED,IAAW,GAAG,IAAI,SAAS,CAK1B;IAED,IAAW,GAAG,IAAI,SAAS,CAK1B;IAED,IAAW,GAAG,IAAI,SAAS,CAK1B;IAEY,MAAM,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,EACnF,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,CAAC,CAAC;WA0BC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB;WAKxC,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;WAI3B,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;WAI3B,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;WAI3B,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;WAI5B,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;WAI5B,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;WAI3B,MAAM,CAClB,CAAC,SACG,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,CAAC,GAAG,CAAC,EACnB,KAAK,EAAE,MAAM,GAAG,CAAC;WAsBL,KAAK,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,EACnF,KAAK,EAAE,MAAM,GACZ,CAAC;YAkBU,MAAM;YAMN,UAAU;YASV,UAAU;YAYV,cAAc;YAUd,WAAW;YASX,WAAW;YAaX,WAAW;YASX,QAAQ;YASR,UAAU;YAeV,MAAM;YAWN,OAAO;YASP,SAAS;YAgBT,MAAM;YAUN,UAAU;YASV,UAAU;YAaV,MAAM;YAMN,OAAO;YASP,SAAS;YAaT,MAAM;YAWN,OAAO;YASP,SAAS;YAgBT,UAAU;YA8BV,UAAU;CAqBzB"}
1
+ {"version":3,"file":"Aegis.d.ts","sourceRoot":"","sources":["../../src/classes/Aegis.ts"],"names":[],"mappings":"AAiBA,OAAO,EACL,MAAM,EACN,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACV,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,YAAY,EAKZ,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EAOV,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EAWT,iBAAiB,EAEjB,gBAAgB,EACjB,MAAM,UAAU,CAAC;AAyBlB,qBAAa,KAAM,YAAW,MAAM;IAClC,SAAgB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAEtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAW;IACnC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;IAC/D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAC/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;gBAE5C,OAAO,EAAE,YAAY;IAWxC,IAAW,GAAG,IAAI,SAAS,CAK1B;IAED,IAAW,GAAG,IAAI,SAAS,CAK1B;IAED,IAAW,GAAG,IAAI,SAAS,CAK1B;IAED,IAAW,GAAG,IAAI,SAAS,CAK1B;IAED,IAAW,GAAG,IAAI,SAAS,CAK1B;IAED,IAAW,GAAG,IAAI,SAAS,CAK1B;IAED,IAAW,GAAG,IAAI,SAAS,CAK1B;IAEY,MAAM,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,EACnF,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,CAAC,CAAC;WA0BC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB;WAKxC,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;WAI3B,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;WAI3B,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;WAI3B,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;WAI5B,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;WAI5B,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;WAI3B,MAAM,CAClB,CAAC,SACG,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,CAAC,GAAG,CAAC,EACnB,KAAK,EAAE,MAAM,GAAG,CAAC;WAsBL,KAAK,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,EACnF,KAAK,EAAE,MAAM,GACZ,CAAC;YAkBU,MAAM;YAMN,UAAU;YASV,UAAU;YAeV,cAAc;YAUd,WAAW;YASX,WAAW;YAcX,WAAW;YASX,QAAQ;YASR,UAAU;YAeV,MAAM;YAWN,OAAO;YASP,SAAS;YAgBT,MAAM;YAUN,UAAU;YASV,UAAU;YAaV,MAAM;YAMN,OAAO;YASP,SAAS;YAaT,MAAM;YAWN,OAAO;YASP,SAAS;YAgBT,UAAU;YA+BV,UAAU;CAsBzB"}
@@ -75,7 +75,7 @@ class Aegis {
75
75
  }
76
76
  if (Aegis.isJwe(token)) {
77
77
  const decrypt = await this.jweDecrypt(token);
78
- return (await this.verify(decrypt.payload));
78
+ return await this.verify(decrypt.payload);
79
79
  }
80
80
  if (Aegis.isJws(token)) {
81
81
  return (await this.jwsVerify(token));
@@ -85,7 +85,7 @@ class Aegis {
85
85
  }
86
86
  if (Aegis.isCwe(token)) {
87
87
  const decrypt = await this.coseDecrypt(token);
88
- return (await this.verify(decrypt.payload));
88
+ return await this.verify(decrypt.payload);
89
89
  }
90
90
  if (Aegis.isCws(token)) {
91
91
  return (await this.coseVerify(token));
@@ -160,7 +160,10 @@ class Aegis {
160
160
  }
161
161
  async aesDecrypt(data) {
162
162
  const parsed = aes_1.AesKit.parse(data);
163
- const kit = await this.aesKit({ id: parsed.keyId, algorithm: parsed.algorithm });
163
+ const kit = await this.aesKit({
164
+ id: parsed.keyId,
165
+ algorithm: parsed.algorithm,
166
+ });
164
167
  return kit.decrypt(data);
165
168
  }
166
169
  async coseEncryptKit(options = {}) {
@@ -179,7 +182,7 @@ class Aegis {
179
182
  const decode = CweKit_1.CweKit.decode(token);
180
183
  const kit = await this.coseEncryptKit({
181
184
  id: decode.recipient.unprotected.kid,
182
- algorithm: decode.protected.alg,
185
+ algorithm: decode.recipient.unprotected.alg,
183
186
  });
184
187
  return kit.decrypt(token);
185
188
  }
@@ -290,7 +293,7 @@ class Aegis {
290
293
  ],
291
294
  algorithm: this.encAlgorithm,
292
295
  issuer: this.issuer ?? undefined,
293
- ...(options.keyFilter ? { purpose: options.keyFilter.purpose } : {}),
296
+ ...(options.predicate ?? {}),
294
297
  }
295
298
  : {
296
299
  $or: [
@@ -299,6 +302,7 @@ class Aegis {
299
302
  { operations: ["unwrapKey"] },
300
303
  ],
301
304
  algorithm: options.algorithm ?? this.encAlgorithm,
305
+ ...(options.predicate ?? {}),
302
306
  };
303
307
  const kryptos = await this.amphora.find(options.id ? { id: options.id } : { ...query, use: "enc" });
304
308
  this.logger.debug("Kryptos found", { kryptos: kryptos.toJSON() });
@@ -307,14 +311,15 @@ class Aegis {
307
311
  async kryptosSig(options = {}) {
308
312
  const query = options.sign
309
313
  ? {
310
- algorithm: this.encAlgorithm,
314
+ algorithm: this.sigAlgorithm,
311
315
  issuer: this.issuer ?? undefined,
312
316
  operations: ["sign"],
313
- ...(options.keyFilter ? { purpose: options.keyFilter.purpose } : {}),
317
+ ...(options.predicate ?? {}),
314
318
  }
315
319
  : {
316
320
  algorithm: options.algorithm ?? this.sigAlgorithm,
317
321
  operations: ["verify"],
322
+ ...(options.predicate ?? {}),
318
323
  };
319
324
  const kryptos = await this.amphora.find(options.id ? { id: options.id } : { ...query, use: "sig" });
320
325
  this.logger.debug("Kryptos found", { kryptos: kryptos.toJSON() });
@@ -1 +1 @@
1
- {"version":3,"file":"Aegis.js","sourceRoot":"","sources":["../../src/classes/Aegis.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Aegis.js","sourceRoot":"","sources":["../../src/classes/Aegis.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"CweKit.d.ts","sourceRoot":"","sources":["../../src/classes/CweKit.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,YAAY,EAEZ,YAAY,EACb,MAAM,UAAU,CAAC;AASlB,qBAAa,MAAO,YAAW,OAAO;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAC/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAW;gBAEhB,OAAO,EAAE,aAAa;IAMlC,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,GAAE,iBAAsB,GAAG,YAAY;IA+DxE,OAAO,CAAC,CAAC,SAAS,UAAU,GAAG,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,YAAY,CAAC,CAAC,CAAC;WA0EnE,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO;WAStC,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU;IAgCnD,OAAO,CAAC,WAAW;CAMpB"}
1
+ {"version":3,"file":"CweKit.d.ts","sourceRoot":"","sources":["../../src/classes/CweKit.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,YAAY,EAEZ,YAAY,EAEb,MAAM,UAAU,CAAC;AASlB,qBAAa,MAAO,YAAW,OAAO;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAC/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAW;gBAEhB,OAAO,EAAE,aAAa;IAMlC,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,GAAE,iBAAsB,GAAG,YAAY;IA6DxE,OAAO,CAAC,CAAC,SAAS,UAAU,GAAG,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,YAAY,CAAC,CAAC,CAAC;WAgFnE,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO;WAStC,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU;IAoCnD,OAAO,CAAC,WAAW;CAMpB"}