Abstract interface for a TPM backend implementation. More...
#include <ndn-cxx/security/tpm/back-end.hpp>
 Inheritance diagram for ndn::security::tpm::BackEnd:
 Inheritance diagram for ndn::security::tpm::BackEnd: Collaboration diagram for ndn::security::tpm::BackEnd:
 Collaboration diagram for ndn::security::tpm::BackEnd:| Public Types | |
| using | Error = Tpm::Error | 
| Public Member Functions | |
| virtual | ~BackEnd () | 
| unique_ptr< KeyHandle > | createKey (const Name &identityName, const KeyParams ¶ms) | 
| Create a key for identityNameaccording toparams.  More... | |
| void | deleteKey (const Name &keyName) | 
| Delete the key with name keyName.  More... | |
| ConstBufferPtr | exportKey (const Name &keyName, const char *pw, size_t pwLen) | 
| Get the private key with name keyNamein encrypted PKCS #8 format.  More... | |
| unique_ptr< KeyHandle > | getKeyHandle (const Name &keyName) const | 
| Get the handle of the key with name keyName.  More... | |
| bool | hasKey (const Name &keyName) const | 
| Check if the key with name keyNameexists in the TPM.  More... | |
| void | importKey (const Name &keyName, const uint8_t *pkcs8, size_t pkcs8Len, const char *pw, size_t pwLen) | 
| Import a private key in encrypted PKCS #8 format.  More... | |
| void | importKey (const Name &keyName, shared_ptr< transform::PrivateKey > key) | 
| Import a private key.  More... | |
| virtual bool | isTerminalMode () const | 
| Check if the TPM is in terminal mode.  More... | |
| virtual bool | isTpmLocked () const | 
| Check if the TPM is locked.  More... | |
| virtual void | setTerminalMode (bool isTerminal) const | 
| Set the terminal mode of the TPM.  More... | |
| virtual bool | unlockTpm (const char *pw, size_t pwLen) const | 
| Unlock the TPM.  More... | |
| Protected Member Functions | |
| Name | constructAsymmetricKeyName (const KeyHandle &key, const Name &identity, const KeyParams ¶ms) const | 
| Construct and return the name of a RSA or EC key, based on identityandparams.  More... | |
| Name | constructHmacKeyName (const transform::PrivateKey &key, const Name &identity, const KeyParams ¶ms) const | 
| Construct and return the name of a HMAC key, based on identityandparams.  More... | |
Abstract interface for a TPM backend implementation.
This class provides KeyHandle to the front-end and other TPM management operations.
Definition at line 36 of file back-end.hpp.
Definition at line 39 of file back-end.hpp.
| 
 | virtualdefault | 
| 
 | protected | 
Construct and return the name of a RSA or EC key, based on identity and params. 
Definition at line 114 of file back-end.cpp.
| 
 | protected | 
Construct and return the name of a HMAC key, based on identity and params. 
Definition at line 144 of file back-end.cpp.
| unique_ptr< KeyHandle > ndn::security::tpm::BackEnd::createKey | ( | const Name & | identityName, | 
| const KeyParams & | params | ||
| ) | 
Create a key for identityName according to params. 
| std::invalid_argument | paramsare invalid. | 
| Error | The key could not be created. | 
Definition at line 53 of file back-end.cpp.
| void ndn::security::tpm::BackEnd::deleteKey | ( | const Name & | keyName | ) | 
Delete the key with name keyName. 
| Error | The key could not be deleted. | 
Definition at line 81 of file back-end.cpp.
| ConstBufferPtr ndn::security::tpm::BackEnd::exportKey | ( | const Name & | keyName, | 
| const char * | pw, | ||
| size_t | pwLen | ||
| ) | 
Get the private key with name keyName in encrypted PKCS #8 format. 
| keyName | The name of the key. | 
| pw | The password to encrypt the private key. | 
| pwLen | The length of the password. | 
| Error | The key does not exist or cannot be exported. | 
Definition at line 87 of file back-end.cpp.
Get the handle of the key with name keyName. 
Calling this function multiple times with the same keyName will return different KeyHandle objects that all refer to the same key.
Definition at line 47 of file back-end.cpp.
| bool ndn::security::tpm::BackEnd::hasKey | ( | const Name & | keyName | ) | const | 
Check if the key with name keyName exists in the TPM. 
Definition at line 41 of file back-end.cpp.
| void ndn::security::tpm::BackEnd::importKey | ( | const Name & | keyName, | 
| const uint8_t * | pkcs8, | ||
| size_t | pkcs8Len, | ||
| const char * | pw, | ||
| size_t | pwLen | ||
| ) | 
Import a private key in encrypted PKCS #8 format.
| keyName | The name of the key to use in the TPM. | 
| pkcs8 | Pointer to the key in encrypted PKCS #8 format. | 
| pkcs8Len | The size of the key in encrypted PKCS #8 format. | 
| pw | The password to decrypt the private key. | 
| pwLen | The length of the password. | 
| Error | The key could not be imported. | 
Definition at line 96 of file back-end.cpp.
| void ndn::security::tpm::BackEnd::importKey | ( | const Name & | keyName, | 
| shared_ptr< transform::PrivateKey > | key | ||
| ) | 
Import a private key.
| Error | The key could not be imported. | 
Definition at line 105 of file back-end.cpp.
| 
 | virtual | 
Check if the TPM is in terminal mode.
The default implementation always returns true.
Definition at line 151 of file back-end.cpp.
| 
 | virtual | 
Check if the TPM is locked.
The default implementation always returns false.
Definition at line 162 of file back-end.cpp.
| 
 | virtual | 
Set the terminal mode of the TPM.
In terminal mode, the TPM will not ask for a password from the GUI. The default implementation does nothing.
Definition at line 157 of file back-end.cpp.
| 
 | virtual | 
Unlock the TPM.
The default implementation does nothing and returns !isTpmLocked().
| pw | The password to unlock the TPM. | 
| pwLen | The length of the password. | 
Definition at line 168 of file back-end.cpp.