22 #ifndef NDN_SECURITY_TPM_TPM_HPP 23 #define NDN_SECURITY_TPM_TPM_HPP 26 #include "../key-params.hpp" 27 #include "../../name.hpp" 29 #include <unordered_map> 63 class Tpm : noncopyable
66 class Error :
public std::runtime_error
71 :
std::runtime_error(what)
80 getTpmLocator()
const;
89 hasKey(
const Name& keyName)
const;
98 getPublicKey(
const Name& keyName)
const;
106 sign(
const uint8_t* buf,
size_t size,
const Name& keyName,
DigestAlgorithm digestAlgorithm)
const;
114 decrypt(
const uint8_t* buf,
size_t size,
const Name& keyName)
const;
121 isTerminalMode()
const;
129 setTerminalMode(
bool isTerminal)
const;
144 unlockTpm(
const char* password,
size_t passwordLength)
const;
154 Tpm(
const std::string& scheme,
const std::string& location, unique_ptr<BackEnd> impl);
165 createKey(
const Name& identityName,
const KeyParams& params);
171 deleteKey(
const Name& keyName);
185 exportPrivateKey(
const Name& keyName,
const char* pw,
size_t pwLen)
const;
198 importPrivateKey(
const Name& keyName,
const uint8_t* pkcs8,
size_t pkcs8Len,
199 const char* pw,
size_t pwLen);
219 findKey(
const Name& keyName)
const;
222 std::string m_scheme;
223 std::string m_location;
225 mutable std::unordered_map<Name, unique_ptr<KeyHandle>> m_keys;
227 const unique_ptr<BackEnd> m_backEnd;
239 #endif // NDN_SECURITY_TPM_TPM_HPP
Copyright (c) 2013-2017 Regents of the University of California.
The interface of signing key management.
#define NDN_CXX_PUBLIC_WITH_TESTS_ELSE_PRIVATE
Abstraction of TPM key handle.
represents the front-end of TPM
Represents an absolute name.
Base class of key parameters.
Error(const std::string &what)
shared_ptr< const Buffer > ConstBufferPtr