Template Class EvalKeyRelinImpl

Inheritance Relationships

Base Type

Template Parameter Order

  1. class Element

Class Documentation

template<class Element>
class lbcrypto::EvalKeyRelinImpl : public lbcrypto::EvalKeyImpl<Element>

Inheritence diagram for lbcrypto::EvalKeyRelinImpl:

digraph { graph [bgcolor="#00000000"] node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2] edge [color="#1414CE"] "1" [label="lbcrypto::EvalKeyRelinImpl< Element >" tooltip="lbcrypto::EvalKeyRelinImpl< Element >" fillcolor="#BFBFBF"] "5" [label="lbcrypto::Serializable" tooltip="lbcrypto::Serializable"] "2" [label="lbcrypto::EvalKeyImpl< Element >" tooltip="lbcrypto::EvalKeyImpl< Element >"] "4" [label="lbcrypto::CryptoObject< Element >" tooltip="lbcrypto::CryptoObject< Element >"] "3" [label="lbcrypto::Key< Element >" tooltip="lbcrypto::Key< Element >"] "1" -> "2" [dir=forward tooltip="public-inheritance"] "2" -> "3" [dir=forward tooltip="public-inheritance"] "3" -> "4" [dir=forward tooltip="public-inheritance"] "3" -> "5" [dir=forward tooltip="public-inheritance"] }

Collaboration diagram for lbcrypto::EvalKeyRelinImpl:

digraph { graph [bgcolor="#00000000"] node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2] edge [color="#1414CE"] "1" [label="lbcrypto::EvalKeyRelinImpl< Element >" tooltip="lbcrypto::EvalKeyRelinImpl< Element >" fillcolor="#BFBFBF"] "5" [label="lbcrypto::Serializable" tooltip="lbcrypto::Serializable"] "2" [label="lbcrypto::EvalKeyImpl< Element >" tooltip="lbcrypto::EvalKeyImpl< Element >"] "4" [label="lbcrypto::CryptoObject< Element >" tooltip="lbcrypto::CryptoObject< Element >"] "3" [label="lbcrypto::Key< Element >" tooltip="lbcrypto::Key< Element >"] "1" -> "2" [dir=forward tooltip="public-inheritance"] "2" -> "3" [dir=forward tooltip="public-inheritance"] "3" -> "4" [dir=forward tooltip="public-inheritance"] "3" -> "5" [dir=forward tooltip="public-inheritance"] }

Concrete class for Relinearization keys of RLWE scheme.

Template Parameters

Element – a ring element.

Public Functions

inline explicit EvalKeyRelinImpl(CryptoContext<Element> cc = 0)

Basic constructor for setting crypto params

Parameters

&cryptoParams – is the reference to cryptoParams

inline virtual ~EvalKeyRelinImpl()
inline explicit EvalKeyRelinImpl(const EvalKeyRelinImpl<Element> &rhs)

Copy constructor

Parameters

&rhs – key to copy from

inline explicit EvalKeyRelinImpl(EvalKeyRelinImpl<Element> &&rhs) noexcept

Move constructor

Parameters

&rhs – key to move from

inline operator bool() const
inline EvalKeyRelinImpl<Element> &operator=(const EvalKeyRelinImpl<Element> &rhs)

Assignment Operator.

Parameters

&rhs – key to copy from

inline EvalKeyRelinImpl<Element> &operator=(EvalKeyRelinImpl<Element> &&rhs)

Move Assignment Operator.

Parameters

&rhs – key to move from

inline virtual void SetAVector(const std::vector<Element> &a)

Setter function to store Relinearization Element Vector A. Overrides base class implementation.

Parameters

&a – is the Element vector to be copied.

inline virtual void SetAVector(std::vector<Element> &&a)

Setter function to store Relinearization Element Vector A. Overrides base class implementation.

Parameters

&&a – is the Element vector to be moved.

inline virtual const std::vector<Element> &GetAVector() const

Getter function to access Relinearization Element Vector A. Overrides base class implementation.

Returns

Element vector A.

inline virtual void SetBVector(const std::vector<Element> &b)

Setter function to store Relinearization Element Vector B. Overrides base class implementation.

Parameters

&b – is the Element vector to be copied.

inline virtual void SetBVector(std::vector<Element> &&b)

Setter function to store Relinearization Element Vector B. Overrides base class implementation.

Parameters

&&b – is the Element vector to be moved.

inline virtual const std::vector<Element> &GetBVector() const

Getter function to access Relinearization Element Vector B. Overrides base class implementation.

Returns

Element vector B.

inline virtual void SetAinDCRT(const DCRTPoly &a)

Setter function to store key switch Element. Throws exception, to be overridden by derived class.

Parameters

&a – is the Element to be copied.

inline virtual void SetAinDCRT(DCRTPoly &&a)

Setter function to store key switch Element. Throws exception, to be overridden by derived class.

Parameters

&&a – is the Element to be moved.

inline virtual const DCRTPoly &GetAinDCRT() const

Getter function to access key switch Element. Throws exception, to be overridden by derived class.

Returns

Element.

inline virtual void SetBinDCRT(const DCRTPoly &b)

Setter function to store key switch Element. Throws exception, to be overridden by derived class.

Parameters

&b – is the Element to be copied.

inline virtual void SetBinDCRT(DCRTPoly &&b)

Setter function to store key switch Element. Throws exception, to be overridden by derived class.

Parameters

&&b – is the Element to be moved.

inline virtual const DCRTPoly &GetBinDCRT() const

Getter function to access key switch Element. Throws exception, to be overridden by derived class.

Returns

Element.

inline virtual void ClearKeys()
inline virtual bool key_compare(const EvalKeyImpl<Element> &other) const
template<class Archive>
inline void save(Archive &ar, std::uint32_t const version) const
template<class Archive>
inline void load(Archive &ar, std::uint32_t const version)
inline virtual std::string SerializedObjectName() const

Public Static Functions

static inline uint32_t SerializedVersion()