helayers::HelibBgvContext Class Reference
An implementation of HeContext for BGV scheme in HElib. More...
#include <HelibBgvContext.h>
Inheritance diagram for helayers::HelibBgvContext:
Public Member Functions | |
| void | init (unsigned long p, unsigned long m, unsigned long r, unsigned long L) |
| void | init (const HelibConfig &conf) override |
| Initializes context with given configuration. More... | |
| void | init (const HelibConfig &conf, helib::Context *userContext, helib::SecKey *userSecretKey, helib::PubKey *userPublicKey) |
| Initializes context with given context and keys. More... | |
| virtual std::shared_ptr< AbstractCiphertext > | createAbstractCipher () |
| Returns a pointer to HelibBgvCiphertext, initialized with this HelibBgvContext. | |
| virtual std::shared_ptr< AbstractPlaintext > | createAbstractPlain () |
| Returns a pointer to HelibBgvPlaintext, initialized with this HelibBgvContext. | |
| std::shared_ptr< AbstractFunctionEvaluator > | getFunctionEvaluator () override |
| Returns a pointer to HelibBgvNativeFunctionEvaluator, initialized with this HelibBgvContext. | |
| std::shared_ptr< AbstractEncoder > | getEncoder () override |
| Returns a pointer to HelibBgvEncoder, initialized with this HelibBgvContext. | |
| void | printSignature (std::ostream &out=std::cout) const override |
| Prints a summary of library details and configuration params. More... | |
| virtual const helib::EncryptedArray & | getEncryptedArray () |
| Returns the EncryptedArray used to perform operation on ciphertexts and plaintexts that are initialized with this scheme. | |
| void | load (std::istream &in) |
| Loads this HelibBgvcontext from the given istream. More... | |
| std::string | getSchemeName () const override |
| Returns the name of this scheme (i.e. "BGV"). | |
Public Member Functions inherited from helayers::HelibContext | |
| void | init (const HeConfigRequirement &req) override |
| Internal use. | |
| void | initPreset (HelibPreset preset) |
| Initalizes with a given preset. More... | |
| int | getTopChainIndex () const override |
| Returns the highest available chain index (for schemes where it is applicable). | |
| int | slotCount () const override |
| The number of slots in each CTile (ciphertext) or PTile (plaintext) created over this context. | |
| int | getSecurityLevel () const override |
| Returns the security level supplied by this context. | |
| bool | hasSecretKey () const override |
| Returns whether this context contains a secret key. More... | |
| const helib::PubKey & | getPublicKey () const |
| const helib::SecKey & | getSecretKey () const |
| const helib::Context & | getContext () const |
| bool | getMirrored () const |
| void | setMirrored (bool v) |
| void | printSignature (std::ostream &out=std::cout) const override |
| Prints a summary of library details and configuration params. More... | |
| void | debugPrint (const std::string &title="", int verbose=0, std::ostream &out=std::cout) const override |
| Prints detailed information for debug purposes. More... | |
| void | save (std::ostream &out, bool withSecretKey) override |
| Saves this context to a stream in binary form. More... | |
| void | load (std::istream &in) override |
| Loads context saved by the save() method. More... | |
| void | saveSecretKey (std::ostream &out) override |
| Save secret key to the given ostream. More... | |
| void | loadSecretKey (std::istream &in) override |
| Load secret key from the given istream. More... | |
| std::string | getLibraryName () const override |
| Returns the name of the underlying library. | |
| bool | isConfigRequirementFeasible (const HeConfigRequirement &req) const override |
| Internal use. | |
Public Member Functions inherited from helayers::HeContext | |
| HeContext () | |
| Constructs an empty object. | |
| HeContext (const HeContext &src)=delete | |
| Copy constructor. More... | |
| HeContext & | operator= (const HeContext &src)=delete |
| Copy from another object. More... | |
| virtual std::shared_ptr< AbstractBitwiseEvaluator > | getBitwiseEvaluator () |
| Do not use. Should be made private. | |
| const HeTraits & | getTraits () |
| Returns an HeTraits object containing various properties of the underlying scheme. | |
| virtual std::shared_ptr< std::vector< uint64_t > > | getModulusChain () const |
| Returns the modulus chain bit length for each prime in the chain (where applicable). | |
| void | saveToFile (const std::string &fileName, bool withSecretKey) |
| Saves this context to a file in binary form. More... | |
| void | loadFromFile (const std::string &fileName) |
| Loads context saved by the saveToFile() method. More... | |
| void | saveSecretKeyToFile (const std::string &fileName) |
| save secret key to the given file. More... | |
| void | loadSecretKeyFromFile (const std::string &fileName) |
| load secret key from the given file. More... | |
| virtual double | getDefaultScale () const |
| Returns default scale used in encoding (where applicable). | |
| virtual void | setDefaultScale (double v) |
| Sets the default scale to be used in encoding (where applicable). More... | |
| virtual std::string | getSignature () const |
| Returns a signature of the context that distinguishes it enough to be able to load previously stored contexts based on their signatures. | |
| virtual std::shared_ptr< JsonWrapper > | getEstimatedLatencies () const |
| For internal use. | |
| virtual std::shared_ptr< HeContext > | clone () const |
| Returns an uninitialized context of the same type. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from helayers::HelibContext | |
| static std::shared_ptr< HelibContext > | create (HelibPreset preset) |
| Creates a new HelibContext for either CKKS or BGV, based on a preset configuration. More... | |
Static Public Member Functions inherited from helayers::HeContext | |
| static std::shared_ptr< HeContext > | loadHeContextFromFile (const std::string &fileName) |
| Returns a pointer to a context initialized from file. More... | |
| static std::shared_ptr< HeContext > | loadHeContext (std::istream &in) |
| Returns a pointer to a context initialized from stream. More... | |
| static bool | internalRegisterContext (const HeContext *context) |
| Registers a context object for the purpose of dynamic loading. More... | |
Protected Attributes inherited from helayers::HelibContext | |
| HelibConfig | config |
| helib::Context * | context = NULL |
| helib::SecKey * | secretKey = NULL |
| helib::PubKey * | publicKey = NULL |
| long | nslots = 0 |
| bool | mirrored = false |
Protected Attributes inherited from helayers::HeContext | |
| HeTraits | traits |
Detailed Description
An implementation of HeContext for BGV scheme in HElib.
It can be either initialized via parameters, via an HelibConfig, or loaded from a file.
It is recommended not to use directly after initialization, but use an HeContext reference instead.
It is currently in beta version, as not all BGV operators are covered.
Member Function Documentation
◆ init() [1/2]
|
overridevirtual |
Initializes context with given configuration.
- Parameters
-
[in] conf user configuration
Reimplemented from helayers::HelibContext.
◆ init() [2/2]
| void helayers::HelibBgvContext::init | ( | const HelibConfig & | conf, |
| helib::Context * | userContext, | ||
| helib::SecKey * | userSecretKey, | ||
| helib::PubKey * | userPublicKey | ||
| ) |
Initializes context with given context and keys.
- Parameters
-
[in] conf user configuration [in] userContext user context [in] userSecretKey user secret key [in] userPublicKey user public key
◆ load()
|
virtual |
Loads this HelibBgvcontext from the given istream.
- Parameters
-
[in] istream The istream to load from.
Reimplemented from helayers::HeContext.
◆ printSignature()
|
overridevirtual |
Prints a summary of library details and configuration params.
- Parameters
-
[in] out output stream to write to
Implements helayers::HeContext.
The documentation for this class was generated from the following files:
- /opt/IBM/FHE-distro/ML-HElib/src/helayers/hebase/helib/HelibBgvContext.h
- /opt/IBM/FHE-distro/ML-HElib/src/helayers/hebase/helib/HelibBgvContext.cpp
Public Member Functions inherited from
1.8.17