@sphereon/ssi-sdk-ext.kms-azure
Version:
Sphereon SSI-SDK plugin for Azure KeyVault Key Management System.
55 lines (51 loc) • 1.67 kB
text/typescript
import { TKeyType, ManagedKeyInfo, IKey, MinimalImportableKey } from '@veramo/core';
import { AbstractKeyManagementSystem } from '@veramo/key-manager';
interface AbstractKeyManagementSystemOptions {
applicationId: string;
keyVaultUrl: string;
keyVaultClientIdTenantId: string;
keyVaultClientId: string;
keyVaultClientSecret: string;
}
declare class AzureKeyVaultKeyManagementSystem extends AbstractKeyManagementSystem {
private client;
private id;
constructor(options: AbstractKeyManagementSystemOptions);
createKey(args: {
type: TKeyType;
meta?: KeyMetadata;
}): Promise<ManagedKeyInfo>;
sign(args: {
keyRef: Pick<IKey, 'kid'>;
data: Uint8Array;
[x: string]: any;
}): Promise<string>;
verify(args: {
keyRef: Pick<IKey, 'kid'>;
data: Uint8Array;
signature: string;
[x: string]: any;
}): Promise<Boolean>;
sharedSecret(args: {
myKeyRef: Pick<IKey, 'kid'>;
theirKey: Pick<IKey, 'publicKeyHex' | 'type'>;
}): Promise<string>;
importKey(args: Omit<MinimalImportableKey, 'kms'> & {
privateKeyPEM?: string;
}): Promise<ManagedKeyInfo>;
deleteKey({ kid }: {
kid: string;
}): Promise<boolean>;
listKeys(): Promise<ManagedKeyInfo[]>;
private signatureAlgorithmToDigestAlgorithm;
private signatureAlgorithmToCurve;
private mapKeyUsage;
private mapKeyTypeToSignatureAlgorithm;
private mapKeyOperation;
private mapKeyOperations;
}
interface KeyMetadata {
algorithms?: string[];
[x: string]: any;
}
export { AzureKeyVaultKeyManagementSystem, type KeyMetadata };