@azure/msal-browser 3.0.0-alpha.1 → 3.0.0-alpha.2
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/LICENSE +21 -21
- package/README.md +213 -213
- package/dist/app/IPublicClientApplication.d.ts +45 -45
- package/dist/app/IPublicClientApplication.js +96 -96
- package/dist/app/PublicClientApplication.d.ts +244 -244
- package/dist/app/PublicClientApplication.js +307 -307
- package/dist/broker/nativeBroker/NativeMessageHandler.d.ts +63 -63
- package/dist/broker/nativeBroker/NativeMessageHandler.js +255 -255
- package/dist/broker/nativeBroker/NativeRequest.d.ts +43 -43
- package/dist/broker/nativeBroker/NativeResponse.d.ts +48 -48
- package/dist/cache/AsyncMemoryStorage.d.ts +51 -51
- package/dist/cache/AsyncMemoryStorage.js +132 -132
- package/dist/cache/BrowserCacheManager.d.ts +377 -377
- package/dist/cache/BrowserCacheManager.js +1276 -1276
- package/dist/cache/BrowserStorage.d.ts +11 -11
- package/dist/cache/BrowserStorage.js +35 -35
- package/dist/cache/CryptoKeyStore.d.ts +17 -17
- package/dist/cache/CryptoKeyStore.js +41 -41
- package/dist/cache/DatabaseStorage.d.ts +56 -56
- package/dist/cache/DatabaseStorage.js +190 -190
- package/dist/cache/IAsyncMemoryStorage.d.ts +27 -27
- package/dist/cache/ITokenCache.d.ts +10 -10
- package/dist/cache/IWindowStorage.d.ts +27 -27
- package/dist/cache/MemoryStorage.d.ts +11 -11
- package/dist/cache/MemoryStorage.js +31 -31
- package/dist/cache/TokenCache.d.ts +76 -76
- package/dist/cache/TokenCache.js +225 -225
- package/dist/config/Configuration.d.ts +203 -203
- package/dist/config/Configuration.js +101 -101
- package/dist/controllers/ControllerFactory.d.ts +9 -9
- package/dist/controllers/ControllerFactory.js +37 -37
- package/dist/controllers/IController.d.ts +66 -66
- package/dist/controllers/StandardController.d.ts +413 -413
- package/dist/controllers/StandardController.js +1272 -1272
- package/dist/crypto/BrowserCrypto.d.ts +61 -61
- package/dist/crypto/BrowserCrypto.js +131 -131
- package/dist/crypto/CryptoOps.d.ts +73 -73
- package/dist/crypto/CryptoOps.js +150 -150
- package/dist/crypto/GuidGenerator.d.ts +12 -12
- package/dist/crypto/GuidGenerator.js +96 -96
- package/dist/crypto/ISubtleCrypto.d.ts +9 -9
- package/dist/crypto/ModernBrowserCrypto.d.ts +9 -9
- package/dist/crypto/ModernBrowserCrypto.js +24 -24
- package/dist/crypto/MsBrowserCrypto.d.ts +9 -9
- package/dist/crypto/MsBrowserCrypto.js +79 -79
- package/dist/crypto/MsrBrowserCrypto.d.ts +17 -17
- package/dist/crypto/MsrBrowserCrypto.js +28 -28
- package/dist/crypto/PkceGenerator.d.ts +24 -24
- package/dist/crypto/PkceGenerator.js +58 -58
- package/dist/crypto/SignedHttpRequest.d.ts +30 -30
- package/dist/crypto/SignedHttpRequest.js +39 -39
- package/dist/encode/Base64Decode.d.ts +22 -22
- package/dist/encode/Base64Decode.js +73 -73
- package/dist/encode/Base64Encode.d.ts +31 -31
- package/dist/encode/Base64Encode.js +79 -79
- package/dist/error/BrowserAuthError.d.ts +382 -382
- package/dist/error/BrowserAuthError.js +483 -483
- package/dist/error/BrowserConfigurationAuthError.d.ts +70 -70
- package/dist/error/BrowserConfigurationAuthError.js +96 -96
- package/dist/error/NativeAuthError.d.ts +56 -56
- package/dist/error/NativeAuthError.js +88 -88
- package/dist/event/EventHandler.d.ts +41 -41
- package/dist/event/EventHandler.js +119 -119
- package/dist/event/EventMessage.d.ts +25 -25
- package/dist/event/EventMessage.js +67 -67
- package/dist/event/EventType.d.ts +26 -26
- package/dist/event/EventType.js +31 -31
- package/dist/index.d.ts +35 -35
- package/dist/index.js +1 -1
- package/dist/interaction_client/BaseInteractionClient.d.ts +52 -52
- package/dist/interaction_client/BaseInteractionClient.js +138 -138
- package/dist/interaction_client/HybridSpaAuthorizationCodeClient.d.ts +4 -4
- package/dist/interaction_client/HybridSpaAuthorizationCodeClient.js +10 -10
- package/dist/interaction_client/NativeInteractionClient.d.ts +148 -148
- package/dist/interaction_client/NativeInteractionClient.js +516 -516
- package/dist/interaction_client/PopupClient.d.ts +111 -111
- package/dist/interaction_client/PopupClient.js +476 -476
- package/dist/interaction_client/RedirectClient.d.ts +48 -48
- package/dist/interaction_client/RedirectClient.js +290 -290
- package/dist/interaction_client/SilentAuthCodeClient.d.ts +22 -22
- package/dist/interaction_client/SilentAuthCodeClient.js +62 -62
- package/dist/interaction_client/SilentCacheClient.d.ts +21 -21
- package/dist/interaction_client/SilentCacheClient.js +67 -67
- package/dist/interaction_client/SilentIframeClient.d.ts +31 -31
- package/dist/interaction_client/SilentIframeClient.js +127 -127
- package/dist/interaction_client/SilentRefreshClient.d.ts +19 -19
- package/dist/interaction_client/SilentRefreshClient.js +62 -62
- package/dist/interaction_client/StandardInteractionClient.d.ts +59 -59
- package/dist/interaction_client/StandardInteractionClient.js +259 -259
- package/dist/interaction_handler/InteractionHandler.d.ts +39 -39
- package/dist/interaction_handler/InteractionHandler.js +127 -127
- package/dist/interaction_handler/RedirectHandler.d.ts +24 -24
- package/dist/interaction_handler/RedirectHandler.js +118 -118
- package/dist/interaction_handler/SilentHandler.d.ts +47 -47
- package/dist/interaction_handler/SilentHandler.js +162 -162
- package/dist/internals.d.ts +23 -23
- package/dist/internals.js +4 -4
- package/dist/navigation/INavigationClient.d.ts +16 -16
- package/dist/navigation/NavigationClient.d.ts +22 -22
- package/dist/navigation/NavigationClient.js +40 -40
- package/dist/navigation/NavigationOptions.d.ts +12 -12
- package/dist/network/FetchClient.d.ts +26 -26
- package/dist/network/FetchClient.js +99 -99
- package/dist/network/XhrClient.d.ts +40 -40
- package/dist/network/XhrClient.js +117 -117
- package/dist/operatingcontext/BaseOperatingContext.d.ts +40 -40
- package/dist/operatingcontext/BaseOperatingContext.js +44 -44
- package/dist/operatingcontext/StandardOperatingContext.d.ts +25 -25
- package/dist/operatingcontext/StandardOperatingContext.js +43 -43
- package/dist/operatingcontext/TeamsAppOperatingContext.d.ts +25 -25
- package/dist/operatingcontext/TeamsAppOperatingContext.js +42 -42
- package/dist/packageMetadata.d.ts +2 -2
- package/dist/packageMetadata.js +4 -4
- package/dist/request/AuthorizationCodeRequest.d.ts +8 -8
- package/dist/request/AuthorizationUrlRequest.d.ts +8 -8
- package/dist/request/EndSessionPopupRequest.d.ts +18 -18
- package/dist/request/EndSessionRequest.d.ts +15 -15
- package/dist/request/PopupRequest.d.ts +32 -32
- package/dist/request/PopupWindowAttributes.d.ts +15 -15
- package/dist/request/RedirectRequest.d.ts +33 -33
- package/dist/request/SilentRequest.d.ts +30 -30
- package/dist/request/SsoSilentRequest.d.ts +26 -26
- package/dist/telemetry/BrowserPerformanceClient.d.ts +38 -38
- package/dist/telemetry/BrowserPerformanceClient.js +124 -124
- package/dist/telemetry/BrowserPerformanceMeasurement.d.ts +21 -21
- package/dist/telemetry/BrowserPerformanceMeasurement.js +92 -92
- package/dist/utils/BrowserConstants.d.ts +166 -166
- package/dist/utils/BrowserConstants.js +214 -214
- package/dist/utils/BrowserProtocolUtils.d.ts +18 -18
- package/dist/utils/BrowserProtocolUtils.js +34 -34
- package/dist/utils/BrowserStringUtils.d.ts +26 -26
- package/dist/utils/BrowserStringUtils.js +149 -149
- package/dist/utils/BrowserUtils.d.ts +65 -65
- package/dist/utils/BrowserUtils.js +138 -138
- package/dist/utils/MathUtils.d.ts +11 -11
- package/dist/utils/MathUtils.js +21 -21
- package/lib/msal-browser.cjs.js +18383 -0
- package/lib/msal-browser.cjs.js.map +1 -0
- package/lib/msal-browser.js +18389 -0
- package/lib/msal-browser.js.map +1 -0
- package/lib/msal-browser.min.js +74 -0
- package/package.json +97 -95
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { ISubtleCrypto } from "./ISubtleCrypto";
|
|
2
|
-
export declare class MsBrowserCrypto implements ISubtleCrypto {
|
|
3
|
-
getRandomValues(dataBuffer: Uint8Array): Uint8Array;
|
|
4
|
-
generateKey(algorithm: RsaHashedKeyGenParams, extractable: boolean, keyUsages: KeyUsage[]): Promise<CryptoKeyPair>;
|
|
5
|
-
exportKey(key: CryptoKey): Promise<JsonWebKey>;
|
|
6
|
-
importKey(keyData: JsonWebKey, algorithm: RsaHashedImportParams, extractable: boolean, keyUsages: KeyUsage[]): Promise<CryptoKey>;
|
|
7
|
-
sign(algorithm: AlgorithmIdentifier, key: CryptoKey, data: ArrayBuffer): Promise<ArrayBuffer>;
|
|
8
|
-
digest(algorithm: AlgorithmIdentifier, data: Uint8Array): Promise<ArrayBuffer>;
|
|
9
|
-
}
|
|
1
|
+
import { ISubtleCrypto } from "./ISubtleCrypto";
|
|
2
|
+
export declare class MsBrowserCrypto implements ISubtleCrypto {
|
|
3
|
+
getRandomValues(dataBuffer: Uint8Array): Uint8Array;
|
|
4
|
+
generateKey(algorithm: RsaHashedKeyGenParams, extractable: boolean, keyUsages: KeyUsage[]): Promise<CryptoKeyPair>;
|
|
5
|
+
exportKey(key: CryptoKey): Promise<JsonWebKey>;
|
|
6
|
+
importKey(keyData: JsonWebKey, algorithm: RsaHashedImportParams, extractable: boolean, keyUsages: KeyUsage[]): Promise<CryptoKey>;
|
|
7
|
+
sign(algorithm: AlgorithmIdentifier, key: CryptoKey, data: ArrayBuffer): Promise<ArrayBuffer>;
|
|
8
|
+
digest(algorithm: AlgorithmIdentifier, data: Uint8Array): Promise<ArrayBuffer>;
|
|
9
|
+
}
|
|
10
10
|
//# sourceMappingURL=MsBrowserCrypto.d.ts.map
|
|
@@ -1,87 +1,87 @@
|
|
|
1
|
-
/*! @azure/msal-browser v3.0.0-alpha.
|
|
1
|
+
/*! @azure/msal-browser v3.0.0-alpha.2 2023-05-17 */
|
|
2
2
|
'use strict';
|
|
3
3
|
import { Constants } from '@azure/msal-common';
|
|
4
4
|
import { KEY_FORMAT_JWK } from '../utils/BrowserConstants.js';
|
|
5
5
|
import { BrowserStringUtils } from '../utils/BrowserStringUtils.js';
|
|
6
6
|
|
|
7
|
-
/*
|
|
8
|
-
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
9
|
-
* Licensed under the MIT License.
|
|
10
|
-
*/
|
|
11
|
-
class MsBrowserCrypto {
|
|
12
|
-
getRandomValues(dataBuffer) {
|
|
13
|
-
return window["msCrypto"].getRandomValues(dataBuffer);
|
|
14
|
-
}
|
|
15
|
-
async generateKey(algorithm, extractable, keyUsages) {
|
|
16
|
-
return new Promise((resolve, reject) => {
|
|
17
|
-
const msGenerateKey = window["msCrypto"].subtle.generateKey(algorithm, extractable, keyUsages);
|
|
18
|
-
msGenerateKey.addEventListener("complete", (e) => {
|
|
19
|
-
resolve(e.target.result);
|
|
20
|
-
});
|
|
21
|
-
msGenerateKey.addEventListener("error", (error) => {
|
|
22
|
-
reject(error);
|
|
23
|
-
});
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
async exportKey(key) {
|
|
27
|
-
return new Promise((resolve, reject) => {
|
|
28
|
-
const msExportKey = window["msCrypto"].subtle.exportKey(KEY_FORMAT_JWK, key);
|
|
29
|
-
msExportKey.addEventListener("complete", (e) => {
|
|
30
|
-
const resultBuffer = e.target.result;
|
|
31
|
-
const resultString = BrowserStringUtils.utf8ArrToString(new Uint8Array(resultBuffer))
|
|
32
|
-
.replace(/\r/g, Constants.EMPTY_STRING)
|
|
33
|
-
.replace(/\n/g, Constants.EMPTY_STRING)
|
|
34
|
-
.replace(/\t/g, Constants.EMPTY_STRING)
|
|
35
|
-
.split(" ")
|
|
36
|
-
.join(Constants.EMPTY_STRING)
|
|
37
|
-
.replace("\u0000", Constants.EMPTY_STRING);
|
|
38
|
-
try {
|
|
39
|
-
resolve(JSON.parse(resultString));
|
|
40
|
-
}
|
|
41
|
-
catch (e) {
|
|
42
|
-
reject(e);
|
|
43
|
-
}
|
|
44
|
-
});
|
|
45
|
-
msExportKey.addEventListener("error", (error) => {
|
|
46
|
-
reject(error);
|
|
47
|
-
});
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
async importKey(keyData, algorithm, extractable, keyUsages) {
|
|
51
|
-
const keyString = BrowserStringUtils.getSortedObjectString(keyData);
|
|
52
|
-
const keyBuffer = BrowserStringUtils.stringToArrayBuffer(keyString);
|
|
53
|
-
return new Promise((resolve, reject) => {
|
|
54
|
-
const msImportKey = window["msCrypto"].subtle.importKey(KEY_FORMAT_JWK, keyBuffer, algorithm, extractable, keyUsages);
|
|
55
|
-
msImportKey.addEventListener("complete", (e) => {
|
|
56
|
-
resolve(e.target.result);
|
|
57
|
-
});
|
|
58
|
-
msImportKey.addEventListener("error", (error) => {
|
|
59
|
-
reject(error);
|
|
60
|
-
});
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
async sign(algorithm, key, data) {
|
|
64
|
-
return new Promise((resolve, reject) => {
|
|
65
|
-
const msSign = window["msCrypto"].subtle.sign(algorithm, key, data);
|
|
66
|
-
msSign.addEventListener("complete", (e) => {
|
|
67
|
-
resolve(e.target.result);
|
|
68
|
-
});
|
|
69
|
-
msSign.addEventListener("error", (error) => {
|
|
70
|
-
reject(error);
|
|
71
|
-
});
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
async digest(algorithm, data) {
|
|
75
|
-
return new Promise((resolve, reject) => {
|
|
76
|
-
const digestOperation = window["msCrypto"].subtle.digest(algorithm, data.buffer);
|
|
77
|
-
digestOperation.addEventListener("complete", (e) => {
|
|
78
|
-
resolve(e.target.result);
|
|
79
|
-
});
|
|
80
|
-
digestOperation.addEventListener("error", (error) => {
|
|
81
|
-
reject(error);
|
|
82
|
-
});
|
|
83
|
-
});
|
|
84
|
-
}
|
|
7
|
+
/*
|
|
8
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
9
|
+
* Licensed under the MIT License.
|
|
10
|
+
*/
|
|
11
|
+
class MsBrowserCrypto {
|
|
12
|
+
getRandomValues(dataBuffer) {
|
|
13
|
+
return window["msCrypto"].getRandomValues(dataBuffer);
|
|
14
|
+
}
|
|
15
|
+
async generateKey(algorithm, extractable, keyUsages) {
|
|
16
|
+
return new Promise((resolve, reject) => {
|
|
17
|
+
const msGenerateKey = window["msCrypto"].subtle.generateKey(algorithm, extractable, keyUsages);
|
|
18
|
+
msGenerateKey.addEventListener("complete", (e) => {
|
|
19
|
+
resolve(e.target.result);
|
|
20
|
+
});
|
|
21
|
+
msGenerateKey.addEventListener("error", (error) => {
|
|
22
|
+
reject(error);
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
async exportKey(key) {
|
|
27
|
+
return new Promise((resolve, reject) => {
|
|
28
|
+
const msExportKey = window["msCrypto"].subtle.exportKey(KEY_FORMAT_JWK, key);
|
|
29
|
+
msExportKey.addEventListener("complete", (e) => {
|
|
30
|
+
const resultBuffer = e.target.result;
|
|
31
|
+
const resultString = BrowserStringUtils.utf8ArrToString(new Uint8Array(resultBuffer))
|
|
32
|
+
.replace(/\r/g, Constants.EMPTY_STRING)
|
|
33
|
+
.replace(/\n/g, Constants.EMPTY_STRING)
|
|
34
|
+
.replace(/\t/g, Constants.EMPTY_STRING)
|
|
35
|
+
.split(" ")
|
|
36
|
+
.join(Constants.EMPTY_STRING)
|
|
37
|
+
.replace("\u0000", Constants.EMPTY_STRING);
|
|
38
|
+
try {
|
|
39
|
+
resolve(JSON.parse(resultString));
|
|
40
|
+
}
|
|
41
|
+
catch (e) {
|
|
42
|
+
reject(e);
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
msExportKey.addEventListener("error", (error) => {
|
|
46
|
+
reject(error);
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
async importKey(keyData, algorithm, extractable, keyUsages) {
|
|
51
|
+
const keyString = BrowserStringUtils.getSortedObjectString(keyData);
|
|
52
|
+
const keyBuffer = BrowserStringUtils.stringToArrayBuffer(keyString);
|
|
53
|
+
return new Promise((resolve, reject) => {
|
|
54
|
+
const msImportKey = window["msCrypto"].subtle.importKey(KEY_FORMAT_JWK, keyBuffer, algorithm, extractable, keyUsages);
|
|
55
|
+
msImportKey.addEventListener("complete", (e) => {
|
|
56
|
+
resolve(e.target.result);
|
|
57
|
+
});
|
|
58
|
+
msImportKey.addEventListener("error", (error) => {
|
|
59
|
+
reject(error);
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
async sign(algorithm, key, data) {
|
|
64
|
+
return new Promise((resolve, reject) => {
|
|
65
|
+
const msSign = window["msCrypto"].subtle.sign(algorithm, key, data);
|
|
66
|
+
msSign.addEventListener("complete", (e) => {
|
|
67
|
+
resolve(e.target.result);
|
|
68
|
+
});
|
|
69
|
+
msSign.addEventListener("error", (error) => {
|
|
70
|
+
reject(error);
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
async digest(algorithm, data) {
|
|
75
|
+
return new Promise((resolve, reject) => {
|
|
76
|
+
const digestOperation = window["msCrypto"].subtle.digest(algorithm, data.buffer);
|
|
77
|
+
digestOperation.addEventListener("complete", (e) => {
|
|
78
|
+
resolve(e.target.result);
|
|
79
|
+
});
|
|
80
|
+
digestOperation.addEventListener("error", (error) => {
|
|
81
|
+
reject(error);
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
85
|
}
|
|
86
86
|
|
|
87
87
|
export { MsBrowserCrypto };
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import { ISubtleCrypto } from "./ISubtleCrypto";
|
|
2
|
-
declare global {
|
|
3
|
-
interface Window {
|
|
4
|
-
msrCrypto: Crypto & {
|
|
5
|
-
initPrng: (entropy: Uint8Array | number[]) => void;
|
|
6
|
-
};
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
export declare class MsrBrowserCrypto implements ISubtleCrypto {
|
|
10
|
-
initPrng(entropy: Uint8Array): void;
|
|
11
|
-
getRandomValues(dataBuffer: Uint8Array): Uint8Array;
|
|
12
|
-
generateKey(algorithm: RsaHashedKeyGenParams, extractable: boolean, keyUsages: KeyUsage[]): Promise<CryptoKeyPair>;
|
|
13
|
-
exportKey(key: CryptoKey): Promise<JsonWebKey>;
|
|
14
|
-
importKey(keyData: JsonWebKey, algorithm: RsaHashedImportParams, extractable: boolean, keyUsages: KeyUsage[]): Promise<CryptoKey>;
|
|
15
|
-
sign(algorithm: AlgorithmIdentifier, key: CryptoKey, data: ArrayBuffer): Promise<ArrayBuffer>;
|
|
16
|
-
digest(algorithm: AlgorithmIdentifier, data: Uint8Array): Promise<ArrayBuffer>;
|
|
17
|
-
}
|
|
1
|
+
import { ISubtleCrypto } from "./ISubtleCrypto";
|
|
2
|
+
declare global {
|
|
3
|
+
interface Window {
|
|
4
|
+
msrCrypto: Crypto & {
|
|
5
|
+
initPrng: (entropy: Uint8Array | number[]) => void;
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export declare class MsrBrowserCrypto implements ISubtleCrypto {
|
|
10
|
+
initPrng(entropy: Uint8Array): void;
|
|
11
|
+
getRandomValues(dataBuffer: Uint8Array): Uint8Array;
|
|
12
|
+
generateKey(algorithm: RsaHashedKeyGenParams, extractable: boolean, keyUsages: KeyUsage[]): Promise<CryptoKeyPair>;
|
|
13
|
+
exportKey(key: CryptoKey): Promise<JsonWebKey>;
|
|
14
|
+
importKey(keyData: JsonWebKey, algorithm: RsaHashedImportParams, extractable: boolean, keyUsages: KeyUsage[]): Promise<CryptoKey>;
|
|
15
|
+
sign(algorithm: AlgorithmIdentifier, key: CryptoKey, data: ArrayBuffer): Promise<ArrayBuffer>;
|
|
16
|
+
digest(algorithm: AlgorithmIdentifier, data: Uint8Array): Promise<ArrayBuffer>;
|
|
17
|
+
}
|
|
18
18
|
//# sourceMappingURL=MsrBrowserCrypto.d.ts.map
|
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
/*! @azure/msal-browser v3.0.0-alpha.
|
|
1
|
+
/*! @azure/msal-browser v3.0.0-alpha.2 2023-05-17 */
|
|
2
2
|
'use strict';
|
|
3
3
|
import { KEY_FORMAT_JWK } from '../utils/BrowserConstants.js';
|
|
4
4
|
|
|
5
|
-
/*
|
|
6
|
-
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
7
|
-
* Licensed under the MIT License.
|
|
8
|
-
*/
|
|
9
|
-
class MsrBrowserCrypto {
|
|
10
|
-
initPrng(entropy) {
|
|
11
|
-
// Turn into array, as initPrng seems to not always like Uint8Array (even though it should support both)
|
|
12
|
-
return window.msrCrypto.initPrng([...entropy]);
|
|
13
|
-
}
|
|
14
|
-
getRandomValues(dataBuffer) {
|
|
15
|
-
return window.msrCrypto.getRandomValues(dataBuffer);
|
|
16
|
-
}
|
|
17
|
-
async generateKey(algorithm, extractable, keyUsages) {
|
|
18
|
-
return window.msrCrypto.subtle.generateKey(algorithm, extractable, keyUsages);
|
|
19
|
-
}
|
|
20
|
-
async exportKey(key) {
|
|
21
|
-
return window.msrCrypto.subtle.exportKey(KEY_FORMAT_JWK, key);
|
|
22
|
-
}
|
|
23
|
-
async importKey(keyData, algorithm, extractable, keyUsages) {
|
|
24
|
-
return window.msrCrypto.subtle.importKey(KEY_FORMAT_JWK, keyData, algorithm, extractable, keyUsages);
|
|
25
|
-
}
|
|
26
|
-
async sign(algorithm, key, data) {
|
|
27
|
-
return window.msrCrypto.subtle.sign(algorithm, key, data);
|
|
28
|
-
}
|
|
29
|
-
async digest(algorithm, data) {
|
|
30
|
-
return window.msrCrypto.subtle.digest(algorithm, data);
|
|
31
|
-
}
|
|
5
|
+
/*
|
|
6
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
7
|
+
* Licensed under the MIT License.
|
|
8
|
+
*/
|
|
9
|
+
class MsrBrowserCrypto {
|
|
10
|
+
initPrng(entropy) {
|
|
11
|
+
// Turn into array, as initPrng seems to not always like Uint8Array (even though it should support both)
|
|
12
|
+
return window.msrCrypto.initPrng([...entropy]);
|
|
13
|
+
}
|
|
14
|
+
getRandomValues(dataBuffer) {
|
|
15
|
+
return window.msrCrypto.getRandomValues(dataBuffer);
|
|
16
|
+
}
|
|
17
|
+
async generateKey(algorithm, extractable, keyUsages) {
|
|
18
|
+
return window.msrCrypto.subtle.generateKey(algorithm, extractable, keyUsages);
|
|
19
|
+
}
|
|
20
|
+
async exportKey(key) {
|
|
21
|
+
return window.msrCrypto.subtle.exportKey(KEY_FORMAT_JWK, key);
|
|
22
|
+
}
|
|
23
|
+
async importKey(keyData, algorithm, extractable, keyUsages) {
|
|
24
|
+
return window.msrCrypto.subtle.importKey(KEY_FORMAT_JWK, keyData, algorithm, extractable, keyUsages);
|
|
25
|
+
}
|
|
26
|
+
async sign(algorithm, key, data) {
|
|
27
|
+
return window.msrCrypto.subtle.sign(algorithm, key, data);
|
|
28
|
+
}
|
|
29
|
+
async digest(algorithm, data) {
|
|
30
|
+
return window.msrCrypto.subtle.digest(algorithm, data);
|
|
31
|
+
}
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
export { MsrBrowserCrypto };
|
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
import { PkceCodes } from "@azure/msal-common";
|
|
2
|
-
import { BrowserCrypto } from "./BrowserCrypto";
|
|
3
|
-
/**
|
|
4
|
-
* Class which exposes APIs to generate PKCE codes and code verifiers.
|
|
5
|
-
*/
|
|
6
|
-
export declare class PkceGenerator {
|
|
7
|
-
private base64Encode;
|
|
8
|
-
private cryptoObj;
|
|
9
|
-
constructor(cryptoObj: BrowserCrypto);
|
|
10
|
-
/**
|
|
11
|
-
* Generates PKCE Codes. See the RFC for more information: https://tools.ietf.org/html/rfc7636
|
|
12
|
-
*/
|
|
13
|
-
generateCodes(): Promise<PkceCodes>;
|
|
14
|
-
/**
|
|
15
|
-
* Generates a random 32 byte buffer and returns the base64
|
|
16
|
-
* encoded string to be used as a PKCE Code Verifier
|
|
17
|
-
*/
|
|
18
|
-
private generateCodeVerifier;
|
|
19
|
-
/**
|
|
20
|
-
* Creates a base64 encoded PKCE Code Challenge string from the
|
|
21
|
-
* hash created from the PKCE Code Verifier supplied
|
|
22
|
-
*/
|
|
23
|
-
private generateCodeChallengeFromVerifier;
|
|
24
|
-
}
|
|
1
|
+
import { PkceCodes } from "@azure/msal-common";
|
|
2
|
+
import { BrowserCrypto } from "./BrowserCrypto";
|
|
3
|
+
/**
|
|
4
|
+
* Class which exposes APIs to generate PKCE codes and code verifiers.
|
|
5
|
+
*/
|
|
6
|
+
export declare class PkceGenerator {
|
|
7
|
+
private base64Encode;
|
|
8
|
+
private cryptoObj;
|
|
9
|
+
constructor(cryptoObj: BrowserCrypto);
|
|
10
|
+
/**
|
|
11
|
+
* Generates PKCE Codes. See the RFC for more information: https://tools.ietf.org/html/rfc7636
|
|
12
|
+
*/
|
|
13
|
+
generateCodes(): Promise<PkceCodes>;
|
|
14
|
+
/**
|
|
15
|
+
* Generates a random 32 byte buffer and returns the base64
|
|
16
|
+
* encoded string to be used as a PKCE Code Verifier
|
|
17
|
+
*/
|
|
18
|
+
private generateCodeVerifier;
|
|
19
|
+
/**
|
|
20
|
+
* Creates a base64 encoded PKCE Code Challenge string from the
|
|
21
|
+
* hash created from the PKCE Code Verifier supplied
|
|
22
|
+
*/
|
|
23
|
+
private generateCodeChallengeFromVerifier;
|
|
24
|
+
}
|
|
25
25
|
//# sourceMappingURL=PkceGenerator.d.ts.map
|
|
@@ -1,65 +1,65 @@
|
|
|
1
|
-
/*! @azure/msal-browser v3.0.0-alpha.
|
|
1
|
+
/*! @azure/msal-browser v3.0.0-alpha.2 2023-05-17 */
|
|
2
2
|
'use strict';
|
|
3
3
|
import { BrowserAuthError } from '../error/BrowserAuthError.js';
|
|
4
4
|
import { Base64Encode } from '../encode/Base64Encode.js';
|
|
5
5
|
|
|
6
|
-
/*
|
|
7
|
-
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
8
|
-
* Licensed under the MIT License.
|
|
9
|
-
*/
|
|
10
|
-
// Constant byte array length
|
|
11
|
-
const RANDOM_BYTE_ARR_LENGTH = 32;
|
|
12
|
-
/**
|
|
13
|
-
* Class which exposes APIs to generate PKCE codes and code verifiers.
|
|
14
|
-
*/
|
|
15
|
-
class PkceGenerator {
|
|
16
|
-
constructor(cryptoObj) {
|
|
17
|
-
this.base64Encode = new Base64Encode();
|
|
18
|
-
this.cryptoObj = cryptoObj;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Generates PKCE Codes. See the RFC for more information: https://tools.ietf.org/html/rfc7636
|
|
22
|
-
*/
|
|
23
|
-
async generateCodes() {
|
|
24
|
-
const codeVerifier = this.generateCodeVerifier();
|
|
25
|
-
const codeChallenge = await this.generateCodeChallengeFromVerifier(codeVerifier);
|
|
26
|
-
return {
|
|
27
|
-
verifier: codeVerifier,
|
|
28
|
-
challenge: codeChallenge,
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Generates a random 32 byte buffer and returns the base64
|
|
33
|
-
* encoded string to be used as a PKCE Code Verifier
|
|
34
|
-
*/
|
|
35
|
-
generateCodeVerifier() {
|
|
36
|
-
try {
|
|
37
|
-
// Generate random values as utf-8
|
|
38
|
-
const buffer = new Uint8Array(RANDOM_BYTE_ARR_LENGTH);
|
|
39
|
-
this.cryptoObj.getRandomValues(buffer);
|
|
40
|
-
// encode verifier as base64
|
|
41
|
-
const pkceCodeVerifierB64 = this.base64Encode.urlEncodeArr(buffer);
|
|
42
|
-
return pkceCodeVerifierB64;
|
|
43
|
-
}
|
|
44
|
-
catch (e) {
|
|
45
|
-
throw BrowserAuthError.createPkceNotGeneratedError(e);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Creates a base64 encoded PKCE Code Challenge string from the
|
|
50
|
-
* hash created from the PKCE Code Verifier supplied
|
|
51
|
-
*/
|
|
52
|
-
async generateCodeChallengeFromVerifier(pkceCodeVerifier) {
|
|
53
|
-
try {
|
|
54
|
-
// hashed verifier
|
|
55
|
-
const pkceHashedCodeVerifier = await this.cryptoObj.sha256Digest(pkceCodeVerifier);
|
|
56
|
-
// encode hash as base64
|
|
57
|
-
return this.base64Encode.urlEncodeArr(new Uint8Array(pkceHashedCodeVerifier));
|
|
58
|
-
}
|
|
59
|
-
catch (e) {
|
|
60
|
-
throw BrowserAuthError.createPkceNotGeneratedError(e);
|
|
61
|
-
}
|
|
62
|
-
}
|
|
6
|
+
/*
|
|
7
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
8
|
+
* Licensed under the MIT License.
|
|
9
|
+
*/
|
|
10
|
+
// Constant byte array length
|
|
11
|
+
const RANDOM_BYTE_ARR_LENGTH = 32;
|
|
12
|
+
/**
|
|
13
|
+
* Class which exposes APIs to generate PKCE codes and code verifiers.
|
|
14
|
+
*/
|
|
15
|
+
class PkceGenerator {
|
|
16
|
+
constructor(cryptoObj) {
|
|
17
|
+
this.base64Encode = new Base64Encode();
|
|
18
|
+
this.cryptoObj = cryptoObj;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Generates PKCE Codes. See the RFC for more information: https://tools.ietf.org/html/rfc7636
|
|
22
|
+
*/
|
|
23
|
+
async generateCodes() {
|
|
24
|
+
const codeVerifier = this.generateCodeVerifier();
|
|
25
|
+
const codeChallenge = await this.generateCodeChallengeFromVerifier(codeVerifier);
|
|
26
|
+
return {
|
|
27
|
+
verifier: codeVerifier,
|
|
28
|
+
challenge: codeChallenge,
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Generates a random 32 byte buffer and returns the base64
|
|
33
|
+
* encoded string to be used as a PKCE Code Verifier
|
|
34
|
+
*/
|
|
35
|
+
generateCodeVerifier() {
|
|
36
|
+
try {
|
|
37
|
+
// Generate random values as utf-8
|
|
38
|
+
const buffer = new Uint8Array(RANDOM_BYTE_ARR_LENGTH);
|
|
39
|
+
this.cryptoObj.getRandomValues(buffer);
|
|
40
|
+
// encode verifier as base64
|
|
41
|
+
const pkceCodeVerifierB64 = this.base64Encode.urlEncodeArr(buffer);
|
|
42
|
+
return pkceCodeVerifierB64;
|
|
43
|
+
}
|
|
44
|
+
catch (e) {
|
|
45
|
+
throw BrowserAuthError.createPkceNotGeneratedError(e);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Creates a base64 encoded PKCE Code Challenge string from the
|
|
50
|
+
* hash created from the PKCE Code Verifier supplied
|
|
51
|
+
*/
|
|
52
|
+
async generateCodeChallengeFromVerifier(pkceCodeVerifier) {
|
|
53
|
+
try {
|
|
54
|
+
// hashed verifier
|
|
55
|
+
const pkceHashedCodeVerifier = await this.cryptoObj.sha256Digest(pkceCodeVerifier);
|
|
56
|
+
// encode hash as base64
|
|
57
|
+
return this.base64Encode.urlEncodeArr(new Uint8Array(pkceHashedCodeVerifier));
|
|
58
|
+
}
|
|
59
|
+
catch (e) {
|
|
60
|
+
throw BrowserAuthError.createPkceNotGeneratedError(e);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
63
|
}
|
|
64
64
|
|
|
65
65
|
export { PkceGenerator };
|
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
import { LoggerOptions, SignedHttpRequestParameters } from "@azure/msal-common";
|
|
2
|
-
export type SignedHttpRequestOptions = {
|
|
3
|
-
loggerOptions: LoggerOptions;
|
|
4
|
-
};
|
|
5
|
-
export declare class SignedHttpRequest {
|
|
6
|
-
private popTokenGenerator;
|
|
7
|
-
private cryptoOps;
|
|
8
|
-
private shrParameters;
|
|
9
|
-
private logger;
|
|
10
|
-
constructor(shrParameters: SignedHttpRequestParameters, shrOptions?: SignedHttpRequestOptions);
|
|
11
|
-
/**
|
|
12
|
-
* Generates and caches a keypair for the given request options.
|
|
13
|
-
* @returns Public key digest, which should be sent to the token issuer.
|
|
14
|
-
*/
|
|
15
|
-
generatePublicKeyThumbprint(): Promise<string>;
|
|
16
|
-
/**
|
|
17
|
-
* Generates a signed http request for the given payload with the given key.
|
|
18
|
-
* @param payload Payload to sign (e.g. access token)
|
|
19
|
-
* @param publicKeyThumbprint Public key digest (from generatePublicKeyThumbprint API)
|
|
20
|
-
* @param claims Additional claims to include/override in the signed JWT
|
|
21
|
-
* @returns Pop token signed with the corresponding private key
|
|
22
|
-
*/
|
|
23
|
-
signRequest(payload: string, publicKeyThumbprint: string, claims?: object): Promise<string>;
|
|
24
|
-
/**
|
|
25
|
-
* Removes cached keys from browser for given public key thumbprint
|
|
26
|
-
* @param publicKeyThumbprint Public key digest (from generatePublicKeyThumbprint API)
|
|
27
|
-
* @returns If keys are properly deleted
|
|
28
|
-
*/
|
|
29
|
-
removeKeys(publicKeyThumbprint: string): Promise<boolean>;
|
|
30
|
-
}
|
|
1
|
+
import { LoggerOptions, SignedHttpRequestParameters } from "@azure/msal-common";
|
|
2
|
+
export type SignedHttpRequestOptions = {
|
|
3
|
+
loggerOptions: LoggerOptions;
|
|
4
|
+
};
|
|
5
|
+
export declare class SignedHttpRequest {
|
|
6
|
+
private popTokenGenerator;
|
|
7
|
+
private cryptoOps;
|
|
8
|
+
private shrParameters;
|
|
9
|
+
private logger;
|
|
10
|
+
constructor(shrParameters: SignedHttpRequestParameters, shrOptions?: SignedHttpRequestOptions);
|
|
11
|
+
/**
|
|
12
|
+
* Generates and caches a keypair for the given request options.
|
|
13
|
+
* @returns Public key digest, which should be sent to the token issuer.
|
|
14
|
+
*/
|
|
15
|
+
generatePublicKeyThumbprint(): Promise<string>;
|
|
16
|
+
/**
|
|
17
|
+
* Generates a signed http request for the given payload with the given key.
|
|
18
|
+
* @param payload Payload to sign (e.g. access token)
|
|
19
|
+
* @param publicKeyThumbprint Public key digest (from generatePublicKeyThumbprint API)
|
|
20
|
+
* @param claims Additional claims to include/override in the signed JWT
|
|
21
|
+
* @returns Pop token signed with the corresponding private key
|
|
22
|
+
*/
|
|
23
|
+
signRequest(payload: string, publicKeyThumbprint: string, claims?: object): Promise<string>;
|
|
24
|
+
/**
|
|
25
|
+
* Removes cached keys from browser for given public key thumbprint
|
|
26
|
+
* @param publicKeyThumbprint Public key digest (from generatePublicKeyThumbprint API)
|
|
27
|
+
* @returns If keys are properly deleted
|
|
28
|
+
*/
|
|
29
|
+
removeKeys(publicKeyThumbprint: string): Promise<boolean>;
|
|
30
|
+
}
|
|
31
31
|
//# sourceMappingURL=SignedHttpRequest.d.ts.map
|
|
@@ -1,47 +1,47 @@
|
|
|
1
|
-
/*! @azure/msal-browser v3.0.0-alpha.
|
|
1
|
+
/*! @azure/msal-browser v3.0.0-alpha.2 2023-05-17 */
|
|
2
2
|
'use strict';
|
|
3
3
|
import { CryptoOps } from './CryptoOps.js';
|
|
4
4
|
import { Logger, PopTokenGenerator } from '@azure/msal-common';
|
|
5
5
|
import { name, version } from '../packageMetadata.js';
|
|
6
6
|
|
|
7
|
-
/*
|
|
8
|
-
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
9
|
-
* Licensed under the MIT License.
|
|
10
|
-
*/
|
|
11
|
-
class SignedHttpRequest {
|
|
12
|
-
constructor(shrParameters, shrOptions) {
|
|
13
|
-
const loggerOptions = (shrOptions && shrOptions.loggerOptions) || {};
|
|
14
|
-
this.logger = new Logger(loggerOptions, name, version);
|
|
15
|
-
this.cryptoOps = new CryptoOps(this.logger);
|
|
16
|
-
this.popTokenGenerator = new PopTokenGenerator(this.cryptoOps);
|
|
17
|
-
this.shrParameters = shrParameters;
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Generates and caches a keypair for the given request options.
|
|
21
|
-
* @returns Public key digest, which should be sent to the token issuer.
|
|
22
|
-
*/
|
|
23
|
-
async generatePublicKeyThumbprint() {
|
|
24
|
-
const { kid } = await this.popTokenGenerator.generateKid(this.shrParameters);
|
|
25
|
-
return kid;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Generates a signed http request for the given payload with the given key.
|
|
29
|
-
* @param payload Payload to sign (e.g. access token)
|
|
30
|
-
* @param publicKeyThumbprint Public key digest (from generatePublicKeyThumbprint API)
|
|
31
|
-
* @param claims Additional claims to include/override in the signed JWT
|
|
32
|
-
* @returns Pop token signed with the corresponding private key
|
|
33
|
-
*/
|
|
34
|
-
async signRequest(payload, publicKeyThumbprint, claims) {
|
|
35
|
-
return this.popTokenGenerator.signPayload(payload, publicKeyThumbprint, this.shrParameters, claims);
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Removes cached keys from browser for given public key thumbprint
|
|
39
|
-
* @param publicKeyThumbprint Public key digest (from generatePublicKeyThumbprint API)
|
|
40
|
-
* @returns If keys are properly deleted
|
|
41
|
-
*/
|
|
42
|
-
async removeKeys(publicKeyThumbprint) {
|
|
43
|
-
return await this.cryptoOps.removeTokenBindingKey(publicKeyThumbprint);
|
|
44
|
-
}
|
|
7
|
+
/*
|
|
8
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
9
|
+
* Licensed under the MIT License.
|
|
10
|
+
*/
|
|
11
|
+
class SignedHttpRequest {
|
|
12
|
+
constructor(shrParameters, shrOptions) {
|
|
13
|
+
const loggerOptions = (shrOptions && shrOptions.loggerOptions) || {};
|
|
14
|
+
this.logger = new Logger(loggerOptions, name, version);
|
|
15
|
+
this.cryptoOps = new CryptoOps(this.logger);
|
|
16
|
+
this.popTokenGenerator = new PopTokenGenerator(this.cryptoOps);
|
|
17
|
+
this.shrParameters = shrParameters;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Generates and caches a keypair for the given request options.
|
|
21
|
+
* @returns Public key digest, which should be sent to the token issuer.
|
|
22
|
+
*/
|
|
23
|
+
async generatePublicKeyThumbprint() {
|
|
24
|
+
const { kid } = await this.popTokenGenerator.generateKid(this.shrParameters);
|
|
25
|
+
return kid;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Generates a signed http request for the given payload with the given key.
|
|
29
|
+
* @param payload Payload to sign (e.g. access token)
|
|
30
|
+
* @param publicKeyThumbprint Public key digest (from generatePublicKeyThumbprint API)
|
|
31
|
+
* @param claims Additional claims to include/override in the signed JWT
|
|
32
|
+
* @returns Pop token signed with the corresponding private key
|
|
33
|
+
*/
|
|
34
|
+
async signRequest(payload, publicKeyThumbprint, claims) {
|
|
35
|
+
return this.popTokenGenerator.signPayload(payload, publicKeyThumbprint, this.shrParameters, claims);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Removes cached keys from browser for given public key thumbprint
|
|
39
|
+
* @param publicKeyThumbprint Public key digest (from generatePublicKeyThumbprint API)
|
|
40
|
+
* @returns If keys are properly deleted
|
|
41
|
+
*/
|
|
42
|
+
async removeKeys(publicKeyThumbprint) {
|
|
43
|
+
return await this.cryptoOps.removeTokenBindingKey(publicKeyThumbprint);
|
|
44
|
+
}
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
export { SignedHttpRequest };
|