ndn::security::v1::IdentityCertificate Class Reference

#include <identity-certificate.hpp>

Inheritance diagram for ndn::security::v1::IdentityCertificate:
[legend]
Collaboration diagram for ndn::security::v1::IdentityCertificate:
[legend]

Data Structures

class  Error
 

Public Types

typedef std::vector< CertificateSubjectDescriptionSubjectDescriptionList
 
typedef std::vector< CertificateExtensionExtensionList
 

Public Member Functions

 IdentityCertificate ()
 The default constructor. More...
 
 IdentityCertificate (const Data &data)
 Create an IdentityCertificate from the content in the data packet. More...
 
 IdentityCertificate (const Block &block)
 Create an IdentityCertificate from a block. More...
 
void wireDecode (const Block &wire)
 
void setName (const Name &name)
 
const NamegetPublicKeyName () const
 
void encode ()
 encode certificate info into content More...
 
void addSubjectDescription (const CertificateSubjectDescription &description)
 Add a subject description. More...
 
const SubjectDescriptionListgetSubjectDescriptionList () const
 
SubjectDescriptionListgetSubjectDescriptionList ()
 
void addExtension (const CertificateExtension &extension)
 Add a certificate extension. More...
 
const ExtensionListgetExtensionList () const
 
ExtensionListgetExtensionList ()
 
void setNotBefore (const time::system_clock::TimePoint &notBefore)
 
time::system_clock::TimePointgetNotBefore ()
 
const time::system_clock::TimePointgetNotBefore () const
 
void setNotAfter (const time::system_clock::TimePoint &notAfter)
 
time::system_clock::TimePointgetNotAfter ()
 
const time::system_clock::TimePointgetNotAfter () const
 
void setPublicKeyInfo (const PublicKey &key)
 
PublicKeygetPublicKeyInfo ()
 
const PublicKeygetPublicKeyInfo () const
 
bool isTooEarly ()
 Check if the certificate is valid. More...
 
bool isTooLate ()
 Check if the certificate is valid. More...
 
void printCertificate (std::ostream &os, const std::string &indent="") const
 
template<encoding::Tag TAG>
size_t wireEncode (EncodingImpl< TAG > &encoder, bool wantUnsignedPortionOnly=false) const
 Fast encoding or block size estimation. More...
 
const BlockwireEncode () const
 Encode to a wire format. More...
 
const BlockwireEncode (EncodingBuffer &encoder, const Block &signatureValue) const
 Finalize Data packet encoding with the specified SignatureValue. More...
 
bool hasWire () const
 Check if Data is already has wire encoding. More...
 
const NamegetName () const
 Get name of the Data packet. More...
 
const NamegetFullName () const
 Get full name of Data packet, including the implicit digest. More...
 
const MetaInfogetMetaInfo () const
 Get MetaInfo block from Data packet. More...
 
DatasetMetaInfo (const MetaInfo &metaInfo)
 Set metaInfo to a copy of the given MetaInfo. More...
 
uint32_t getContentType () const
 
DatasetContentType (uint32_t type)
 
const time::milliseconds & getFreshnessPeriod () const
 
DatasetFreshnessPeriod (const time::milliseconds &freshnessPeriod)
 
const name::ComponentgetFinalBlockId () const
 
DatasetFinalBlockId (const name::Component &finalBlockId)
 
const BlockgetContent () const
 Get content Block. More...
 
DatasetContent (const uint8_t *buffer, size_t bufferSize)
 Set the content from the buffer (buffer will be copied) More...
 
DatasetContent (const Block &block)
 Set the content from the block. More...
 
DatasetContent (const ConstBufferPtr &contentValue)
 Set the content from the pointer to immutable buffer. More...
 
const SignaturegetSignature () const
 
DatasetSignature (const Signature &signature)
 Set the signature to a copy of the given signature. More...
 
DatasetSignatureValue (const Block &value)
 
bool operator== (const Data &other) const
 
bool operator!= (const Data &other) const
 
template<typename T >
shared_ptr< T > getTag () const
 get a tag item More...
 
template<typename T >
void setTag (shared_ptr< T > tag) const
 set a tag item More...
 
template<typename T >
void removeTag () const
 remove tag item More...
 

Static Public Member Functions

static bool isIdentityCertificate (const Certificate &certificate)
 
