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