@zkp2p/reclaim-witness-sdk
Version:
<div> <div> <img src="https://raw.githubusercontent.com/reclaimprotocol/.github/main/assets/banners/Attestor-Core.png" /> </div> </div>
56 lines (55 loc) • 2.56 kB
TypeScript
import { CipherSuite } from '@reclaimprotocol/tls';
import { EncryptionAlgorithm, OPRFOperator, PrivateInput, PublicInput, ZKEngine, ZKOperator } from '@reclaimprotocol/zk-symmetric-crypto';
import { MessageReveal_MessageRevealZk as ZKReveal, MessageReveal_ZKProof as ZKProof, ZKProofEngine } from '../proto/api';
import { CompleteTLSPacket, Logger, OPRFOperators, PrepareZKProofsBaseOpts, TOPRFProofParams, ZKOperators, ZKRevealInfo } from '../types';
type PrepareZKProofsOpts = {
logger?: Logger;
cipherSuite: CipherSuite;
} & PrepareZKProofsBaseOpts;
type ZKVerifyOpts = {
cipherSuite: CipherSuite;
ciphertext: Uint8Array;
zkReveal: ZKReveal;
logger?: Logger;
/** get ZK operator for specified algorithm */
zkOperators?: ZKOperators;
oprfOperators?: OPRFOperators;
zkEngine?: ZKEngine;
iv: Uint8Array;
recordNumber: number;
};
type ZKProofToGenerate = {
startIdx: number;
redactedPlaintext: Uint8Array;
privateInput: PrivateInput;
publicInput: PublicInput;
toprf?: TOPRFProofParams;
};
type ZKPacketToProve = {
onGeneratedProofs(proofs: ZKProof[]): void;
algorithm: EncryptionAlgorithm;
proofsToGenerate: ZKProofToGenerate[];
iv: Uint8Array;
};
export declare function makeZkProofGenerator({ zkOperators, oprfOperators, logger, zkProofConcurrency, cipherSuite, zkEngine }: PrepareZKProofsOpts): Promise<{
/**
* Adds the given packet to the list of packets to
* generate ZK proofs for.
*
* Call `generateProofs()` to finally generate the proofs
*/
addPacketToProve(packet: CompleteTLSPacket, { redactedPlaintext, toprfs }: ZKRevealInfo, onGeneratedProofs: ZKPacketToProve["onGeneratedProofs"]): Promise<void>;
getTotalChunksToProve(): number;
generateProofs(onChunkDone?: () => void): Promise<void>;
}>;
/**
* Verify the given ZK proof
*/
export declare function verifyZkPacket({ cipherSuite, ciphertext, zkReveal, zkOperators, oprfOperators, logger, zkEngine, iv, recordNumber }: ZKVerifyOpts): Promise<{
redactedPlaintext: Uint8Array<ArrayBuffer>;
}>;
export declare function makeDefaultZkOperator(algorithm: EncryptionAlgorithm, zkEngine: ZKEngine, logger: Logger): ZKOperator;
export declare function makeDefaultOPRFOperator(algorithm: EncryptionAlgorithm, zkEngine: ZKEngine, logger: Logger): OPRFOperator;
export declare function getEngineString(engine: ZKProofEngine): "snarkjs" | "gnark";
export declare function getEngineProto(engine: ZKEngine): ZKProofEngine.ZK_ENGINE_SNARKJS | ZKProofEngine.ZK_ENGINE_GNARK;
export {};