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.
Files changed (41) hide show
  1. package/README.md +19 -5
  2. package/core/createOidc.js +9 -2
  3. package/core/createOidc.js.map +1 -1
  4. package/core/earlyInit.d.ts +6 -2
  5. package/core/earlyInit.js +168 -31
  6. package/core/earlyInit.js.map +1 -1
  7. package/core/loginSilent.js +7 -42
  8. package/core/loginSilent.js.map +1 -1
  9. package/esm/core/createOidc.js +9 -2
  10. package/esm/core/createOidc.js.map +1 -1
  11. package/esm/core/earlyInit.d.ts +6 -2
  12. package/esm/core/earlyInit.js +167 -31
  13. package/esm/core/earlyInit.js.map +1 -1
  14. package/esm/core/loginSilent.js +7 -42
  15. package/esm/core/loginSilent.js.map +1 -1
  16. package/esm/tools/Evt.js +18 -10
  17. package/esm/tools/Evt.js.map +1 -1
  18. package/package.json +2 -2
  19. package/src/core/createOidc.ts +8 -1
  20. package/src/core/earlyInit.ts +220 -40
  21. package/src/core/loginSilent.ts +18 -79
  22. package/src/tools/Evt.ts +17 -16
  23. package/src/vite-plugin/handleClientEntrypoint.ts +4 -6
  24. package/tools/Evt.js +18 -10
  25. package/tools/Evt.js.map +1 -1
  26. package/vite-plugin/handleClientEntrypoint.js +3 -1
  27. package/vite-plugin/handleClientEntrypoint.js.map +1 -1
  28. package/core/iframeMessageProtection.d.ts +0 -32
  29. package/core/iframeMessageProtection.js +0 -154
  30. package/core/iframeMessageProtection.js.map +0 -1
  31. package/esm/core/iframeMessageProtection.d.ts +0 -32
  32. package/esm/core/iframeMessageProtection.js +0 -149
  33. package/esm/core/iframeMessageProtection.js.map +0 -1
  34. package/esm/tools/asymmetricEncryption.d.ts +0 -18
  35. package/esm/tools/asymmetricEncryption.js +0 -85
  36. package/esm/tools/asymmetricEncryption.js.map +0 -1
  37. package/src/core/iframeMessageProtection.ts +0 -219
  38. package/src/tools/asymmetricEncryption.ts +0 -184
  39. package/tools/asymmetricEncryption.d.ts +0 -18
  40. package/tools/asymmetricEncryption.js +0 -90
  41. 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":"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"}