epir
Version:
EllipticPIR client library (Node.js / TypeScript bindings).
44 lines (43 loc) • 2.42 kB
TypeScript
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;
}