@hyperledger/cactus-common
Version:
Universal library used by both front end and back end components of Cactus. Aims to be a developer swiss army knife.
41 lines (40 loc) • 1.33 kB
TypeScript
import { LogLevelDesc } from "loglevel";
export type SignatureFunction = (msg: unknown, pkey: Uint8Array) => Uint8Array;
export type VerifySignatureFunction = (msg: unknown, signature: Uint8Array, pubKey: Uint8Array) => boolean;
export type HashFunction = (data: unknown) => string;
export interface IJsObjectSignerOptions {
privateKey: Uint8Array | string;
signatureFunc?: SignatureFunction;
verifySignatureFunc?: VerifySignatureFunction;
hashFunc?: HashFunction;
logLevel?: LogLevelDesc;
}
export declare class JsObjectSigner {
readonly options: IJsObjectSignerOptions;
private privateKey;
private signatureFunc?;
private verifySignatureFunc?;
private hashFunc?;
private readonly logger;
constructor(options: IJsObjectSignerOptions);
/**
* Generate signature from formated message
* @param msg
* @returns Generated signature
*/
sign(msg: unknown): Uint8Array;
/**
* Verify if a signature corresponds to given message and public key
* @param msg
* @param pubKey
* @param signature
* @returns {boolean}
*/
verify(msg: unknown, signature: Uint8Array, pubKey: Uint8Array): boolean;
/**
* Format message to be signed
* @param data
* @returns {string}
*/
dataHash(data: unknown): string;
}