ndn::security::v1::Certificate Class Reference

#include <certificate.hpp>

+ Inheritance diagram for ndn::security::v1::Certificate:
+ Collaboration diagram for ndn::security::v1::Certificate:

Classes

class  Error
 

Public Types

typedef std::vector< CertificateExtension > ExtensionList
 
typedef std::vector< CertificateSubjectDescription > SubjectDescriptionList
 

Public Member Functions

 Certificate ()
 The default constructor. More...
 
 Certificate (const Data &data)
 Create a Certificate from the content in the data packet. More...
 
 Certificate (const Block &block)
 Create a Certificate from the a block. More...
 
virtual ~Certificate ()
 
void addExtension (const CertificateExtension &extension)
 Add a certificate extension. More...
 
void addSubjectDescription (const CertificateSubjectDescription &description)
 Add a subject description. More...
 
void encode ()
 encode certificate info into content More...
 
const Block & getContent () const
 Get Content. More...
 
uint32_t getContentType () const
 
const ExtensionList & getExtensionList () const
 
ExtensionList & getExtensionList ()
 
const name::Component & getFinalBlockId () const
 
const time::milliseconds & getFreshnessPeriod () const
 
const Name & getFullName () const
 Get full name including implicit digest. More...
 
const MetaInfo & getMetaInfo () const
 Get MetaInfo. More...
 
const Name & getName () const
 Get name. More...
 
time::system_clock::TimePoint & getNotAfter ()
 
const time::system_clock::TimePoint & getNotAfter () const
 
time::system_clock::TimePoint & getNotBefore ()
 
const time::system_clock::TimePoint & getNotBefore () const
 
PublicKey & getPublicKeyInfo ()
 
const PublicKey & getPublicKeyInfo () const
 
const Signature & getSignature () const
 Get Signature. More...
 
const SubjectDescriptionList & getSubjectDescriptionList () const
 
SubjectDescriptionList & getSubjectDescriptionList ()
 
template<typename T >
shared_ptr< T > getTag () const
 get a tag item More...
 
bool hasWire () const
 Check if already has wire. More...
 
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<typename T >
void removeTag () const
 remove tag item More...
 
Data & setContent (const Block &block)
 Set Content from a block. More...
 
Data & setContent (const uint8_t *value, size_t valueSize)
 Copy Content value from raw buffer. More...
 
Data & setContent (const ConstBufferPtr &value)
 Set Content from wire buffer. More...
 
Data & setContentType (uint32_t type)
 
Data & setFinalBlockId (const name::Component &finalBlockId)
 
Data & setFreshnessPeriod (const time::milliseconds &freshnessPeriod)
 
Data & setMetaInfo (const MetaInfo &metaInfo)
 Set MetaInfo. More...
 
Data & setName (const Name &name)
 Set name. More...
 
void setNotAfter (const time::system_clock::TimePoint &notAfter)
 
void setNotBefore (const time::system_clock::TimePoint &notBefore)
 
void setPublicKeyInfo (const PublicKey &key)
 
Data & setSignature (const Signature &signature)
 Set Signature. More...
 
Data & setSignatureValue (const Block &value)
 Set SignatureValue. More...
 
template<typename T >
void setTag (shared_ptr< T > tag) const
 set a tag item More...
 
void wireDecode (const Block &wire)
 
template<encoding::Tag TAG>
size_t wireEncode (EncodingImpl< TAG > &encoder, bool wantUnsignedPortionOnly=false) const
 Fast encoding or block size estimation. More...
 
const Block & wireEncode (EncodingBuffer &encoder, const Block &signatureValue) const
 Finalize Data packet encoding with the specified SignatureValue. More...
 
const Block & wireEncode () const
 Encode to a wire format. More...
 

Protected Member Functions

void decode ()
 
void resetWire ()
 Clear wire encoding and cached FullName. More...
 

Protected Attributes

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

Detailed Description

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

Member Typedef Documentation

Constructor & Destructor Documentation

ndn::security::v1::Certificate::Certificate ( )

The default constructor.

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

ndn::security::v1::Certificate::Certificate ( const Data &  data)
explicit

Create a Certificate from the content in the data packet.

