NS-3 based Named Data Networking (NDN) simulator
ndnSIM 2.5: NDN, CCN, CCNx, content centric networks
API Documentation
ndn::security::pib::Key Class Reference

A frontend handle of a key instance. More...

#include <key.hpp>

Public Member Functions

 Key ()
 Default Constructor. More...
 
 Key (weak_ptr< detail::KeyImpl > impl)
 Create a Key with a backend implementation impl. More...
 
const Name & getName () const
 Get key name. More...
 
const Name & getIdentity () const
 Get the name of the belonging identity. More...
 
KeyType getKeyType () const
 Get key type. More...
 
span< const uint8_t > getPublicKey () const
 Get public key bits. More...
 
Certificate getCertificate (const Name &certName) const
 Get a certificate with certName. More...
 
const CertificateContainer & getCertificates () const
 Get all certificates for this key. More...
 
const Certificate & getDefaultCertificate () const
 Get the default certificate for this Key. More...
 
 operator bool () const
 Check if the Key instance is valid. More...
 
void removeCertificate (const Name &certName) const
 Remove a certificate with certName. More...
 
const Certificate & setDefaultCertificate (const Name &certName) const
 Set an existing certificate with certName as the default certificate. More...
 
const Certificate & setDefaultCertificate (const Certificate &certificate) const
 Add certificate and set it as the default certificate of the key. More...
 

Public Attributes

NDN_CXX_PUBLIC_WITH_TESTS_ELSE_PRIVATE __pad0__: void addCertificate(const Certificate& certificate) const
 

Friends

bool operator!= (const Key &, const Key &)
 

Detailed Description

A frontend handle of a key instance.

Key is at the second level in PIB's Identity-Key-Certificate hierarchy. A Key has a Name (identity + "KEY" + keyId), and contains one or more certificates, one of which is set as the default certificate of this key. A certificate can be directly accessed from a Key object.

Definition at line 49 of file key.hpp.

Constructor & Destructor Documentation

◆ Key() [1/2]

ndn::security::pib::Key::Key ( )
default

Default Constructor.

Key created using this default constructor is just a place holder. It can obtain an actual instance from Identity::getKey(...). A typical usage would be for exception handling:

Key key; try { key = identity.getKey(...); } catch (const Pib::Error&) { ... }

A Key instance created using this constructor is invalid. Calling a member method on an invalid Key instance may cause an std::domain_error.

◆ Key() [2/2]

ndn::security::pib::Key::Key ( weak_ptr< detail::KeyImpl >  impl)
explicit

Create a Key with a backend implementation impl.

This method should only be used by KeyContainer.

Definition at line 32 of file key.cpp.

Member Function Documentation

◆ getName()

◆ getIdentity()

const Name & ndn::security::pib::Key::getIdentity ( ) const

Get the name of the belonging identity.

Definition at line 44 of file key.cpp.

Referenced by ndn::security::v2::KeyChain::deleteKey(), ndn::security::v2::parseLocatorUri(), and ndn::security::v2::KeyChain::setDefaultKey().

◆ getKeyType()

KeyType ndn::security::pib::Key::getKeyType ( ) const

Get key type.

Definition at line 50 of file key.cpp.

Referenced by ndn::security::v2::parseLocatorUri().

◆ getPublicKey()

span< const uint8_t > ndn::security::pib::Key::getPublicKey ( ) const

◆ getCertificate()

Certificate ndn::security::pib::Key::getCertificate ( const Name &  certName) const

Get a certificate with certName.

Exceptions
std::invalid_argumentcertName does not match key name
Pib::Errorthe certificate does not exist.

Definition at line 74 of file key.cpp.

◆ getCertificates()

const CertificateContainer & ndn::security::pib::Key::getCertificates ( ) const

Get all certificates for this key.

Definition at line 80 of file key.cpp.

◆ getDefaultCertificate()

const Certificate & ndn::security::pib::Key::getDefaultCertificate ( ) const

Get the default certificate for this Key.

Exceptions
Pib::Errorthe default certificate does not exist.

Definition at line 98 of file key.cpp.

Referenced by ndn::security::v2::KeyChain::createIdentity(), and ndn::security::v2::parseLocatorUri().

◆ operator bool()

ndn::security::pib::Key::operator bool ( ) const
explicit

Check if the Key instance is valid.

Definition at line 103 of file key.cpp.

References NDN_THROW.

◆ removeCertificate()

void ndn::security::pib::Key::removeCertificate ( const Name &  certName) const

Remove a certificate with certName.

Exceptions
std::invalid_argumentcertName does not match key name

Definition at line 68 of file key.cpp.

Referenced by ndn::security::v2::KeyChain::deleteCertificate().

◆ setDefaultCertificate() [1/2]

const Certificate & ndn::security::pib::Key::setDefaultCertificate ( const Name &  certName) const

Set an existing certificate with certName as the default certificate.

Exceptions
std::invalid_argumentcertName does not match key name
Pib::Errorthe certificate does not exist.
Returns
the default certificate

Definition at line 86 of file key.cpp.

Referenced by ndn::security::v2::KeyChain::setDefaultCertificate().

◆ setDefaultCertificate() [2/2]

const Certificate & ndn::security::pib::Key::setDefaultCertificate ( const Certificate &  certificate) const

Add certificate and set it as the default certificate of the key.

Exceptions
std::invalid_argumentcertificate does not match key name
Returns
the default certificate

Definition at line 92 of file key.cpp.

Friends And Related Function Documentation

◆ operator!=

bool operator!= ( const Key &  ,
const Key &   
)
friend

Definition at line 121 of file key.cpp.

Member Data Documentation

◆ __pad0__

NDN_CXX_PUBLIC_WITH_TESTS_ELSE_PRIVATE ndn::security::pib::Key::__pad0__

Definition at line 140 of file key.hpp.


The documentation for this class was generated from the following files: