@azure/msal-browser 3.1.0 → 3.3.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/app/IPublicClientApplication.d.ts.map +1 -1
- package/dist/app/IPublicClientApplication.mjs +20 -19
- package/dist/app/IPublicClientApplication.mjs.map +1 -1
- package/dist/app/PublicClientApplication.d.ts +14 -6
- package/dist/app/PublicClientApplication.d.ts.map +1 -1
- package/dist/app/PublicClientApplication.mjs +18 -8
- package/dist/app/PublicClientApplication.mjs.map +1 -1
- package/dist/app/PublicClientNext.d.ts +274 -0
- package/dist/app/PublicClientNext.d.ts.map +1 -0
- package/dist/app/PublicClientNext.mjs +362 -0
- package/dist/app/PublicClientNext.mjs.map +1 -0
- package/dist/broker/nativeBroker/NativeMessageHandler.d.ts +3 -4
- package/dist/broker/nativeBroker/NativeMessageHandler.d.ts.map +1 -1
- package/dist/broker/nativeBroker/NativeMessageHandler.mjs +13 -13
- package/dist/broker/nativeBroker/NativeMessageHandler.mjs.map +1 -1
- package/dist/broker/nativeBroker/NativeStatusCodes.d.ts +8 -0
- package/dist/broker/nativeBroker/NativeStatusCodes.d.ts.map +1 -0
- package/dist/broker/nativeBroker/NativeStatusCodes.mjs +16 -0
- package/dist/broker/nativeBroker/NativeStatusCodes.mjs.map +1 -0
- package/dist/cache/AsyncMemoryStorage.mjs +1 -1
- package/dist/cache/BrowserCacheManager.d.ts +4 -15
- package/dist/cache/BrowserCacheManager.d.ts.map +1 -1
- package/dist/cache/BrowserCacheManager.mjs +13 -69
- package/dist/cache/BrowserCacheManager.mjs.map +1 -1
- package/dist/cache/BrowserStorage.d.ts.map +1 -1
- package/dist/cache/BrowserStorage.mjs +7 -9
- package/dist/cache/BrowserStorage.mjs.map +1 -1
- package/dist/cache/CryptoKeyStore.mjs +1 -1
- package/dist/cache/DatabaseStorage.mjs +1 -1
- package/dist/cache/MemoryStorage.mjs +1 -1
- package/dist/cache/TokenCache.mjs +1 -1
- package/dist/config/Configuration.d.ts +4 -0
- package/dist/config/Configuration.d.ts.map +1 -1
- package/dist/config/Configuration.mjs +8 -7
- package/dist/config/Configuration.mjs.map +1 -1
- package/dist/controllers/ControllerFactory.d.ts +2 -1
- package/dist/controllers/ControllerFactory.d.ts.map +1 -1
- package/dist/controllers/ControllerFactory.mjs +26 -19
- package/dist/controllers/ControllerFactory.mjs.map +1 -1
- package/dist/controllers/IController.d.ts +3 -2
- package/dist/controllers/IController.d.ts.map +1 -1
- package/dist/controllers/NestedAppAuthController.d.ts +96 -0
- package/dist/controllers/NestedAppAuthController.d.ts.map +1 -0
- package/dist/controllers/NestedAppAuthController.mjs +345 -0
- package/dist/controllers/NestedAppAuthController.mjs.map +1 -0
- package/dist/controllers/StandardController.d.ts +11 -6
- package/dist/controllers/StandardController.d.ts.map +1 -1
- package/dist/controllers/StandardController.mjs +67 -45
- package/dist/controllers/StandardController.mjs.map +1 -1
- package/dist/controllers/UnknownOperatingContextController.d.ts +88 -0
- package/dist/controllers/UnknownOperatingContextController.d.ts.map +1 -0
- package/dist/controllers/UnknownOperatingContextController.mjs +275 -0
- package/dist/controllers/UnknownOperatingContextController.mjs.map +1 -0
- package/dist/crypto/BrowserCrypto.d.ts +44 -49
- package/dist/crypto/BrowserCrypto.d.ts.map +1 -1
- package/dist/crypto/BrowserCrypto.mjs +77 -77
- package/dist/crypto/BrowserCrypto.mjs.map +1 -1
- package/dist/crypto/CryptoOps.d.ts +1 -7
- package/dist/crypto/CryptoOps.d.ts.map +1 -1
- package/dist/crypto/CryptoOps.mjs +18 -23
- package/dist/crypto/CryptoOps.mjs.map +1 -1
- package/dist/crypto/PkceGenerator.d.ts +6 -21
- package/dist/crypto/PkceGenerator.d.ts.map +1 -1
- package/dist/crypto/PkceGenerator.mjs +45 -46
- package/dist/crypto/PkceGenerator.mjs.map +1 -1
- package/dist/crypto/SignedHttpRequest.mjs +1 -1
- package/dist/encode/Base64Decode.d.ts.map +1 -1
- package/dist/encode/Base64Decode.mjs +18 -2
- package/dist/encode/Base64Decode.mjs.map +1 -1
- package/dist/encode/Base64Encode.mjs +1 -1
- package/dist/error/BrowserAuthError.d.ts +10 -1
- package/dist/error/BrowserAuthError.d.ts.map +1 -1
- package/dist/error/BrowserAuthError.mjs +12 -3
- package/dist/error/BrowserAuthError.mjs.map +1 -1
- package/dist/error/BrowserAuthErrorCodes.d.ts +1 -0
- package/dist/error/BrowserAuthErrorCodes.d.ts.map +1 -1
- package/dist/error/BrowserAuthErrorCodes.mjs +3 -2
- package/dist/error/BrowserAuthErrorCodes.mjs.map +1 -1
- package/dist/error/BrowserConfigurationAuthError.d.ts +9 -46
- package/dist/error/BrowserConfigurationAuthError.d.ts.map +1 -1
- package/dist/error/BrowserConfigurationAuthError.mjs +20 -73
- package/dist/error/BrowserConfigurationAuthError.mjs.map +1 -1
- package/dist/error/BrowserConfigurationAuthErrorCodes.d.ts +4 -0
- package/dist/error/BrowserConfigurationAuthErrorCodes.d.ts.map +1 -0
- package/dist/error/BrowserConfigurationAuthErrorCodes.mjs +12 -0
- package/dist/error/BrowserConfigurationAuthErrorCodes.mjs.map +1 -0
- package/dist/error/NativeAuthError.d.ts +17 -45
- package/dist/error/NativeAuthError.d.ts.map +1 -1
- package/dist/error/NativeAuthError.mjs +47 -78
- package/dist/error/NativeAuthError.mjs.map +1 -1
- package/dist/error/NativeAuthErrorCodes.d.ts +3 -0
- package/dist/error/NativeAuthErrorCodes.d.ts.map +1 -0
- package/dist/error/NativeAuthErrorCodes.mjs +11 -0
- package/dist/error/NativeAuthErrorCodes.mjs.map +1 -0
- package/dist/error/NestedAppAuthError.d.ts +15 -0
- package/dist/error/NestedAppAuthError.d.ts.map +1 -0
- package/dist/error/NestedAppAuthError.mjs +30 -0
- package/dist/error/NestedAppAuthError.mjs.map +1 -0
- package/dist/event/EventHandler.d.ts.map +1 -1
- package/dist/event/EventHandler.mjs +3 -2
- package/dist/event/EventHandler.mjs.map +1 -1
- package/dist/event/EventMessage.mjs +1 -1
- package/dist/event/EventType.mjs +1 -1
- package/dist/index.d.ts +5 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +7 -3
- package/dist/index.mjs.map +1 -1
- package/dist/interaction_client/BaseInteractionClient.d.ts.map +1 -1
- package/dist/interaction_client/BaseInteractionClient.mjs +10 -11
- package/dist/interaction_client/BaseInteractionClient.mjs.map +1 -1
- package/dist/interaction_client/HybridSpaAuthorizationCodeClient.mjs +1 -1
- package/dist/interaction_client/NativeInteractionClient.d.ts.map +1 -1
- package/dist/interaction_client/NativeInteractionClient.mjs +26 -13
- package/dist/interaction_client/NativeInteractionClient.mjs.map +1 -1
- package/dist/interaction_client/PopupClient.d.ts.map +1 -1
- package/dist/interaction_client/PopupClient.mjs +5 -4
- package/dist/interaction_client/PopupClient.mjs.map +1 -1
- package/dist/interaction_client/RedirectClient.mjs +7 -7
- package/dist/interaction_client/SilentAuthCodeClient.d.ts.map +1 -1
- package/dist/interaction_client/SilentAuthCodeClient.mjs +7 -10
- package/dist/interaction_client/SilentAuthCodeClient.mjs.map +1 -1
- package/dist/interaction_client/SilentCacheClient.d.ts.map +1 -1
- package/dist/interaction_client/SilentCacheClient.mjs +11 -18
- package/dist/interaction_client/SilentCacheClient.mjs.map +1 -1
- package/dist/interaction_client/SilentIframeClient.d.ts.map +1 -1
- package/dist/interaction_client/SilentIframeClient.mjs +27 -13
- package/dist/interaction_client/SilentIframeClient.mjs.map +1 -1
- package/dist/interaction_client/SilentRefreshClient.d.ts.map +1 -1
- package/dist/interaction_client/SilentRefreshClient.mjs +8 -18
- package/dist/interaction_client/SilentRefreshClient.mjs.map +1 -1
- package/dist/interaction_client/StandardInteractionClient.d.ts.map +1 -1
- package/dist/interaction_client/StandardInteractionClient.mjs +16 -37
- package/dist/interaction_client/StandardInteractionClient.mjs.map +1 -1
- package/dist/interaction_handler/InteractionHandler.d.ts.map +1 -1
- package/dist/interaction_handler/InteractionHandler.mjs +6 -9
- package/dist/interaction_handler/InteractionHandler.mjs.map +1 -1
- package/dist/interaction_handler/RedirectHandler.d.ts.map +1 -1
- package/dist/interaction_handler/RedirectHandler.mjs +3 -3
- package/dist/interaction_handler/RedirectHandler.mjs.map +1 -1
- package/dist/interaction_handler/SilentHandler.d.ts +13 -47
- package/dist/interaction_handler/SilentHandler.d.ts.map +1 -1
- package/dist/interaction_handler/SilentHandler.mjs +120 -156
- package/dist/interaction_handler/SilentHandler.mjs.map +1 -1
- package/dist/naa/AccountInfo.d.ts +13 -0
- package/dist/naa/AccountInfo.d.ts.map +1 -0
- package/dist/naa/AccountRequests.d.ts +10 -0
- package/dist/naa/AccountRequests.d.ts.map +1 -0
- package/dist/naa/AuthBridge.d.ts +6 -0
- package/dist/naa/AuthBridge.d.ts.map +1 -0
- package/dist/naa/BridgeCapabilities.d.ts +4 -0
- package/dist/naa/BridgeCapabilities.d.ts.map +1 -0
- package/dist/naa/BridgeError.d.ts +10 -0
- package/dist/naa/BridgeError.d.ts.map +1 -0
- package/dist/naa/BridgeError.mjs +12 -0
- package/dist/naa/BridgeError.mjs.map +1 -0
- package/dist/naa/BridgeProxy.d.ts +72 -0
- package/dist/naa/BridgeProxy.d.ts.map +1 -0
- package/dist/naa/BridgeProxy.mjs +154 -0
- package/dist/naa/BridgeProxy.mjs.map +1 -0
- package/dist/naa/BridgeRequest.d.ts +7 -0
- package/dist/naa/BridgeRequest.d.ts.map +1 -0
- package/dist/naa/BridgeRequestEnvelope.d.ts +14 -0
- package/dist/naa/BridgeRequestEnvelope.d.ts.map +1 -0
- package/dist/naa/BridgeResponseEnvelope.d.ts +11 -0
- package/dist/naa/BridgeResponseEnvelope.d.ts.map +1 -0
- package/dist/naa/BridgeStatusCode.d.ts +11 -0
- package/dist/naa/BridgeStatusCode.d.ts.map +1 -0
- package/dist/naa/BridgeStatusCode.mjs +20 -0
- package/dist/naa/BridgeStatusCode.mjs.map +1 -0
- package/dist/naa/IBridgeProxy.d.ts +11 -0
- package/dist/naa/IBridgeProxy.d.ts.map +1 -0
- package/dist/naa/InitializeBridgeResponse.d.ts +7 -0
- package/dist/naa/InitializeBridgeResponse.d.ts.map +1 -0
- package/dist/naa/TokenRequest.d.ts +22 -0
- package/dist/naa/TokenRequest.d.ts.map +1 -0
- package/dist/naa/TokenResponse.d.ts +17 -0
- package/dist/naa/TokenResponse.d.ts.map +1 -0
- package/dist/naa/mapping/NestedAppAuthAdapter.d.ts +26 -0
- package/dist/naa/mapping/NestedAppAuthAdapter.d.ts.map +1 -0
- package/dist/naa/mapping/NestedAppAuthAdapter.mjs +178 -0
- package/dist/naa/mapping/NestedAppAuthAdapter.mjs.map +1 -0
- package/dist/navigation/NavigationClient.mjs +1 -1
- package/dist/network/FetchClient.mjs +1 -1
- package/dist/operatingcontext/BaseOperatingContext.mjs +1 -1
- package/dist/operatingcontext/StandardOperatingContext.mjs +1 -1
- package/dist/operatingcontext/TeamsAppOperatingContext.d.ts +7 -0
- package/dist/operatingcontext/TeamsAppOperatingContext.d.ts.map +1 -1
- package/dist/operatingcontext/TeamsAppOperatingContext.mjs +45 -4
- package/dist/operatingcontext/TeamsAppOperatingContext.mjs.map +1 -1
- package/dist/operatingcontext/UnknownOperatingContext.d.ts +26 -0
- package/dist/operatingcontext/UnknownOperatingContext.d.ts.map +1 -0
- package/dist/operatingcontext/UnknownOperatingContext.mjs +49 -0
- package/dist/operatingcontext/UnknownOperatingContext.mjs.map +1 -0
- package/dist/packageMetadata.d.ts +1 -1
- package/dist/packageMetadata.mjs +2 -2
- package/dist/telemetry/BrowserPerformanceClient.mjs +1 -1
- package/dist/telemetry/BrowserPerformanceMeasurement.mjs +1 -1
- package/dist/utils/BrowserConstants.mjs +1 -1
- package/dist/utils/BrowserProtocolUtils.d.ts.map +1 -1
- package/dist/utils/BrowserProtocolUtils.mjs +3 -3
- package/dist/utils/BrowserProtocolUtils.mjs.map +1 -1
- package/dist/utils/BrowserUtils.d.ts +54 -53
- package/dist/utils/BrowserUtils.d.ts.map +1 -1
- package/dist/utils/BrowserUtils.mjs +114 -102
- package/dist/utils/BrowserUtils.mjs.map +1 -1
- package/lib/msal-browser.cjs +61 -18042
- package/lib/msal-browser.cjs.map +1 -1
- package/lib/msal-browser.js +13593 -12505
- package/lib/msal-browser.js.map +1 -1
- package/lib/msal-browser.min.js +66 -65
- package/package.json +2 -2
- package/src/app/IPublicClientApplication.ts +55 -18
- package/src/app/PublicClientApplication.ts +19 -7
- package/src/app/PublicClientNext.ts +442 -0
- package/src/broker/nativeBroker/NativeMessageHandler.ts +12 -15
- package/src/broker/nativeBroker/NativeStatusCodes.ts +13 -0
- package/src/cache/BrowserCacheManager.ts +29 -103
- package/src/cache/BrowserStorage.ts +9 -11
- package/src/config/Configuration.ts +21 -8
- package/src/controllers/ControllerFactory.ts +36 -25
- package/src/controllers/IController.ts +4 -1
- package/src/controllers/NestedAppAuthController.ts +525 -0
- package/src/controllers/StandardController.ts +163 -98
- package/src/controllers/UnknownOperatingContextController.ts +383 -0
- package/src/crypto/BrowserCrypto.ts +119 -103
- package/src/crypto/CryptoOps.ts +18 -27
- package/src/crypto/PkceGenerator.ts +93 -54
- package/src/encode/Base64Decode.ts +21 -1
- package/src/error/BrowserAuthError.ts +13 -1
- package/src/error/BrowserAuthErrorCodes.ts +1 -0
- package/src/error/BrowserConfigurationAuthError.ts +33 -102
- package/src/error/BrowserConfigurationAuthErrorCodes.ts +9 -0
- package/src/error/NativeAuthError.ts +73 -101
- package/src/error/NativeAuthErrorCodes.ts +7 -0
- package/src/error/NestedAppAuthError.ts +32 -0
- package/src/event/EventHandler.ts +2 -1
- package/src/index.ts +8 -10
- package/src/interaction_client/BaseInteractionClient.ts +14 -8
- package/src/interaction_client/NativeInteractionClient.ts +48 -14
- package/src/interaction_client/PopupClient.ts +2 -1
- package/src/interaction_client/RedirectClient.ts +1 -1
- package/src/interaction_client/SilentAuthCodeClient.ts +22 -19
- package/src/interaction_client/SilentCacheClient.ts +28 -28
- package/src/interaction_client/SilentIframeClient.ts +54 -18
- package/src/interaction_client/SilentRefreshClient.ts +26 -28
- package/src/interaction_client/StandardInteractionClient.ts +37 -68
- package/src/interaction_handler/InteractionHandler.ts +20 -15
- package/src/interaction_handler/RedirectHandler.ts +6 -2
- package/src/interaction_handler/SilentHandler.ts +177 -230
- package/src/naa/AccountInfo.ts +17 -0
- package/src/naa/AccountRequests.ts +16 -0
- package/src/naa/AuthBridge.ts +16 -0
- package/src/naa/BridgeCapabilities.ts +8 -0
- package/src/naa/BridgeError.ts +18 -0
- package/src/naa/BridgeProxy.ts +230 -0
- package/src/naa/BridgeRequest.ts +12 -0
- package/src/naa/BridgeRequestEnvelope.ts +46 -0
- package/src/naa/BridgeResponseEnvelope.ts +21 -0
- package/src/naa/BridgeStatusCode.ts +15 -0
- package/src/naa/IBridgeProxy.ts +25 -0
- package/src/naa/InitializeBridgeResponse.ts +12 -0
- package/src/naa/TokenRequest.ts +26 -0
- package/src/naa/TokenResponse.ts +61 -0
- package/src/naa/mapping/NestedAppAuthAdapter.ts +252 -0
- package/src/operatingcontext/TeamsAppOperatingContext.ts +43 -3
- package/src/operatingcontext/UnknownOperatingContext.ts +48 -0
- package/src/packageMetadata.ts +1 -1
- package/src/utils/BrowserProtocolUtils.ts +3 -2
- package/src/utils/BrowserUtils.ts +133 -125
- package/dist/crypto/ISubtleCrypto.d.ts +0 -10
- package/dist/crypto/ISubtleCrypto.d.ts.map +0 -1
- package/dist/crypto/ModernBrowserCrypto.d.ts +0 -10
- package/dist/crypto/ModernBrowserCrypto.d.ts.map +0 -1
- package/dist/crypto/ModernBrowserCrypto.mjs +0 -31
- package/dist/crypto/ModernBrowserCrypto.mjs.map +0 -1
- package/dist/utils/BrowserStringUtils.d.ts +0 -22
- package/dist/utils/BrowserStringUtils.d.ts.map +0 -1
- package/dist/utils/BrowserStringUtils.mjs +0 -144
- package/dist/utils/BrowserStringUtils.mjs.map +0 -1
- package/src/crypto/ISubtleCrypto.ts +0 -30
- package/src/crypto/ModernBrowserCrypto.ts +0 -69
- package/src/utils/BrowserStringUtils.ts +0 -143
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
/*! @azure/msal-browser v3.3.0 2023-10-20 */
|
|
2
|
+
'use strict';
|
|
3
|
+
import { DEFAULT_CRYPTO_IMPLEMENTATION } from '@azure/msal-common';
|
|
4
|
+
import { BrowserCacheManager, DEFAULT_BROWSER_CACHE_MANAGER } from '../cache/BrowserCacheManager.mjs';
|
|
5
|
+
import { CryptoOps } from '../crypto/CryptoOps.mjs';
|
|
6
|
+
import { blockAPICallsBeforeInitialize, blockNonBrowserEnvironment } from '../utils/BrowserUtils.mjs';
|
|
7
|
+
import { EventHandler } from '../event/EventHandler.mjs';
|
|
8
|
+
|
|
9
|
+
/*
|
|
10
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
11
|
+
* Licensed under the MIT License.
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* UnknownOperatingContextController class
|
|
15
|
+
*
|
|
16
|
+
* - Until initialize method is called, this controller is the default
|
|
17
|
+
* - AFter initialize method is called, this controller will be swapped out for the appropriate controller
|
|
18
|
+
* if the operating context can be determined; otherwise this controller will continued be used
|
|
19
|
+
*
|
|
20
|
+
* - Why do we have this? We don't want to dynamically import (download) all of the code in StandardController if we don't need to.
|
|
21
|
+
*
|
|
22
|
+
* - Only includes implementation for getAccounts and handleRedirectPromise
|
|
23
|
+
* - All other methods are will throw initialization error (because either initialize method or the factory method were not used)
|
|
24
|
+
* - This controller is necessary for React Native wrapper, server side rendering and any other scenario where we don't have a DOM
|
|
25
|
+
*
|
|
26
|
+
*/
|
|
27
|
+
class UnknownOperatingContextController {
|
|
28
|
+
constructor(operatingContext) {
|
|
29
|
+
// Flag representing whether or not the initialize API has been called and completed
|
|
30
|
+
this.initialized = false;
|
|
31
|
+
this.operatingContext = operatingContext;
|
|
32
|
+
this.isBrowserEnvironment =
|
|
33
|
+
this.operatingContext.isBrowserEnvironment();
|
|
34
|
+
this.config = operatingContext.getConfig();
|
|
35
|
+
this.logger = operatingContext.getLogger();
|
|
36
|
+
// Initialize performance client
|
|
37
|
+
this.performanceClient = this.config.telemetry.client;
|
|
38
|
+
// Initialize the crypto class.
|
|
39
|
+
this.browserCrypto = this.isBrowserEnvironment
|
|
40
|
+
? new CryptoOps(this.logger, this.performanceClient)
|
|
41
|
+
: DEFAULT_CRYPTO_IMPLEMENTATION;
|
|
42
|
+
// Initialize the browser storage class.
|
|
43
|
+
this.browserStorage = this.isBrowserEnvironment
|
|
44
|
+
? new BrowserCacheManager(this.config.auth.clientId, this.config.cache, this.browserCrypto, this.logger)
|
|
45
|
+
: DEFAULT_BROWSER_CACHE_MANAGER(this.config.auth.clientId, this.logger);
|
|
46
|
+
this.eventHandler = new EventHandler(this.logger, this.browserCrypto);
|
|
47
|
+
}
|
|
48
|
+
getBrowserStorage() {
|
|
49
|
+
return this.browserStorage;
|
|
50
|
+
}
|
|
51
|
+
getEventHandler() {
|
|
52
|
+
return this.eventHandler;
|
|
53
|
+
}
|
|
54
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
55
|
+
getAccount(accountFilter) {
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
58
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
59
|
+
getAccountByHomeId(homeAccountId) {
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
63
|
+
getAccountByLocalId(localAccountId) {
|
|
64
|
+
return null;
|
|
65
|
+
}
|
|
66
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
67
|
+
getAccountByUsername(username) {
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
getAllAccounts() {
|
|
71
|
+
return [];
|
|
72
|
+
}
|
|
73
|
+
initialize() {
|
|
74
|
+
this.initialized = true;
|
|
75
|
+
return Promise.resolve();
|
|
76
|
+
}
|
|
77
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
78
|
+
acquireTokenPopup(request) {
|
|
79
|
+
blockAPICallsBeforeInitialize(this.initialized);
|
|
80
|
+
blockNonBrowserEnvironment(this.isBrowserEnvironment);
|
|
81
|
+
return {};
|
|
82
|
+
}
|
|
83
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
84
|
+
acquireTokenRedirect(request) {
|
|
85
|
+
blockAPICallsBeforeInitialize(this.initialized);
|
|
86
|
+
blockNonBrowserEnvironment(this.isBrowserEnvironment);
|
|
87
|
+
return Promise.resolve();
|
|
88
|
+
}
|
|
89
|
+
acquireTokenSilent(
|
|
90
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
91
|
+
silentRequest) {
|
|
92
|
+
blockAPICallsBeforeInitialize(this.initialized);
|
|
93
|
+
blockNonBrowserEnvironment(this.isBrowserEnvironment);
|
|
94
|
+
return {};
|
|
95
|
+
}
|
|
96
|
+
acquireTokenByCode(
|
|
97
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
98
|
+
request) {
|
|
99
|
+
blockAPICallsBeforeInitialize(this.initialized);
|
|
100
|
+
blockNonBrowserEnvironment(this.isBrowserEnvironment);
|
|
101
|
+
return {};
|
|
102
|
+
}
|
|
103
|
+
acquireTokenNative(
|
|
104
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
105
|
+
request,
|
|
106
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
107
|
+
apiId,
|
|
108
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
109
|
+
accountId) {
|
|
110
|
+
blockAPICallsBeforeInitialize(this.initialized);
|
|
111
|
+
blockNonBrowserEnvironment(this.isBrowserEnvironment);
|
|
112
|
+
return {};
|
|
113
|
+
}
|
|
114
|
+
acquireTokenByRefreshToken(
|
|
115
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
116
|
+
commonRequest,
|
|
117
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
118
|
+
silentRequest) {
|
|
119
|
+
blockAPICallsBeforeInitialize(this.initialized);
|
|
120
|
+
blockNonBrowserEnvironment(this.isBrowserEnvironment);
|
|
121
|
+
return {};
|
|
122
|
+
}
|
|
123
|
+
addEventCallback(callback) {
|
|
124
|
+
return this.eventHandler.addEventCallback(callback);
|
|
125
|
+
}
|
|
126
|
+
removeEventCallback(callbackId) {
|
|
127
|
+
this.eventHandler.removeEventCallback(callbackId);
|
|
128
|
+
}
|
|
129
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
130
|
+
addPerformanceCallback(callback) {
|
|
131
|
+
blockAPICallsBeforeInitialize(this.initialized);
|
|
132
|
+
blockNonBrowserEnvironment(this.isBrowserEnvironment);
|
|
133
|
+
return "";
|
|
134
|
+
}
|
|
135
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
136
|
+
removePerformanceCallback(callbackId) {
|
|
137
|
+
blockAPICallsBeforeInitialize(this.initialized);
|
|
138
|
+
blockNonBrowserEnvironment(this.isBrowserEnvironment);
|
|
139
|
+
return true;
|
|
140
|
+
}
|
|
141
|
+
enableAccountStorageEvents() {
|
|
142
|
+
blockAPICallsBeforeInitialize(this.initialized);
|
|
143
|
+
blockNonBrowserEnvironment(this.isBrowserEnvironment);
|
|
144
|
+
}
|
|
145
|
+
disableAccountStorageEvents() {
|
|
146
|
+
blockAPICallsBeforeInitialize(this.initialized);
|
|
147
|
+
blockNonBrowserEnvironment(this.isBrowserEnvironment);
|
|
148
|
+
}
|
|
149
|
+
handleRedirectPromise(
|
|
150
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
151
|
+
hash) {
|
|
152
|
+
blockAPICallsBeforeInitialize(this.initialized);
|
|
153
|
+
return Promise.resolve(null);
|
|
154
|
+
}
|
|
155
|
+
loginPopup(
|
|
156
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
157
|
+
request) {
|
|
158
|
+
blockAPICallsBeforeInitialize(this.initialized);
|
|
159
|
+
blockNonBrowserEnvironment(this.isBrowserEnvironment);
|
|
160
|
+
return {};
|
|
161
|
+
}
|
|
162
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
163
|
+
loginRedirect(request) {
|
|
164
|
+
blockAPICallsBeforeInitialize(this.initialized);
|
|
165
|
+
blockNonBrowserEnvironment(this.isBrowserEnvironment);
|
|
166
|
+
return {};
|
|
167
|
+
}
|
|
168
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
169
|
+
logout(logoutRequest) {
|
|
170
|
+
blockAPICallsBeforeInitialize(this.initialized);
|
|
171
|
+
blockNonBrowserEnvironment(this.isBrowserEnvironment);
|
|
172
|
+
return {};
|
|
173
|
+
}
|
|
174
|
+
logoutRedirect(
|
|
175
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
176
|
+
logoutRequest) {
|
|
177
|
+
blockAPICallsBeforeInitialize(this.initialized);
|
|
178
|
+
blockNonBrowserEnvironment(this.isBrowserEnvironment);
|
|
179
|
+
return {};
|
|
180
|
+
}
|
|
181
|
+
logoutPopup(
|
|
182
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
183
|
+
logoutRequest) {
|
|
184
|
+
blockAPICallsBeforeInitialize(this.initialized);
|
|
185
|
+
blockNonBrowserEnvironment(this.isBrowserEnvironment);
|
|
186
|
+
return {};
|
|
187
|
+
}
|
|
188
|
+
ssoSilent(
|
|
189
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
190
|
+
request) {
|
|
191
|
+
blockAPICallsBeforeInitialize(this.initialized);
|
|
192
|
+
blockNonBrowserEnvironment(this.isBrowserEnvironment);
|
|
193
|
+
return {};
|
|
194
|
+
}
|
|
195
|
+
getTokenCache() {
|
|
196
|
+
blockAPICallsBeforeInitialize(this.initialized);
|
|
197
|
+
blockNonBrowserEnvironment(this.isBrowserEnvironment);
|
|
198
|
+
return {};
|
|
199
|
+
}
|
|
200
|
+
getLogger() {
|
|
201
|
+
return this.logger;
|
|
202
|
+
}
|
|
203
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
204
|
+
setLogger(logger) {
|
|
205
|
+
blockAPICallsBeforeInitialize(this.initialized);
|
|
206
|
+
blockNonBrowserEnvironment(this.isBrowserEnvironment);
|
|
207
|
+
}
|
|
208
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
209
|
+
setActiveAccount(account) {
|
|
210
|
+
blockAPICallsBeforeInitialize(this.initialized);
|
|
211
|
+
blockNonBrowserEnvironment(this.isBrowserEnvironment);
|
|
212
|
+
}
|
|
213
|
+
getActiveAccount() {
|
|
214
|
+
blockAPICallsBeforeInitialize(this.initialized);
|
|
215
|
+
blockNonBrowserEnvironment(this.isBrowserEnvironment);
|
|
216
|
+
return null;
|
|
217
|
+
}
|
|
218
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
219
|
+
initializeWrapperLibrary(sku, version) {
|
|
220
|
+
this.browserStorage.setWrapperMetadata(sku, version);
|
|
221
|
+
}
|
|
222
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
223
|
+
setNavigationClient(navigationClient) {
|
|
224
|
+
blockAPICallsBeforeInitialize(this.initialized);
|
|
225
|
+
blockNonBrowserEnvironment(this.isBrowserEnvironment);
|
|
226
|
+
}
|
|
227
|
+
getConfiguration() {
|
|
228
|
+
return this.config;
|
|
229
|
+
}
|
|
230
|
+
isBrowserEnv() {
|
|
231
|
+
blockAPICallsBeforeInitialize(this.initialized);
|
|
232
|
+
blockNonBrowserEnvironment(this.isBrowserEnvironment);
|
|
233
|
+
return true;
|
|
234
|
+
}
|
|
235
|
+
getBrowserCrypto() {
|
|
236
|
+
blockAPICallsBeforeInitialize(this.initialized);
|
|
237
|
+
blockNonBrowserEnvironment(this.isBrowserEnvironment);
|
|
238
|
+
return {};
|
|
239
|
+
}
|
|
240
|
+
getPerformanceClient() {
|
|
241
|
+
blockAPICallsBeforeInitialize(this.initialized);
|
|
242
|
+
blockNonBrowserEnvironment(this.isBrowserEnvironment);
|
|
243
|
+
return {};
|
|
244
|
+
}
|
|
245
|
+
getRedirectResponse() {
|
|
246
|
+
blockAPICallsBeforeInitialize(this.initialized);
|
|
247
|
+
blockNonBrowserEnvironment(this.isBrowserEnvironment);
|
|
248
|
+
return {};
|
|
249
|
+
}
|
|
250
|
+
preflightBrowserEnvironmentCheck(
|
|
251
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
252
|
+
interactionType,
|
|
253
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
254
|
+
isAppEmbedded) {
|
|
255
|
+
blockAPICallsBeforeInitialize(this.initialized);
|
|
256
|
+
blockNonBrowserEnvironment(this.isBrowserEnvironment);
|
|
257
|
+
}
|
|
258
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
259
|
+
async clearCache(logoutRequest) {
|
|
260
|
+
blockAPICallsBeforeInitialize(this.initialized);
|
|
261
|
+
blockNonBrowserEnvironment(this.isBrowserEnvironment);
|
|
262
|
+
}
|
|
263
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
264
|
+
async hydrateCache(
|
|
265
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
266
|
+
result,
|
|
267
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
268
|
+
request) {
|
|
269
|
+
blockAPICallsBeforeInitialize(this.initialized);
|
|
270
|
+
blockNonBrowserEnvironment(this.isBrowserEnvironment);
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
export { UnknownOperatingContextController };
|
|
275
|
+
//# sourceMappingURL=UnknownOperatingContextController.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UnknownOperatingContextController.mjs","sources":["../../src/controllers/UnknownOperatingContextController.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;AAKA;AAWA;AACA;AACA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;AACA;AACA;AAEA;;;;;;;;;;;;;AAaG;AACH,QAAa,IAAA,CAAA,iBAAA,GAAA,IAAA,CAAA,MAAA,CAAA,SAAkC;AAE3C;AAGA,QAAA,IAAA,CAAS,aAAS,GAAO,IAAA,CAAA,oBAAA;AAGzB,cAAU,IAAQ,SAAe,CAAA,IAAA,CAAA,MAAE,wBAAoB,CAAA;AAGvD,cAAU;AAGV;AAGA,QAAA,IAAA,CAAS,cAAuB,GAAA,IAAA,CAAA,oBAAU;AAG1C,cAAU,IAAA,mBAAsB,CAAA,IAAA,CAAO,MAAC,CAAA,IAAA,CAAA,QAAA,EAAA,IAAA,CAAA,MAAA,CAAA,KAAA,EAAA,IAAA,CAAA,aAAA,EAAA,IAAA,CAAA,MAAA,CAAA;AAGxC,cAAU,6BAA6B,CAAA,IAAA,CAAA,MAAA,CAAA,IAAA,CAAA,QAAA,EAAA,IAAA,CAAA,MAAA,CAAA,CAAA;AAEvC,QAAA,IAAA,CAAS,YAAsB,GAAA,IAAA,iBAAc,CAAC,MAAA,EAAA,IAAA,CAAA,aAAA,CAAA,CAAA;AAElC,KAAA;AAiCZ,IAAA,iBAAiB;AAIjB,QAAA,OAAA,IAAe,eAAgB,CAAA;AAK/B,KAAA;AAIA,IAAA,eAAA,GAAkB;AAIlB,QAAA,OAAA,IAAA,CAAA,YAAkC,CAAA;AAIlC,KAAA;;AAMA,IAAA,UAAU,CAAI,aAAQ,EAAI;QAKT,OAAA,IAAA,CAAA;KAMG;;IAapB,kBAAkB,CAEd,aAAS,EAAA;AAMb,QAAA,OAAA,IAAA,CAAA;AAwBA,KAAA;AAUA;AAGA,IAAA,mBAAmB,CAAC,cAAY,EAAA;AAIhC,QAAA,OAAA,IAAA,CAAA;AAMA,KAAA;AAKA;AAIA,IAAA,oBAAA,CAAA,UAA+B;AAK/B,QAAA,OAAA,IAAA,CAAA;KAOU;IASV,cAAc,GAAO;QAMf,OAAc,EAAA,CAAA;KAKN;IAQd,UAAW,GAEM;QAMR,IAAA,CAAA,WAEW,GAAA,IACZ;AAcR,QAAA,OAAA,OAA4B,CAAA,OAAA,EAAA,CAAA;AAK5B,KAAA;AAIA;AAKA,IAAA,iBAAiB,CAAO,OAAA;QAIR,6BAAe,CAAG,IAAI,CAAA,WAAA,CAAA,CAAA;QAMd,0BAAM,CAAA,IAAA,CAAA,oBAA2B,CAAA,CAAA;AAIzD,QAAA,OAAA,EAAA,CAAA;AAIA,KAAA;AAGA;AAKA,IAAA,oBAAoB,CAAO,OAAA,EAAA;AAK3B,QAAA,6BAA0C,CAAA,IAAA,CAAA,WAAA,CAAA,CAAA;QAKvB,0BAAc,CAAA,IAAE,CAAO,oBAAqB,CAAA,CAAA;AAK/D,QAAA,OAAA,OAAA,CAAA,OAAA,EAAA,CAAA;KAWgB;AAMV,IAAA,kBAEI;AAWb;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,50 +1,45 @@
|
|
|
1
|
-
import { Logger } from "@azure/msal-common";
|
|
2
|
-
/**
|
|
3
|
-
*
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
* @param key
|
|
46
|
-
* @param data
|
|
47
|
-
*/
|
|
48
|
-
sign(key: CryptoKey, data: ArrayBuffer): Promise<ArrayBuffer>;
|
|
49
|
-
}
|
|
1
|
+
import { IPerformanceClient, Logger } from "@azure/msal-common";
|
|
2
|
+
/**
|
|
3
|
+
* Check whether browser crypto is available.
|
|
4
|
+
*/
|
|
5
|
+
export declare function validateCryptoAvailable(logger: Logger): void;
|
|
6
|
+
/**
|
|
7
|
+
* Returns a sha-256 hash of the given dataString as an ArrayBuffer.
|
|
8
|
+
* @param dataString
|
|
9
|
+
*/
|
|
10
|
+
export declare function sha256Digest(dataString: string, performanceClient?: IPerformanceClient, correlationId?: string): Promise<ArrayBuffer>;
|
|
11
|
+
/**
|
|
12
|
+
* Populates buffer with cryptographically random values.
|
|
13
|
+
* @param dataBuffer
|
|
14
|
+
*/
|
|
15
|
+
export declare function getRandomValues(dataBuffer: Uint8Array): Uint8Array;
|
|
16
|
+
/**
|
|
17
|
+
* Creates a new random GUID
|
|
18
|
+
* @returns
|
|
19
|
+
*/
|
|
20
|
+
export declare function createNewGuid(): string;
|
|
21
|
+
/**
|
|
22
|
+
* Generates a keypair based on current keygen algorithm config.
|
|
23
|
+
* @param extractable
|
|
24
|
+
* @param usages
|
|
25
|
+
*/
|
|
26
|
+
export declare function generateKeyPair(extractable: boolean, usages: Array<KeyUsage>): Promise<CryptoKeyPair>;
|
|
27
|
+
/**
|
|
28
|
+
* Export key as Json Web Key (JWK)
|
|
29
|
+
* @param key
|
|
30
|
+
*/
|
|
31
|
+
export declare function exportJwk(key: CryptoKey): Promise<JsonWebKey>;
|
|
32
|
+
/**
|
|
33
|
+
* Imports key as Json Web Key (JWK), can set extractable and usages.
|
|
34
|
+
* @param key
|
|
35
|
+
* @param extractable
|
|
36
|
+
* @param usages
|
|
37
|
+
*/
|
|
38
|
+
export declare function importJwk(key: JsonWebKey, extractable: boolean, usages: Array<KeyUsage>): Promise<CryptoKey>;
|
|
39
|
+
/**
|
|
40
|
+
* Signs given data with given key
|
|
41
|
+
* @param key
|
|
42
|
+
* @param data
|
|
43
|
+
*/
|
|
44
|
+
export declare function sign(key: CryptoKey, data: ArrayBuffer): Promise<ArrayBuffer>;
|
|
50
45
|
//# sourceMappingURL=BrowserCrypto.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BrowserCrypto.d.ts","sourceRoot":"","sources":["../../src/crypto/BrowserCrypto.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BrowserCrypto.d.ts","sourceRoot":"","sources":["../../src/crypto/BrowserCrypto.ts"],"names":[],"mappings":"AASA,OAAO,EACH,kBAAkB,EAClB,MAAM,EAET,MAAM,oBAAoB,CAAC;AA2B5B;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAO5D;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAC9B,UAAU,EAAE,MAAM,EAClB,iBAAiB,CAAC,EAAE,kBAAkB,EACtC,aAAa,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,WAAW,CAAC,CAWtB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU,CAElE;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACjC,WAAW,EAAE,OAAO,EACpB,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,GACxB,OAAO,CAAC,aAAa,CAAC,CAMxB;AAED;;;GAGG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAKnE;AAED;;;;;GAKG;AACH,wBAAsB,SAAS,CAC3B,GAAG,EAAE,UAAU,EACf,WAAW,EAAE,OAAO,EACpB,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,GACxB,OAAO,CAAC,SAAS,CAAC,CAQpB;AAED;;;;GAIG;AACH,wBAAsB,IAAI,CACtB,GAAG,EAAE,SAAS,EACd,IAAI,EAAE,WAAW,GAClB,OAAO,CAAC,WAAW,CAAC,CAMtB"}
|
|
@@ -1,14 +1,18 @@
|
|
|
1
|
-
/*! @azure/msal-browser v3.
|
|
1
|
+
/*! @azure/msal-browser v3.3.0 2023-10-20 */
|
|
2
2
|
'use strict';
|
|
3
|
-
import { BrowserStringUtils } from '../utils/BrowserStringUtils.mjs';
|
|
4
3
|
import { createBrowserAuthError } from '../error/BrowserAuthError.mjs';
|
|
5
|
-
import {
|
|
4
|
+
import { PerformanceEvents } from '@azure/msal-common';
|
|
5
|
+
import { KEY_FORMAT_JWK } from '../utils/BrowserConstants.mjs';
|
|
6
6
|
import { cryptoNonExistent } from '../error/BrowserAuthErrorCodes.mjs';
|
|
7
7
|
|
|
8
8
|
/*
|
|
9
9
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
10
10
|
* Licensed under the MIT License.
|
|
11
11
|
*/
|
|
12
|
+
/**
|
|
13
|
+
* This file defines functions used by the browser library to perform cryptography operations such as
|
|
14
|
+
* hashing and encoding. It also has helper functions to validate the availability of specific APIs.
|
|
15
|
+
*/
|
|
12
16
|
/**
|
|
13
17
|
* See here for more info on RsaHashedKeyGenParams: https://developer.mozilla.org/en-US/docs/Web/API/RsaHashedKeyGenParams
|
|
14
18
|
*/
|
|
@@ -20,84 +24,80 @@ const S256_HASH_ALG = "SHA-256";
|
|
|
20
24
|
const MODULUS_LENGTH = 2048;
|
|
21
25
|
// Public Exponent
|
|
22
26
|
const PUBLIC_EXPONENT = new Uint8Array([0x01, 0x00, 0x01]);
|
|
27
|
+
const keygenAlgorithmOptions = {
|
|
28
|
+
name: PKCS1_V15_KEYGEN_ALG,
|
|
29
|
+
hash: S256_HASH_ALG,
|
|
30
|
+
modulusLength: MODULUS_LENGTH,
|
|
31
|
+
publicExponent: PUBLIC_EXPONENT,
|
|
32
|
+
};
|
|
23
33
|
/**
|
|
24
|
-
*
|
|
25
|
-
* hashing and encoding. It also has helper functions to validate the availability of specific APIs.
|
|
34
|
+
* Check whether browser crypto is available.
|
|
26
35
|
*/
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
if (this.hasBrowserCrypto()) {
|
|
31
|
-
// Use standard modern web crypto if available
|
|
32
|
-
this.logger.verbose("BrowserCrypto: modern crypto interface available");
|
|
33
|
-
this.subtleCrypto = new ModernBrowserCrypto();
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
this.logger.error("BrowserCrypto: crypto interface is unavailable");
|
|
37
|
-
throw createBrowserAuthError(cryptoNonExistent);
|
|
38
|
-
}
|
|
39
|
-
this.keygenAlgorithmOptions = {
|
|
40
|
-
name: PKCS1_V15_KEYGEN_ALG,
|
|
41
|
-
hash: S256_HASH_ALG,
|
|
42
|
-
modulusLength: MODULUS_LENGTH,
|
|
43
|
-
publicExponent: PUBLIC_EXPONENT,
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Check whether browser crypto is available.
|
|
48
|
-
*/
|
|
49
|
-
hasBrowserCrypto() {
|
|
50
|
-
return "crypto" in window;
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Returns a sha-256 hash of the given dataString as an ArrayBuffer.
|
|
54
|
-
* @param dataString
|
|
55
|
-
*/
|
|
56
|
-
async sha256Digest(dataString) {
|
|
57
|
-
const data = BrowserStringUtils.stringToUtf8Arr(dataString);
|
|
58
|
-
// MSR Crypto wants object with name property, instead of string
|
|
59
|
-
return this.subtleCrypto.digest({ name: S256_HASH_ALG }, data);
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Populates buffer with cryptographically random values.
|
|
63
|
-
* @param dataBuffer
|
|
64
|
-
*/
|
|
65
|
-
getRandomValues(dataBuffer) {
|
|
66
|
-
return this.subtleCrypto.getRandomValues(dataBuffer);
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Generates a keypair based on current keygen algorithm config.
|
|
70
|
-
* @param extractable
|
|
71
|
-
* @param usages
|
|
72
|
-
*/
|
|
73
|
-
async generateKeyPair(extractable, usages) {
|
|
74
|
-
return this.subtleCrypto.generateKey(this.keygenAlgorithmOptions, extractable, usages);
|
|
36
|
+
function validateCryptoAvailable(logger) {
|
|
37
|
+
if ("crypto" in window) {
|
|
38
|
+
logger.verbose("BrowserCrypto: modern crypto interface available");
|
|
75
39
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
*/
|
|
80
|
-
async exportJwk(key) {
|
|
81
|
-
return this.subtleCrypto.exportKey(key);
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Imports key as Json Web Key (JWK), can set extractable and usages.
|
|
85
|
-
* @param key
|
|
86
|
-
* @param extractable
|
|
87
|
-
* @param usages
|
|
88
|
-
*/
|
|
89
|
-
async importJwk(key, extractable, usages) {
|
|
90
|
-
return this.subtleCrypto.importKey(key, this.keygenAlgorithmOptions, extractable, usages);
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* Signs given data with given key
|
|
94
|
-
* @param key
|
|
95
|
-
* @param data
|
|
96
|
-
*/
|
|
97
|
-
async sign(key, data) {
|
|
98
|
-
return this.subtleCrypto.sign(this.keygenAlgorithmOptions, key, data);
|
|
40
|
+
else {
|
|
41
|
+
logger.error("BrowserCrypto: crypto interface is unavailable");
|
|
42
|
+
throw createBrowserAuthError(cryptoNonExistent);
|
|
99
43
|
}
|
|
100
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* Returns a sha-256 hash of the given dataString as an ArrayBuffer.
|
|
47
|
+
* @param dataString
|
|
48
|
+
*/
|
|
49
|
+
async function sha256Digest(dataString, performanceClient, correlationId) {
|
|
50
|
+
performanceClient?.addQueueMeasurement(PerformanceEvents.Sha256Digest, correlationId);
|
|
51
|
+
const encoder = new TextEncoder();
|
|
52
|
+
const data = encoder.encode(dataString);
|
|
53
|
+
return window.crypto.subtle.digest(S256_HASH_ALG, data);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Populates buffer with cryptographically random values.
|
|
57
|
+
* @param dataBuffer
|
|
58
|
+
*/
|
|
59
|
+
function getRandomValues(dataBuffer) {
|
|
60
|
+
return window.crypto.getRandomValues(dataBuffer);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Creates a new random GUID
|
|
64
|
+
* @returns
|
|
65
|
+
*/
|
|
66
|
+
function createNewGuid() {
|
|
67
|
+
return window.crypto.randomUUID();
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Generates a keypair based on current keygen algorithm config.
|
|
71
|
+
* @param extractable
|
|
72
|
+
* @param usages
|
|
73
|
+
*/
|
|
74
|
+
async function generateKeyPair(extractable, usages) {
|
|
75
|
+
return window.crypto.subtle.generateKey(keygenAlgorithmOptions, extractable, usages);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Export key as Json Web Key (JWK)
|
|
79
|
+
* @param key
|
|
80
|
+
*/
|
|
81
|
+
async function exportJwk(key) {
|
|
82
|
+
return window.crypto.subtle.exportKey(KEY_FORMAT_JWK, key);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Imports key as Json Web Key (JWK), can set extractable and usages.
|
|
86
|
+
* @param key
|
|
87
|
+
* @param extractable
|
|
88
|
+
* @param usages
|
|
89
|
+
*/
|
|
90
|
+
async function importJwk(key, extractable, usages) {
|
|
91
|
+
return window.crypto.subtle.importKey(KEY_FORMAT_JWK, key, keygenAlgorithmOptions, extractable, usages);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Signs given data with given key
|
|
95
|
+
* @param key
|
|
96
|
+
* @param data
|
|
97
|
+
*/
|
|
98
|
+
async function sign(key, data) {
|
|
99
|
+
return window.crypto.subtle.sign(keygenAlgorithmOptions, key, data);
|
|
100
|
+
}
|
|
101
101
|
|
|
102
|
-
export {
|
|
102
|
+
export { createNewGuid, exportJwk, generateKeyPair, getRandomValues, importJwk, sha256Digest, sign, validateCryptoAvailable };
|
|
103
103
|
//# sourceMappingURL=BrowserCrypto.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BrowserCrypto.mjs","sources":["../../src/crypto/BrowserCrypto.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;
|
|
1
|
+
{"version":3,"file":"BrowserCrypto.mjs","sources":["../../src/crypto/BrowserCrypto.ts"],"sourcesContent":[null],"names":["BrowserAuthErrorCodes.cryptoNonExistent"],"mappings":";;;;;;;AASA;AA+BA;;AAEG;;AAaA;AACH;AAiBA;;;AAGG;AACH;AAIA,MAAA,oBAAA,GAAA,mBAAA,CAAA;;;AAGG;AACH,MAAgB,cAAA,GAAA,IAAA,CAAA;AAIhB;;;;AAIG,IAAA,IAAA,EAAA,aAAA;AACH,IAAA,aAAA,EAAA;AAWA,IAAA,cAAA,EAAA,eAAA;;;AAGG;AACH;AAOA,SAAA,uBAAA,CAAA,MAAA,EAAA;;;;;AAKG,QAAA,MAAA,CAAA,KAAA,CAAA,gDAAA,CAAA,CAAA;AACH,QAAsB,MAAA,sBACf,CAAAA;AAaP,KAAA;;;;AAIG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ICrypto, IPerformanceClient, Logger,
|
|
1
|
+
import { ICrypto, IPerformanceClient, Logger, SignedHttpRequest, SignedHttpRequestParameters } from "@azure/msal-common";
|
|
2
2
|
export type CachedKeyPair = {
|
|
3
3
|
publicKey: CryptoKey;
|
|
4
4
|
privateKey: CryptoKey;
|
|
@@ -10,8 +10,6 @@ export type CachedKeyPair = {
|
|
|
10
10
|
* implementing Proof Key for Code Exchange specs for the OAuth Authorization Code Flow using PKCE (rfc here: https://tools.ietf.org/html/rfc7636).
|
|
11
11
|
*/
|
|
12
12
|
export declare class CryptoOps implements ICrypto {
|
|
13
|
-
private browserCrypto;
|
|
14
|
-
private pkceGenerator;
|
|
15
13
|
private logger;
|
|
16
14
|
/**
|
|
17
15
|
* CryptoOps can be used in contexts outside a PCA instance,
|
|
@@ -37,10 +35,6 @@ export declare class CryptoOps implements ICrypto {
|
|
|
37
35
|
* @param input
|
|
38
36
|
*/
|
|
39
37
|
base64Decode(input: string): string;
|
|
40
|
-
/**
|
|
41
|
-
* Generates PKCE codes used in Authorization Code Flow.
|
|
42
|
-
*/
|
|
43
|
-
generatePkceCodes(): Promise<PkceCodes>;
|
|
44
38
|
/**
|
|
45
39
|
* Generates a keypair, stores it and returns a thumbprint
|
|
46
40
|
* @param request
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CryptoOps.d.ts","sourceRoot":"","sources":["../../src/crypto/CryptoOps.ts"],"names":[],"mappings":"AAKA,OAAO,EACH,OAAO,EACP,kBAAkB,EAElB,MAAM,EAEN,
|
|
1
|
+
{"version":3,"file":"CryptoOps.d.ts","sourceRoot":"","sources":["../../src/crypto/CryptoOps.ts"],"names":[],"mappings":"AAKA,OAAO,EACH,OAAO,EACP,kBAAkB,EAElB,MAAM,EAEN,iBAAiB,EACjB,2BAA2B,EAC9B,MAAM,oBAAoB,CAAC;AAU5B,MAAM,MAAM,aAAa,GAAG;IACxB,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,EAAE,SAAS,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;;GAGG;AACH,qBAAa,SAAU,YAAW,OAAO;IACrC,OAAO,CAAC,MAAM,CAAS;IAEvB;;;OAGG;IACH,OAAO,CAAC,iBAAiB,CAAiC;IAE1D,OAAO,CAAC,MAAM,CAAC,cAAc,CAAuC;IACpE,OAAO,CAAC,MAAM,CAAC,WAAW,CAAiB;IAC3C,OAAO,CAAC,KAAK,CAAiB;gBAElB,MAAM,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,kBAAkB;IAQlE;;;OAGG;IACH,aAAa,IAAI,MAAM;IAIvB;;;OAGG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAInC;;;OAGG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAInC;;;OAGG;IACG,sBAAsB,CACxB,OAAO,EAAE,2BAA2B,GACrC,OAAO,CAAC,MAAM,CAAC;IAqDlB;;;OAGG;IACG,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAM1D;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IAIvC;;;;OAIG;IACG,OAAO,CACT,OAAO,EAAE,iBAAiB,EAC1B,GAAG,EAAE,MAAM,EACX,aAAa,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,MAAM,CAAC;IA0DlB;;;OAGG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAOvD"}
|