#include <sec-tpm-osx.hpp>
Inheritance diagram for ndn::security::v1::SecTpmOsx:
Collaboration diagram for ndn::security::v1::SecTpmOsx:Classes | |
| class | Error |
Public Member Functions | |
| SecTpmOsx (const std::string &location="") | |
| virtual | ~SecTpmOsx () |
| virtual void | addAppToAcl (const Name &keyName, KeyClass keyClass, const std::string &appPath, AclType acl) |
| Add the application into the ACL of a particular key. More... | |
| virtual ConstBufferPtr | decryptInTpm (const uint8_t *data, size_t dataLength, const Name &keyName, bool isSymmetric) |
| Decrypt data. More... | |
| virtual void | deleteKeyPairInTpm (const Name &keyName) |
| Delete a key pair of asymmetric keys. More... | |
| virtual bool | doesKeyExistInTpm (const Name &keyName, KeyClass keyClass) |
| Check if a particular key exists. More... | |
| virtual ConstBufferPtr | encryptInTpm (const uint8_t *data, size_t dataLength, const Name &keyName, bool isSymmetric) |
| Encrypt data. More... | |
| ConstBufferPtr | exportPrivateKeyPkcs5FromTpm (const Name &keyName, const std::string &password) |
| Export a private key in PKCS#5 format. More... | |
| virtual void | generateKeyPairInTpm (const Name &keyName, const KeyParams ¶ms) |
| Generate a pair of asymmetric keys. More... | |
| virtual bool | generateRandomBlock (uint8_t *res, size_t size) |
| Generate a random block. More... | |
| virtual void | generateSymmetricKeyInTpm (const Name &keyName, const KeyParams ¶ms) |
| Generate a symmetric key. More... | |
| virtual bool | getInTerminal () const |
| Get value of inTerminal flag. More... | |
| virtual shared_ptr< v1::PublicKey > | getPublicKeyFromTpm (const Name &keyName) |
| Get a public key. More... | |
| std::string | getTpmLocator () |
| bool | importPrivateKeyPkcs5IntoTpm (const Name &keyName, const uint8_t *buffer, size_t bufferSize, const std::string &password) |
Import a private key in PKCS#5 formatted buffer of size bufferSize. More... | |
| virtual bool | isLocked () |
| Check if TPM is locked. More... | |
| virtual void | resetTpmPassword () |
| reset password of TPM More... | |
| virtual void | setInTerminal (bool inTerminal) |
Set inTerminal flag to inTerminal. More... | |
| virtual void | setTpmPassword (const uint8_t *password, size_t passwordLength) |
| set password of TPM More... | |
| virtual Block | signInTpm (const uint8_t *data, size_t dataLength, const Name &keyName, DigestAlgorithm digestAlgorithm) |
| Sign data. More... | |
| virtual bool | unlockTpm (const char *password, size_t passwordLength, bool usePassword) |
| Unlock the TPM. More... | |
Static Public Attributes | |
| static const std::string | SCHEME |
Protected Member Functions | |
| void | deleteKeyPairInTpmInternal (const Name &keyName, bool needRetry) |
| virtual ConstBufferPtr | exportPrivateKeyPkcs8FromTpm (const Name &keyName) |
| Export a private key in PKCS#8 format. More... | |
| ConstBufferPtr | exportPrivateKeyPkcs8FromTpmInternal (const Name &keyName, bool needRetry) |
| void | generateKeyPairInTpmInternal (const Name &keyName, const KeyParams ¶ms, bool needRetry) |
| virtual bool | getImpExpPassWord (std::string &password, const std::string &prompt) |
| Get import/export password. More... | |
| virtual std::string | getScheme () |
| virtual bool | importPrivateKeyPkcs8IntoTpm (const Name &keyName, const uint8_t *buf, size_t size) |
Import a private key from PKCS#8 formatted buffer of size bufferSize. More... | |
| bool | importPrivateKeyPkcs8IntoTpmInternal (const Name &keyName, const uint8_t *buf, size_t size, bool needRetry) |
| virtual bool | importPublicKeyPkcs1IntoTpm (const Name &keyName, const uint8_t *buf, size_t size) |
Import a public key in PKCS#1 formatted buffer of size bufferSize. More... | |
| Block | signInTpmInternal (const uint8_t *data, size_t dataLength, const Name &keyName, DigestAlgorithm digestAlgorithm, bool needRetry) |
Protected Attributes | |
| std::string | m_location |
Definition at line 39 of file v1/sec-tpm-osx.hpp.
|
explicit |
Definition at line 246 of file sec-tpm-osx.cpp.
|
virtual |
Definition at line 262 of file sec-tpm-osx.cpp.
|
virtual |
Add the application into the ACL of a particular key.
| keyName | the name of key |
| keyClass | the class of key, e.g. Private Key |
| appPath | the absolute path to the application |
| acl | the new acl of the key |
Implements ndn::security::v1::SecTpm.
Definition at line 915 of file sec-tpm-osx.cpp.
|
virtual |
Decrypt data.
| data | Pointer to the byte arry to be decrypted. |
| dataLength | The length of data. |
| keyName | The name of the decrypting key. |
| isSymmetric | If true symmetric encryption is used, otherwise asymmetric encryption. |
| SecTpm::Error | if decryption fails. |
Implements ndn::security::v1::SecTpm.
Definition at line 871 of file sec-tpm-osx.cpp.
|
inlinevirtual |
Delete a key pair of asymmetric keys.
| keyName | The name of the key pair. |
Implements ndn::security::v1::SecTpm.
Definition at line 84 of file v1/sec-tpm-osx.hpp.
|
protected |
Definition at line 442 of file sec-tpm-osx.cpp.
|
virtual |
Check if a particular key exists.
| keyName | The name of the key. |
| keyClass | The class of the key, e.g. KeyClass::PUBLIC, KeyClass::PRIVATE. |
Implements ndn::security::v1::SecTpm.
Definition at line 1001 of file sec-tpm-osx.cpp.
|
virtual |
Encrypt data.
| data | Pointer to the byte arry to be decrypted. |
| dataLength | The length of data. |
| keyName | The name of the encrypting key. |
| isSymmetric | If true symmetric encryption is used, otherwise asymmetric encryption. |
| SecTpm::Error | if encryption fails. |
Implements ndn::security::v1::SecTpm.
Definition at line 961 of file sec-tpm-osx.cpp.
|
inherited |
Export a private key in PKCS#5 format.
| keyName | The private key name |
| password | The password to encrypt the private key |
| SecTpm::Error | if private key cannot be exported |
Definition at line 51 of file sec-tpm.cpp.
|
inlineprotectedvirtual |
Export a private key in PKCS#8 format.
| keyName | The private key name. |
Implements ndn::security::v1::SecTpm.
Definition at line 123 of file v1/sec-tpm-osx.hpp.
|
protected |
Definition at line 534 of file sec-tpm-osx.cpp.
|
inlinevirtual |
Generate a pair of asymmetric keys.
| keyName | The name of the key pair. |
| params | The parameters of key. |
| SecTpm::Error | if fails. |
Implements ndn::security::v1::SecTpm.
Definition at line 78 of file v1/sec-tpm-osx.hpp.
|
protected |
Definition at line 374 of file sec-tpm-osx.cpp.
|
virtual |
Generate a random block.
| res | The pointer to the generated block |
| size | The random block size |
Implements ndn::security::v1::SecTpm.
Definition at line 1032 of file sec-tpm-osx.cpp.
|
virtual |
Generate a symmetric key.
| keyName | The name of the key. |
| params | The parameter of the key. |
| SecTpm::Error | if key generating fails. |
Implements ndn::security::v1::SecTpm.
Definition at line 469 of file sec-tpm-osx.cpp.
|
protectedvirtualinherited |
Get import/export password.
| password | On return, the password. |
| prompt | Prompt for password, i.e., "Password for key:" |
Definition at line 350 of file sec-tpm.cpp.
|
virtual |
Get value of inTerminal flag.
Implements ndn::security::v1::SecTpm.
Definition at line 294 of file sec-tpm-osx.cpp.
|
virtual |
Get a public key.
| keyName | The public key name. |
| SecTpm::Error | if public key does not exist in TPM. |
Implements ndn::security::v1::SecTpm.
Definition at line 504 of file sec-tpm-osx.cpp.
|
protectedvirtual |
Implements ndn::security::v1::SecTpm.
Definition at line 528 of file sec-tpm-osx.cpp.
|
inherited |
Definition at line 45 of file sec-tpm.cpp.
|
inherited |
Import a private key in PKCS#5 formatted buffer of size bufferSize.
Also recover the public key and installed it in TPM.
| keyName | The private key name |
| buffer | Pointer to the first byte of the buffer containing PKCS#5-encoded private key info |
| bufferSize | Size of the buffer |
| password | The password to encrypt the private key |
Definition at line 168 of file sec-tpm.cpp.
|
inlineprotectedvirtual |
Import a private key from PKCS#8 formatted buffer of size bufferSize.
| keyName | The private key name. |
| buffer | Pointer to the first byte of the buffer containing PKCS#8-encoded private key info |
| bufferSize | Size of the buffer |
Implements ndn::security::v1::SecTpm.
Definition at line 129 of file v1/sec-tpm-osx.hpp.
|
protected |
Definition at line 633 of file sec-tpm-osx.cpp.
|
protectedvirtual |
Import a public key in PKCS#1 formatted buffer of size bufferSize.
| keyName | The public key name |
| buffer | Pointer to the first byte of the buffer containing PKCS#1-encoded private key info |
| bufferSize | Size of the buffer |
Implements ndn::security::v1::SecTpm.
Definition at line 744 of file sec-tpm-osx.cpp.
|
virtual |
Check if TPM is locked.
Implements ndn::security::v1::SecTpm.
Definition at line 300 of file sec-tpm-osx.cpp.
|
virtual |
reset password of TPM
Implements ndn::security::v1::SecTpm.
Definition at line 276 of file sec-tpm-osx.cpp.
|
virtual |
Set inTerminal flag to inTerminal.
If the inTerminal flag is set, and password is not set, TPM may ask for password via terminal. inTerminal flag is set by default.
Implements ndn::security::v1::SecTpm.
Definition at line 284 of file sec-tpm-osx.cpp.
|
virtual |
set password of TPM
Password is used to unlock TPM when it is locked. You should be cautious when using this method, because remembering password is kind of dangerous.
| password | The password |
| passwordLength | The length of password |
Implements ndn::security::v1::SecTpm.
Definition at line 267 of file sec-tpm-osx.cpp.
|
inlinevirtual |
Sign data.
| data | Pointer to the byte array to be signed. |
| dataLength | The length of data. |
| keyName | The name of the signing key. |
| digestAlgorithm | the digest algorithm. |
| SecTpm::Error | if signing fails. |
Implements ndn::security::v1::SecTpm.
Definition at line 93 of file v1/sec-tpm-osx.hpp.
|
protected |
Definition at line 791 of file sec-tpm-osx.cpp.
|
virtual |
Unlock the TPM.
| password | The password. |
| passwordLength | The password size. 0 indicates no password. |
| usePassword | True if we want to use the supplied password to unlock the TPM. |
Implements ndn::security::v1::SecTpm.
Definition at line 312 of file sec-tpm-osx.cpp.
|
protectedinherited |
Definition at line 302 of file v1/sec-tpm.hpp.
|
static |
Definition at line 158 of file v1/sec-tpm-osx.hpp.