SecPublicInfo is a base class for the storage of public information. More...
#include <sec-public-info.hpp>
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 v1::PublicKey &publicKey)) | |
Add a public key to the identity storage. More... | |
virtual void | addKey (const Name &keyName, const v1::PublicKey &publicKey)=0 |
Add a public key to the identity storage. More... | |
virtual shared_ptr< v1::PublicKey > | getPublicKey (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 v1::IdentityCertificate &certificate)=0 |
Add a certificate to the identity storage. More... | |
virtual shared_ptr< v1::IdentityCertificate > | getCertificate (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 v1::IdentityCertificate &certificate) |
Add a certificate and set the certificate as the default one of its corresponding key. More... | |
void | addCertificateAsIdentityDefault (const v1::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 v1::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< v1::IdentityCertificate > defaultCertificate()) | |
Get cached default certificate of the default identity. More... | |
shared_ptr< v1::IdentityCertificate > | getDefaultCertificate () |
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< v1::IdentityCertificate > | m_defaultCertificate |
std::string | m_location |
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.
|
explicit |
Definition at line 27 of file sec-public-info.cpp.
Referenced by ndn::security::SecPublicInfo::Error::Error().
|
virtual |
The virtual Destructor.
Definition at line 32 of file sec-public-info.cpp.
Referenced by ndn::security::SecPublicInfo::Error::Error().
|
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::security::SecPublicInfoSqlite3.
Referenced by ndn::security::SecPublicInfo::Error::Error().
|
pure virtual |
Get TPM Locator.
SecPublicInfo::Error | if the TPM info does not exist |
Implemented in ndn::security::DummyPublicInfo, and ndn::security::SecPublicInfoSqlite3.
Referenced by ndn::security::SecPublicInfo::Error::Error().
std::string ndn::security::SecPublicInfo::getPibLocator | ( | ) |
Get PIB Locator.
Definition at line 37 of file sec-public-info.cpp.
References addKey(), getScheme(), and m_location.
Referenced by ndn::security::SecPublicInfo::Error::Error().
|
pure virtual |
Check if the specified identity already exists.
identityName | The identity name |
Implemented in ndn::security::SecPublicInfoSqlite3, and ndn::security::DummyPublicInfo.
Referenced by ndn::security::SecPublicInfo::Error::Error().
|
pure virtual |
Add a new identity.
if identity already exist, do not add it again
identityName | The identity name to be added |
Implemented in ndn::security::SecPublicInfoSqlite3, and ndn::security::DummyPublicInfo.
Referenced by ndn::security::SecPublicInfo::Error::Error().
|
pure virtual |
Revoke the identity.
Implemented in ndn::security::SecPublicInfoSqlite3, and ndn::security::DummyPublicInfo.
Referenced by ndn::security::SecPublicInfo::Error::Error().
|
pure virtual |
Check if the specified key already exists.
keyName | The name of the key |
Implemented in ndn::security::SecPublicInfoSqlite3, and ndn::security::DummyPublicInfo.
Referenced by ndn::security::SecPublicInfo::Error::Error(), and getNewKeyName().
ndn::security::SecPublicInfo::DEPRECATED | ( | void | addPublicKeyconst Name &keyName, KeyType keyType, const v1::PublicKey &publicKey | ) |
Add a public key to the identity storage.
keyName | The name of the public key to be added |
keyType | Type of the public key to be added |
publicKey | Reference to the PublicKey object |
Referenced by ndn::security::SecPublicInfo::Error::Error().
|
pure virtual |
Add a public key to the identity storage.
keyName | The name of the public key to be added |
publicKey | Reference to the PublicKey object |
Implemented in ndn::security::SecPublicInfoSqlite3, and ndn::security::DummyPublicInfo.
Referenced by ndn::security::SecPublicInfo::Error::Error(), and getPibLocator().
|
pure virtual |
Get shared pointer to PublicKey object from the identity storage.
keyName | The name of the requested public key |
SecPublicInfo::Error | if public key does not exist |
Implemented in ndn::security::SecPublicInfoSqlite3, and ndn::security::DummyPublicInfo.
Referenced by ndn::security::SecPublicInfo::Error::Error().
Get the type of the queried public key.
keyName | The name of the requested public key |
Implemented in ndn::security::SecPublicInfoSqlite3, and ndn::security::DummyPublicInfo.
Referenced by ndn::security::SecPublicInfo::Error::Error().
|
pure virtual |
Check if the specified certificate already exists.
certificateName | The name of the certificate |
Implemented in ndn::security::SecPublicInfoSqlite3, and ndn::security::DummyPublicInfo.
Referenced by ndn::security::SecPublicInfo::Error::Error().
|
pure virtual |
Add a certificate to the identity storage.
It will add the corresponding public key and identity if they do not exist
certificate | The certificate to be added |
Implemented in ndn::security::SecPublicInfoSqlite3, and ndn::security::DummyPublicInfo.
Referenced by addCertificateAsIdentityDefault(), addCertificateAsKeyDefault(), addCertificateAsSystemDefault(), and ndn::security::SecPublicInfo::Error::Error().
|
pure virtual |
Get a shared pointer to identity certificate object from the identity storage.
certificateName | The name of the requested certificate |
SecPublicInfo::Error | if the certificate does not exist |
Implemented in ndn::security::SecPublicInfoSqlite3, and ndn::security::DummyPublicInfo.
Referenced by ndn::security::SecPublicInfo::Error::Error(), and refreshDefaultCertificate().
|
pure virtual |
Get name of the default identity.
SecPublicInfo::Error | if there is no default. |
Implemented in ndn::security::SecPublicInfoSqlite3, and ndn::security::DummyPublicInfo.
Referenced by ndn::security::SecPublicInfo::Error::Error(), and refreshDefaultCertificate().
|
pure virtual |
Get name of the default key name for the specified identity.
identityName | The identity name |
SecPublicInfo::Error | if there is no default |
Implemented in ndn::security::SecPublicInfoSqlite3, and ndn::security::DummyPublicInfo.
Referenced by ndn::security::SecPublicInfo::Error::Error(), and getDefaultCertificateNameForIdentity().
|
pure virtual |
Get name of the default certificate name for the specified key.
keyName | The key name. |
SecPublicInfo::Error | if there is no default. |
Implemented in ndn::security::SecPublicInfoSqlite3, and ndn::security::DummyPublicInfo.
Referenced by ndn::security::SecPublicInfo::Error::Error(), and getDefaultCertificateNameForIdentity().
|
pure virtual |
Get all the identities from public info.
[out] | nameList | On return, the identity list |
isDefault | If specified, only the default identity is returned |
Implemented in ndn::security::SecPublicInfoSqlite3, and ndn::security::DummyPublicInfo.
Referenced by ndn::security::SecPublicInfo::Error::Error().
|
pure virtual |
Get all the key names from public info.
[out] | nameList | On return, the key name list. |
isDefault | If specified, only the default keys are returned |
Implemented in ndn::security::SecPublicInfoSqlite3, and ndn::security::DummyPublicInfo.
Referenced by ndn::security::SecPublicInfo::Error::Error().
|
pure virtual |
Get all the key names of a particular identity.
identity | The specified identity name | |
[out] | nameList | On return, the key name list |
isDefault | If specified, only the default key is returned |
Implemented in ndn::security::SecPublicInfoSqlite3, and ndn::security::DummyPublicInfo.
Referenced by ndn::security::SecPublicInfo::Error::Error().
|
pure virtual |
Get all the certificate name in public info.
[out] | nameList | On return, the certificate name list |
isDefault | If specified, only the default certificates are returned |
Implemented in ndn::security::SecPublicInfoSqlite3, and ndn::security::DummyPublicInfo.
Referenced by ndn::security::SecPublicInfo::Error::Error().
|
pure virtual |
Get all the certificate name of a particular key name.
keyName | The specified key name | |
[out] | nameList | On return, the certificate name list |
isDefault | If specified, only the default certificate is returned |
Implemented in ndn::security::SecPublicInfoSqlite3, and ndn::security::DummyPublicInfo.
Referenced by ndn::security::SecPublicInfo::Error::Error().
|
pure virtual |
Delete a certificate.
certificateName | The certificate name |
Implemented in ndn::security::SecPublicInfoSqlite3, and ndn::security::DummyPublicInfo.
Referenced by ndn::security::SecPublicInfo::Error::Error().
|
pure virtual |
Delete a public key and related certificates.
keyName | The key name |
Implemented in ndn::security::SecPublicInfoSqlite3, and ndn::security::DummyPublicInfo.
Referenced by ndn::security::SecPublicInfo::Error::Error().
|
pure virtual |
Delete an identity and related public keys and certificates.
identity | The identity name |
Implemented in ndn::security::SecPublicInfoSqlite3, and ndn::security::DummyPublicInfo.
Referenced by ndn::security::SecPublicInfo::Error::Error().
|
protectedpure virtual |
Set the default identity.
identityName | The default identity name |
Implemented in ndn::security::DummyPublicInfo.
Referenced by addCertificateAsSystemDefault(), ndn::security::SecPublicInfo::Error::Error(), and setDefaultIdentity().
|
protectedpure virtual |
Set the default key name for the corresponding identity.
keyName | The key name |
SecPublicInfo::Error | if the key does not exist |
Implemented in ndn::security::DummyPublicInfo.
Referenced by addCertificateAsIdentityDefault(), addCertificateAsSystemDefault(), ndn::security::SecPublicInfo::Error::Error(), and setDefaultKeyNameForIdentity().
|
protectedpure virtual |
Set the default certificate name for the corresponding key.
certificateName | The certificate name |
SecPublicInfo::Error | if the certificate does not exist |
Implemented in ndn::security::DummyPublicInfo.
Referenced by addCertificateAsIdentityDefault(), addCertificateAsKeyDefault(), addCertificateAsSystemDefault(), ndn::security::SecPublicInfo::Error::Error(), and setDefaultCertificateNameForKey().
|
protectedpure virtual |
return the scheme of the PibLocator
Implemented in ndn::security::DummyPublicInfo.
Referenced by ndn::security::SecPublicInfo::Error::Error(), and getPibLocator().
void ndn::security::SecPublicInfo::setDefaultIdentity | ( | const Name & | identityName | ) |
Set the default identity.
identityName | The default identity name |
SecPublicInfo::Error | if the identity does not exist |
Definition at line 49 of file sec-public-info.cpp.
References refreshDefaultCertificate(), and setDefaultIdentityInternal().
Referenced by ndn::security::SecPublicInfo::Error::Error().
void ndn::security::SecPublicInfo::setDefaultKeyNameForIdentity | ( | const Name & | keyName | ) |
Set the default key name for the corresponding identity.
keyName | The key name |
SecPublicInfo::Error | if either the identity or key does not exist |
Definition at line 56 of file sec-public-info.cpp.
References refreshDefaultCertificate(), and setDefaultKeyNameForIdentityInternal().
Referenced by ndn::security::SecPublicInfo::Error::Error().
void ndn::security::SecPublicInfo::setDefaultCertificateNameForKey | ( | const Name & | certificateName | ) |
Set the default certificate name for the corresponding key.
certificateName | The certificate name |
SecPublicInfo::Error | if either the certificate or key does not exist |
Definition at line 63 of file sec-public-info.cpp.
References refreshDefaultCertificate(), and setDefaultCertificateNameForKeyInternal().
Referenced by ndn::security::SecPublicInfo::Error::Error().
Generate a key name for the identity.
identityName | The identity name |
useKsk | If true, generate a KSK name, otherwise a DSK name |
Definition at line 88 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::security::SecPublicInfo::Error::Error().
Name ndn::security::SecPublicInfo::getDefaultCertificateNameForIdentity | ( | const Name & | identityName | ) |
Get the default certificate name for the specified identity.
identityName | The identity name |
SecPublicInfo::Error | if no certificate is found |
Definition at line 70 of file sec-public-info.cpp.
References getDefaultCertificateNameForKey(), and getDefaultKeyNameForIdentity().
Referenced by ndn::security::SecPublicInfo::Error::Error(), and refreshDefaultCertificate().
Name ndn::security::SecPublicInfo::getDefaultCertificateName | ( | ) |
Get the default certificate name of the default identity.
SecPublicInfo::Error | if no certificate is found |
Definition at line 76 of file sec-public-info.cpp.
References m_defaultCertificate, and refreshDefaultCertificate().
Referenced by ndn::security::SecPublicInfo::Error::Error().
void ndn::security::SecPublicInfo::addCertificateAsKeyDefault | ( | const v1::IdentityCertificate & | certificate | ) |
Add a certificate and set the certificate as the default one of its corresponding key.
certificate | The certificate to be added |
SecPublicInfo::Error | if the certificate cannot be added (though it is really rare) |
Definition at line 108 of file sec-public-info.cpp.
References addCertificate(), ndn::Data::getName(), refreshDefaultCertificate(), and setDefaultCertificateNameForKeyInternal().
Referenced by ndn::security::SecPublicInfo::Error::Error().
void ndn::security::SecPublicInfo::addCertificateAsIdentityDefault | ( | const v1::IdentityCertificate & | certificate | ) |
Add a certificate into the public key identity storage and set the certificate as the default one of its corresponding identity.
certificate | The certificate to be added |
SecPublicInfo::Error | if the certificate cannot be added (though it is really rare) |
Definition at line 116 of file sec-public-info.cpp.
References addCertificate(), ndn::security::v1::IdentityCertificate::certificateNameToPublicKeyName(), ndn::Data::getName(), refreshDefaultCertificate(), setDefaultCertificateNameForKeyInternal(), and setDefaultKeyNameForIdentityInternal().
Referenced by ndn::security::SecPublicInfo::Error::Error().
void ndn::security::SecPublicInfo::addCertificateAsSystemDefault | ( | const v1::IdentityCertificate & | certificate | ) |
Add a certificate into the public key identity storage and set the certificate as the default one of the default identity.
certificate | The certificate to be added |
SecPublicInfo::Error | if the certificate cannot be added (though it is really rare) |
Definition at line 127 of file sec-public-info.cpp.
References addCertificate(), ndn::security::v1::IdentityCertificate::certificateNameToPublicKeyName(), getDefaultCertificate(), ndn::Data::getName(), ndn::Name::getPrefix(), refreshDefaultCertificate(), setDefaultCertificateNameForKeyInternal(), setDefaultIdentityInternal(), and setDefaultKeyNameForIdentityInternal().
Referenced by ndn::security::SecPublicInfo::Error::Error().
ndn::security::SecPublicInfo::DEPRECATED | ( | shared_ptr< v1::IdentityCertificate > | defaultCertificate() | ) |
Get cached default certificate of the default identity.
shared_ptr< v1::IdentityCertificate > ndn::security::SecPublicInfo::getDefaultCertificate | ( | ) |
Get cached default certificate of the default identity.
Definition at line 145 of file sec-public-info.cpp.
References m_defaultCertificate.
Referenced by addCertificateAsSystemDefault(), and ndn::security::SecPublicInfo::Error::Error().
void ndn::security::SecPublicInfo::refreshDefaultCertificate | ( | ) |
try to get the default certificate of the default identity from the public info
Definition at line 151 of file sec-public-info.cpp.
References getCertificate(), getDefaultCertificateNameForIdentity(), getDefaultIdentity(), and m_defaultCertificate.
Referenced by addCertificateAsIdentityDefault(), addCertificateAsKeyDefault(), addCertificateAsSystemDefault(), ndn::security::SecPublicInfo::Error::Error(), getDefaultCertificateName(), setDefaultCertificateNameForKey(), setDefaultIdentity(), and setDefaultKeyNameForIdentity().
|
protected |
Definition at line 454 of file sec-public-info.hpp.
Referenced by getDefaultCertificate(), getDefaultCertificateName(), and refreshDefaultCertificate().
|
protected |
Definition at line 455 of file sec-public-info.hpp.
Referenced by ndn::security::SecPublicInfoSqlite3::getPibLocator(), and getPibLocator().