UNPKG

epir

Version:

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

44 lines (43 loc) 2.42 kB
export declare const SCALAR_SIZE = 32; export declare const POINT_SIZE = 32; export declare const CIPHER_SIZE: number; export declare const DEFAULT_MMAX_MOD = 24; export declare const DEFAULT_MMAX: number; export declare const MG_SIZE = 36; export declare const GE25519_P3_SIZE: number; export declare const MG_DEFAULT_PATH: string; export declare type DecryptionContextCallbackFunction = ((points_computed: number) => void); export declare type DecryptionContextCallback = { cb: DecryptionContextCallbackFunction; interval: number; }; export declare type DecryptionContextParameter = string | ArrayBuffer | DecryptionContextCallback; export declare type DecryptionContextCreateFunction = (param?: DecryptionContextParameter, mmax?: number) => Promise<DecryptionContextBase>; export interface DecryptionContextBase { getMG(): ArrayBuffer; decryptCipher(privkey: ArrayBuffer, cipher: ArrayBuffer): number; decryptReply(privkey: ArrayBuffer, dimension: number, packing: number, reply: ArrayBuffer): Promise<ArrayBuffer>; } export declare const DEFAULT_CAPACITIES: number[]; export declare abstract class SelectorFactoryBase { readonly isFast: boolean; readonly key: ArrayBuffer; readonly capacities: number[]; constructor(isFast: boolean, key: ArrayBuffer, capacities: number[]); abstract fill(): Promise<void>; abstract create(indexCounts: number[], idx: number, refill?: boolean): ArrayBuffer; } export declare type EpirCreateFunction = () => Promise<EpirBase>; export interface 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; }