#pragma once #include "openfhe/pke/scheme/gen-cryptocontext-params.h" #include "openfhe/pke/scheme/bfvrns/gen-cryptocontext-bfvrns-params.h" #include "openfhe/pke/scheme/bgvrns/gen-cryptocontext-bgvrns-params.h" #include "openfhe/pke/scheme/ckksrns/gen-cryptocontext-ckksrns-params.h" namespace openfhe { using SCHEME = lbcrypto::SCHEME; using SecretKeyDist = lbcrypto::SecretKeyDist; using ProxyReEncryptionMode = lbcrypto::ProxyReEncryptionMode; using MultipartyMode = lbcrypto::MultipartyMode; using ExecutionMode = lbcrypto::ExecutionMode; using DecryptionNoiseMode = lbcrypto::DecryptionNoiseMode; using KeySwitchTechnique = lbcrypto::KeySwitchTechnique; using ScalingTechnique = lbcrypto::ScalingTechnique; using SecurityLevel = lbcrypto::SecurityLevel; using EncryptionTechnique = lbcrypto::EncryptionTechnique; using MultiplicationTechnique = lbcrypto::MultiplicationTechnique; using COMPRESSION_LEVEL = lbcrypto::COMPRESSION_LEVEL; using Params = lbcrypto::Params; using ParamsBFVRNS = lbcrypto::CCParams; using ParamsBGVRNS = lbcrypto::CCParams; using ParamsCKKSRNS = lbcrypto::CCParams; // Generator functions [[nodiscard]] std::unique_ptr GenParamsByScheme(const SCHEME scheme); [[nodiscard]] std::unique_ptr GenParamsByVectorOfString( const std::vector& vals); [[nodiscard]] std::unique_ptr GenParamsBFVRNS(); [[nodiscard]] std::unique_ptr GenParamsBFVRNSbyVectorOfString( const std::vector& vals); [[nodiscard]] std::unique_ptr GenParamsBGVRNS(); [[nodiscard]] std::unique_ptr GenParamsBGVRNSbyVectorOfString( const std::vector& vals); [[nodiscard]] std::unique_ptr GenParamsCKKSRNS(); [[nodiscard]] std::unique_ptr GenParamsCKKSRNSbyVectorOfString( const std::vector& vals); } // openfhe