epir
Version:
EllipticPIR client library (Node.js / TypeScript bindings).
35 lines (34 loc) • 1.88 kB
TypeScript
/**
* 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 {};