static Name certificateNameToPublicKeyName (const Name &certificateName)
 Get the public key name from the full certificate name. More...
 

Protected Member Functions

void decode ()
 
void onChanged ()
 Clear the wire encoding. More...
 

Protected Attributes

Name m_publicKeyName
 
SubjectDescriptionList m_subjectDescriptionList
 
time::system_clock::TimePoint m_notBefore
 
time::system_clock::TimePoint m_notAfter
 
PublicKey m_key
 
ExtensionList m_extensionList
 

Detailed Description

Definition at line 34 of file v1/identity-certificate.hpp.

Member Typedef Documentation

Definition at line 53 of file v1/certificate.hpp.

Constructor & Destructor Documentation

ndn::security::v1::IdentityCertificate::IdentityCertificate ( )

The default constructor.

Definition at line 36 of file identity-certificate.cpp.

ndn::security::v1::IdentityCertificate::IdentityCertificate ( const Data data)
explicit

Create an IdentityCertificate from the content in the data packet.

Parameters
dataThe data packet with the content to decode.

Definition at line 41 of file identity-certificate.cpp.

ndn::security::v1::IdentityCertificate::IdentityCertificate ( const Block block)
explicit

Create an IdentityCertificate from a block.

Parameters
blockThe raw block of the certificate.

Definition at line 47 of file identity-certificate.cpp.

Member Function Documentation

void ndn::security::v1::Certificate::addExtension ( const CertificateExtension extension)
inlineinherited

Add a certificate extension.

Parameters
extensionthe extension to be added

Definition at line 113 of file v1/certificate.hpp.

void ndn::security::v1::Certificate::addSubjectDescription ( const CertificateSubjectDescription description)
inlineinherited

Add a subject description.

Parameters
descriptionThe description to be added.

Definition at line 91 of file v1/certificate.hpp.

Name ndn::security::v1::IdentityCertificate::certificateNameToPublicKeyName ( const Name certificateName)
static

Get the public key name from the full certificate name.

Parameters
certificateNameThe full certificate name.
Returns
The related public key name.

Definition at line 109 of file identity-certificate.cpp.

void ndn::security::v1::Certificate::decode ( )
protectedinherited

Definition at line 197 of file v1/certificate.cpp.

void ndn::security::v1::Certificate::encode ( )
inherited

encode certificate info into content

Definition at line 94 of file v1/certificate.cpp.

const Block & ndn::Data::getContent ( ) const
inherited

Get content Block.

To access content value, one can use value()/value_size() or value_begin()/value_end() methods of the Block class

Definition at line 230 of file data.cpp.

uint32_t ndn::Data::getContentType ( ) const
inlineinherited

Definition at line 330 of file data.hpp.

const ExtensionList& ndn::security::v1::Certificate::getExtensionList ( ) const
inlineinherited

Definition at line 119 of file v1/certificate.hpp.

ExtensionList& ndn::security::v1::Certificate::getExtensionList ( )
inlineinherited

Definition at line 125 of file v1/certificate.hpp.

const name::Component & ndn::Data::getFinalBlockId ( ) const
inlineinherited

Definition at line 342 of file data.hpp.

const time::milliseconds & ndn::Data::getFreshnessPeriod ( ) const
inlineinherited

Definition at line 336 of file data.hpp.

const Name & ndn::Data::getFullName ( ) const
inherited

Get full name of Data packet, including the implicit digest.

Exceptions
Errorif Data packet doesn't have a full name yet (wire encoding has not been yet created)

Definition at line 179 of file data.cpp.

const MetaInfo & ndn::Data::getMetaInfo ( ) const
inlineinherited

Get MetaInfo block from Data packet.

Definition at line 324 of file data.hpp.

const Name & ndn::Data::getName ( ) const
inlineinherited

Get name of the Data packet.

Definition at line 318 of file data.hpp.

time::system_clock::TimePoint& ndn::security::v1::Certificate::getNotAfter ( )
inlineinherited

Definition at line 155 of file v1/certificate.hpp.

const time::system_clock::TimePoint& ndn::security::v1::Certificate::getNotAfter ( ) const
inlineinherited

Definition at line 161 of file v1/certificate.hpp.

time::system_clock::TimePoint& ndn::security::v1::Certificate::getNotBefore ( )
inlineinherited

Definition at line 137 of file v1/certificate.hpp.

