NS-3 based Named Data Networking (NDN) simulator
ndnSIM 2.0: NDN, CCN, CCNx, content centric networks
API Documentation
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:
Collaboration diagram for ndn::SecPublicInfo:

Classes

class  Error
 

Public Member Functions

 SecPublicInfo (const std::string &location)
 
virtual ~SecPublicInfo ()
 The virtual Destructor. More...
 
virtual void setTpmLocator (const std::string &tpmLocator)=0
 Set the corresponding TPM information to tpmLocator. More...
 
virtual std::string getTpmLocator ()=0
 Get TPM Locator. More...
 
std::string getPibLocator ()
 Get PIB Locator. 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...
 
 DEPRECATED (void addPublicKey(const Name &keyName, KeyType keyType, const PublicKey &publicKey))
 Add a public key to the identity storage. More...
 
virtual void addKey (const Name &keyName, const PublicKey &publicKey)=0
 Add a public key to the identity storage. More...
 
virtual shared_ptr< PublicKeygetPublicKey (const Name &keyName)=0
 Get shared pointer to PublicKey object from the identity storage. More...
 
virtual KeyType getPublicKeyType (const Name &keyName)=0
 Get the type of the queried public key. 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< IdentityCertificategetCertificate (const Name &certificateName)=0
 Get a shared pointer to identity certificate object from the identity storage. More...
 
virtual Name getDefaultIdentity ()=0
 Get name of the default identity. More...
 
virtual Name getDefaultKeyNameForIdentity (const Name &identityName)=0
 Get name of the default key name for the specified identity. More...
 
virtual Name getDefaultCertificateNameForKey (const Name &keyName)=0
 Get name of the default certificate name for the specified key. More...
 
virtual void getAllIdentities (std::vector< Name > &nameList, bool isDefault)=0
 Get all the identities from public info. More...
 
virtual void getAllKeyNames (std::vector< Name > &nameList, bool isDefault)=0
 Get all the key names from public info. More...
 
virtual void getAllKeyNamesOfIdentity (const Name &identity, std::vector< Name > &nameList, bool isDefault)=0
 Get all the key names 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 name. 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...
 
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...
 
 DEPRECATED (shared_ptr< IdentityCertificate > defaultCertificate())
 Get cached default certificate of the default identity. More...
 
shared_ptr< IdentityCertificategetDefaultCertificate ()
 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 std::string getScheme ()=0
 return the scheme of the PibLocator More...
 

Protected Attributes

shared_ptr< IdentityCertificatem_defaultCertificate
 
std::string m_location
 

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 39 of file sec-public-info.hpp.

Constructor & Destructor Documentation

ndn::SecPublicInfo::SecPublicInfo ( const std::string &  location)
explicit

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

Referenced by ndn::SecPublicInfo::Error::Error().

ndn::SecPublicInfo::~SecPublicInfo ( )
virtual

The virtual Destructor.

Definition at line 31 of file sec-public-info.cpp.

Referenced by ndn::SecPublicInfo::Error::Error().

Member Function Documentation

virtual void ndn::SecPublicInfo::setTpmLocator ( const std::string &  tpmLocator)
pure virtual

Set the corresponding TPM information to tpmLocator.

If the provided tpmLocator is different from the existing one, the PIB will be reset, otherwise nothing will be changed.

For legacy issue, the TPM info may not exist (some old PIB content may not have this info), this method will simply set the TPM info as provided without changing anything else. Thus an ideal process of handling old PIB is to check if TPM info exists. If it does not exist, then set it to the default value according to configuration.

Implemented in ndn::security::DummyPublicInfo, and ndn::SecPublicInfoSqlite3.

Referenced by ndn::SecPublicInfo::Error::Error().

virtual std::string ndn::SecPublicInfo::getTpmLocator ( )
pure virtual

Get TPM Locator.

Exceptions
SecPublicInfo::Errorif the TPM info does not exist

Implemented in ndn::security::DummyPublicInfo, and ndn::SecPublicInfoSqlite3.

Referenced by ndn::SecPublicInfo::Error::Error().

std::string ndn::SecPublicInfo::getPibLocator ( )

Get PIB Locator.

Definition at line 36 of file sec-public-info.cpp.

References addKey(), getScheme(), and m_location.

Referenced by ndn::SecPublicInfo::Error::Error().

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::security::DummyPublicInfo.

Referenced by ndn::SecPublicInfo::Error::Error().

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::security::DummyPublicInfo.

Referenced by ndn::SecPublicInfo::Error::Error().

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::security::DummyPublicInfo.

Referenced by ndn::SecPublicInfo::Error::Error().

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::security::DummyPublicInfo.

Referenced by ndn::SecPublicInfo::Error::Error(), and getNewKeyName().

ndn::SecPublicInfo::DEPRECATED ( void   addPublicKeyconst Name &keyName, KeyType keyType, const PublicKey &publicKey)

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
publicKeyReference to the PublicKey object
Deprecated:
Use addKey instead

