Template Class PublicKeyImpl

Inheritance Relationships

Base Type

Template Parameter Order

  1. typename Element

Class Documentation

template<typename Element>
class lbcrypto::PublicKeyImpl : public lbcrypto::Key<Element>

Inheritence diagram for lbcrypto::PublicKeyImpl:

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::PublicKeyImpl< Element >" tooltip="lbcrypto::PublicKeyImpl< 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"] }

Collaboration diagram for lbcrypto::PublicKeyImpl:

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::PublicKeyImpl< Element >" tooltip="lbcrypto::PublicKeyImpl< 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"] }

Class for public key.

Template Parameters

Element – a ring element.

Public Functions

inline explicit PublicKeyImpl(CryptoContext<Element> cc = 0, const std::string &id = "")

Basic constructor

Parameters
  • cc – - CryptoContext

  • id – - key identifier

inline explicit PublicKeyImpl(const PublicKeyImpl<Element> &rhs)

Copy constructor

Parameters

&rhsPublicKeyImpl to copy from

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

Move constructor

Parameters

&rhsPublicKeyImpl to move from

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

Assignment Operator.

Parameters

&rhsPublicKeyImpl to copy from

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

Move Assignment Operator.

Parameters

&rhsPublicKeyImpl to copy from

inline const std::vector<Element> &GetPublicElements() const

Gets the computed public key

Returns

the public key element.

inline void SetPublicElements(const std::vector<Element> &element)

Sets the public key vector of Element.

Parameters

&element – is the public key Element vector to be copied.

inline void SetPublicElements(std::vector<Element> &&element)

Sets the public key vector of Element.

Parameters

&&element – is the public key Element vector to be moved.

inline void SetPublicElementAtIndex(usint idx, const Element &element)

Sets the public key Element at index idx.

Parameters

&element – is the public key Element to be copied.

inline void SetPublicElementAtIndex(usint idx, Element &&element)

Sets the public key Element at index idx.

Parameters

&&element – is the public key Element to be moved.

inline bool operator==(const PublicKeyImpl &other) const
inline bool operator!=(const PublicKeyImpl &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()