oidc-spa 8.2.12 → 8.3.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/README.md +19 -5
- package/core/createOidc.js +9 -2
- package/core/createOidc.js.map +1 -1
- package/core/earlyInit.d.ts +6 -2
- package/core/earlyInit.js +168 -31
- package/core/earlyInit.js.map +1 -1
- package/core/loginSilent.js +7 -42
- package/core/loginSilent.js.map +1 -1
- package/esm/core/createOidc.js +9 -2
- package/esm/core/createOidc.js.map +1 -1
- package/esm/core/earlyInit.d.ts +6 -2
- package/esm/core/earlyInit.js +167 -31
- package/esm/core/earlyInit.js.map +1 -1
- package/esm/core/loginSilent.js +7 -42
- package/esm/core/loginSilent.js.map +1 -1
- package/esm/tools/Evt.js +18 -10
- package/esm/tools/Evt.js.map +1 -1
- package/package.json +2 -2
- package/src/core/createOidc.ts +8 -1
- package/src/core/earlyInit.ts +220 -40
- package/src/core/loginSilent.ts +18 -79
- package/src/tools/Evt.ts +17 -16
- package/src/vite-plugin/handleClientEntrypoint.ts +4 -6
- package/tools/Evt.js +18 -10
- package/tools/Evt.js.map +1 -1
- package/vite-plugin/handleClientEntrypoint.js +3 -1
- package/vite-plugin/handleClientEntrypoint.js.map +1 -1
- package/core/iframeMessageProtection.d.ts +0 -32
- package/core/iframeMessageProtection.js +0 -154
- package/core/iframeMessageProtection.js.map +0 -1
- package/esm/core/iframeMessageProtection.d.ts +0 -32
- package/esm/core/iframeMessageProtection.js +0 -149
- package/esm/core/iframeMessageProtection.js.map +0 -1
- package/esm/tools/asymmetricEncryption.d.ts +0 -18
- package/esm/tools/asymmetricEncryption.js +0 -85
- package/esm/tools/asymmetricEncryption.js.map +0 -1
- package/src/core/iframeMessageProtection.ts +0 -219
- package/src/tools/asymmetricEncryption.ts +0 -184
- package/tools/asymmetricEncryption.d.ts +0 -18
- package/tools/asymmetricEncryption.js +0 -90
- package/tools/asymmetricEncryption.js.map +0 -1
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
type AsymmetricKeys = {
|
|
2
|
-
publicKey: string;
|
|
3
|
-
privateKey: string;
|
|
4
|
-
};
|
|
5
|
-
export declare function generateKeys(): Promise<AsymmetricKeys>;
|
|
6
|
-
export declare function asymmetricEncrypt(params: {
|
|
7
|
-
publicKey: string;
|
|
8
|
-
message: string;
|
|
9
|
-
}): Promise<{
|
|
10
|
-
encryptedMessage: string;
|
|
11
|
-
}>;
|
|
12
|
-
export declare function asymmetricDecrypt(params: {
|
|
13
|
-
privateKey: string;
|
|
14
|
-
encryptedMessage: string;
|
|
15
|
-
}): Promise<{
|
|
16
|
-
message: string;
|
|
17
|
-
}>;
|
|
18
|
-
export {};
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.generateKeys = generateKeys;
|
|
4
|
-
exports.asymmetricEncrypt = asymmetricEncrypt;
|
|
5
|
-
exports.asymmetricDecrypt = asymmetricDecrypt;
|
|
6
|
-
const INFO_LABEL = "oidc-spa/tools/asymmetricEncryption";
|
|
7
|
-
async function generateKeys() {
|
|
8
|
-
const keyPair = await crypto.subtle.generateKey({
|
|
9
|
-
name: "ECDH",
|
|
10
|
-
namedCurve: "P-256"
|
|
11
|
-
}, true, ["deriveKey", "deriveBits"]);
|
|
12
|
-
const publicKeyRaw = await crypto.subtle.exportKey("jwk", keyPair.publicKey);
|
|
13
|
-
const privateKeyRaw = await crypto.subtle.exportKey("jwk", keyPair.privateKey);
|
|
14
|
-
return {
|
|
15
|
-
publicKey: btoa(JSON.stringify(publicKeyRaw)),
|
|
16
|
-
privateKey: btoa(JSON.stringify(privateKeyRaw))
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
async function asymmetricEncrypt(params) {
|
|
20
|
-
const { publicKey, message } = params;
|
|
21
|
-
const importedPublicKey = await crypto.subtle.importKey("jwk", JSON.parse(atob(publicKey)), {
|
|
22
|
-
name: "ECDH",
|
|
23
|
-
namedCurve: "P-256"
|
|
24
|
-
}, false, []);
|
|
25
|
-
const ephemeralKeyPair = await crypto.subtle.generateKey({
|
|
26
|
-
name: "ECDH",
|
|
27
|
-
namedCurve: "P-256"
|
|
28
|
-
}, true, ["deriveKey", "deriveBits"]);
|
|
29
|
-
const sharedSecret = await crypto.subtle.deriveBits({
|
|
30
|
-
name: "ECDH",
|
|
31
|
-
public: importedPublicKey
|
|
32
|
-
}, ephemeralKeyPair.privateKey, 256);
|
|
33
|
-
const salt = crypto.getRandomValues(new Uint8Array(16));
|
|
34
|
-
const infoBytes = new TextEncoder().encode(INFO_LABEL);
|
|
35
|
-
const hkdfKey = await crypto.subtle.importKey("raw", sharedSecret, "HKDF", false, ["deriveKey"]);
|
|
36
|
-
const derivedKey = await crypto.subtle.deriveKey({
|
|
37
|
-
name: "HKDF",
|
|
38
|
-
hash: "SHA-256",
|
|
39
|
-
salt,
|
|
40
|
-
info: infoBytes
|
|
41
|
-
}, hkdfKey, { name: "AES-GCM", length: 256 }, false, ["encrypt"]);
|
|
42
|
-
const iv = crypto.getRandomValues(new Uint8Array(12));
|
|
43
|
-
const encodedMessage = new TextEncoder().encode(message);
|
|
44
|
-
const ciphertext = await crypto.subtle.encrypt({
|
|
45
|
-
name: "AES-GCM",
|
|
46
|
-
iv
|
|
47
|
-
}, derivedKey, encodedMessage);
|
|
48
|
-
const ephemeralPubKeyRaw = await crypto.subtle.exportKey("jwk", ephemeralKeyPair.publicKey);
|
|
49
|
-
const payload = {
|
|
50
|
-
ephemeralPubKey: ephemeralPubKeyRaw,
|
|
51
|
-
iv: Array.from(iv),
|
|
52
|
-
salt: Array.from(salt),
|
|
53
|
-
ciphertext: Array.from(new Uint8Array(ciphertext))
|
|
54
|
-
};
|
|
55
|
-
return {
|
|
56
|
-
encryptedMessage: btoa(JSON.stringify(payload))
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
async function asymmetricDecrypt(params) {
|
|
60
|
-
const { privateKey, encryptedMessage } = params;
|
|
61
|
-
const { ephemeralPubKey, iv, salt, ciphertext } = JSON.parse(atob(encryptedMessage));
|
|
62
|
-
const importedPrivateKey = await crypto.subtle.importKey("jwk", JSON.parse(atob(privateKey)), {
|
|
63
|
-
name: "ECDH",
|
|
64
|
-
namedCurve: "P-256"
|
|
65
|
-
}, false, ["deriveKey", "deriveBits"]);
|
|
66
|
-
const importedEphemeralPubKey = await crypto.subtle.importKey("jwk", ephemeralPubKey, {
|
|
67
|
-
name: "ECDH",
|
|
68
|
-
namedCurve: "P-256"
|
|
69
|
-
}, false, []);
|
|
70
|
-
const sharedSecret = await crypto.subtle.deriveBits({
|
|
71
|
-
name: "ECDH",
|
|
72
|
-
public: importedEphemeralPubKey
|
|
73
|
-
}, importedPrivateKey, 256);
|
|
74
|
-
const infoBytes = new TextEncoder().encode(INFO_LABEL);
|
|
75
|
-
const hkdfKey = await crypto.subtle.importKey("raw", sharedSecret, "HKDF", false, ["deriveKey"]);
|
|
76
|
-
const derivedKey = await crypto.subtle.deriveKey({
|
|
77
|
-
name: "HKDF",
|
|
78
|
-
hash: "SHA-256",
|
|
79
|
-
salt: new Uint8Array(salt),
|
|
80
|
-
info: infoBytes
|
|
81
|
-
}, hkdfKey, { name: "AES-GCM", length: 256 }, false, ["decrypt"]);
|
|
82
|
-
const decryptedBuffer = await crypto.subtle.decrypt({
|
|
83
|
-
name: "AES-GCM",
|
|
84
|
-
iv: new Uint8Array(iv)
|
|
85
|
-
}, derivedKey, new Uint8Array(ciphertext));
|
|
86
|
-
return {
|
|
87
|
-
message: new TextDecoder().decode(decryptedBuffer)
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
//# sourceMappingURL=asymmetricEncryption.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"asymmetricEncryption.js","sourceRoot":"","sources":["../src/tools/asymmetricEncryption.ts"],"names":[],"mappings":";;AAOA,oCAiBC;AAED,8CA6EC;AAED,8CA8EC;AAlLD,MAAM,UAAU,GAAG,qCAAqC,CAAC;AAElD,KAAK,UAAU,YAAY;IAC9B,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,WAAW,CAC3C;QACI,IAAI,EAAE,MAAM;QACZ,UAAU,EAAE,OAAO;KACtB,EACD,IAAI,EACJ,CAAC,WAAW,EAAE,YAAY,CAAC,CAC9B,CAAC;IAEF,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC7E,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAE/E,OAAO;QACH,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAC7C,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;KAClD,CAAC;AACN,CAAC;AAEM,KAAK,UAAU,iBAAiB,CAAC,MAGvC;IACG,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IAEtC,MAAM,iBAAiB,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CACnD,KAAK,EACL,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAC3B;QACI,IAAI,EAAE,MAAM;QACZ,UAAU,EAAE,OAAO;KACtB,EACD,KAAK,EACL,EAAE,CACL,CAAC;IAEF,MAAM,gBAAgB,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,WAAW,CACpD;QACI,IAAI,EAAE,MAAM;QACZ,UAAU,EAAE,OAAO;KACtB,EACD,IAAI,EACJ,CAAC,WAAW,EAAE,YAAY,CAAC,CAC9B,CAAC;IAEF,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,UAAU,CAC/C;QACI,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,iBAAiB;KAC5B,EACD,gBAAgB,CAAC,UAAU,EAC3B,GAAG,CACN,CAAC;IAEF,MAAM,IAAI,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,MAAM,SAAS,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAEvD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAEjG,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAC5C;QACI,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,SAAS;QACf,IAAI;QACJ,IAAI,EAAE,SAAS;KAClB,EACD,OAAO,EACP,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,EAChC,KAAK,EACL,CAAC,SAAS,CAAC,CACd,CAAC;IAEF,MAAM,EAAE,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;IACtD,MAAM,cAAc,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAEzD,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,CAC1C;QACI,IAAI,EAAE,SAAS;QACf,EAAE;KACL,EACD,UAAU,EACV,cAAc,CACjB,CAAC;IAEF,MAAM,kBAAkB,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAE5F,MAAM,OAAO,GAAG;QACZ,eAAe,EAAE,kBAAkB;QACnC,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAClB,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;QACtB,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;KACrD,CAAC;IAEF,OAAO;QACH,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;KAClD,CAAC;AACN,CAAC;AAEM,KAAK,UAAU,iBAAiB,CAAC,MAGvC;IACG,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAAC;IAEhD,MAAM,EACF,eAAe,EACf,EAAE,EACF,IAAI,EACJ,UAAU,EACb,GAKG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAEvC,MAAM,kBAAkB,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CACpD,KAAK,EACL,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAC5B;QACI,IAAI,EAAE,MAAM;QACZ,UAAU,EAAE,OAAO;KACtB,EACD,KAAK,EACL,CAAC,WAAW,EAAE,YAAY,CAAC,CAC9B,CAAC;IAEF,MAAM,uBAAuB,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CACzD,KAAK,EACL,eAAe,EACf;QACI,IAAI,EAAE,MAAM;QACZ,UAAU,EAAE,OAAO;KACtB,EACD,KAAK,EACL,EAAE,CACL,CAAC;IAEF,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,UAAU,CAC/C;QACI,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,uBAAuB;KAClC,EACD,kBAAkB,EAClB,GAAG,CACN,CAAC;IAEF,MAAM,SAAS,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAEvD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAEjG,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAC5C;QACI,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC;QAC1B,IAAI,EAAE,SAAS;KAClB,EACD,OAAO,EACP,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,EAChC,KAAK,EACL,CAAC,SAAS,CAAC,CACd,CAAC;IAEF,MAAM,eAAe,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,CAC/C;QACI,IAAI,EAAE,SAAS;QACf,EAAE,EAAE,IAAI,UAAU,CAAC,EAAE,CAAC;KACzB,EACD,UAAU,EACV,IAAI,UAAU,CAAC,UAAU,CAAC,CAC7B,CAAC;IAEF,OAAO;QACH,OAAO,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC;KACrD,CAAC;AACN,CAAC"}
|