All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
ndn::SecPublicInfo Class Referenceabstract

SecPublicInfo is a base class for the storage of public information. More...

#include <sec-public-info.hpp>

Inheritance diagram for ndn::SecPublicInfo:
[legend]
Collaboration diagram for ndn::SecPublicInfo:
[legend]

Data Structures

class  Error
 

Public Member Functions

virtual ~SecPublicInfo ()
 The virtual Destructor. More...
 
virtual bool doesIdentityExist (const Name &identityName)=0
 Check if the specified identity already exists. More...
 
virtual void addIdentity (const Name &identityName)=0
 Add a new identity. More...
 
virtual bool revokeIdentity ()=0
 Revoke the identity. More...
 
virtual bool doesPublicKeyExist (const Name &keyName)=0
 Check if the specified key already exists. More...
 
virtual void addPublicKey (const Name &keyName, KeyType keyType, const PublicKey &publicKeyDer)=0
 Add a public key to the identity storage. More...
 
virtual shared_ptr< PublicKeygetPublicKey (const Name &keyName)=0
 Get the public key DER blob from the identity storage. More...
 
virtual bool doesCertificateExist (const Name &certificateName)=0
 Check if the specified certificate already exists. More...
 
virtual void addCertificate (const IdentityCertificate &certificate)=0
 Add a certificate to the identity storage. More...
 
virtual shared_ptr
< IdentityCertificate
getCertificate (const Name &certificateName)=0
 Get a certificate from the identity storage. More...
 
virtual Name getDefaultIdentity ()=0
 Get the default identity. More...
 
virtual Name getDefaultKeyNameForIdentity (const Name &identityName)=0
 Get the default key name for the specified identity. More...
 
virtual Name getDefaultCertificateNameForKey (const Name &keyName)=0
 Get the default certificate name for the specified key. More...
 
virtual void getAllIdentities (std::vector< Name > &nameList, bool isDefault)=0
 Get all the identities in public info. More...
 
virtual void getAllKeyNames (std::vector< Name > &nameList, bool isDefault)=0
 Get all the key name in public info. More...
 
virtual void getAllKeyNamesOfIdentity (const Name &identity, std::vector< Name > &nameList, bool isDefault)=0
 Get all the key name of a particular identity. More...
 
virtual void getAllCertificateNames (std::vector< Name > &nameList, bool isDefault)=0
 Get all the certificate name in public info. More...
 
virtual void getAllCertificateNamesOfKey (const Name &keyName, std::vector< Name > &nameList, bool isDefault)=0
 Get all the certificate name of a particular key. More...
 
void setDefaultIdentity (const Name &identityName)
 Set the default identity. More...
 
void setDefaultKeyNameForIdentity (const Name &keyName)
 Set the default key name for the corresponding identity. More...
 
void setDefaultCertificateNameForKey (const Name &certificateName)
 Set the default certificate name for the corresponding key. More...
 
Name getNewKeyName (const Name &identityName, bool useKsk)
 Generate a key name for the identity. More...
 
Name getDefaultCertificateNameForIdentity (const Name &identityName)
 Get the default certificate name for the specified identity. More...
 
Name getDefaultCertificateName ()
 Get the default certificate name of the default identity. More...
 
void addCertificateAsKeyDefault (const IdentityCertificate &certificate)
 Add a certificate and set the certificate as the default one of its corresponding key. More...
 
void addCertificateAsIdentityDefault (const IdentityCertificate &certificate)
 Add a certificate into the public key identity storage and set the certificate as the default one of its corresponding identity. More...
 
void addCertificateAsSystemDefault (const IdentityCertificate &certificate)
 Add a certificate into the public key identity storage and set the certificate as the default one of the default identity. More...
 
shared_ptr< IdentityCertificatedefaultCertificate ()
 get cached default certificate of the default identity. More...
 
void refreshDefaultCertificate ()
 try to get the default certificate of the default identity from the public info. More...
 

Protected Member Functions

virtual void setDefaultIdentityInternal (const Name &identityName)=0
 Set the default identity. More...
 
virtual void setDefaultKeyNameForIdentityInternal (const Name &keyName)=0
 Set the default key name for the corresponding identity. More...
 
virtual void setDefaultCertificateNameForKeyInternal (const Name &certificateName)=0
 Set the default certificate name for the corresponding key. More...
 
