@digitalcredentials/keypair
Version:
Cryptographic key pair data model in Javascript/Typescript, for Node.js, browsers, and React Native. Useful for Verifiable Credentials, DIDs (Decentralized Identifiers), and other uses of Data Integrity.
68 lines (67 loc) • 1.57 kB
TypeScript
/*!
* Copyright (c) 2022 Digital Credentials Consortium.
*/
export interface SerializedKeyPair {
'@context'?: string;
id?: string;
type?: string;
controller?: string;
revoked?: string;
/**
* Public / private key material
*/
publicKeyBase58?: string;
privateKeyBase58?: string;
publicKeyMultibase?: string;
privateKeyMultibase?: string;
publicKeyJwk?: PublicKeyJwk;
privateKeyJwk?: PrivateKeyJwk;
}
export type GenerateKeyPairOptions = SerializedKeyPair & {
seed?: Uint8Array;
};
export interface JsonWebKey {
crv?: string | undefined;
d?: string | undefined;
dp?: string | undefined;
dq?: string | undefined;
e?: string | undefined;
k?: string | undefined;
kty?: string | undefined;
n?: string | undefined;
p?: string | undefined;
q?: string | undefined;
qi?: string | undefined;
x?: string | undefined;
y?: string | undefined;
[key: string]: unknown;
}
export interface PublicKeyJwk {
kty: string;
crv?: string;
x?: string;
}
export interface PrivateKeyJwk {
kty: string;
crv?: string;
x?: string;
d?: string;
}
export interface Signer {
id?: string;
algorithm?: string;
sign: ({ data }: {
data: Uint8Array;
}) => Promise<Uint8Array>;
}
export interface Verifier {
id?: string;
verify: ({ data, signature }: {
data: Uint8Array;
signature: Uint8Array;
}) => Promise<boolean>;
}
export interface VerificationResult {
verified: boolean;
error?: Error | any;
}