UNPKG

epir

Version:

EllipticPIR client library (Node.js / TypeScript bindings).

35 lines (34 loc) 1.88 kB
/** * Node.js (TypeScript) bindings for Native C EllipticPIR library interface. */ import { EpirBase, EpirCreateFunction, DecryptionContextCreateFunction, SelectorFactoryBase } from './types'; export declare const createDecryptionContext: DecryptionContextCreateFunction; declare class SelectorFactoryNapi { constructor(isFast: boolean, key: ArrayBuffer, capacityZero: number, capacityOne: number); fill: () => Promise<void>; create: (indexCounts: number[], idx: number) => ArrayBuffer; } export declare class SelectorFactory extends SelectorFactoryBase { readonly isFast: boolean; readonly key: ArrayBuffer; readonly capacities: number[]; napi: SelectorFactoryNapi; constructor(isFast: boolean, key: ArrayBuffer, capacities?: number[]); fill(): Promise<void>; create(indexCounts: number[], idx: number, refill?: boolean): ArrayBuffer; } export declare class Epir implements EpirBase { createPrivkey(): ArrayBuffer; createPubkey(privkey: ArrayBuffer): ArrayBuffer; encrypt(pubkey: ArrayBuffer, msg: number, r?: ArrayBuffer): ArrayBuffer; encryptFast(privkey: ArrayBuffer, msg: number, r?: ArrayBuffer): ArrayBuffer; ciphersCount(index_counts: number[]): number; elementsCount(index_counts: number[]): number; createSelector(pubkey: ArrayBuffer, index_counts: number[], idx: number, r?: ArrayBuffer): Promise<ArrayBuffer>; createSelectorFast(privkey: ArrayBuffer, index_counts: number[], idx: number, r?: ArrayBuffer): Promise<ArrayBuffer>; computeReplySize(dimension: number, packing: number, elem_size: number): number; computeReplyRCount(dimension: number, packing: number, elem_size: number): number; computeReplyMock(pubkey: ArrayBuffer, dimension: number, packing: number, elem: ArrayBuffer, r?: ArrayBuffer): ArrayBuffer; } export declare const createEpir: EpirCreateFunction; export {};