virtual void deleteCertificateInfo (const Name &certificateName)=0
 Delete a certificate. More...
 
virtual void deletePublicKeyInfo (const Name &keyName)=0
 Delete a public key and related certificates. More...
 
virtual void deleteIdentityInfo (const Name &identity)=0
 Delete an identity and related public keys and certificates. More...
 

Protected Attributes

shared_ptr< IdentityCertificatem_defaultCertificate
 

Detailed Description

SecPublicInfo is a base class for the storage of public information.

It specify interfaces related to public information, such as identity, public keys and certificates.

Definition at line 26 of file sec-public-info.hpp.

Constructor & Destructor Documentation

virtual ndn::SecPublicInfo::~SecPublicInfo ( )
inlinevirtual

The virtual Destructor.

Definition at line 43 of file sec-public-info.hpp.

Member Function Documentation

virtual void ndn::SecPublicInfo::addCertificate ( const IdentityCertificate certificate)
pure virtual

Add a certificate to the identity storage.

It will add the corresponding public key and identity if they do not exist.

Parameters
certificateThe certificate to be added.

Implemented in ndn::SecPublicInfoSqlite3, and ndn::SecPublicInfoMemory.

void ndn::SecPublicInfo::addCertificateAsIdentityDefault ( const IdentityCertificate certificate)
inline

Add a certificate into the public key identity storage and set the certificate as the default one of its corresponding identity.

Parameters
certificateThe certificate to be added.
Exceptions
SecPublicInfo::Errorif the certificate cannot be added (though it is really rare)

Definition at line 448 of file sec-public-info.hpp.

void ndn::SecPublicInfo::addCertificateAsKeyDefault ( const IdentityCertificate certificate)
inline

Add a certificate and set the certificate as the default one of its corresponding key.

Parameters
certificateThe certificate to be added.
Exceptions
SecPublicInfo::Errorif the certificate cannot be added (though it is really rare)

Definition at line 440 of file sec-public-info.hpp.

void ndn::SecPublicInfo::addCertificateAsSystemDefault ( const IdentityCertificate certificate)
inline

Add a certificate into the public key identity storage and set the certificate as the default one of the default identity.

Parameters
certificateThe certificate to be added.
Exceptions
SecPublicInfo::Errorif the certificate cannot be added (though it is really rare)

Definition at line 459 of file sec-public-info.hpp.

virtual void ndn::SecPublicInfo::addIdentity ( const Name identityName)
pure virtual

Add a new identity.

if identity already exist, do not add it again.

Parameters
identityNameThe identity name to be added.

Implemented in ndn::SecPublicInfoSqlite3, and ndn::SecPublicInfoMemory.

virtual void ndn::SecPublicInfo::addPublicKey ( const Name keyName,
KeyType  keyType,
const PublicKey publicKeyDer 
)
pure virtual

Add a public key to the identity storage.

Parameters
keyNameThe name of the public key to be added.
keyTypeType of the public key to be added.
publicKeyDerA blob of the public key DER to be added.

Implemented in ndn::SecPublicInfoSqlite3, and ndn::SecPublicInfoMemory.

shared_ptr< IdentityCertificate > ndn::SecPublicInfo::defaultCertificate ( )
inline

get cached default certificate of the default identity.

Returns
The certificate which might be a NULL pointer.

Definition at line 471 of file sec-public-info.hpp.

virtual void ndn::SecPublicInfo::deleteCertificateInfo ( const Name certificateName)
protectedpure virtual

Delete a certificate.

Parameters
certificateNameThe certificate name.

Implemented in ndn::SecPublicInfoSqlite3, and ndn::SecPublicInfoMemory.

virtual void ndn::SecPublicInfo::deleteIdentityInfo ( const Name identity)
protectedpure virtual

Delete an identity and related public keys and certificates.

Parameters
identityThe identity name.

Implemented in ndn::SecPublicInfoSqlite3, and ndn::SecPublicInfoMemory.

virtual void ndn::SecPublicInfo::deletePublicKeyInfo ( const Name keyName)
protectedpure virtual

Delete a public key and related certificates.

Parameters
keyNameThe key name.

Implemented in ndn::SecPublicInfoSqlite3, and ndn::SecPublicInfoMemory.

