/** * Copyright (c) 2019-2026, Peculiar Ventures * SPDX-License-Identifier: MIT */ import { BufferSourceLike, StrictBufferSource } from '@peculiar/utils/bytes'; export { BufferSourceConverter } from '@peculiar/utils/legacy'; import { IJsonConvertible, IJsonConverter } from '@peculiar/json-schema'; import { IAsnConverter } from '@peculiar/asn1-schema'; declare class CryptoError extends Error { } declare class AlgorithmError extends CryptoError { } declare class UnsupportedOperationError extends CryptoError { constructor(methodName?: string); } declare class OperationError extends CryptoError { } declare class RequiredPropertyError extends CryptoError { constructor(propName: string); } type NativeCrypto = Crypto; type NativeSubtleCrypto = SubtleCrypto; type NativeCryptoKey = CryptoKey; type HexString = string; type KeyUsages = KeyUsage[]; type ProviderKeyUsage = KeyUsages; interface ProviderKeyPairUsage { privateKey: KeyUsages; publicKey: KeyUsages; } type ProviderKeyUsages = ProviderKeyUsage | ProviderKeyPairUsage; interface HashedAlgorithm extends Algorithm { hash: AlgorithmIdentifier; } type ImportAlgorithms = Algorithm | RsaHashedImportParams | EcKeyImportParams; interface CryptoStorage { keys(): Promise; indexOf(item: T): Promise; setItem(item: T): Promise; getItem(index: string): Promise; hasItem(item: T): Promise; clear(): Promise; removeItem(index: string): Promise; } interface CryptoKeyStorage extends CryptoStorage { getItem(index: string): Promise; getItem(index: string, algorithm: ImportAlgorithms, extractable: boolean, keyUsages: KeyUsage[]): Promise; } type CryptoCertificateFormat = "raw" | "pem"; type CryptoCertificateType = "x509" | "request"; interface CryptoCertificate { type: CryptoCertificateType; publicKey: CryptoKey; } interface CryptoX509Certificate extends CryptoCertificate { type: "x509"; notBefore: Date; notAfter: Date; serialNumber: HexString; issuerName: string; subjectName: string; } interface CryptoX509CertificateRequest extends CryptoCertificate { type: "request"; subjectName: string; } interface CryptoCertificateStorage extends CryptoStorage { getItem(index: string): Promise; getItem(index: string, algorithm: ImportAlgorithms, keyUsages: KeyUsage[]): Promise; exportCert(format: CryptoCertificateFormat, item: CryptoCertificate): Promise; exportCert(format: "raw", item: CryptoCertificate): Promise; exportCert(format: "pem", item: CryptoCertificate): Promise; importCert(format: CryptoCertificateFormat, data: BufferSource | string, algorithm: ImportAlgorithms, keyUsages: KeyUsage[]): Promise; importCert(format: "raw", data: BufferSource, algorithm: ImportAlgorithms, keyUsages: KeyUsage[]): Promise; importCert(format: "pem", data: string, algorithm: ImportAlgorithms, keyUsages: KeyUsage[]): Promise; } interface CryptoStorages { keyStorage: CryptoKeyStorage; certStorage: CryptoCertificateStorage; } interface IProviderCheckOptions { keyUsage?: boolean; } declare abstract class ProviderCrypto { abstract readonly name: string; abstract readonly usages: ProviderKeyUsages; digest(algorithm: Algorithm, data: ArrayBuffer, ...args: any[]): Promise; checkDigest(algorithm: Algorithm, _data: ArrayBuffer): void; onDigest(_algorithm: Algorithm, _data: ArrayBuffer): Promise; generateKey(algorithm: "Ed25519", extractable: boolean, keyUsages: readonly ("sign" | "verify")[]): Promise; generateKey(algorithm: RsaHashedKeyGenParams | EcKeyGenParams, extractable: boolean, keyUsages: KeyUsage[]): Promise; generateKey(algorithm: AesKeyGenParams | HmacKeyGenParams | Pbkdf2Params, extractable: boolean, keyUsages: KeyUsage[]): Promise; generateKey(algorithm: Algorithm, extractable: boolean, keyUsages: KeyUsage[], ...args: any[]): Promise; checkGenerateKey(algorithm: Algorithm, _extractable: boolean, keyUsages: KeyUsage[], ..._args: any[]): void; checkGenerateKeyParams(_algorithm: Algorithm): void; onGenerateKey(_algorithm: Algorithm, _extractable: boolean, _keyUsages: KeyUsage[], ..._args: any[]): Promise; sign(algorithm: Algorithm, key: CryptoKey, data: ArrayBuffer, ...args: any[]): Promise; checkSign(algorithm: Algorithm, key: CryptoKey, _data: ArrayBuffer, ..._args: any[]): void; onSign(_algorithm: Algorithm, _key: CryptoKey, _data: ArrayBuffer, ..._args: any[]): Promise; verify(algorithm: Algorithm, key: CryptoKey, signature: ArrayBuffer, data: ArrayBuffer, ...args: any[]): Promise; checkVerify(algorithm: Algorithm, key: CryptoKey, _signature: ArrayBuffer, _data: ArrayBuffer, ..._args: any[]): void; onVerify(_algorithm: Algorithm, _key: CryptoKey, _signature: ArrayBuffer, _data: ArrayBuffer, ..._args: any[]): Promise; encrypt(algorithm: Algorithm, key: CryptoKey, data: ArrayBuffer, options?: IProviderCheckOptions, ...args: any[]): Promise; checkEncrypt(algorithm: Algorithm, key: CryptoKey, _data: ArrayBuffer, options?: IProviderCheckOptions, ..._args: any[]): void; onEncrypt(_algorithm: Algorithm, _key: CryptoKey, _data: ArrayBuffer, ..._args: any[]): Promise; decrypt(algorithm: Algorithm, key: CryptoKey, data: ArrayBuffer, options?: IProviderCheckOptions, ...args: any[]): Promise; checkDecrypt(algorithm: Algorithm, key: CryptoKey, _data: ArrayBuffer, options?: IProviderCheckOptions, ..._args: any[]): void; onDecrypt(_algorithm: Algorithm, _key: CryptoKey, _data: ArrayBuffer, ..._args: any[]): Promise; deriveBits(algorithm: Algorithm, baseKey: CryptoKey, length: number, options?: IProviderCheckOptions, ...args: any[]): Promise; checkDeriveBits(algorithm: Algorithm, baseKey: CryptoKey, length: number, options?: IProviderCheckOptions, ..._args: any[]): void; onDeriveBits(_algorithm: Algorithm, _baseKey: CryptoKey, _length: number, ..._args: any[]): Promise; exportKey(format: KeyFormat, key: CryptoKey, ...args: any[]): Promise; checkExportKey(format: KeyFormat, key: CryptoKey, ..._args: any[]): void; onExportKey(_format: KeyFormat, _key: CryptoKey, ..._args: any[]): Promise; importKey(format: KeyFormat, keyData: JsonWebKey | ArrayBuffer, algorithm: Algorithm, extractable: boolean, keyUsages: KeyUsage[], ...args: any[]): Promise; checkImportKey(format: KeyFormat, keyData: JsonWebKey | ArrayBuffer, algorithm: Algorithm, _extractable: boolean, keyUsages: KeyUsage[], ..._args: any[]): void; onImportKey(_format: KeyFormat, _keyData: JsonWebKey | ArrayBuffer, _algorithm: Algorithm, _extractable: boolean, _keyUsages: KeyUsage[], ..._args: any[]): Promise; checkAlgorithmName(algorithm: Algorithm): void; checkAlgorithmParams(_algorithm: Algorithm): void; checkDerivedKeyParams(_algorithm: Algorithm): void; checkKeyUsages(usages: KeyUsages, allowed: KeyUsages): void; checkCryptoKey(key: CryptoKey, keyUsage?: KeyUsage): void; checkRequiredProperty(data: object, propName: string): void; checkHashAlgorithm(algorithm: Algorithm, hashAlgorithms: string[]): void; checkImportParams(_algorithm: Algorithm): void; checkKeyFormat(format: any): void; checkKeyData(format: KeyFormat, keyData: any): void; protected prepareData(data: any): ArrayBuffer; } type KeyAlgorithm = Algorithm; declare class CryptoKey$1 implements globalThis.CryptoKey { static create(this: new () => T, algorithm: KeyAlgorithm, type: KeyType, extractable: boolean, usages: KeyUsages): T; static isKeyType(data: any): data is KeyType; algorithm: KeyAlgorithm; type: KeyType; usages: KeyUsages; extractable: boolean; } declare abstract class AesProvider extends ProviderCrypto { checkGenerateKeyParams(algorithm: AesKeyGenParams): void; checkDerivedKeyParams(algorithm: AesKeyGenParams): void; abstract onGenerateKey(algorithm: AesKeyGenParams, extractable: boolean, keyUsages: KeyUsage[], ...args: any[]): Promise; abstract onExportKey(format: KeyFormat, key: CryptoKey$1, ...args: any[]): Promise; abstract onImportKey(format: KeyFormat, keyData: JsonWebKey | ArrayBuffer, algorithm: Algorithm, extractable: boolean, keyUsages: KeyUsage[], ...args: any[]): Promise; } declare abstract class AesCbcProvider extends AesProvider { readonly name = "AES-CBC"; usages: KeyUsages; checkAlgorithmParams(algorithm: AesCbcParams): void; abstract onEncrypt(algorithm: AesCbcParams, key: CryptoKey, data: ArrayBuffer, ...args: any[]): Promise; abstract onDecrypt(algorithm: AesCbcParams, key: CryptoKey, data: ArrayBuffer, ...args: any[]): Promise; } interface AesCmacParams extends Algorithm { length: number; } declare abstract class AesCmacProvider extends AesProvider { readonly name = "AES-CMAC"; usages: KeyUsages; checkAlgorithmParams(algorithm: AesCmacParams): void; abstract onSign(algorithm: AesCmacParams, key: CryptoKey, data: ArrayBuffer, ...args: any[]): Promise; abstract onVerify(algorithm: AesCmacParams, key: CryptoKey, signature: ArrayBuffer, data: ArrayBuffer, ...args: any[]): Promise; } declare abstract class AesCtrProvider extends AesProvider { readonly name = "AES-CTR"; usages: KeyUsages; checkAlgorithmParams(algorithm: AesCtrParams): void; abstract onEncrypt(algorithm: AesCtrParams, key: CryptoKey, data: ArrayBuffer, ...args: any[]): Promise; abstract onDecrypt(algorithm: AesCtrParams, key: CryptoKey, data: ArrayBuffer, ...args: any[]): Promise; } declare abstract class AesEcbProvider extends AesProvider { readonly name = "AES-ECB"; usages: KeyUsages; abstract onEncrypt(algorithm: Algorithm, key: CryptoKey, data: ArrayBuffer, ...args: any[]): Promise; abstract onDecrypt(algorithm: Algorithm, key: CryptoKey, data: ArrayBuffer, ...args: any[]): Promise; } declare abstract class AesGcmProvider extends AesProvider { readonly name = "AES-GCM"; usages: KeyUsages; checkAlgorithmParams(algorithm: AesGcmParams): void; abstract onEncrypt(algorithm: AesGcmParams, key: CryptoKey, data: ArrayBuffer, ...args: any[]): Promise; abstract onDecrypt(algorithm: AesGcmParams, key: CryptoKey, data: ArrayBuffer, ...args: any[]): Promise; } declare abstract class AesKwProvider extends AesProvider { readonly name = "AES-KW"; usages: KeyUsages; } interface DesKeyAlgorithm extends KeyAlgorithm { length: number; } interface DesParams extends Algorithm { iv: BufferSource; } interface DesKeyGenParams extends Algorithm { length: number; } interface DesDerivedKeyParams extends Algorithm { length: number; } type DesImportParams = Algorithm; declare abstract class DesProvider extends ProviderCrypto { usages: KeyUsages; abstract keySizeBits: number; abstract ivSize: number; checkAlgorithmParams(algorithm: AesCbcParams): void; checkGenerateKeyParams(algorithm: DesKeyGenParams): void; checkDerivedKeyParams(algorithm: DesDerivedKeyParams): void; abstract onGenerateKey(algorithm: DesKeyGenParams, extractable: boolean, keyUsages: KeyUsage[], ...args: any[]): Promise; abstract onExportKey(format: KeyFormat, key: CryptoKey$1, ...args: any[]): Promise; abstract onImportKey(format: KeyFormat, keyData: JsonWebKey | ArrayBuffer, algorithm: DesImportParams, extractable: boolean, keyUsages: KeyUsage[], ...args: any[]): Promise; abstract onEncrypt(algorithm: DesParams, key: CryptoKey$1, data: ArrayBuffer, ...args: any[]): Promise; abstract onDecrypt(algorithm: DesParams, key: CryptoKey$1, data: ArrayBuffer, ...args: any[]): Promise; } declare abstract class RsaProvider extends ProviderCrypto { hashAlgorithms: string[]; checkGenerateKeyParams(algorithm: RsaHashedKeyGenParams): void; checkImportParams(algorithm: RsaHashedImportParams): void; abstract onGenerateKey(algorithm: RsaHashedKeyGenParams, extractable: boolean, keyUsages: KeyUsage[], ...args: any[]): Promise; abstract onExportKey(format: KeyFormat, key: CryptoKey$1, ...args: any[]): Promise; abstract onImportKey(format: KeyFormat, keyData: JsonWebKey | ArrayBuffer, algorithm: RsaHashedImportParams, extractable: boolean, keyUsages: KeyUsage[], ...args: any[]): Promise; } type RsaSsaParams = Algorithm; declare abstract class RsaSsaProvider extends RsaProvider { readonly name = "RSASSA-PKCS1-v1_5"; usages: ProviderKeyUsages; abstract onSign(algorithm: RsaSsaParams, key: CryptoKey, data: ArrayBuffer, ...args: any[]): Promise; abstract onVerify(algorithm: RsaSsaParams, key: CryptoKey, signature: ArrayBuffer, data: ArrayBuffer, ...args: any[]): Promise; } declare abstract class RsaPssProvider extends RsaProvider { readonly name = "RSA-PSS"; usages: ProviderKeyUsages; checkAlgorithmParams(algorithm: RsaPssParams): void; abstract onSign(algorithm: RsaPssParams, key: CryptoKey, data: ArrayBuffer, ...args: any[]): Promise; abstract onVerify(algorithm: RsaPssParams, key: CryptoKey, signature: ArrayBuffer, data: ArrayBuffer, ...args: any[]): Promise; } declare abstract class RsaOaepProvider extends RsaProvider { readonly name = "RSA-OAEP"; usages: ProviderKeyUsages; checkAlgorithmParams(algorithm: RsaOaepParams): void; abstract onEncrypt(algorithm: RsaOaepParams, key: CryptoKey, data: ArrayBuffer, ...args: any[]): Promise; abstract onDecrypt(algorithm: RsaOaepParams, key: CryptoKey, data: ArrayBuffer, ...args: any[]): Promise; } declare abstract class EllipticProvider extends ProviderCrypto { abstract namedCurves: string[]; checkGenerateKeyParams(algorithm: EcKeyGenParams): void; checkNamedCurve(namedCurve: string): void; abstract onGenerateKey(algorithm: EcKeyGenParams, extractable: boolean, keyUsages: KeyUsage[], ...args: any[]): Promise; abstract onExportKey(format: KeyFormat, key: CryptoKey$1, ...args: any[]): Promise; abstract onImportKey(format: KeyFormat, keyData: JsonWebKey | ArrayBuffer, algorithm: EcKeyImportParams, extractable: boolean, keyUsages: KeyUsage[], ...args: any[]): Promise; } declare abstract class EcdsaProvider extends EllipticProvider { readonly name: string; readonly hashAlgorithms: string[]; usages: ProviderKeyUsages; namedCurves: string[]; checkAlgorithmParams(algorithm: EcdsaParams): void; abstract onSign(algorithm: EcdsaParams, key: CryptoKey, data: ArrayBuffer, ...args: any[]): Promise; abstract onVerify(algorithm: EcdsaParams, key: CryptoKey, signature: ArrayBuffer, data: ArrayBuffer, ...args: any[]): Promise; } declare abstract class EcdhProvider extends EllipticProvider { readonly name: string; usages: ProviderKeyUsages; namedCurves: string[]; checkAlgorithmParams(algorithm: EcdhKeyDeriveParams): void; abstract onDeriveBits(algorithm: EcdhKeyDeriveParams, baseKey: CryptoKey$1, length: number, ...args: any[]): Promise; } declare abstract class EcdhEsProvider extends EcdhProvider { readonly name: string; namedCurves: string[]; } declare abstract class EdDsaProvider extends EllipticProvider { readonly name: string; usages: ProviderKeyUsages; namedCurves: string[]; abstract onSign(algorithm: EcdsaParams, key: CryptoKey, data: ArrayBuffer, ...args: any[]): Promise; abstract onVerify(algorithm: EcdsaParams, key: CryptoKey, signature: ArrayBuffer, data: ArrayBuffer, ...args: any[]): Promise; } interface EcCurveParams { name: string; id: string; size: number; } interface EcCurve extends EcCurveParams { raw: ArrayBuffer; } declare class EcCurves { protected static items: EcCurve[]; static readonly names: string[]; static register(item: EcCurveParams): void; static find(nameOrId: string): EcCurve | null; static get(nameOrId: string): EcCurve; } interface EcPoint { x: StrictBufferSource; y: StrictBufferSource; } interface EcSignaturePoint { r: StrictBufferSource; s: StrictBufferSource; } declare class EcUtils { static decodePoint(data: BufferSourceLike, pointSize: number): EcPoint; static encodePoint(point: EcPoint, pointSize: number): Uint8Array; static getSize(pointSize: number): number; static encodeSignature(signature: EcSignaturePoint, pointSize: number): Uint8Array; static decodeSignature(data: BufferSourceLike, pointSize: number): EcSignaturePoint; static trimStart(data: Uint8Array): Uint8Array; static padStart(data: Uint8Array, size: number): Uint8Array; } declare abstract class X25519Provider extends ProviderCrypto { readonly name: string; usages: ProviderKeyUsages; checkAlgorithmParams(algorithm: EcdhKeyDeriveParams): void; abstract onDeriveBits(algorithm: EcdhKeyDeriveParams, baseKey: CryptoKey, length: number): Promise; } declare abstract class Ed25519Provider extends ProviderCrypto { readonly name: string; usages: ProviderKeyUsages; abstract onSign(algorithm: Algorithm, key: CryptoKey, data: ArrayBuffer, ...args: any[]): Promise; abstract onVerify(algorithm: Algorithm, key: CryptoKey, signature: ArrayBuffer, data: ArrayBuffer, ...args: any[]): Promise; } declare abstract class HmacProvider extends ProviderCrypto { name: string; hashAlgorithms: string[]; usages: KeyUsages; getDefaultLength(algName: string): number; checkGenerateKeyParams(algorithm: HmacKeyGenParams): void; checkImportParams(algorithm: HmacImportParams): void; abstract onGenerateKey(algorithm: HmacKeyGenParams, extractable: boolean, keyUsages: KeyUsage[], ...args: any[]): Promise; abstract onExportKey(format: KeyFormat, key: CryptoKey$1, ...args: any[]): Promise; abstract onImportKey(format: KeyFormat, keyData: JsonWebKey | ArrayBuffer, algorithm: HmacImportParams, extractable: boolean, keyUsages: KeyUsage[], ...args: any[]): Promise; } declare abstract class Pbkdf2Provider extends ProviderCrypto { name: string; hashAlgorithms: string[]; usages: KeyUsages; checkAlgorithmParams(algorithm: Pbkdf2Params): void; checkImportKey(format: KeyFormat, keyData: JsonWebKey | ArrayBuffer, algorithm: Algorithm, extractable: boolean, keyUsages: KeyUsage[], ...args: any[]): void; abstract onImportKey(format: KeyFormat, keyData: JsonWebKey | ArrayBuffer, algorithm: Algorithm, extractable: boolean, keyUsages: KeyUsage[], ...args: any[]): Promise; abstract onDeriveBits(algorithm: Pbkdf2Params, baseKey: CryptoKey$1, length: number, ...args: any[]): Promise; } declare abstract class HkdfProvider extends ProviderCrypto { name: string; hashAlgorithms: string[]; usages: KeyUsages; checkAlgorithmParams(algorithm: HkdfParams): void; checkImportKey(format: KeyFormat, keyData: JsonWebKey | ArrayBuffer, algorithm: Algorithm, extractable: boolean, keyUsages: KeyUsage[], ...args: any[]): void; abstract onImportKey(format: KeyFormat, keyData: JsonWebKey | ArrayBuffer, algorithm: Algorithm, extractable: boolean, keyUsages: KeyUsage[], ...args: any[]): Promise; abstract onDeriveBits(algorithm: HkdfParams, baseKey: CryptoKey$1, length: number, ...args: any[]): Promise; } interface ShakeParams extends Algorithm { length?: number; } declare abstract class ShakeProvider extends ProviderCrypto { usages: never[]; defaultLength: number; digest(algorithm: Algorithm, data: ArrayBuffer, ...args: any[]): Promise; checkDigest(algorithm: ShakeParams, data: ArrayBuffer): void; abstract onDigest(algorithm: Required, data: ArrayBuffer): Promise; } declare abstract class Shake128Provider extends ShakeProvider { name: string; defaultLength: number; } declare abstract class Shake256Provider extends ShakeProvider { name: string; defaultLength: number; } declare class ProviderStorage { private items; get(algorithmName: string): ProviderCrypto | null; set(provider: ProviderCrypto): void; removeAt(algorithmName: string): ProviderCrypto | null; has(name: string): boolean; get length(): number; get algorithms(): string[]; } declare class SubtleCrypto$1 implements globalThis.SubtleCrypto { static isHashedAlgorithm(data: any): data is HashedAlgorithm; providers: ProviderStorage; digest(algorithm: AlgorithmIdentifier, data: BufferSource, ...args: any[]): Promise; generateKey(algorithm: "X25519", extractable: boolean, keyUsages: readonly ("deriveBits" | "deriveKey")[], ...args: any[]): Promise; generateKey(algorithm: "Ed25519", extractable: boolean, keyUsages: readonly ("sign" | "verify")[], ...args: any[]): Promise; generateKey(algorithm: RsaHashedKeyGenParams | EcKeyGenParams, extractable: boolean, keyUsages: KeyUsage[], ...args: any[]): Promise; generateKey(algorithm: AesKeyGenParams | HmacKeyGenParams | Pbkdf2Params, extractable: boolean, keyUsages: KeyUsage[], ...args: any[]): Promise; generateKey(algorithm: AlgorithmIdentifier, extractable: boolean, keyUsages: Iterable, ...args: any[]): Promise; sign(algorithm: AlgorithmIdentifier, key: globalThis.CryptoKey, data: BufferSource, ...args: any[]): Promise; verify(algorithm: AlgorithmIdentifier, key: globalThis.CryptoKey, signature: BufferSource, data: BufferSource, ...args: any[]): Promise; encrypt(algorithm: AlgorithmIdentifier, key: globalThis.CryptoKey, data: BufferSource, ...args: any[]): Promise; decrypt(algorithm: AlgorithmIdentifier, key: globalThis.CryptoKey, data: BufferSource, ...args: any[]): Promise; deriveBits(algorithm: AlgorithmIdentifier, baseKey: globalThis.CryptoKey, length: number, ...args: any[]): Promise; deriveKey(algorithm: AlgorithmIdentifier, baseKey: globalThis.CryptoKey, derivedKeyType: AlgorithmIdentifier, extractable: boolean, keyUsages: KeyUsage[], ...args: any[]): Promise; exportKey(format: "raw" | "spki" | "pkcs8", key: globalThis.CryptoKey, ...args: any[]): Promise; exportKey(format: "jwk", key: globalThis.CryptoKey, ...args: any[]): Promise; exportKey(format: KeyFormat, key: globalThis.CryptoKey, ...args: any[]): Promise; importKey(...args: any[]): Promise; wrapKey(format: KeyFormat, key: globalThis.CryptoKey, wrappingKey: globalThis.CryptoKey, wrapAlgorithm: AlgorithmIdentifier, ...args: any[]): Promise; unwrapKey(format: KeyFormat, wrappedKey: BufferSource, unwrappingKey: globalThis.CryptoKey, unwrapAlgorithm: AlgorithmIdentifier, unwrappedKeyAlgorithm: AlgorithmIdentifier, extractable: boolean, keyUsages: KeyUsage[], ...args: any[]): Promise; protected checkRequiredArguments(args: any[], size: number, methodName: string): void; protected prepareAlgorithm(algorithm: AlgorithmIdentifier): Algorithm | HashedAlgorithm; protected getProvider(name: string): ProviderCrypto; protected checkCryptoKey(key: globalThis.CryptoKey): asserts key is CryptoKey$1; } declare abstract class Crypto$1 implements globalThis.Crypto { abstract readonly subtle: SubtleCrypto$1; abstract getRandomValues(array: T): T; randomUUID(): `${string}-${string}-${string}-${string}-${string}`; } declare class PemConverter { static toArrayBuffer(pem: string): ArrayBuffer; static toUint8Array(pem: string): Uint8Array; static fromBufferSource(buffer: BufferSource, tag: string): string; static isPEM(data: string): boolean; static getTagName(pem: string): string; static hasTagName(pem: string, tagName: string): boolean; static isCertificate(pem: string): boolean; static isCertificateRequest(pem: string): boolean; static isCRL(pem: string): boolean; static isPublicKey(pem: string): boolean; } declare function isJWK(data: any): data is JsonWebKey; declare class ObjectIdentifier { value: string; constructor(value?: string); } type ParametersType = ArrayBuffer | null; declare class AlgorithmIdentifier$1 { algorithm: string; parameters?: ParametersType; constructor(params?: Partial); } declare class PrivateKeyInfo { version: number; privateKeyAlgorithm: AlgorithmIdentifier$1; privateKey: ArrayBuffer; attributes?: ArrayBuffer; } declare class PublicKeyInfo { publicKeyAlgorithm: AlgorithmIdentifier$1; publicKey: ArrayBuffer; } declare class RsaPrivateKey { version: number; modulus: ArrayBuffer; publicExponent: ArrayBuffer; privateExponent: ArrayBuffer; prime1: ArrayBuffer; prime2: ArrayBuffer; exponent1: ArrayBuffer; exponent2: ArrayBuffer; coefficient: ArrayBuffer; otherPrimeInfos?: ArrayBuffer; } declare class RsaPublicKey { modulus: ArrayBuffer; publicExponent: ArrayBuffer; } declare class EcPrivateKey implements IJsonConvertible { version: number; privateKey: ArrayBuffer; parameters?: ArrayBuffer; publicKey?: ArrayBuffer; fromJSON(json: any): this; toJSON(): JsonWebKey; } declare class EcPublicKey implements IJsonConvertible { value: ArrayBuffer; constructor(value?: ArrayBuffer); toJSON(): JsonWebKey; fromJSON(json: any): this; } declare class EcDsaSignature { static fromWebCryptoSignature(value: BufferSourceLike): EcDsaSignature; r: ArrayBuffer; s: ArrayBuffer; toWebCryptoSignature(pointSize?: number): ArrayBuffer; } declare class OneAsymmetricKey extends PrivateKeyInfo { publicKey?: ArrayBuffer; } declare class EdPrivateKey implements IJsonConvertible { value: ArrayBuffer; fromJSON(json: any): this; toJSON(): JsonWebKey; } declare class EdPublicKey implements IJsonConvertible { value: ArrayBuffer; constructor(value?: ArrayBuffer); toJSON(): JsonWebKey; fromJSON(json: any): this; } declare class CurvePrivateKey { d: ArrayBuffer; } declare const idSecp256r1 = "1.2.840.10045.3.1.7"; declare const idEllipticCurve = "1.3.132.0"; declare const idSecp384r1 = "1.3.132.0.34"; declare const idSecp521r1 = "1.3.132.0.35"; declare const idSecp256k1 = "1.3.132.0.10"; declare const idVersionOne = "1.3.36.3.3.2.8.1.1"; declare const idBrainpoolP160r1 = "1.3.36.3.3.2.8.1.1.1"; declare const idBrainpoolP160t1 = "1.3.36.3.3.2.8.1.1.2"; declare const idBrainpoolP192r1 = "1.3.36.3.3.2.8.1.1.3"; declare const idBrainpoolP192t1 = "1.3.36.3.3.2.8.1.1.4"; declare const idBrainpoolP224r1 = "1.3.36.3.3.2.8.1.1.5"; declare const idBrainpoolP224t1 = "1.3.36.3.3.2.8.1.1.6"; declare const idBrainpoolP256r1 = "1.3.36.3.3.2.8.1.1.7"; declare const idBrainpoolP256t1 = "1.3.36.3.3.2.8.1.1.8"; declare const idBrainpoolP320r1 = "1.3.36.3.3.2.8.1.1.9"; declare const idBrainpoolP320t1 = "1.3.36.3.3.2.8.1.1.10"; declare const idBrainpoolP384r1 = "1.3.36.3.3.2.8.1.1.11"; declare const idBrainpoolP384t1 = "1.3.36.3.3.2.8.1.1.12"; declare const idBrainpoolP512r1 = "1.3.36.3.3.2.8.1.1.13"; declare const idBrainpoolP512t1 = "1.3.36.3.3.2.8.1.1.14"; declare const idX25519 = "1.3.101.110"; declare const idX448 = "1.3.101.111"; declare const idEd25519 = "1.3.101.112"; declare const idEd448 = "1.3.101.113"; declare const AsnIntegerWithoutPaddingConverter: IAsnConverter; declare const index$3_AsnIntegerWithoutPaddingConverter: typeof AsnIntegerWithoutPaddingConverter; declare namespace index$3 { export { index$3_AsnIntegerWithoutPaddingConverter as AsnIntegerWithoutPaddingConverter, }; } type index$2_CurvePrivateKey = CurvePrivateKey; declare const index$2_CurvePrivateKey: typeof CurvePrivateKey; type index$2_EcDsaSignature = EcDsaSignature; declare const index$2_EcDsaSignature: typeof EcDsaSignature; type index$2_EcPrivateKey = EcPrivateKey; declare const index$2_EcPrivateKey: typeof EcPrivateKey; type index$2_EcPublicKey = EcPublicKey; declare const index$2_EcPublicKey: typeof EcPublicKey; type index$2_EdPrivateKey = EdPrivateKey; declare const index$2_EdPrivateKey: typeof EdPrivateKey; type index$2_EdPublicKey = EdPublicKey; declare const index$2_EdPublicKey: typeof EdPublicKey; type index$2_ObjectIdentifier = ObjectIdentifier; declare const index$2_ObjectIdentifier: typeof ObjectIdentifier; type index$2_OneAsymmetricKey = OneAsymmetricKey; declare const index$2_OneAsymmetricKey: typeof OneAsymmetricKey; type index$2_ParametersType = ParametersType; type index$2_PrivateKeyInfo = PrivateKeyInfo; declare const index$2_PrivateKeyInfo: typeof PrivateKeyInfo; type index$2_PublicKeyInfo = PublicKeyInfo; declare const index$2_PublicKeyInfo: typeof PublicKeyInfo; type index$2_RsaPrivateKey = RsaPrivateKey; declare const index$2_RsaPrivateKey: typeof RsaPrivateKey; type index$2_RsaPublicKey = RsaPublicKey; declare const index$2_RsaPublicKey: typeof RsaPublicKey; declare const index$2_idBrainpoolP160r1: typeof idBrainpoolP160r1; declare const index$2_idBrainpoolP160t1: typeof idBrainpoolP160t1; declare const index$2_idBrainpoolP192r1: typeof idBrainpoolP192r1; declare const index$2_idBrainpoolP192t1: typeof idBrainpoolP192t1; declare const index$2_idBrainpoolP224r1: typeof idBrainpoolP224r1; declare const index$2_idBrainpoolP224t1: typeof idBrainpoolP224t1; declare const index$2_idBrainpoolP256r1: typeof idBrainpoolP256r1; declare const index$2_idBrainpoolP256t1: typeof idBrainpoolP256t1; declare const index$2_idBrainpoolP320r1: typeof idBrainpoolP320r1; declare const index$2_idBrainpoolP320t1: typeof idBrainpoolP320t1; declare const index$2_idBrainpoolP384r1: typeof idBrainpoolP384r1; declare const index$2_idBrainpoolP384t1: typeof idBrainpoolP384t1; declare const index$2_idBrainpoolP512r1: typeof idBrainpoolP512r1; declare const index$2_idBrainpoolP512t1: typeof idBrainpoolP512t1; declare const index$2_idEd25519: typeof idEd25519; declare const index$2_idEd448: typeof idEd448; declare const index$2_idEllipticCurve: typeof idEllipticCurve; declare const index$2_idSecp256k1: typeof idSecp256k1; declare const index$2_idSecp256r1: typeof idSecp256r1; declare const index$2_idSecp384r1: typeof idSecp384r1; declare const index$2_idSecp521r1: typeof idSecp521r1; declare const index$2_idVersionOne: typeof idVersionOne; declare const index$2_idX25519: typeof idX25519; declare const index$2_idX448: typeof idX448; declare namespace index$2 { export { AlgorithmIdentifier$1 as AlgorithmIdentifier, index$2_CurvePrivateKey as CurvePrivateKey, index$2_EcDsaSignature as EcDsaSignature, index$2_EcPrivateKey as EcPrivateKey, index$2_EcPublicKey as EcPublicKey, index$2_EdPrivateKey as EdPrivateKey, index$2_EdPublicKey as EdPublicKey, index$2_ObjectIdentifier as ObjectIdentifier, index$2_OneAsymmetricKey as OneAsymmetricKey, index$2_PrivateKeyInfo as PrivateKeyInfo, index$2_PublicKeyInfo as PublicKeyInfo, index$2_RsaPrivateKey as RsaPrivateKey, index$2_RsaPublicKey as RsaPublicKey, index$3 as converters, index$2_idBrainpoolP160r1 as idBrainpoolP160r1, index$2_idBrainpoolP160t1 as idBrainpoolP160t1, index$2_idBrainpoolP192r1 as idBrainpoolP192r1, index$2_idBrainpoolP192t1 as idBrainpoolP192t1, index$2_idBrainpoolP224r1 as idBrainpoolP224r1, index$2_idBrainpoolP224t1 as idBrainpoolP224t1, index$2_idBrainpoolP256r1 as idBrainpoolP256r1, index$2_idBrainpoolP256t1 as idBrainpoolP256t1, index$2_idBrainpoolP320r1 as idBrainpoolP320r1, index$2_idBrainpoolP320t1 as idBrainpoolP320t1, index$2_idBrainpoolP384r1 as idBrainpoolP384r1, index$2_idBrainpoolP384t1 as idBrainpoolP384t1, index$2_idBrainpoolP512r1 as idBrainpoolP512r1, index$2_idBrainpoolP512t1 as idBrainpoolP512t1, index$2_idEd25519 as idEd25519, index$2_idEd448 as idEd448, index$2_idEllipticCurve as idEllipticCurve, index$2_idSecp256k1 as idSecp256k1, index$2_idSecp256r1 as idSecp256r1, index$2_idSecp384r1 as idSecp384r1, index$2_idSecp521r1 as idSecp521r1, index$2_idVersionOne as idVersionOne, index$2_idX25519 as idX25519, index$2_idX448 as idX448 }; export type { index$2_ParametersType as ParametersType }; } declare const JsonBase64UrlArrayBufferConverter: IJsonConverter; declare const AsnIntegerArrayBufferConverter: IAsnConverter; declare const index$1_AsnIntegerArrayBufferConverter: typeof AsnIntegerArrayBufferConverter; declare const index$1_JsonBase64UrlArrayBufferConverter: typeof JsonBase64UrlArrayBufferConverter; declare namespace index$1 { export { index$1_AsnIntegerArrayBufferConverter as AsnIntegerArrayBufferConverter, index$1_JsonBase64UrlArrayBufferConverter as JsonBase64UrlArrayBufferConverter, }; } declare namespace index { export { index$1 as converters, }; } declare class JwkUtils { static thumbprint(hash: AlgorithmIdentifier, jwk: JsonWebKey, crypto: Crypto): Promise; static format(jwk: JsonWebKey, remove?: boolean): JsonWebKey; } export { AesCbcProvider, AesCmacProvider, AesCtrProvider, AesEcbProvider, AesGcmProvider, AesKwProvider, AesProvider, AlgorithmError, Crypto$1 as Crypto, CryptoError, CryptoKey$1 as CryptoKey, DesProvider, EcCurves, EcUtils, EcdhEsProvider, EcdhProvider, EcdsaProvider, Ed25519Provider, EdDsaProvider, EllipticProvider, HkdfProvider, HmacProvider, JwkUtils, OperationError, Pbkdf2Provider, PemConverter, ProviderCrypto, ProviderStorage, RequiredPropertyError, RsaOaepProvider, RsaProvider, RsaPssProvider, RsaSsaProvider, Shake128Provider, Shake256Provider, ShakeProvider, SubtleCrypto$1 as SubtleCrypto, UnsupportedOperationError, X25519Provider, index$2 as asn1, isJWK, index as json }; export type { AesCmacParams, CryptoCertificate, CryptoCertificateFormat, CryptoCertificateStorage, CryptoCertificateType, CryptoKeyStorage, CryptoStorage, CryptoStorages, CryptoX509Certificate, CryptoX509CertificateRequest, DesDerivedKeyParams, DesImportParams, DesKeyAlgorithm, DesKeyGenParams, DesParams, EcCurve, EcCurveParams, HashedAlgorithm, HexString, IProviderCheckOptions, ImportAlgorithms, KeyAlgorithm, KeyUsages, NativeCrypto, NativeCryptoKey, NativeSubtleCrypto, ProviderKeyPairUsage, ProviderKeyUsage, ProviderKeyUsages, RsaSsaParams, ShakeParams };