Referenced by ndn::SecPublicInfo::Error::Error().

virtual void ndn::SecPublicInfo::addKey ( const Name keyName,
const PublicKey publicKey 
)
pure virtual

Add a public key to the identity storage.

Parameters
keyNameThe name of the public key to be added
publicKeyReference to the PublicKey object

Implemented in ndn::SecPublicInfoSqlite3, and ndn::security::DummyPublicInfo.

Referenced by ndn::SecPublicInfo::Error::Error(), and getPibLocator().

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

Get shared pointer to PublicKey object from the identity storage.

Parameters
keyNameThe name of the requested public key
Exceptions
SecPublicInfo::Errorif public key does not exist

Implemented in ndn::SecPublicInfoSqlite3, and ndn::security::DummyPublicInfo.

Referenced by ndn::SecPublicInfo::Error::Error().

virtual KeyType ndn::SecPublicInfo::getPublicKeyType ( const Name keyName)
pure virtual

Get the type of the queried public key.

Note
KeyType is also available from PublicKey instance. This method is more efficient if only KeyType is needed.
Parameters
keyNameThe name of the requested public key
Returns
the type of the key. If the queried key does not exist, KEY_TYPE_NULL will be returned

Implemented in ndn::SecPublicInfoSqlite3, and ndn::security::DummyPublicInfo.

Referenced by ndn::SecPublicInfo::Error::Error().

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

Check if the specified certificate already exists.

Parameters
certificateNameThe name of the certificate

Implemented in ndn::SecPublicInfoSqlite3, and ndn::security::DummyPublicInfo.

Referenced by ndn::SecPublicInfo::Error::Error().

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::security::DummyPublicInfo.

Referenced by addCertificateAsIdentityDefault(), addCertificateAsKeyDefault(), addCertificateAsSystemDefault(), and ndn::SecPublicInfo::Error::Error().

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

Get a shared pointer to identity certificate object from the identity storage.

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

Implemented in ndn::SecPublicInfoSqlite3, and ndn::security::DummyPublicInfo.

Referenced by ndn::SecPublicInfo::Error::Error(), and refreshDefaultCertificate().

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

Get name of the default identity.

Exceptions
SecPublicInfo::Errorif there is no default.

Implemented in ndn::SecPublicInfoSqlite3, and ndn::security::DummyPublicInfo.

Referenced by ndn::SecPublicInfo::Error::Error(), and refreshDefaultCertificate().

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

Get name of the default key name for the specified identity.

Parameters
identityNameThe identity name
Exceptions
SecPublicInfo::Errorif there is no default

Implemented in ndn::SecPublicInfoSqlite3, and ndn::security::DummyPublicInfo.

Referenced by ndn::SecPublicInfo::Error::Error(), and getDefaultCertificateNameForIdentity().

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

Get name of the default certificate name for the specified key.

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

Implemented in ndn::SecPublicInfoSqlite3, and ndn::security::DummyPublicInfo.

Referenced by ndn::SecPublicInfo::Error::Error(), and getDefaultCertificateNameForIdentity().

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

Get all the identities from public info.

Parameters
[out]nameListOn return, the identity list
isDefaultIf specified, only the default identity is returned

Implemented in ndn::SecPublicInfoSqlite3, and ndn::security::DummyPublicInfo.

Referenced by ndn::SecPublicInfo::Error::Error().

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

Get all the key names from public info.

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

Implemented in ndn::SecPublicInfoSqlite3, and ndn::security::DummyPublicInfo.

Referenced by ndn::SecPublicInfo::Error::Error().

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

Get all the key names of a particular identity.

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

Implemented in ndn::SecPublicInfoSqlite3, and ndn::security::DummyPublicInfo.

Referenced by ndn::SecPublicInfo::Error::Error().

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

Get all the certificate name in public info.

Parameters
[out]nameListOn return, the certificate name list
isDefaultIf specified, only the default certificates are returned

Implemented in ndn::SecPublicInfoSqlite3, and ndn::security::DummyPublicInfo.

Referenced by ndn::SecPublicInfo::Error::Error().

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 name.

Parameters
keyNameThe specified key name
[out]nameListOn return, the certificate name list
isDefaultIf specified, only the default certificate is returned

Implemented in ndn::SecPublicInfoSqlite3, and ndn::security::DummyPublicInfo.

Referenced by ndn::SecPublicInfo::Error::Error().

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

Delete a certificate.

Parameters
certificateNameThe certificate name

Implemented in ndn::SecPublicInfoSqlite3, and ndn::security::DummyPublicInfo.

Referenced by ndn::SecPublicInfo::Error::Error().

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

Delete a public key and related certificates.

Parameters
keyNameThe key name

Implemented in ndn::SecPublicInfoSqlite3, and ndn::security::DummyPublicInfo.

