di-wings
Version:
Aviary Tech's common library for decentralized identity
52 lines • 1.96 kB
TypeScript
import type { JsonWebKey2020 } from './JsonWebKey2020';
export declare enum KeyType {
Ed25519 = "Ed25519",
X25519 = "X25519",
Secp256k1 = "Secp256k1",
Bls12381G2 = "Bls12381G2"
}
export declare class Multikey {
id: string;
type: 'Multikey';
controller: string;
publicKeyMultibase: string;
publicKey: Uint8Array;
secretKeyMultibase?: string;
privateKey?: Uint8Array;
keyType: KeyType;
private signer?;
private verifier?;
constructor(keyType: KeyType, id: string, controller: string, publicKey: Uint8Array, privateKey?: Uint8Array);
static generate(keyType: KeyType): Promise<Multikey>;
private static fingerprintFromPublicKey;
private createSigner;
private createVerifier;
sign(data: Uint8Array): Promise<Uint8Array>;
verify(data: Uint8Array, signature: Uint8Array): Promise<boolean>;
deriveSecret(peerKey: Multikey): Promise<Uint8Array>;
encrypt(data: Uint8Array, recipientPublicKey: Multikey): Promise<Uint8Array>;
decrypt(data: Uint8Array, senderPublicKey: Multikey): Promise<Uint8Array>;
static encodePublicKey(publicKey: Uint8Array, keyType: KeyType): string;
static encodePrivateKey(privateKey: Uint8Array, keyType: KeyType): string;
static decodePublicKey(publicKeyMultibase: string): {
keyType: KeyType;
publicKey: Uint8Array;
};
static decodePrivateKey(secretKeyMultibase: string): {
keyType: KeyType;
privateKey: Uint8Array;
};
export(options?: {
privateKey?: boolean;
type: 'JsonWebKey2020';
}): Promise<JsonWebKey2020>;
toJSON(): any;
static fromMultibase({ id, controller, publicKeyMultibase, secretKeyMultibase }: {
id: string;
controller: string;
publicKeyMultibase: string;
secretKeyMultibase?: string;
}): Multikey;
static fromSecretKey(secretKeyMultibase: string): Multikey;
}
//# sourceMappingURL=Multikey.d.ts.map