Template Class Key

Inheritance Relationships

Base Types

Derived Types

Template Parameter Order

  1. class Element

Class Documentation

template<class Element>
class lbcrypto::Key : public lbcrypto::CryptoObject<Element>, public lbcrypto::Serializable

Inheritence diagram for lbcrypto::Key:

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 >"]
    "3" [label="lbcrypto::Serializable" tooltip="lbcrypto::Serializable"]
    "7" [label="lbcrypto::PublicKeyImpl< Element >" tooltip="lbcrypto::PublicKeyImpl< Element >"]
    "4" [label="lbcrypto::EvalKeyImpl< Element >" tooltip="lbcrypto::EvalKeyImpl< Element >"]
    "6" [label="lbcrypto::PrivateKeyImpl< Element >" tooltip="lbcrypto::PrivateKeyImpl< Element >"]
    "2" [label="lbcrypto::CryptoObject< Element >" tooltip="lbcrypto::CryptoObject< Element >"]
    "1" [label="lbcrypto::Key< Element >" tooltip="lbcrypto::Key< Element >" fillcolor="#BFBFBF"]
    "5" -> "4" [dir=forward tooltip="public-inheritance"]
    "7" -> "1" [dir=forward tooltip="public-inheritance"]
    "4" -> "1" [dir=forward tooltip="public-inheritance"]
    "6" -> "1" [dir=forward tooltip="public-inheritance"]
    "1" -> "2" [dir=forward tooltip="public-inheritance"]
    "1" -> "3" [dir=forward tooltip="public-inheritance"]
}

Collaboration diagram for lbcrypto::Key:

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

Abstract interface class for Keys.

Template Parameters

Element – a ring element.

Subclassed by lbcrypto::EvalKeyImpl< Element >, lbcrypto::PrivateKeyImpl< Element >, lbcrypto::PublicKeyImpl< Element >

Public Functions

Key() = default
inline explicit Key(const CryptoContext<Element> &cc, const std::string &id = "")
inline explicit Key(const std::shared_ptr<CryptoObject<Element>> &co, const std::string &id = "")
virtual ~Key() = default
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)