virtual bool ndn::SecPublicInfo::doesCertificateExist ( const Name certificateName)
pure virtual

Check if the specified certificate already exists.

Parameters
certificateNameThe name of the certificate.
Returns
true if the certificate exists, otherwise false.

Implemented in ndn::SecPublicInfoSqlite3, and ndn::SecPublicInfoMemory.

virtual bool ndn::SecPublicInfo::doesIdentityExist ( const Name identityName)
pure virtual

Check if the specified identity already exists.

Parameters
identityNameThe identity name.
Returns
true if the identity exists, otherwise false.

Implemented in ndn::SecPublicInfoSqlite3, and ndn::SecPublicInfoMemory.

virtual bool ndn::SecPublicInfo::doesPublicKeyExist ( const Name keyName)
pure virtual

Check if the specified key already exists.

Parameters
keyNameThe name of the key.
Returns
true if the key exists, otherwise false.

Implemented in ndn::SecPublicInfoSqlite3, and ndn::SecPublicInfoMemory.

virtual void ndn::SecPublicInfo::getAllCertificateNames ( std::vector< Name > &  nameList,
bool  isDefault 
)
pure virtual

Get all the certificate name in public info.

Parameters
nameListOn return, the certificate name list.
isDefaultIf specified, only the default certificates are returned.

Implemented in ndn::SecPublicInfoSqlite3, and ndn::SecPublicInfoMemory.

virtual void ndn::SecPublicInfo::getAllCertificateNamesOfKey ( const Name keyName,
std::vector< Name > &  nameList,
bool  isDefault 
)
pure virtual

Get all the certificate name of a particular key.

Parameters
identityThe specified key name.
nameListOn return, the certificate name list.
isDefaultIf specified, only the default certificate is returned.

Implemented in ndn::SecPublicInfoSqlite3, and ndn::SecPublicInfoMemory.

virtual void ndn::SecPublicInfo::getAllIdentities ( std::vector< Name > &  nameList,
bool  isDefault 
)
pure virtual

Get all the identities in public info.

Parameters
nameListOn return, the identity list.
isDefaultIf specified, only the default identity is returned.

Implemented in ndn::SecPublicInfoSqlite3, and ndn::SecPublicInfoMemory.

virtual void ndn::SecPublicInfo::getAllKeyNames ( std::vector< Name > &  nameList,
bool  isDefault 
)
pure virtual

Get all the key name in public info.

Parameters
nameListOn return, the key name list.
isDefaultIf specified, only the default keys are returned.

Implemented in ndn::SecPublicInfoSqlite3, and ndn::SecPublicInfoMemory.

virtual void ndn::SecPublicInfo::getAllKeyNamesOfIdentity ( const Name identity,
std::vector< Name > &  nameList,
bool  isDefault 
)
pure virtual

Get all the key name of a particular identity.

Parameters
identityThe specified identity name.
nameListOn return, the key name list.
isDefaultIf specified, only the default key is returned.

Implemented in ndn::SecPublicInfoSqlite3, and ndn::SecPublicInfoMemory.

virtual shared_ptr<IdentityCertificate> ndn::SecPublicInfo::getCertificate ( const Name certificateName)
pure virtual

Get a certificate from the identity storage.

Parameters
certificateNameThe name of the requested certificate.
Returns
The requested certificate.
Exceptions
SecPublicInfo::Errorif the certificate does not exist.

Implemented in ndn::SecPublicInfoSqlite3, and ndn::SecPublicInfoMemory.

Name ndn::SecPublicInfo::getDefaultCertificateName ( )
inline

Get the default certificate name of the default identity.

Returns
The requested certificate name.
Exceptions
SecPublicInfo::Errorif no certificate is found.

Definition at line 428 of file sec-public-info.hpp.

Name ndn::SecPublicInfo::getDefaultCertificateNameForIdentity ( const Name identityName)
inline

Get the default certificate name for the specified identity.

Parameters
identityNameThe identity name.
Returns
The default certificate name.
Exceptions
SecPublicInfo::Errorif no certificate is found.

Definition at line 402 of file sec-public-info.hpp.

virtual Name ndn::SecPublicInfo::getDefaultCertificateNameForKey ( const Name keyName)
pure virtual

Get the default certificate name for the specified key.

Parameters
keyNameThe key name.
Returns
The default certificate name.
Exceptions
SecPublicInfo::Errorif there is no default.

Implemented in ndn::SecPublicInfoSqlite3, and ndn::SecPublicInfoMemory.

virtual Name ndn::SecPublicInfo::getDefaultIdentity ( )
pure virtual

Get the default identity.

Parameters
returnThe name of default identity,
Exceptions
SecPublicInfo::Errorif there is no default.

Implemented in ndn::SecPublicInfoSqlite3, and ndn::SecPublicInfoMemory.

virtual Name ndn::SecPublicInfo::getDefaultKeyNameForIdentity ( const Name identityName)
pure virtual

Get the default key name for the specified identity.

Parameters
identityNameThe identity name.
Returns
The default key name.
Exceptions
SecPublicInfo::Errorif there is no default.

Implemented in ndn::SecPublicInfoSqlite3, and ndn::SecPublicInfoMemory.

Name ndn::SecPublicInfo::getNewKeyName ( const Name identityName,
bool  useKsk 
)
inline

Generate a key name for the identity.

Parameters
identityNameThe identity name.
useKskIf true, generate a KSK name, otherwise a DSK name.
Returns
The generated key name.

Definition at line 408 of file sec-public-info.hpp.

virtual shared_ptr<PublicKey> ndn::SecPublicInfo::getPublicKey ( const Name keyName)
pure virtual

Get the public key DER blob from the identity storage.

Parameters
keyNameThe name of the requested public key.
Returns
The DER Blob.
Exceptions
SecPublicInfo::Errorif public key does not exist.

Implemented in ndn::SecPublicInfoSqlite3, and ndn::SecPublicInfoMemory.

void ndn::SecPublicInfo::refreshDefaultCertificate ( )
inline

try to get the default certificate of the default identity from the public info.

Definition at line 477 of file sec-public-info.hpp.

virtual bool ndn::SecPublicInfo::revokeIdentity ( )
pure virtual

Revoke the identity.

Returns
true if the identity was revoked, otherwise false.

Implemented in ndn::SecPublicInfoSqlite3, and ndn::SecPublicInfoMemory.

void ndn::SecPublicInfo::setDefaultCertificateNameForKey ( const Name certificateName)
inline

Set the default certificate name for the corresponding key.

Parameters
certificateNameThe certificate name.
Exceptions
SecPublicInfo::Errorif either the certificate or key does not exist.

Definition at line 395 of file sec-public-info.hpp.

virtual void ndn::SecPublicInfo::setDefaultCertificateNameForKeyInternal ( const Name certificateName)
protectedpure virtual

Set the default certificate name for the corresponding key.

Parameters
certificateNameThe certificate name.
Exceptions
SecPublicInfo::Errorif the certificatedoes not exist.

Implemented in ndn::SecPublicInfoSqlite3, and ndn::SecPublicInfoMemory.

void ndn::SecPublicInfo::setDefaultIdentity ( const Name identityName)
inline

Set the default identity.

Parameters
identityNameThe default identity name.
Exceptions
SecPublicInfo::Errorif the identity does not exist.

Definition at line 381 of file sec-public-info.hpp.

virtual void ndn::SecPublicInfo::setDefaultIdentityInternal ( const Name identityName)
protectedpure virtual

Set the default identity.

Parameters
identityNameThe default identity name.

Implemented in ndn::SecPublicInfoSqlite3, and ndn::SecPublicInfoMemory.

void ndn::SecPublicInfo::setDefaultKeyNameForIdentity ( const Name keyName)
inline

Set the default key name for the corresponding identity.

Parameters
keyNameThe key name.
Exceptions
SecPublicInfo::Errorif either the identity or key does not exist.

Definition at line 388 of file sec-public-info.hpp.

virtual void ndn::SecPublicInfo::setDefaultKeyNameForIdentityInternal ( const Name keyName)
protectedpure virtual

Set the default key name for the corresponding identity.

Parameters
keyNameThe key name.
Exceptions
SecPublicInfo::Errorif the key does not exist.

Implemented in ndn::SecPublicInfoSqlite3, and ndn::SecPublicInfoMemory.

Field Documentation

shared_ptr<IdentityCertificate> ndn::SecPublicInfo::m_defaultCertificate
protected

Definition at line 377 of file sec-public-info.hpp.