const time::system_clock::TimePoint& ndn::security::v1::Certificate::getNotBefore ( ) const
inlineinherited

Definition at line 143 of file v1/certificate.hpp.

PublicKey& ndn::security::v1::Certificate::getPublicKeyInfo ( )
inlineinherited

Definition at line 173 of file v1/certificate.hpp.

const PublicKey& ndn::security::v1::Certificate::getPublicKeyInfo ( ) const
inlineinherited

Definition at line 179 of file v1/certificate.hpp.

const Name& ndn::security::v1::IdentityCertificate::getPublicKeyName ( ) const
inline

Definition at line 73 of file v1/identity-certificate.hpp.

const Signature & ndn::Data::getSignature ( ) const
inlineinherited

Definition at line 348 of file data.hpp.

const SubjectDescriptionList& ndn::security::v1::Certificate::getSubjectDescriptionList ( ) const
inlineinherited

Definition at line 97 of file v1/certificate.hpp.

SubjectDescriptionList& ndn::security::v1::Certificate::getSubjectDescriptionList ( )
inlineinherited

Definition at line 103 of file v1/certificate.hpp.

template<typename T >
shared_ptr< T > ndn::TagHost::getTag ( ) const
inlineinherited

get a tag item

Template Parameters
Ttype of the tag, which must be a subclass of ndn::Tag
Return values
nullptrif no Tag of type T is stored

Definition at line 67 of file tag-host.hpp.

bool ndn::Data::hasWire ( ) const
inlineinherited

Check if Data is already has wire encoding.

Definition at line 312 of file data.hpp.

bool ndn::security::v1::IdentityCertificate::isIdentityCertificate ( const Certificate certificate)
static

Definition at line 103 of file identity-certificate.cpp.

bool ndn::security::v1::Certificate::isTooEarly ( )
inherited

Check if the certificate is valid.

Returns
True if the current time is earlier than notBefore.

Definition at line 76 of file v1/certificate.cpp.

bool ndn::security::v1::Certificate::isTooLate ( )
inherited

Check if the certificate is valid.

Returns
True if the current time is later than notAfter.

Definition at line 85 of file v1/certificate.cpp.

void ndn::Data::onChanged ( )
protectedinherited

Clear the wire encoding.

Definition at line 293 of file data.cpp.

bool ndn::Data::operator!= ( const Data other) const
inherited

Definition at line 314 of file data.cpp.

bool ndn::Data::operator== ( const Data other) const
inherited

Definition at line 305 of file data.cpp.

void ndn::security::v1::Certificate::printCertificate ( std::ostream &  os,
const std::string &  indent = "" 
) const
inherited

Definition at line 269 of file v1/certificate.cpp.

template<typename T >
void ndn::TagHost::removeTag ( ) const
inlineinherited

remove tag item

Note
Tag can be removed even on a const tag host instance

Definition at line 94 of file tag-host.hpp.

Data & ndn::Data::setContent ( const uint8_t *  buffer,
size_t  bufferSize 
)
inherited

Set the content from the buffer (buffer will be copied)

Parameters
bufferPointer to first byte of the buffer
bufferSizeSize of the buffer
Returns
This Data so that you can chain calls to update values.

Definition at line 241 of file data.cpp.

Data & ndn::Data::setContent ( const Block block)
inherited

Set the content from the block.

Depending on type of the supplied block, there are two cases:

  • if block.type() == tlv::Content, then block will be used directly as Data packet's content (no extra copying)
  • if block.type() != tlv::Content, then this method will create a new Block with type tlv::Content and put block as a nested element in the content Block.
Parameters
blockThe Block containing the content to assign
Returns
This Data so that you can chain calls to update values.

Definition at line 261 of file data.cpp.

Data & ndn::Data::setContent ( const ConstBufferPtr contentValue)
inherited

Set the content from the pointer to immutable buffer.

This method will create a Block with tlv::Content and set contentValue as a payload for this block. Note that this method is very different from setContent(const Block&), since it does not require that payload should be a valid TLV element.

Parameters
contentValueThe pointer to immutable buffer containing the content to assign
Returns
This Data so that you can chain calls to update values.

Definition at line 251 of file data.cpp.

Data & ndn::Data::setContentType ( uint32_t  type)
inherited

Definition at line 203 of file data.cpp.

