node-seal
Version:
Homomorphic Encryption for TypeScript or JavaScript using Microsoft SEAL
40 lines (39 loc) • 1.91 kB
TypeScript
import { ComprModeType } from './compr-mode-type';
import { Exception } from './exception';
import { Modulus, ModulusConstructorOptions } from './modulus';
import { ParmsIdType, ParmsIdTypeConstructorOptions } from './parms-id-type';
import { SchemeType } from './scheme-type';
import { Instance, LoaderOptions } from './seal';
import { Vector, VectorConstructorOptions } from './vector';
export type EncryptionParametersDependencyOptions = {
readonly Exception: Exception;
readonly ComprModeType: ComprModeType;
readonly Modulus: ModulusConstructorOptions;
readonly SchemeType: SchemeType;
readonly ParmsIdType: ParmsIdTypeConstructorOptions;
readonly Vector: VectorConstructorOptions;
};
export type EncryptionParametersDependencies = {
({ Exception, ComprModeType, Modulus, SchemeType, Vector }: EncryptionParametersDependencyOptions): EncryptionParametersConstructorOptions;
};
export type EncryptionParametersConstructorOptions = {
(schemeType?: SchemeType): EncryptionParameters;
};
export type EncryptionParameters = {
readonly instance: Instance;
readonly unsafeInject: (instance: Instance) => void;
readonly delete: () => void;
readonly setPolyModulusDegree: (polyModulusDegree: number) => void;
readonly setCoeffModulus: (coeffModulus: Vector) => void;
readonly setPlainModulus: (plainModulus: Modulus) => void;
readonly scheme: SchemeType;
readonly polyModulusDegree: number;
readonly coeffModulus: BigUint64Array;
readonly plainModulus: Modulus;
readonly parmsId: ParmsIdType;
readonly save: (compression?: ComprModeType) => string;
readonly saveArray: (compression?: ComprModeType) => Uint8Array;
readonly load: (encoded: string) => void;
readonly loadArray: (array: Uint8Array) => void;
};
export declare const EncryptionParametersInit: ({ loader }: LoaderOptions) => EncryptionParametersDependencies;