UNPKG

@nfen/webcrypto-ts

Version:
90 lines 5.43 kB
/** * Shared code for RSA * @module */ import { KeyUsagePairs } from "../key_usages.js"; import * as params from "../params.js"; import * as proxy from "../proxy.js"; export interface RsaOaepPubCryptoKey extends CryptoKey { _rsaOaepPubCryptoKeyBrand: any; } export interface RsaOaepPrivCryptoKey extends CryptoKey { _rsaOaepPrivCryptoKeyBrand: any; } export interface RsaPssPubCryptoKey extends CryptoKey { _rsaPssPubCryptoKeyBrand: any; } export interface RsaPssPrivCryptoKey extends CryptoKey { _rsaPssPrivCryptoKeyBrand: any; } export interface RsassaPkcs1V15PubCryptoKey extends CryptoKey { _rsassaPkcs1V15PubCryptoKeyBrand: any; } export interface RsassaPkcs1V15PrivCryptoKey extends CryptoKey { _rsassaPkcs1V15PrivCryptoKeyBrand: any; } export declare type RsaCryptoKeys = RsaOaepPubCryptoKey | RsaOaepPrivCryptoKey | RsaPssPubCryptoKey | RsaPssPrivCryptoKey | RsassaPkcs1V15PubCryptoKey | RsassaPkcs1V15PrivCryptoKey; export interface RsaOaepCryptoKeyPair extends CryptoKeyPair { _rsaOaepCryptoKeyPairBrand: any; publicKey: RsaOaepPubCryptoKey; privateKey: RsaOaepPrivCryptoKey; } export interface RsaPssCryptoKeyPair extends CryptoKeyPair { _rsaPssCryptoKeyPairBrand: any; publicKey: RsaPssPubCryptoKey; privateKey: RsaPssPrivCryptoKey; } export interface RsassaPkcs1V15CryptoKeyPair extends CryptoKeyPair { _rsassaPkcs1V15CryptoKeyBrand: any; publicKey: RsassaPkcs1V15PubCryptoKey; privateKey: RsassaPkcs1V15PrivCryptoKey; } export declare type RsaCryptoKeyPairs = RsaOaepCryptoKeyPair | RsaPssCryptoKeyPair | RsassaPkcs1V15CryptoKeyPair; export declare namespace Alg { enum Variant { RSA_OAEP = "RSA-OAEP", RSA_PSS = "RSA-PSS", RSASSA_PKCS1_v1_5 = "RSASSA-PKCS1-v1_5" } type Variants = `${Variant}`; } export declare namespace RsaShared { function generateKey(algorithm: params.EnforcedRsaHashedKeyGenParams, extractable?: boolean, keyUsages?: KeyUsage[]): Promise<RsaCryptoKeys | RsaCryptoKeyPairs>; function importKey<T extends RsaCryptoKeys>(format: KeyFormat, key: BufferSource | JsonWebKey, algorithm: params.EnforcedRsaHashedImportParams, extractable?: boolean, keyUsages?: KeyUsage[]): Promise<T>; function exportKey<T extends RsaCryptoKeys>(format: KeyFormat, key: T): Promise<JsonWebKey | ArrayBuffer>; function sign(algorithm: params.EnforcedRsaPssParams | params.EnforcedRsassaPkcs1v15Params, key: RsaPssPrivCryptoKey | RsassaPkcs1V15PrivCryptoKey, data: BufferSource): Promise<ArrayBuffer>; function verify(algorithm: params.EnforcedRsaPssParams | params.EnforcedRsassaPkcs1v15Params, key: RsaPssPubCryptoKey | RsassaPkcs1V15PubCryptoKey, signature: BufferSource, data: BufferSource): Promise<boolean>; } export interface RsaOaepProxiedPubCryptoKey extends proxy.ProxiedCryptoKey<RsaOaepPubCryptoKey> { encrypt: (algorithm: Omit<params.EnforcedRsaOaepParams, "name">, data: BufferSource) => Promise<ArrayBuffer>; wrapKey: (format: KeyFormat, key: CryptoKey, wrapAlgorithm?: Omit<params.EnforcedRsaOaepParams, "name">) => Promise<ArrayBuffer>; exportKey: (format: KeyFormat) => Promise<JsonWebKey | ArrayBuffer>; } export interface RsaOaepProxiedPrivCryptoKey extends proxy.ProxiedCryptoKey<RsaOaepPrivCryptoKey> { decrypt: (algorithm: Omit<params.EnforcedRsaOaepParams, "name">, data: BufferSource) => Promise<ArrayBuffer>; unwrapKey: (format: KeyFormat, wrappedKey: BufferSource, wrappedKeyAlgorithm: params.EnforcedImportParams, unwrappingKeyAlgorithm: Omit<params.EnforcedRsaOaepParams, "name">, extractable?: boolean, keyUsages?: KeyUsagePairs) => Promise<CryptoKey>; exportKey: (format: KeyFormat) => Promise<JsonWebKey | ArrayBuffer>; } export interface RsaOaepProxiedCryptoKeyPair extends proxy.ProxiedCryptoKeyPair<RsaOaepCryptoKeyPair, RsaOaepPrivCryptoKey, RsaOaepProxiedPrivCryptoKey, RsaOaepPubCryptoKey, RsaOaepProxiedPubCryptoKey> { } export interface RsaPssProxiedPubCryptoKey extends proxy.ProxiedCryptoKey<RsaPssPubCryptoKey> { verify: (saltLength: number, signature: BufferSource, data: BufferSource) => Promise<boolean>; exportKey: (format: KeyFormat) => Promise<JsonWebKey | ArrayBuffer>; } export interface RsaPssProxiedPrivCryptoKey extends proxy.ProxiedCryptoKey<RsaPssPrivCryptoKey> { sign: (saltLength: number, data: BufferSource) => Promise<ArrayBuffer>; exportKey: (format: KeyFormat) => Promise<JsonWebKey | ArrayBuffer>; } export interface RsaPssProxiedCryptoKeyPair extends proxy.ProxiedCryptoKeyPair<RsaPssCryptoKeyPair, RsaPssPrivCryptoKey, RsaPssProxiedPrivCryptoKey, RsaPssPubCryptoKey, RsaPssProxiedPubCryptoKey> { } export interface RsassaPkcs1V15ProxiedPubCryptoKey extends proxy.ProxiedCryptoKey<RsassaPkcs1V15PubCryptoKey> { verify: (signature: BufferSource, data: BufferSource) => Promise<boolean>; exportKey: (format: KeyFormat) => Promise<JsonWebKey | ArrayBuffer>; } export interface RsassaPkcs1V15ProxiedPrivCryptoKey extends proxy.ProxiedCryptoKey<RsassaPkcs1V15PrivCryptoKey> { sign: (data: BufferSource) => Promise<ArrayBuffer>; exportKey: (format: KeyFormat) => Promise<JsonWebKey | ArrayBuffer>; } export interface RsassaPkcs1V15ProxiedCryptoKeyPair extends proxy.ProxiedCryptoKeyPair<RsassaPkcs1V15CryptoKeyPair, RsassaPkcs1V15PrivCryptoKey, RsassaPkcs1V15ProxiedPrivCryptoKey, RsassaPkcs1V15PubCryptoKey, RsassaPkcs1V15ProxiedPubCryptoKey> { } //# sourceMappingURL=shared.d.ts.map