UNPKG

@azure/msal-browser

Version:
85 lines 2.98 kB
import { ICrypto, IPerformanceClient, Logger, PkceCodes, SignedHttpRequest, SignedHttpRequestParameters } from "@azure/msal-common"; import { AsyncMemoryStorage } from "../cache/AsyncMemoryStorage"; export declare type CachedKeyPair = { publicKey: CryptoKey; privateKey: CryptoKey; requestMethod?: string; requestUri?: string; }; /** * MSAL CryptoKeyStore DB Version 2 */ export declare type CryptoKeyStore = { asymmetricKeys: AsyncMemoryStorage<CachedKeyPair>; symmetricKeys: AsyncMemoryStorage<CryptoKey>; }; export declare enum CryptoKeyStoreNames { asymmetricKeys = "asymmetricKeys", symmetricKeys = "symmetricKeys" } /** * This class implements MSAL's crypto interface, which allows it to perform base64 encoding and decoding, generating cryptographically random GUIDs and * implementing Proof Key for Code Exchange specs for the OAuth Authorization Code Flow using PKCE (rfc here: https://tools.ietf.org/html/rfc7636). */ export declare class CryptoOps implements ICrypto { private browserCrypto; private guidGenerator; private b64Encode; private b64Decode; private pkceGenerator; private logger; /** * CryptoOps can be used in contexts outside a PCA instance, * meaning there won't be a performance manager available. */ private performanceClient; private static POP_KEY_USAGES; private static EXTRACTABLE; private cache; constructor(logger: Logger, performanceClient?: IPerformanceClient); /** * Creates a new random GUID - used to populate state and nonce. * @returns string (GUID) */ createNewGuid(): string; /** * Encodes input string to base64. * @param input */ base64Encode(input: string): string; /** * Decodes input string from base64. * @param input */ base64Decode(input: string): string; /** * Generates PKCE codes used in Authorization Code Flow. */ generatePkceCodes(): Promise<PkceCodes>; /** * Generates a keypair, stores it and returns a thumbprint * @param request */ getPublicKeyThumbprint(request: SignedHttpRequestParameters): Promise<string>; /** * Removes cryptographic keypair from key store matching the keyId passed in * @param kid */ removeTokenBindingKey(kid: string): Promise<boolean>; /** * Removes all cryptographic keys from IndexedDB storage */ clearKeystore(): Promise<boolean>; /** * Signs the given object as a jwt payload with private key retrieved by given kid. * @param payload * @param kid */ signJwt(payload: SignedHttpRequest, kid: string, correlationId?: string): Promise<string>; /** * Returns the SHA-256 hash of an input string * @param plainText */ hashString(plainText: string): Promise<string>; } //# sourceMappingURL=CryptoOps.d.ts.map