@darkauth/client 1.13.3 → 1.15.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/dist/index.d.ts +4 -0
- package/dist/index.js +28 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -20,6 +20,10 @@ export interface AuthSession {
|
|
|
20
20
|
idToken: string;
|
|
21
21
|
accessToken?: string;
|
|
22
22
|
drk: Uint8Array;
|
|
23
|
+
clientAppKey?: Uint8Array;
|
|
24
|
+
rootKey?: Uint8Array;
|
|
25
|
+
deliveredKeyKind?: "client_app_key" | "root_key";
|
|
26
|
+
keyDeliveryVersion?: "v1-drk" | "v2";
|
|
23
27
|
refreshToken?: string;
|
|
24
28
|
}
|
|
25
29
|
export interface JwtClaims {
|
package/dist/index.js
CHANGED
|
@@ -190,6 +190,10 @@ function storeSession(session) {
|
|
|
190
190
|
idToken: session.idToken,
|
|
191
191
|
accessToken: session.accessToken,
|
|
192
192
|
drk: session.drk,
|
|
193
|
+
clientAppKey: session.clientAppKey,
|
|
194
|
+
rootKey: session.rootKey,
|
|
195
|
+
deliveredKeyKind: session.deliveredKeyKind,
|
|
196
|
+
keyDeliveryVersion: session.keyDeliveryVersion,
|
|
193
197
|
refreshToken: currentRefreshMode === "token" ? session.refreshToken : undefined,
|
|
194
198
|
};
|
|
195
199
|
memorySession = storedSession;
|
|
@@ -367,6 +371,10 @@ export async function handleCallback() {
|
|
|
367
371
|
sessionStorage.removeItem("zk_eph_priv_jwk");
|
|
368
372
|
const privateKey = await crypto.subtle.importKey("jwk", JSON.parse(privateJwkString), { name: "ECDH", namedCurve: "P-256" }, true, ["deriveBits", "deriveKey"]);
|
|
369
373
|
let drk;
|
|
374
|
+
let clientAppKey;
|
|
375
|
+
let rootKey;
|
|
376
|
+
let deliveredKeyKind;
|
|
377
|
+
let keyDeliveryVersion;
|
|
370
378
|
if (hasV2Artifacts) {
|
|
371
379
|
if (hasLegacyArtifacts)
|
|
372
380
|
throw new Error("Mixed key delivery metadata");
|
|
@@ -421,6 +429,9 @@ export async function handleCallback() {
|
|
|
421
429
|
drk = base64UrlToBytes(requireString(payload.cak, "client app key"));
|
|
422
430
|
if (drk.length === 0)
|
|
423
431
|
throw new Error("Invalid client app key");
|
|
432
|
+
clientAppKey = drk;
|
|
433
|
+
deliveredKeyKind = "client_app_key";
|
|
434
|
+
keyDeliveryVersion = "v2";
|
|
424
435
|
}
|
|
425
436
|
else {
|
|
426
437
|
if (!drkJwe || typeof drkJwe !== "string")
|
|
@@ -434,9 +445,21 @@ export async function handleCallback() {
|
|
|
434
445
|
if (protectedHeader.alg !== "ECDH-ES" || protectedHeader.enc !== "A256GCM")
|
|
435
446
|
throw new Error("Invalid DRK JWE header");
|
|
436
447
|
drk = new Uint8Array(plaintext);
|
|
448
|
+
rootKey = drk;
|
|
449
|
+
deliveredKeyKind = "root_key";
|
|
450
|
+
keyDeliveryVersion = "v1-drk";
|
|
437
451
|
}
|
|
438
452
|
clearCallbackUrl();
|
|
439
|
-
return storeSession({
|
|
453
|
+
return storeSession({
|
|
454
|
+
idToken,
|
|
455
|
+
accessToken,
|
|
456
|
+
drk,
|
|
457
|
+
clientAppKey,
|
|
458
|
+
rootKey,
|
|
459
|
+
deliveredKeyKind,
|
|
460
|
+
keyDeliveryVersion,
|
|
461
|
+
refreshToken,
|
|
462
|
+
});
|
|
440
463
|
}
|
|
441
464
|
finally {
|
|
442
465
|
clearCallbackStorage();
|
|
@@ -532,6 +555,10 @@ export async function refreshSession() {
|
|
|
532
555
|
idToken,
|
|
533
556
|
accessToken,
|
|
534
557
|
drk,
|
|
558
|
+
clientAppKey: memorySession?.clientAppKey,
|
|
559
|
+
rootKey: memorySession?.rootKey,
|
|
560
|
+
deliveredKeyKind: memorySession?.deliveredKeyKind,
|
|
561
|
+
keyDeliveryVersion: memorySession?.keyDeliveryVersion,
|
|
535
562
|
refreshToken: currentRefreshMode === "token" ? newRefreshToken || refreshToken || undefined : undefined,
|
|
536
563
|
});
|
|
537
564
|
}
|