@nfen/webcrypto-ts
Version:
Enforced Webcrypto wrapper
90 lines • 5.43 kB
TypeScript
/**
* 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