deno.land / x / deno@v1.28.2 / ext / crypto / lib.deno_crypto.d.ts
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396// Copyright 2018-2022 the Deno authors. All rights reserved. MIT license.
// deno-lint-ignore-file no-var
/// <reference no-default-lib="true" />/// <reference lib="esnext" />
/** @category Web Crypto API */declare var crypto: Crypto;
/** @category Web Crypto API */interface Algorithm { name: string;}
/** @category Web Crypto API */interface KeyAlgorithm { name: string;}
/** @category Web Crypto API */type AlgorithmIdentifier = string | Algorithm;/** @category Web Crypto API */type HashAlgorithmIdentifier = AlgorithmIdentifier;/** @category Web Crypto API */type KeyType = "private" | "public" | "secret";/** @category Web Crypto API */type KeyUsage = | "decrypt" | "deriveBits" | "deriveKey" | "encrypt" | "sign" | "unwrapKey" | "verify" | "wrapKey";/** @category Web Crypto API */type KeyFormat = "jwk" | "pkcs8" | "raw" | "spki";/** @category Web Crypto API */type NamedCurve = string;
/** @category Web Crypto API */interface RsaOtherPrimesInfo { d?: string; r?: string; t?: string;}
/** @category Web Crypto API */interface JsonWebKey { alg?: string; crv?: string; d?: string; dp?: string; dq?: string; e?: string; ext?: boolean; k?: string; // deno-lint-ignore camelcase key_ops?: string[]; kty?: string; n?: string; oth?: RsaOtherPrimesInfo[]; p?: string; q?: string; qi?: string; use?: string; x?: string; y?: string;}
/** @category Web Crypto API */interface AesCbcParams extends Algorithm { iv: BufferSource;}
/** @category Web Crypto API */interface AesGcmParams extends Algorithm { iv: BufferSource; additionalData?: BufferSource; tagLength?: number;}
/** @category Web Crypto API */interface AesCtrParams extends Algorithm { counter: BufferSource; length: number;}
/** @category Web Crypto API */interface HmacKeyGenParams extends Algorithm { hash: HashAlgorithmIdentifier; length?: number;}
/** @category Web Crypto API */interface EcKeyGenParams extends Algorithm { namedCurve: NamedCurve;}
/** @category Web Crypto API */interface EcKeyImportParams extends Algorithm { namedCurve: NamedCurve;}
/** @category Web Crypto API */interface EcdsaParams extends Algorithm { hash: HashAlgorithmIdentifier;}
/** @category Web Crypto API */interface RsaHashedImportParams extends Algorithm { hash: HashAlgorithmIdentifier;}
/** @category Web Crypto API */interface RsaHashedKeyGenParams extends RsaKeyGenParams { hash: HashAlgorithmIdentifier;}
/** @category Web Crypto API */interface RsaKeyGenParams extends Algorithm { modulusLength: number; publicExponent: Uint8Array;}
/** @category Web Crypto API */interface RsaPssParams extends Algorithm { saltLength: number;}
/** @category Web Crypto API */interface RsaOaepParams extends Algorithm { label?: Uint8Array;}
/** @category Web Crypto API */interface HmacImportParams extends Algorithm { hash: HashAlgorithmIdentifier; length?: number;}
/** @category Web Crypto API */interface EcKeyAlgorithm extends KeyAlgorithm { namedCurve: NamedCurve;}
/** @category Web Crypto API */interface HmacKeyAlgorithm extends KeyAlgorithm { hash: KeyAlgorithm; length: number;}
/** @category Web Crypto API */interface RsaHashedKeyAlgorithm extends RsaKeyAlgorithm { hash: KeyAlgorithm;}
/** @category Web Crypto API */interface RsaKeyAlgorithm extends KeyAlgorithm { modulusLength: number; publicExponent: Uint8Array;}
/** @category Web Crypto API */interface HkdfParams extends Algorithm { hash: HashAlgorithmIdentifier; info: BufferSource; salt: BufferSource;}
/** @category Web Crypto API */interface Pbkdf2Params extends Algorithm { hash: HashAlgorithmIdentifier; iterations: number; salt: BufferSource;}
/** @category Web Crypto API */interface AesDerivedKeyParams extends Algorithm { length: number;}
/** @category Web Crypto API */interface EcdhKeyDeriveParams extends Algorithm { public: CryptoKey;}
/** @category Web Crypto API */interface AesKeyGenParams extends Algorithm { length: number;}
/** @category Web Crypto API */interface AesKeyAlgorithm extends KeyAlgorithm { length: number;}
/** The CryptoKey dictionary of the Web Crypto API represents a cryptographic * key. * * @category Web Crypto API */interface CryptoKey { readonly algorithm: KeyAlgorithm; readonly extractable: boolean; readonly type: KeyType; readonly usages: KeyUsage[];}
/** @category Web Crypto API */declare var CryptoKey: { prototype: CryptoKey; new (): CryptoKey;};
/** The CryptoKeyPair dictionary of the Web Crypto API represents a key pair for * an asymmetric cryptography algorithm, also known as a public-key algorithm. * * @category Web Crypto API */interface CryptoKeyPair { privateKey: CryptoKey; publicKey: CryptoKey;}
/** @category Web Crypto API */declare var CryptoKeyPair: { prototype: CryptoKeyPair; new (): CryptoKeyPair;};
/** This Web Crypto API interface provides a number of low-level cryptographic * functions. It is accessed via the Crypto.subtle properties available in a * window context (via Window.crypto). * * @category Web Crypto API */interface SubtleCrypto { generateKey( algorithm: RsaHashedKeyGenParams | EcKeyGenParams, extractable: boolean, keyUsages: KeyUsage[], ): Promise<CryptoKeyPair>; generateKey( algorithm: AesKeyGenParams | HmacKeyGenParams, extractable: boolean, keyUsages: KeyUsage[], ): Promise<CryptoKey>; generateKey( algorithm: AlgorithmIdentifier, extractable: boolean, keyUsages: KeyUsage[], ): Promise<CryptoKeyPair | CryptoKey>; importKey( format: "jwk", keyData: JsonWebKey, algorithm: | AlgorithmIdentifier | HmacImportParams | RsaHashedImportParams | EcKeyImportParams, extractable: boolean, keyUsages: KeyUsage[], ): Promise<CryptoKey>; importKey( format: Exclude<KeyFormat, "jwk">, keyData: BufferSource, algorithm: | AlgorithmIdentifier | HmacImportParams | RsaHashedImportParams | EcKeyImportParams, extractable: boolean, keyUsages: KeyUsage[], ): Promise<CryptoKey>; exportKey(format: "jwk", key: CryptoKey): Promise<JsonWebKey>; exportKey( format: Exclude<KeyFormat, "jwk">, key: CryptoKey, ): Promise<ArrayBuffer>; sign( algorithm: AlgorithmIdentifier | RsaPssParams | EcdsaParams, key: CryptoKey, data: BufferSource, ): Promise<ArrayBuffer>; verify( algorithm: AlgorithmIdentifier | RsaPssParams | EcdsaParams, key: CryptoKey, signature: BufferSource, data: BufferSource, ): Promise<boolean>; digest( algorithm: AlgorithmIdentifier, data: BufferSource, ): Promise<ArrayBuffer>; encrypt( algorithm: | AlgorithmIdentifier | RsaOaepParams | AesCbcParams | AesGcmParams | AesCtrParams, key: CryptoKey, data: BufferSource, ): Promise<ArrayBuffer>; decrypt( algorithm: | AlgorithmIdentifier | RsaOaepParams | AesCbcParams | AesGcmParams | AesCtrParams, key: CryptoKey, data: BufferSource, ): Promise<ArrayBuffer>; deriveBits( algorithm: | AlgorithmIdentifier | HkdfParams | Pbkdf2Params | EcdhKeyDeriveParams, baseKey: CryptoKey, length: number, ): Promise<ArrayBuffer>; deriveKey( algorithm: | AlgorithmIdentifier | HkdfParams | Pbkdf2Params | EcdhKeyDeriveParams, baseKey: CryptoKey, derivedKeyType: | AlgorithmIdentifier | AesDerivedKeyParams | HmacImportParams | HkdfParams | Pbkdf2Params, extractable: boolean, keyUsages: KeyUsage[], ): Promise<CryptoKey>; wrapKey( format: KeyFormat, key: CryptoKey, wrappingKey: CryptoKey, wrapAlgorithm: | AlgorithmIdentifier | RsaOaepParams | AesCbcParams | AesCtrParams, ): Promise<ArrayBuffer>; unwrapKey( format: KeyFormat, wrappedKey: BufferSource, unwrappingKey: CryptoKey, unwrapAlgorithm: | AlgorithmIdentifier | RsaOaepParams | AesCbcParams | AesCtrParams, unwrappedKeyAlgorithm: | AlgorithmIdentifier | HmacImportParams | RsaHashedImportParams | EcKeyImportParams, extractable: boolean, keyUsages: KeyUsage[], ): Promise<CryptoKey>;}
/** @category Web Crypto API */declare interface Crypto { readonly subtle: SubtleCrypto; getRandomValues< T extends | Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | BigInt64Array | BigUint64Array, >( array: T, ): T; randomUUID(): string;}
/** @category Web Crypto API */declare var SubtleCrypto: { prototype: SubtleCrypto; new (): SubtleCrypto;};
Version Info