UNPKG

@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
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 {};