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

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

Basic constructor

Parameters
  • cc – - CryptoContext

  • id – - key identifier

inline PublicKeyImpl(const PublicKeyImpl<Element> &rhs)

Copy constructor

Parameters

&rhsPublicKeyImpl to copy from

inline 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) noexcept

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) noexcept

Sets the public key vector of Element.

Parameters

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

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

Public Static Functions

static inline uint32_t SerializedVersion()