@azure/msal-browser 2.37.0 → 3.0.0-alpha.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/dist/app/IPublicClientApplication.d.ts.map +1 -1
- package/dist/app/IPublicClientApplication.js +33 -33
- package/dist/app/IPublicClientApplication.js.map +1 -1
- package/dist/app/PublicClientApplication.d.ts +198 -24
- package/dist/app/PublicClientApplication.d.ts.map +1 -1
- package/dist/app/PublicClientApplication.js +263 -220
- package/dist/app/PublicClientApplication.js.map +1 -1
- package/dist/broker/nativeBroker/NativeMessageHandler.d.ts +5 -4
- package/dist/broker/nativeBroker/NativeMessageHandler.d.ts.map +1 -1
- package/dist/broker/nativeBroker/NativeMessageHandler.js +118 -124
- package/dist/broker/nativeBroker/NativeMessageHandler.js.map +1 -1
- package/dist/broker/nativeBroker/NativeRequest.d.ts +4 -4
- package/dist/broker/nativeBroker/NativeRequest.d.ts.map +1 -1
- package/dist/broker/nativeBroker/NativeResponse.d.ts +4 -4
- package/dist/broker/nativeBroker/NativeResponse.d.ts.map +1 -1
- package/dist/cache/AsyncMemoryStorage.d.ts.map +1 -1
- package/dist/cache/AsyncMemoryStorage.js +83 -152
- package/dist/cache/AsyncMemoryStorage.js.map +1 -1
- package/dist/cache/BrowserCacheManager.d.ts.map +1 -1
- package/dist/cache/BrowserCacheManager.js +420 -412
- package/dist/cache/BrowserCacheManager.js.map +1 -1
- package/dist/cache/BrowserStorage.d.ts.map +1 -1
- package/dist/cache/BrowserStorage.js +19 -19
- package/dist/cache/BrowserStorage.js.map +1 -1
- package/dist/cache/CryptoKeyStore.d.ts.map +1 -1
- package/dist/cache/CryptoKeyStore.js +26 -36
- package/dist/cache/CryptoKeyStore.js.map +1 -1
- package/dist/cache/DatabaseStorage.d.ts.map +1 -1
- package/dist/cache/DatabaseStorage.js +127 -191
- package/dist/cache/DatabaseStorage.js.map +1 -1
- package/dist/cache/ITokenCache.d.ts.map +1 -1
- package/dist/cache/MemoryStorage.d.ts.map +1 -1
- package/dist/cache/MemoryStorage.js +18 -19
- package/dist/cache/MemoryStorage.js.map +1 -1
- package/dist/cache/TokenCache.d.ts +1 -1
- package/dist/cache/TokenCache.d.ts.map +1 -1
- package/dist/cache/TokenCache.js +55 -49
- package/dist/cache/TokenCache.js.map +1 -1
- package/dist/config/Configuration.d.ts +8 -8
- package/dist/config/Configuration.d.ts.map +1 -1
- package/dist/config/Configuration.js +53 -31
- package/dist/config/Configuration.js.map +1 -1
- package/dist/controllers/ControllerFactory.d.ts +10 -0
- package/dist/controllers/ControllerFactory.d.ts.map +1 -0
- package/dist/controllers/ControllerFactory.js +47 -0
- package/dist/controllers/ControllerFactory.js.map +1 -0
- package/dist/controllers/IController.d.ts +67 -0
- package/dist/controllers/IController.d.ts.map +1 -0
- package/dist/{app/ClientApplication.d.ts → controllers/StandardController.d.ts} +96 -15
- package/dist/controllers/StandardController.d.ts.map +1 -0
- package/dist/controllers/StandardController.js +1299 -0
- package/dist/controllers/StandardController.js.map +1 -0
- package/dist/crypto/BrowserCrypto.d.ts.map +1 -1
- package/dist/crypto/BrowserCrypto.js +36 -60
- package/dist/crypto/BrowserCrypto.js.map +1 -1
- package/dist/crypto/CryptoOps.d.ts +1 -1
- package/dist/crypto/CryptoOps.d.ts.map +1 -1
- package/dist/crypto/CryptoOps.js +93 -151
- package/dist/crypto/CryptoOps.js.map +1 -1
- package/dist/crypto/GuidGenerator.d.ts.map +1 -1
- package/dist/crypto/GuidGenerator.js +36 -25
- package/dist/crypto/GuidGenerator.js.map +1 -1
- package/dist/crypto/ISubtleCrypto.d.ts.map +1 -1
- package/dist/crypto/ModernBrowserCrypto.d.ts.map +1 -1
- package/dist/crypto/ModernBrowserCrypto.js +20 -44
- package/dist/crypto/ModernBrowserCrypto.js.map +1 -1
- package/dist/crypto/MsBrowserCrypto.d.ts.map +1 -1
- package/dist/crypto/MsBrowserCrypto.js +65 -89
- package/dist/crypto/MsBrowserCrypto.js.map +1 -1
- package/dist/crypto/MsrBrowserCrypto.d.ts.map +1 -1
- package/dist/crypto/MsrBrowserCrypto.js +23 -47
- package/dist/crypto/MsrBrowserCrypto.js.map +1 -1
- package/dist/crypto/PkceGenerator.d.ts.map +1 -1
- package/dist/crypto/PkceGenerator.js +28 -49
- package/dist/crypto/PkceGenerator.js.map +1 -1
- package/dist/crypto/SignedHttpRequest.d.ts +1 -1
- package/dist/crypto/SignedHttpRequest.d.ts.map +1 -1
- package/dist/crypto/SignedHttpRequest.js +15 -37
- package/dist/crypto/SignedHttpRequest.js.map +1 -1
- package/dist/encode/Base64Decode.d.ts.map +1 -1
- package/dist/encode/Base64Decode.js +32 -33
- package/dist/encode/Base64Decode.js.map +1 -1
- package/dist/encode/Base64Encode.d.ts.map +1 -1
- package/dist/encode/Base64Encode.js +34 -35
- package/dist/encode/Base64Encode.js.map +1 -1
- package/dist/error/BrowserAuthError.d.ts +1 -1
- package/dist/error/BrowserAuthError.d.ts.map +1 -1
- package/dist/error/BrowserAuthError.js +161 -163
- package/dist/error/BrowserAuthError.js.map +1 -1
- package/dist/error/BrowserConfigurationAuthError.d.ts.map +1 -1
- package/dist/error/BrowserConfigurationAuthError.js +32 -36
- package/dist/error/BrowserConfigurationAuthError.js.map +1 -1
- package/dist/error/NativeAuthError.d.ts +1 -1
- package/dist/error/NativeAuthError.d.ts.map +1 -1
- package/dist/error/NativeAuthError.js +26 -27
- package/dist/error/NativeAuthError.js.map +1 -1
- package/dist/event/EventHandler.d.ts.map +1 -1
- package/dist/event/EventHandler.js +33 -33
- package/dist/event/EventHandler.js.map +1 -1
- package/dist/event/EventMessage.d.ts +5 -5
- package/dist/event/EventMessage.d.ts.map +1 -1
- package/dist/event/EventMessage.js +18 -14
- package/dist/event/EventMessage.js.map +1 -1
- package/dist/event/EventType.js +1 -1
- package/dist/event/EventType.js.map +1 -1
- package/dist/index.d.ts +8 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/interaction_client/BaseInteractionClient.d.ts.map +1 -1
- package/dist/interaction_client/BaseInteractionClient.js +92 -123
- package/dist/interaction_client/BaseInteractionClient.js.map +1 -1
- package/dist/interaction_client/HybridSpaAuthorizationCodeClient.d.ts.map +1 -1
- package/dist/interaction_client/HybridSpaAuthorizationCodeClient.js +6 -10
- package/dist/interaction_client/HybridSpaAuthorizationCodeClient.js.map +1 -1
- package/dist/interaction_client/NativeInteractionClient.d.ts.map +1 -1
- package/dist/interaction_client/NativeInteractionClient.js +336 -393
- package/dist/interaction_client/NativeInteractionClient.js.map +1 -1
- package/dist/interaction_client/PopupClient.d.ts +1 -1
- package/dist/interaction_client/PopupClient.d.ts.map +1 -1
- package/dist/interaction_client/PopupClient.js +224 -246
- package/dist/interaction_client/PopupClient.js.map +1 -1
- package/dist/interaction_client/RedirectClient.d.ts.map +1 -1
- package/dist/interaction_client/RedirectClient.js +244 -292
- package/dist/interaction_client/RedirectClient.js.map +1 -1
- package/dist/interaction_client/SilentAuthCodeClient.d.ts.map +1 -1
- package/dist/interaction_client/SilentAuthCodeClient.js +50 -63
- package/dist/interaction_client/SilentAuthCodeClient.js.map +1 -1
- package/dist/interaction_client/SilentCacheClient.d.ts.map +1 -1
- package/dist/interaction_client/SilentCacheClient.js +50 -81
- package/dist/interaction_client/SilentCacheClient.js.map +1 -1
- package/dist/interaction_client/SilentIframeClient.d.ts.map +1 -1
- package/dist/interaction_client/SilentIframeClient.js +107 -125
- package/dist/interaction_client/SilentIframeClient.js.map +1 -1
- package/dist/interaction_client/SilentRefreshClient.d.ts.map +1 -1
- package/dist/interaction_client/SilentRefreshClient.js +44 -72
- package/dist/interaction_client/SilentRefreshClient.js.map +1 -1
- package/dist/interaction_client/StandardInteractionClient.d.ts.map +1 -1
- package/dist/interaction_client/StandardInteractionClient.js +144 -180
- package/dist/interaction_client/StandardInteractionClient.js.map +1 -1
- package/dist/interaction_handler/InteractionHandler.d.ts +1 -1
- package/dist/interaction_handler/InteractionHandler.d.ts.map +1 -1
- package/dist/interaction_handler/InteractionHandler.js +84 -110
- package/dist/interaction_handler/InteractionHandler.js.map +1 -1
- package/dist/interaction_handler/RedirectHandler.d.ts +1 -1
- package/dist/interaction_handler/RedirectHandler.d.ts.map +1 -1
- package/dist/interaction_handler/RedirectHandler.js +105 -122
- package/dist/interaction_handler/RedirectHandler.js.map +1 -1
- package/dist/interaction_handler/SilentHandler.d.ts.map +1 -1
- package/dist/interaction_handler/SilentHandler.js +76 -65
- package/dist/interaction_handler/SilentHandler.js.map +1 -1
- package/dist/internals.js +1 -1
- package/dist/internals.js.map +1 -1
- package/dist/navigation/NavigationClient.d.ts.map +1 -1
- package/dist/navigation/NavigationClient.js +11 -14
- package/dist/navigation/NavigationClient.js.map +1 -1
- package/dist/navigation/NavigationOptions.d.ts +1 -1
- package/dist/navigation/NavigationOptions.d.ts.map +1 -1
- package/dist/network/FetchClient.d.ts.map +1 -1
- package/dist/network/FetchClient.js +66 -96
- package/dist/network/FetchClient.js.map +1 -1
- package/dist/network/XhrClient.d.ts.map +1 -1
- package/dist/network/XhrClient.js +38 -51
- package/dist/network/XhrClient.js.map +1 -1
- package/dist/operatingcontext/BaseOperatingContext.d.ts +41 -0
- package/dist/operatingcontext/BaseOperatingContext.d.ts.map +1 -0
- package/dist/operatingcontext/BaseOperatingContext.js +53 -0
- package/dist/operatingcontext/BaseOperatingContext.js.map +1 -0
- package/dist/operatingcontext/StandardOperatingContext.d.ts +26 -0
- package/dist/operatingcontext/StandardOperatingContext.d.ts.map +1 -0
- package/dist/operatingcontext/StandardOperatingContext.js +50 -0
- package/dist/operatingcontext/StandardOperatingContext.js.map +1 -0
- package/dist/operatingcontext/TeamsAppOperatingContext.d.ts +26 -0
- package/dist/operatingcontext/TeamsAppOperatingContext.d.ts.map +1 -0
- package/dist/operatingcontext/TeamsAppOperatingContext.js +49 -0
- package/dist/operatingcontext/TeamsAppOperatingContext.js.map +1 -0
- package/dist/packageMetadata.d.ts +1 -1
- package/dist/packageMetadata.d.ts.map +1 -1
- package/dist/packageMetadata.js +3 -3
- package/dist/packageMetadata.js.map +1 -1
- package/dist/request/AuthorizationCodeRequest.d.ts +1 -1
- package/dist/request/AuthorizationCodeRequest.d.ts.map +1 -1
- package/dist/request/AuthorizationUrlRequest.d.ts +1 -1
- package/dist/request/AuthorizationUrlRequest.d.ts.map +1 -1
- package/dist/request/EndSessionPopupRequest.d.ts +1 -1
- package/dist/request/EndSessionPopupRequest.d.ts.map +1 -1
- package/dist/request/EndSessionRequest.d.ts +1 -1
- package/dist/request/EndSessionRequest.d.ts.map +1 -1
- package/dist/request/PopupRequest.d.ts +1 -1
- package/dist/request/PopupRequest.d.ts.map +1 -1
- package/dist/request/PopupWindowAttributes.d.ts +3 -3
- package/dist/request/PopupWindowAttributes.d.ts.map +1 -1
- package/dist/request/RedirectRequest.d.ts +1 -1
- package/dist/request/RedirectRequest.d.ts.map +1 -1
- package/dist/request/SilentRequest.d.ts +1 -1
- package/dist/request/SilentRequest.d.ts.map +1 -1
- package/dist/request/SsoSilentRequest.d.ts +1 -1
- package/dist/request/SsoSilentRequest.d.ts.map +1 -1
- package/dist/telemetry/BrowserPerformanceClient.d.ts +1 -1
- package/dist/telemetry/BrowserPerformanceClient.d.ts.map +1 -1
- package/dist/telemetry/BrowserPerformanceClient.js +62 -57
- package/dist/telemetry/BrowserPerformanceClient.js.map +1 -1
- package/dist/telemetry/BrowserPerformanceMeasurement.d.ts.map +1 -1
- package/dist/telemetry/BrowserPerformanceMeasurement.js +30 -31
- package/dist/telemetry/BrowserPerformanceMeasurement.js.map +1 -1
- package/dist/utils/BrowserConstants.d.ts.map +1 -1
- package/dist/utils/BrowserConstants.js +10 -10
- package/dist/utils/BrowserConstants.js.map +1 -1
- package/dist/utils/BrowserProtocolUtils.d.ts +1 -1
- package/dist/utils/BrowserProtocolUtils.d.ts.map +1 -1
- package/dist/utils/BrowserProtocolUtils.js +9 -12
- package/dist/utils/BrowserProtocolUtils.js.map +1 -1
- package/dist/utils/BrowserStringUtils.d.ts.map +1 -1
- package/dist/utils/BrowserStringUtils.js +83 -49
- package/dist/utils/BrowserStringUtils.js.map +1 -1
- package/dist/utils/BrowserUtils.d.ts.map +1 -1
- package/dist/utils/BrowserUtils.js +51 -49
- package/dist/utils/BrowserUtils.js.map +1 -1
- package/dist/utils/MathUtils.d.ts.map +1 -1
- package/dist/utils/MathUtils.js +6 -9
- package/dist/utils/MathUtils.js.map +1 -1
- package/package.json +17 -16
- package/dist/_virtual/_tslib.js +0 -117
- package/dist/_virtual/_tslib.js.map +0 -1
- package/dist/app/ClientApplication.d.ts.map +0 -1
- package/dist/app/ClientApplication.js +0 -1053
- package/dist/app/ClientApplication.js.map +0 -1
- package/dist/index.cjs.js +0 -18080
- package/dist/index.cjs.js.map +0 -1
- package/lib/msal-browser.js +0 -18086
- package/lib/msal-browser.js.map +0 -1
- package/lib/msal-browser.min.js +0 -70
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StandardController.js","sources":["../../src/controllers/StandardController.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BrowserCrypto.d.ts","sourceRoot":"","sources":["../../src/crypto/BrowserCrypto.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAaxD;;;GAGG;AACH,qBAAa,aAAa;
|
|
1
|
+
{"version":3,"file":"BrowserCrypto.d.ts","sourceRoot":"","sources":["../../src/crypto/BrowserCrypto.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAaxD;;;GAGG;AACH,qBAAa,aAAa;IACtB,OAAO,CAAC,sBAAsB,CAAwB;IACtD,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,aAAa,CAAC,CAAgB;gBAE1B,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,aAAa;IAuDzD;;OAEG;IACH,OAAO,CAAC,WAAW;IAInB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;OAEG;IACH,OAAO,CAAC,YAAY;IAIpB;;;OAGG;IACG,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAM5D;;;OAGG;IACH,eAAe,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU;IAInD;;;;OAIG;IACG,eAAe,CACjB,WAAW,EAAE,OAAO,EACpB,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,GACxB,OAAO,CAAC,aAAa,CAAC;IAQzB;;;;OAIG;IACG,SAAS,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC;IAIpD;;;;;;OAMG;IACG,SAAS,CACX,GAAG,EAAE,UAAU,EACf,WAAW,EAAE,OAAO,EACpB,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,GACxB,OAAO,CAAC,SAAS,CAAC;IASrB;;;;OAIG;IACG,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;CAGtE"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
/*! @azure/msal-browser
|
|
1
|
+
/*! @azure/msal-browser v3.0.0-alpha.1 2023-05-08 */
|
|
2
2
|
'use strict';
|
|
3
|
-
import { __awaiter, __generator } from '../_virtual/_tslib.js';
|
|
4
3
|
import { BrowserStringUtils } from '../utils/BrowserStringUtils.js';
|
|
5
4
|
import { BrowserAuthError } from '../error/BrowserAuthError.js';
|
|
6
5
|
import { ModernBrowserCrypto } from './ModernBrowserCrypto.js';
|
|
@@ -16,20 +15,19 @@ import { BrowserConfigurationAuthError } from '../error/BrowserConfigurationAuth
|
|
|
16
15
|
* See here for more info on RsaHashedKeyGenParams: https://developer.mozilla.org/en-US/docs/Web/API/RsaHashedKeyGenParams
|
|
17
16
|
*/
|
|
18
17
|
// RSA KeyGen Algorithm
|
|
19
|
-
|
|
18
|
+
const PKCS1_V15_KEYGEN_ALG = "RSASSA-PKCS1-v1_5";
|
|
20
19
|
// SHA-256 hashing algorithm
|
|
21
|
-
|
|
20
|
+
const S256_HASH_ALG = "SHA-256";
|
|
22
21
|
// MOD length for PoP tokens
|
|
23
|
-
|
|
22
|
+
const MODULUS_LENGTH = 2048;
|
|
24
23
|
// Public Exponent
|
|
25
|
-
|
|
24
|
+
const PUBLIC_EXPONENT = new Uint8Array([0x01, 0x00, 0x01]);
|
|
26
25
|
/**
|
|
27
26
|
* This class implements functions used by the browser library to perform cryptography operations such as
|
|
28
27
|
* hashing and encoding. It also has helper functions to validate the availability of specific APIs.
|
|
29
28
|
*/
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
var _a, _b;
|
|
29
|
+
class BrowserCrypto {
|
|
30
|
+
constructor(logger, cryptoOptions) {
|
|
33
31
|
this.logger = logger;
|
|
34
32
|
this.cryptoOptions = cryptoOptions;
|
|
35
33
|
if (this.hasBrowserCrypto()) {
|
|
@@ -42,7 +40,7 @@ var BrowserCrypto = /** @class */ (function () {
|
|
|
42
40
|
this.logger.verbose("BrowserCrypto: MS crypto interface available");
|
|
43
41
|
this.subtleCrypto = new MsBrowserCrypto();
|
|
44
42
|
}
|
|
45
|
-
else if (this.hasMsrCrypto() &&
|
|
43
|
+
else if (this.hasMsrCrypto() && this.cryptoOptions?.useMsrCrypto) {
|
|
46
44
|
// For other browsers, use MSR Crypto if found
|
|
47
45
|
this.logger.verbose("BrowserCrypto: MSR crypto interface available");
|
|
48
46
|
this.subtleCrypto = new MsrBrowserCrypto();
|
|
@@ -57,7 +55,7 @@ var BrowserCrypto = /** @class */ (function () {
|
|
|
57
55
|
// Mainly needed for MSR Crypto: https://github.com/microsoft/MSR-JavaScript-Crypto#random-number-generator-prng
|
|
58
56
|
if (this.subtleCrypto.initPrng) {
|
|
59
57
|
this.logger.verbose("BrowserCrypto: Interface requires entropy");
|
|
60
|
-
if (!
|
|
58
|
+
if (!this.cryptoOptions?.entropy) {
|
|
61
59
|
this.logger.error("BrowserCrypto: Interface requires entropy but none provided.");
|
|
62
60
|
throw BrowserConfigurationAuthError.createEntropyNotProvided();
|
|
63
61
|
}
|
|
@@ -68,72 +66,59 @@ var BrowserCrypto = /** @class */ (function () {
|
|
|
68
66
|
name: PKCS1_V15_KEYGEN_ALG,
|
|
69
67
|
hash: S256_HASH_ALG,
|
|
70
68
|
modulusLength: MODULUS_LENGTH,
|
|
71
|
-
publicExponent: PUBLIC_EXPONENT
|
|
69
|
+
publicExponent: PUBLIC_EXPONENT,
|
|
72
70
|
};
|
|
73
71
|
}
|
|
74
72
|
/**
|
|
75
73
|
* Check whether IE crypto or other browser cryptography is available.
|
|
76
74
|
*/
|
|
77
|
-
|
|
75
|
+
hasIECrypto() {
|
|
78
76
|
return "msCrypto" in window;
|
|
79
|
-
}
|
|
77
|
+
}
|
|
80
78
|
/**
|
|
81
79
|
* Check whether browser crypto is available.
|
|
82
80
|
*/
|
|
83
|
-
|
|
81
|
+
hasBrowserCrypto() {
|
|
84
82
|
return "crypto" in window;
|
|
85
|
-
}
|
|
83
|
+
}
|
|
86
84
|
/**
|
|
87
85
|
* Check whether MSR crypto polyfill is available
|
|
88
86
|
*/
|
|
89
|
-
|
|
87
|
+
hasMsrCrypto() {
|
|
90
88
|
return "msrCrypto" in window;
|
|
91
|
-
}
|
|
89
|
+
}
|
|
92
90
|
/**
|
|
93
91
|
* Returns a sha-256 hash of the given dataString as an ArrayBuffer.
|
|
94
92
|
* @param dataString
|
|
95
93
|
*/
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
// MSR Crypto wants object with name property, instead of string
|
|
102
|
-
return [2 /*return*/, this.subtleCrypto.digest({ name: S256_HASH_ALG }, data)];
|
|
103
|
-
});
|
|
104
|
-
});
|
|
105
|
-
};
|
|
94
|
+
async sha256Digest(dataString) {
|
|
95
|
+
const data = BrowserStringUtils.stringToUtf8Arr(dataString);
|
|
96
|
+
// MSR Crypto wants object with name property, instead of string
|
|
97
|
+
return this.subtleCrypto.digest({ name: S256_HASH_ALG }, data);
|
|
98
|
+
}
|
|
106
99
|
/**
|
|
107
100
|
* Populates buffer with cryptographically random values.
|
|
108
101
|
* @param dataBuffer
|
|
109
102
|
*/
|
|
110
|
-
|
|
103
|
+
getRandomValues(dataBuffer) {
|
|
111
104
|
return this.subtleCrypto.getRandomValues(dataBuffer);
|
|
112
|
-
}
|
|
105
|
+
}
|
|
113
106
|
/**
|
|
114
107
|
* Generates a keypair based on current keygen algorithm config.
|
|
115
108
|
* @param extractable
|
|
116
109
|
* @param usages
|
|
117
110
|
*/
|
|
118
|
-
|
|
119
|
-
return
|
|
120
|
-
|
|
121
|
-
return [2 /*return*/, this.subtleCrypto.generateKey(this.keygenAlgorithmOptions, extractable, usages)];
|
|
122
|
-
});
|
|
123
|
-
});
|
|
124
|
-
};
|
|
111
|
+
async generateKeyPair(extractable, usages) {
|
|
112
|
+
return this.subtleCrypto.generateKey(this.keygenAlgorithmOptions, extractable, usages);
|
|
113
|
+
}
|
|
125
114
|
/**
|
|
126
115
|
* Export key as Json Web Key (JWK)
|
|
127
116
|
* @param key
|
|
128
117
|
* @param format
|
|
129
118
|
*/
|
|
130
|
-
|
|
131
|
-
return
|
|
132
|
-
|
|
133
|
-
return [2 /*return*/, this.subtleCrypto.exportKey(key)];
|
|
134
|
-
});
|
|
135
|
-
});
|
|
136
|
-
};
|
|
119
|
+
async exportJwk(key) {
|
|
120
|
+
return this.subtleCrypto.exportKey(key);
|
|
121
|
+
}
|
|
137
122
|
/**
|
|
138
123
|
* Imports key as Json Web Key (JWK), can set extractable and usages.
|
|
139
124
|
* @param key
|
|
@@ -141,27 +126,18 @@ var BrowserCrypto = /** @class */ (function () {
|
|
|
141
126
|
* @param extractable
|
|
142
127
|
* @param usages
|
|
143
128
|
*/
|
|
144
|
-
|
|
145
|
-
return
|
|
146
|
-
|
|
147
|
-
return [2 /*return*/, this.subtleCrypto.importKey(key, this.keygenAlgorithmOptions, extractable, usages)];
|
|
148
|
-
});
|
|
149
|
-
});
|
|
150
|
-
};
|
|
129
|
+
async importJwk(key, extractable, usages) {
|
|
130
|
+
return this.subtleCrypto.importKey(key, this.keygenAlgorithmOptions, extractable, usages);
|
|
131
|
+
}
|
|
151
132
|
/**
|
|
152
133
|
* Signs given data with given key
|
|
153
134
|
* @param key
|
|
154
135
|
* @param data
|
|
155
136
|
*/
|
|
156
|
-
|
|
157
|
-
return
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
});
|
|
161
|
-
});
|
|
162
|
-
};
|
|
163
|
-
return BrowserCrypto;
|
|
164
|
-
}());
|
|
137
|
+
async sign(key, data) {
|
|
138
|
+
return this.subtleCrypto.sign(this.keygenAlgorithmOptions, key, data);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
165
141
|
|
|
166
142
|
export { BrowserCrypto };
|
|
167
143
|
//# sourceMappingURL=BrowserCrypto.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BrowserCrypto.js","sources":["../../src/crypto/BrowserCrypto.ts"],"sourcesContent":[
|
|
1
|
+
{"version":3,"file":"BrowserCrypto.js","sources":["../../src/crypto/BrowserCrypto.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ICrypto, IPerformanceClient, Logger, PkceCodes, SignedHttpRequest, SignedHttpRequestParameters } from "@azure/msal-common";
|
|
2
2
|
import { CryptoOptions } from "../config/Configuration";
|
|
3
|
-
export
|
|
3
|
+
export type CachedKeyPair = {
|
|
4
4
|
publicKey: CryptoKey;
|
|
5
5
|
privateKey: CryptoKey;
|
|
6
6
|
requestMethod?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CryptoOps.d.ts","sourceRoot":"","sources":["../../src/crypto/CryptoOps.ts"],"names":[],"mappings":"AAKA,OAAO,
|
|
1
|
+
{"version":3,"file":"CryptoOps.d.ts","sourceRoot":"","sources":["../../src/crypto/CryptoOps.ts"],"names":[],"mappings":"AAKA,OAAO,EACH,OAAO,EACP,kBAAkB,EAElB,MAAM,EAEN,SAAS,EACT,iBAAiB,EACjB,2BAA2B,EAC9B,MAAM,oBAAoB,CAAC;AAS5B,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,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,aAAa,CAAgB;IACrC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,SAAS,CAAe;IAChC,OAAO,CAAC,SAAS,CAAe;IAChC,OAAO,CAAC,aAAa,CAAgB;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;gBAG1B,MAAM,EAAE,MAAM,EACd,iBAAiB,CAAC,EAAE,kBAAkB,EACtC,YAAY,CAAC,EAAE,aAAa;IAahC;;;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;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,SAAS,CAAC;IAI7C;;;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;IA8DlB;;;OAGG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAOvD"}
|
package/dist/crypto/CryptoOps.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
/*! @azure/msal-browser
|
|
1
|
+
/*! @azure/msal-browser v3.0.0-alpha.1 2023-05-08 */
|
|
2
2
|
'use strict';
|
|
3
|
-
import { __awaiter, __generator } from '../_virtual/_tslib.js';
|
|
4
3
|
import { PerformanceEvents, JoseHeader } from '@azure/msal-common';
|
|
5
4
|
import { GuidGenerator } from './GuidGenerator.js';
|
|
6
5
|
import { Base64Encode } from '../encode/Base64Encode.js';
|
|
@@ -19,8 +18,8 @@ import { CryptoKeyStore } from '../cache/CryptoKeyStore.js';
|
|
|
19
18
|
* This class implements MSAL's crypto interface, which allows it to perform base64 encoding and decoding, generating cryptographically random GUIDs and
|
|
20
19
|
* implementing Proof Key for Code Exchange specs for the OAuth Authorization Code Flow using PKCE (rfc here: https://tools.ietf.org/html/rfc7636).
|
|
21
20
|
*/
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
class CryptoOps {
|
|
22
|
+
constructor(logger, performanceClient, cryptoConfig) {
|
|
24
23
|
this.logger = logger;
|
|
25
24
|
// Browser crypto needs to be validated first before any other classes can be set.
|
|
26
25
|
this.browserCrypto = new BrowserCrypto(this.logger, cryptoConfig);
|
|
@@ -35,189 +34,132 @@ var CryptoOps = /** @class */ (function () {
|
|
|
35
34
|
* Creates a new random GUID - used to populate state and nonce.
|
|
36
35
|
* @returns string (GUID)
|
|
37
36
|
*/
|
|
38
|
-
|
|
37
|
+
createNewGuid() {
|
|
39
38
|
return this.guidGenerator.generateGuid();
|
|
40
|
-
}
|
|
39
|
+
}
|
|
41
40
|
/**
|
|
42
41
|
* Encodes input string to base64.
|
|
43
42
|
* @param input
|
|
44
43
|
*/
|
|
45
|
-
|
|
44
|
+
base64Encode(input) {
|
|
46
45
|
return this.b64Encode.encode(input);
|
|
47
|
-
}
|
|
46
|
+
}
|
|
48
47
|
/**
|
|
49
48
|
* Decodes input string from base64.
|
|
50
49
|
* @param input
|
|
51
50
|
*/
|
|
52
|
-
|
|
51
|
+
base64Decode(input) {
|
|
53
52
|
return this.b64Decode.decode(input);
|
|
54
|
-
}
|
|
53
|
+
}
|
|
55
54
|
/**
|
|
56
55
|
* Generates PKCE codes used in Authorization Code Flow.
|
|
57
56
|
*/
|
|
58
|
-
|
|
59
|
-
return
|
|
60
|
-
|
|
61
|
-
return [2 /*return*/, this.pkceGenerator.generateCodes()];
|
|
62
|
-
});
|
|
63
|
-
});
|
|
64
|
-
};
|
|
57
|
+
async generatePkceCodes() {
|
|
58
|
+
return this.pkceGenerator.generateCodes();
|
|
59
|
+
}
|
|
65
60
|
/**
|
|
66
61
|
* Generates a keypair, stores it and returns a thumbprint
|
|
67
62
|
* @param request
|
|
68
63
|
*/
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
return [4 /*yield*/, this.browserCrypto.exportJwk(keyPair.privateKey)];
|
|
93
|
-
case 4:
|
|
94
|
-
privateKeyJwk = _b.sent();
|
|
95
|
-
return [4 /*yield*/, this.browserCrypto.importJwk(privateKeyJwk, false, ["sign"])];
|
|
96
|
-
case 5:
|
|
97
|
-
unextractablePrivateKey = _b.sent();
|
|
98
|
-
// Store Keypair data in keystore
|
|
99
|
-
return [4 /*yield*/, this.cache.asymmetricKeys.setItem(publicJwkHash, {
|
|
100
|
-
privateKey: unextractablePrivateKey,
|
|
101
|
-
publicKey: keyPair.publicKey,
|
|
102
|
-
requestMethod: request.resourceRequestMethod,
|
|
103
|
-
requestUri: request.resourceRequestUri
|
|
104
|
-
})];
|
|
105
|
-
case 6:
|
|
106
|
-
// Store Keypair data in keystore
|
|
107
|
-
_b.sent();
|
|
108
|
-
if (publicKeyThumbMeasurement) {
|
|
109
|
-
publicKeyThumbMeasurement.endMeasurement({
|
|
110
|
-
success: true
|
|
111
|
-
});
|
|
112
|
-
}
|
|
113
|
-
return [2 /*return*/, publicJwkHash];
|
|
114
|
-
}
|
|
115
|
-
});
|
|
64
|
+
async getPublicKeyThumbprint(request) {
|
|
65
|
+
const publicKeyThumbMeasurement = this.performanceClient?.startMeasurement(PerformanceEvents.CryptoOptsGetPublicKeyThumbprint, request.correlationId);
|
|
66
|
+
// Generate Keypair
|
|
67
|
+
const keyPair = await this.browserCrypto.generateKeyPair(CryptoOps.EXTRACTABLE, CryptoOps.POP_KEY_USAGES);
|
|
68
|
+
// Generate Thumbprint for Public Key
|
|
69
|
+
const publicKeyJwk = await this.browserCrypto.exportJwk(keyPair.publicKey);
|
|
70
|
+
const pubKeyThumprintObj = {
|
|
71
|
+
e: publicKeyJwk.e,
|
|
72
|
+
kty: publicKeyJwk.kty,
|
|
73
|
+
n: publicKeyJwk.n,
|
|
74
|
+
};
|
|
75
|
+
const publicJwkString = BrowserStringUtils.getSortedObjectString(pubKeyThumprintObj);
|
|
76
|
+
const publicJwkHash = await this.hashString(publicJwkString);
|
|
77
|
+
// Generate Thumbprint for Private Key
|
|
78
|
+
const privateKeyJwk = await this.browserCrypto.exportJwk(keyPair.privateKey);
|
|
79
|
+
// Re-import private key to make it unextractable
|
|
80
|
+
const unextractablePrivateKey = await this.browserCrypto.importJwk(privateKeyJwk, false, ["sign"]);
|
|
81
|
+
// Store Keypair data in keystore
|
|
82
|
+
await this.cache.asymmetricKeys.setItem(publicJwkHash, {
|
|
83
|
+
privateKey: unextractablePrivateKey,
|
|
84
|
+
publicKey: keyPair.publicKey,
|
|
85
|
+
requestMethod: request.resourceRequestMethod,
|
|
86
|
+
requestUri: request.resourceRequestUri,
|
|
116
87
|
});
|
|
117
|
-
|
|
88
|
+
if (publicKeyThumbMeasurement) {
|
|
89
|
+
publicKeyThumbMeasurement.endMeasurement({
|
|
90
|
+
success: true,
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
return publicJwkHash;
|
|
94
|
+
}
|
|
118
95
|
/**
|
|
119
96
|
* Removes cryptographic keypair from key store matching the keyId passed in
|
|
120
97
|
* @param kid
|
|
121
98
|
*/
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
case 0: return [4 /*yield*/, this.cache.asymmetricKeys.removeItem(kid)];
|
|
128
|
-
case 1:
|
|
129
|
-
_a.sent();
|
|
130
|
-
return [4 /*yield*/, this.cache.asymmetricKeys.containsKey(kid)];
|
|
131
|
-
case 2:
|
|
132
|
-
keyFound = _a.sent();
|
|
133
|
-
return [2 /*return*/, !keyFound];
|
|
134
|
-
}
|
|
135
|
-
});
|
|
136
|
-
});
|
|
137
|
-
};
|
|
99
|
+
async removeTokenBindingKey(kid) {
|
|
100
|
+
await this.cache.asymmetricKeys.removeItem(kid);
|
|
101
|
+
const keyFound = await this.cache.asymmetricKeys.containsKey(kid);
|
|
102
|
+
return !keyFound;
|
|
103
|
+
}
|
|
138
104
|
/**
|
|
139
105
|
* Removes all cryptographic keys from IndexedDB storage
|
|
140
106
|
*/
|
|
141
|
-
|
|
142
|
-
return
|
|
143
|
-
|
|
144
|
-
switch (_a.label) {
|
|
145
|
-
case 0: return [4 /*yield*/, this.cache.clear()];
|
|
146
|
-
case 1: return [2 /*return*/, _a.sent()];
|
|
147
|
-
}
|
|
148
|
-
});
|
|
149
|
-
});
|
|
150
|
-
};
|
|
107
|
+
async clearKeystore() {
|
|
108
|
+
return await this.cache.clear();
|
|
109
|
+
}
|
|
151
110
|
/**
|
|
152
111
|
* Signs the given object as a jwt payload with private key retrieved by given kid.
|
|
153
112
|
* @param payload
|
|
154
113
|
* @param kid
|
|
155
114
|
*/
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
case 2:
|
|
172
|
-
publicKeyJwk = _b.sent();
|
|
173
|
-
publicKeyJwkString = BrowserStringUtils.getSortedObjectString(publicKeyJwk);
|
|
174
|
-
encodedKeyIdThumbprint = this.b64Encode.urlEncode(JSON.stringify({ kid: kid }));
|
|
175
|
-
shrHeader = JoseHeader.getShrHeaderString({ kid: encodedKeyIdThumbprint, alg: publicKeyJwk.alg });
|
|
176
|
-
encodedShrHeader = this.b64Encode.urlEncode(shrHeader);
|
|
177
|
-
// Generate payload
|
|
178
|
-
payload.cnf = {
|
|
179
|
-
jwk: JSON.parse(publicKeyJwkString)
|
|
180
|
-
};
|
|
181
|
-
encodedPayload = this.b64Encode.urlEncode(JSON.stringify(payload));
|
|
182
|
-
tokenString = encodedShrHeader + "." + encodedPayload;
|
|
183
|
-
tokenBuffer = BrowserStringUtils.stringToArrayBuffer(tokenString);
|
|
184
|
-
return [4 /*yield*/, this.browserCrypto.sign(cachedKeyPair.privateKey, tokenBuffer)];
|
|
185
|
-
case 3:
|
|
186
|
-
signatureBuffer = _b.sent();
|
|
187
|
-
encodedSignature = this.b64Encode.urlEncodeArr(new Uint8Array(signatureBuffer));
|
|
188
|
-
signedJwt = tokenString + "." + encodedSignature;
|
|
189
|
-
if (signJwtMeasurement) {
|
|
190
|
-
signJwtMeasurement.endMeasurement({
|
|
191
|
-
success: true
|
|
192
|
-
});
|
|
193
|
-
}
|
|
194
|
-
return [2 /*return*/, signedJwt];
|
|
195
|
-
}
|
|
196
|
-
});
|
|
115
|
+
async signJwt(payload, kid, correlationId) {
|
|
116
|
+
const signJwtMeasurement = this.performanceClient?.startMeasurement(PerformanceEvents.CryptoOptsSignJwt, correlationId);
|
|
117
|
+
const cachedKeyPair = await this.cache.asymmetricKeys.getItem(kid);
|
|
118
|
+
if (!cachedKeyPair) {
|
|
119
|
+
throw BrowserAuthError.createSigningKeyNotFoundInStorageError(kid);
|
|
120
|
+
}
|
|
121
|
+
// Get public key as JWK
|
|
122
|
+
const publicKeyJwk = await this.browserCrypto.exportJwk(cachedKeyPair.publicKey);
|
|
123
|
+
const publicKeyJwkString = BrowserStringUtils.getSortedObjectString(publicKeyJwk);
|
|
124
|
+
// Base64URL encode public key thumbprint with keyId only: BASE64URL({ kid: "FULL_PUBLIC_KEY_HASH" })
|
|
125
|
+
const encodedKeyIdThumbprint = this.b64Encode.urlEncode(JSON.stringify({ kid: kid }));
|
|
126
|
+
// Generate header
|
|
127
|
+
const shrHeader = JoseHeader.getShrHeaderString({
|
|
128
|
+
kid: encodedKeyIdThumbprint,
|
|
129
|
+
alg: publicKeyJwk.alg,
|
|
197
130
|
});
|
|
198
|
-
|
|
131
|
+
const encodedShrHeader = this.b64Encode.urlEncode(shrHeader);
|
|
132
|
+
// Generate payload
|
|
133
|
+
payload.cnf = {
|
|
134
|
+
jwk: JSON.parse(publicKeyJwkString),
|
|
135
|
+
};
|
|
136
|
+
const encodedPayload = this.b64Encode.urlEncode(JSON.stringify(payload));
|
|
137
|
+
// Form token string
|
|
138
|
+
const tokenString = `${encodedShrHeader}.${encodedPayload}`;
|
|
139
|
+
// Sign token
|
|
140
|
+
const tokenBuffer = BrowserStringUtils.stringToArrayBuffer(tokenString);
|
|
141
|
+
const signatureBuffer = await this.browserCrypto.sign(cachedKeyPair.privateKey, tokenBuffer);
|
|
142
|
+
const encodedSignature = this.b64Encode.urlEncodeArr(new Uint8Array(signatureBuffer));
|
|
143
|
+
const signedJwt = `${tokenString}.${encodedSignature}`;
|
|
144
|
+
if (signJwtMeasurement) {
|
|
145
|
+
signJwtMeasurement.endMeasurement({
|
|
146
|
+
success: true,
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
return signedJwt;
|
|
150
|
+
}
|
|
199
151
|
/**
|
|
200
152
|
* Returns the SHA-256 hash of an input string
|
|
201
153
|
* @param plainText
|
|
202
154
|
*/
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
hashBytes = new Uint8Array(hashBuffer);
|
|
212
|
-
return [2 /*return*/, this.b64Encode.urlEncodeArr(hashBytes)];
|
|
213
|
-
}
|
|
214
|
-
});
|
|
215
|
-
});
|
|
216
|
-
};
|
|
217
|
-
CryptoOps.POP_KEY_USAGES = ["sign", "verify"];
|
|
218
|
-
CryptoOps.EXTRACTABLE = true;
|
|
219
|
-
return CryptoOps;
|
|
220
|
-
}());
|
|
155
|
+
async hashString(plainText) {
|
|
156
|
+
const hashBuffer = await this.browserCrypto.sha256Digest(plainText);
|
|
157
|
+
const hashBytes = new Uint8Array(hashBuffer);
|
|
158
|
+
return this.b64Encode.urlEncodeArr(hashBytes);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
CryptoOps.POP_KEY_USAGES = ["sign", "verify"];
|
|
162
|
+
CryptoOps.EXTRACTABLE = true;
|
|
221
163
|
|
|
222
164
|
export { CryptoOps };
|
|
223
165
|
//# sourceMappingURL=CryptoOps.js.map
|