@reclaimprotocol/zk-symmetric-crypto
Version:
JS Wrappers for Various ZK Snark Circuits
53 lines (52 loc) • 1.93 kB
TypeScript
import type { EncryptionAlgorithm, FileFetch, Logger, ZKProofInput, ZKProofInputOPRF, ZKProofPublicSignals, ZKProofPublicSignalsOPRF } from '../types.ts';
export type GnarkLib = {
verify: Function;
free: Function;
vfree: Function;
prove: Function;
initAlgorithm: Function;
generateThresholdKeys: Function;
oprfEvaluate: Function;
generateOPRFRequest: Function;
toprfFinalize: Function;
koffi: typeof import('koffi');
};
type GnarkWitnessInput = ZKProofInput | ZKProofInputOPRF | ZKProofPublicSignals | ZKProofPublicSignalsOPRF;
export declare function initGnarkAlgorithm(id: number, fileExt: string, fetcher: FileFetch, logger?: Logger): Promise<GnarkLib>;
export declare function strToUint8Array(str: string): Uint8Array<ArrayBufferLike>;
export declare function serialiseGnarkWitness(cipher: EncryptionAlgorithm, input: GnarkWitnessInput): Uint8Array<ArrayBufferLike>;
export declare function generateGnarkWitness(cipher: EncryptionAlgorithm, input: GnarkWitnessInput): {
cipher: string;
key: string | undefined;
ciphertext: string | undefined;
blocks: {
nonce: string;
counter: number;
boundary: number | null;
}[];
input: string;
toprf: {
locations?: undefined;
domainSeparator?: undefined;
output?: undefined;
responses?: undefined;
mask?: undefined;
} | {
locations: {
pos: number;
len: number;
}[];
domainSeparator: string;
output: string;
responses: {
publicKeyShare: string;
evaluated: string;
c: string;
r: string;
}[];
mask: string;
};
};
export declare function executeGnarkFn(fn: Function, jsonInput: string | Uint8Array): any;
export declare function executeGnarkFnAndGetJson(fn: Function, jsonInput: string | Uint8Array): Promise<any>;
export {};