22 #ifndef NDN_CXX_SECURITY_TPM_BACK_END_HPP 
   23 #define NDN_CXX_SECURITY_TPM_BACK_END_HPP 
  109   importKey(
const Name& keyName, span<const uint8_t> pkcs8, 
const char* pw, 
size_t pwLen);
 
  117   importKey(
const Name& keyName, shared_ptr<transform::PrivateKey> key);
 
  159   unlockTpm(
const char* pw, 
size_t pwLen) 
const;
 
  178   doHasKey(
const Name& keyName) 
const = 0;
 
  180   virtual unique_ptr<KeyHandle>
 
  181   doGetKeyHandle(
const Name& keyName) 
const = 0;
 
  183   virtual unique_ptr<KeyHandle>
 
  184   doCreateKey(
const Name& identity, 
const KeyParams& params) = 0;
 
  187   doDeleteKey(
const Name& keyName) = 0;
 
  190   doExportKey(
const Name& keyName, 
const char* pw, 
size_t pwLen) = 0;
 
  193   doImportKey(
const Name& keyName, span<const uint8_t> pkcs8, 
const char* pw, 
size_t pwLen) = 0;
 
  196   doImportKey(
const Name& keyName, shared_ptr<transform::PrivateKey> key) = 0;
 
#define NDN_CXX_NODISCARD
 
Base class for key parameters.
 
Represents an absolute name.
 
Abstract interface for a TPM backend implementation.
 
unique_ptr< KeyHandle > createKey(const Name &identityName, const KeyParams ¶ms)
Create a key for identityName according to params.
 
void importKey(const Name &keyName, span< const uint8_t > pkcs8, const char *pw, size_t pwLen)
Import a private key in encrypted PKCS #8 format.
 
virtual bool unlockTpm(const char *pw, size_t pwLen) const
Unlock the TPM.
 
bool hasKey(const Name &keyName) const
Check if the key with name keyName exists in the TPM.
 
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 identity and params.
 
virtual bool isTerminalMode() const
Check if the TPM is in terminal mode.
 
virtual void setTerminalMode(bool isTerminal) const
Set the terminal mode of the TPM.
 
void deleteKey(const Name &keyName)
Delete the key with name keyName.
 
virtual bool isTpmLocked() const
Check if the TPM is locked.
 
ConstBufferPtr exportKey(const Name &keyName, const char *pw, size_t pwLen)
Get the private key with name keyName in encrypted PKCS #8 format.
 
unique_ptr< KeyHandle > getKeyHandle(const Name &keyName) const
Get the handle of the key with name keyName.
 
Name constructHmacKeyName(const transform::PrivateKey &key, const Name &identity, const KeyParams ¶ms) const
Construct and return the name of a HMAC key, based on identity and params.
 
Abstraction of TPM key handle.
 
shared_ptr< const Buffer > ConstBufferPtr