UNPKG

epir

Version:

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

52 lines (51 loc) 2.98 kB
import Dexie from 'dexie'; import { EpirBase, EpirCreateFunction, DecryptionContextBase, DecryptionContextCreateFunction } from './types'; import EPIRWorker from './wasm.worker.ts'; import { LibEpirHelper } from './wasm.libepir'; import { SelectorFactory } from './wasm.SelectorFactory'; export declare class DecryptionContext implements DecryptionContextBase { helper: LibEpirHelper; mG_: number; mmax: number; workers: EPIRWorker[]; constructor(helper: LibEpirHelper, mG: ArrayBuffer, nThreads?: number); getMG(): ArrayBuffer; decryptCipher(privkey: ArrayBuffer, cipher: ArrayBuffer): number; decryptReply(privkey: ArrayBuffer, dimension: number, packing: number, reply: ArrayBuffer): Promise<ArrayBuffer>; interpolationSearch(find: ArrayBuffer): number; decryptMany(ciphers: ArrayBuffer, privkey: ArrayBuffer, packing: number): Promise<ArrayBuffer>; } export declare const createDecryptionContext: DecryptionContextCreateFunction; export interface MGDatabaseElement { key: number; value: ArrayBuffer; } export declare class MGDatabase extends Dexie { static VERSION: number; mG: Dexie.Table<MGDatabaseElement, number>; constructor(dbName: string); } export declare const loadDecryptionContextFromIndexedDB: (dbName?: string) => Promise<DecryptionContextBase | null>; export declare const saveDecryptionContextToIndexedDB: (decCtx: DecryptionContextBase, dbName?: string) => Promise<void>; export { SelectorFactory }; export declare class Epir implements EpirBase { helper: LibEpirHelper; workers: EPIRWorker[]; constructor(helper: LibEpirHelper, nThreads?: number); createPrivkey(): ArrayBuffer; createPubkey(privkey: ArrayBuffer): ArrayBuffer; encrypt_(key: ArrayBuffer, msg: number, r: ArrayBuffer | undefined, encrypt: string): ArrayBuffer; encrypt(pubkey: ArrayBuffer, msg: number, r?: ArrayBuffer): ArrayBuffer; encryptFast(privkey: ArrayBuffer, msg: number, r?: ArrayBuffer): ArrayBuffer; ciphers_or_elements_count(index_counts: number[], count: string): number; ciphersCount(index_counts: number[]): number; elementsCount(index_counts: number[]): number; create_choice(index_counts: number[], idx: number): ArrayBuffer; selector_create_(key: ArrayBuffer, index_counts: number[], idx: number, r: ArrayBuffer | undefined, isFast: boolean): Promise<ArrayBuffer>; 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;