Data & ndn::Data::setFinalBlockId ( const name::Component finalBlockId)
inherited

Definition at line 221 of file data.cpp.

Data & ndn::Data::setFreshnessPeriod ( const time::milliseconds &  freshnessPeriod)
inherited

Definition at line 212 of file data.cpp.

Data & ndn::Data::setMetaInfo ( const MetaInfo metaInfo)
inherited

Set metaInfo to a copy of the given MetaInfo.

Returns
This Data so that you can chain calls to update values.

Definition at line 194 of file data.cpp.

void ndn::security::v1::IdentityCertificate::setName ( const Name name)

Definition at line 61 of file identity-certificate.cpp.

void ndn::security::v1::Certificate::setNotAfter ( const time::system_clock::TimePoint notAfter)
inlineinherited

Definition at line 149 of file v1/certificate.hpp.

void ndn::security::v1::Certificate::setNotBefore ( const time::system_clock::TimePoint notBefore)
inlineinherited

Definition at line 131 of file v1/certificate.hpp.

void ndn::security::v1::Certificate::setPublicKeyInfo ( const PublicKey key)
inlineinherited

Definition at line 167 of file v1/certificate.hpp.

Data & ndn::Data::setSignature ( const Signature signature)
inherited

Set the signature to a copy of the given signature.

Parameters
signatureThe signature object which is cloned.

Definition at line 275 of file data.cpp.

Data & ndn::Data::setSignatureValue ( const Block value)
inherited

Definition at line 284 of file data.cpp.

template<typename T >
void ndn::TagHost::setTag ( shared_ptr< T >  tag) const
inlineinherited

set a tag item

Template Parameters
Ttype of the tag, which must be a subclass of ndn::Tag
Note
Tag can be set even on a const tag host instance

Definition at line 80 of file tag-host.hpp.

void ndn::security::v1::IdentityCertificate::wireDecode ( const Block wire)

Definition at line 54 of file identity-certificate.cpp.

template<encoding::Tag TAG>
size_t ndn::Data::wireEncode ( EncodingImpl< TAG > &  encoder,
bool  wantUnsignedPortionOnly = false 
) const
inherited

Fast encoding or block size estimation.

Parameters
encoderEncodingEstimator or EncodingBuffer instance
wantUnsignedPortionOnlyRequest only unsigned portion to be encoded in block. If true, only Name, MetaInfo, Content, and SignatureInfo blocks will be encoded into the block. Note that there will be no outer TLV header of the Data packet.

Definition at line 52 of file data.cpp.

const Block & ndn::Data::wireEncode ( ) const
inherited

Encode to a wire format.

Definition at line 119 of file data.cpp.

const Block & ndn::Data::wireEncode ( EncodingBuffer &  encoder,
const Block signatureValue 
) const
inherited

Finalize Data packet encoding with the specified SignatureValue.

Parameters
encoderEncodingBuffer instance, containing Name, MetaInfo, Content, and SignatureInfo (without outer TLV header of the Data packet).
signatureValueSignatureValue block to be added to Data packet to finalize the wire encoding

This method is intended to be used in concert with Data::wireEncode(EncodingBuffer&, true) method to optimize Data packet wire format creation:

Data data;
...
EncodingBuffer encoder;
data.wireEncode(encoder, true);
...
Block signatureValue = <sign_over_unsigned_portion>(encoder.buf(), encoder.size());
data.wireEncode(encoder, signatureValue)

Definition at line 106 of file data.cpp.

Field Documentation

ExtensionList ndn::security::v1::Certificate::m_extensionList
protectedinherited

Definition at line 210 of file v1/certificate.hpp.

PublicKey ndn::security::v1::Certificate::m_key
protectedinherited

Definition at line 209 of file v1/certificate.hpp.

time::system_clock::TimePoint ndn::security::v1::Certificate::m_notAfter
protectedinherited

Definition at line 208 of file v1/certificate.hpp.

time::system_clock::TimePoint ndn::security::v1::Certificate::m_notBefore
protectedinherited

Definition at line 207 of file v1/certificate.hpp.

Name ndn::security::v1::IdentityCertificate::m_publicKeyName
protected

Definition at line 97 of file v1/identity-certificate.hpp.

SubjectDescriptionList ndn::security::v1::Certificate::m_subjectDescriptionList
protectedinherited

Definition at line 206 of file v1/certificate.hpp.