UNPKG

@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
/*! * 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; }