Referenced by ndn::SecPublicInfo::Error::Error().

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

Delete an identity and related public keys and certificates.

Parameters
identityThe identity name

Implemented in ndn::SecPublicInfoSqlite3, and ndn::security::DummyPublicInfo.

Referenced by ndn::SecPublicInfo::Error::Error().

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

Set the default identity.

Parameters
identityNameThe default identity name

Implemented in ndn::security::DummyPublicInfo.

Referenced by addCertificateAsSystemDefault(), ndn::SecPublicInfo::Error::Error(), and setDefaultIdentity().

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::security::DummyPublicInfo.

Referenced by addCertificateAsIdentityDefault(), addCertificateAsSystemDefault(), ndn::SecPublicInfo::Error::Error(), and setDefaultKeyNameForIdentity().

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 certificate does not exist

Implemented in ndn::security::DummyPublicInfo.

Referenced by addCertificateAsIdentityDefault(), addCertificateAsKeyDefault(), addCertificateAsSystemDefault(), ndn::SecPublicInfo::Error::Error(), and setDefaultCertificateNameForKey().

virtual std::string ndn::SecPublicInfo::getScheme ( )
protectedpure virtual

return the scheme of the PibLocator

Implemented in ndn::security::DummyPublicInfo.

Referenced by ndn::SecPublicInfo::Error::Error(), and getPibLocator().

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

Set the default identity.

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

Definition at line 48 of file sec-public-info.cpp.

References refreshDefaultCertificate(), and setDefaultIdentityInternal().

Referenced by ndn::SecPublicInfo::Error::Error().

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

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 55 of file sec-public-info.cpp.

References refreshDefaultCertificate(), and setDefaultKeyNameForIdentityInternal().

Referenced by ndn::SecPublicInfo::Error::Error().

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

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 62 of file sec-public-info.cpp.

References refreshDefaultCertificate(), and setDefaultCertificateNameForKeyInternal().

Referenced by ndn::SecPublicInfo::Error::Error().

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

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 87 of file sec-public-info.cpp.

References doesPublicKeyExist(), ns3::ndn::Name, ndn::time::system_clock::now(), ndn::time::toUnixTimestamp(), and ndn::Name::toUri().

Referenced by ndn::SecPublicInfo::Error::Error().

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

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 69 of file sec-public-info.cpp.

References getDefaultCertificateNameForKey(), and getDefaultKeyNameForIdentity().

Referenced by ndn::SecPublicInfo::Error::Error(), and refreshDefaultCertificate().

Name ndn::SecPublicInfo::getDefaultCertificateName ( )

Get the default certificate name of the default identity.

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

Definition at line 75 of file sec-public-info.cpp.

References m_defaultCertificate, and refreshDefaultCertificate().

Referenced by ndn::SecPublicInfo::Error::Error().

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

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 107 of file sec-public-info.cpp.

References addCertificate(), ndn::Data::getName(), refreshDefaultCertificate(), and setDefaultCertificateNameForKeyInternal().

Referenced by ndn::SecPublicInfo::Error::Error().

void ndn::SecPublicInfo::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.

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

Definition at line 115 of file sec-public-info.cpp.

References addCertificate(), ndn::IdentityCertificate::certificateNameToPublicKeyName(), ndn::Data::getName(), refreshDefaultCertificate(), setDefaultCertificateNameForKeyInternal(), and setDefaultKeyNameForIdentityInternal().

Referenced by ndn::SecPublicInfo::Error::Error().

void ndn::SecPublicInfo::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.

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

Definition at line 126 of file sec-public-info.cpp.

References addCertificate(), ndn::IdentityCertificate::certificateNameToPublicKeyName(), getDefaultCertificate(), ndn::Data::getName(), ndn::Name::getPrefix(), refreshDefaultCertificate(), setDefaultCertificateNameForKeyInternal(), setDefaultIdentityInternal(), and setDefaultKeyNameForIdentityInternal().

Referenced by ndn::SecPublicInfo::Error::Error().

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

Get cached default certificate of the default identity.

Returns
The certificate which might be empty shared_ptr<IdentityCertificate>()
Deprecated:
Use getDefaultCertificate instead
shared_ptr< IdentityCertificate > ndn::SecPublicInfo::getDefaultCertificate ( )

Get cached default certificate of the default identity.

Returns
The certificate which might be empty shared_ptr<IdentityCertificate>()

Definition at line 144 of file sec-public-info.cpp.

References m_defaultCertificate.

Referenced by addCertificateAsSystemDefault(), and ndn::SecPublicInfo::Error::Error().

Member Data Documentation

shared_ptr<IdentityCertificate> ndn::SecPublicInfo::m_defaultCertificate
protected
std::string ndn::SecPublicInfo::m_location
protected

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

Referenced by ndn::SecPublicInfoSqlite3::getPibLocator(), and getPibLocator().


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