@relaycorp/webcrypto-kms
Version:
WebCrypto-compatible client for Key Management Services like GCP KMS
22 lines (21 loc) • 1.15 kB
TypeScript
import type { KeyManagementServiceClient } from '@google-cloud/kms';
import { CryptoKey } from 'webcrypto-core';
import { GcpKmsConfig } from './GcpKmsConfig';
import { KmsRsaPssProvider } from '../KmsRsaPssProvider';
export declare class GcpKmsRsaPssProvider extends KmsRsaPssProvider {
client: KeyManagementServiceClient;
config: GcpKmsConfig;
constructor(client: KeyManagementServiceClient, config: GcpKmsConfig);
onGenerateKey(algorithm: RsaHashedKeyGenParams): Promise<CryptoKeyPair>;
onImportKey(format: KeyFormat, keyData: ArrayBuffer, algorithm: RsaHashedImportParams): Promise<CryptoKey>;
onExportKey(format: KeyFormat, key: CryptoKey): Promise<ArrayBuffer>;
onSign(algorithm: RsaPssParams, key: CryptoKey, data: ArrayBuffer): Promise<ArrayBuffer>;
onVerify(): Promise<boolean>;
destroyKey(key: CryptoKey): Promise<void>;
close(): Promise<void>;
private getGCPProjectId;
private createCryptoKey;
private getPublicKeyFromPrivate;
private kmsSign;
}
export declare function retrieveKMSPublicKey(kmsKeyVersionName: string, kmsClient: KeyManagementServiceClient): Promise<ArrayBuffer>;