Template Class EvalKeyImpl

Inheritance Relationships

Base Type

Derived Type

Template Parameter Order

  1. class Element

Class Documentation

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

Inheritence diagram for lbcrypto::EvalKeyImpl:

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

Collaboration diagram for lbcrypto::EvalKeyImpl:

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

Abstract interface for evaluation/proxy keys.

Template Parameters

Element – a ring element.

Subclassed by lbcrypto::EvalKeyRelinImpl< Element >

Public Functions

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

Basic constructor for setting crypto params

Parameters

&cryptoParams – is the reference to cryptoParams

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

Setter function to store Relinearization Element Vector A. Throws exception, to be overridden by derived class.

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. Throws exception, to be overridden by derived class.

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. Throws exception, to be overridden by derived class.

Returns

Element vector A.

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

Setter function to store Relinearization Element Vector B. Throws exception, to be overridden by derived class.

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. Throws exception, to be overridden by derived class.

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. Throws exception, to be overridden by derived class.

Returns

Element vector B.

inline virtual void SetA(const Element &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 SetA(Element &&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 Element &GetA() const

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

Returns

Element.

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 &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

Friends

inline friend bool operator==(const EvalKeyImpl &a, const EvalKeyImpl &b)
inline friend bool operator!=(const EvalKeyImpl &a, EvalKeyImpl &b)