Parameters
dataThe data packet with the content to decode.

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

ndn::security::v1::Certificate::Certificate ( const Block &  block)
explicit

Create a Certificate from the a block.

Parameters
blockThe raw block of the certificate

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

ndn::security::v1::Certificate::~Certificate ( )
virtual

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

Member Function Documentation

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

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

Add a subject description.

Parameters
descriptionThe description to be added.

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

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

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

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

encode certificate info into content

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

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

Get Content.

The Content value is accessible through value()/value_size() or value_begin()/value_end() methods of the Block class.

Definition at line 185 of file data.cpp.

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

Definition at line 201 of file data.hpp.

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

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

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

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

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

Definition at line 219 of file data.hpp.

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

Definition at line 210 of file data.hpp.

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

Get full name including implicit digest.

Precondition
hasWire() == true; i.e. wireEncode() must have been called
Exceptions
ErrorData has no wire encoding

Definition at line 148 of file data.cpp.

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

Get MetaInfo.

Definition at line 135 of file data.hpp.

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

Get name.

Definition at line 121 of file data.hpp.

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

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

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

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

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

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

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

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

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

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

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

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

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

Get Signature.

Definition at line 182 of file data.hpp.

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

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

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

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 already has wire.

Definition at line 105 of file data.hpp.

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

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

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::security::v1::Certificate::printCertificate ( std::ostream &  os,
const std::string &  indent = "" 
) const

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.

void ndn::Data::resetWire ( )
protectedinherited

Clear wire encoding and cached FullName.

Note
This does not clear the SignatureValue.

Definition at line 162 of file data.cpp.

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

Set Content from a block.

If block's TLV-TYPE is Content, it will be used directly as Data's Content element. If block's TLV-TYPE is not Content, it will be nested into a Content element.

Returns
a reference to this Data, to allow chaining

Definition at line 194 of file data.cpp.

Data & ndn::Data::setContent ( const uint8_t *  value,
size_t  valueSize 
)
inherited

Copy Content value from raw buffer.

Parameters
valuepointer to the first octet of the value
valueSizesize of the raw buffer
Returns
a reference to this Data, to allow chaining

Definition at line 209 of file data.cpp.

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

Set Content from wire buffer.

Parameters
valueContent value, which does not need to be a TLV element
Returns
a reference to this Data, to allow chaining

Definition at line 217 of file data.cpp.

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

Definition at line 241 of file data.cpp.

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

Definition at line 257 of file data.cpp.

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

Definition at line 249 of file data.cpp.

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

Set MetaInfo.

Returns
a reference to this Data, to allow chaining

Definition at line 177 of file data.cpp.

Data & ndn::Data::setName ( const Name &  name)
inherited

Set name.

Returns
a reference to this Data, to allow chaining

Definition at line 169 of file data.cpp.

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

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

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

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

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

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

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

Set Signature.

Returns
a reference to this Data, to allow chaining

Definition at line 225 of file data.cpp.

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

Set SignatureValue.

Returns
a reference to this Data, to allow chaining

Definition at line 233 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::Certificate::wireDecode ( const Block &  wire)

Definition at line 69 of file v1/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
wantUnsignedPortionOnlyIf true, only prepends Name, MetaInfo, Content, and SignatureInfo to encoder, but omit SignatureValue and outmost Type-Length of Data element. This is intended to be used with wireEncode(encoder, signatureValue).
Exceptions
ErrorSignatureBits are not provided and wantUnsignedPortionOnly is false.

Definition at line 48 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 containing Name, MetaInfo, Content, and SignatureInfo, but without SignatureValue or outmost Type-Length of Data element
signatureValueSignatureValue element

This method is intended to be used in concert with Data::wireEncode(encoder, true)

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 93 of file data.cpp.

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

Encode to a wire format.

Definition at line 106 of file data.cpp.

Member Data Documentation

ExtensionList ndn::security::v1::Certificate::m_extensionList
protected

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

PublicKey ndn::security::v1::Certificate::m_key
protected

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

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

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

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

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

SubjectDescriptionList ndn::security::v1::Certificate::m_subjectDescriptionList
protected

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