#include <sec-tpm-osx.hpp>


Classes | |
| class | Error |
| class | Impl |
Public Member Functions | |
| SecTpmOsx (const std::string &location="") | |
| virtual | ~SecTpmOsx () |
| virtual void | setTpmPassword (const uint8_t *password, size_t passwordLength) |
| set password of TPM More... | |
| virtual void | resetTpmPassword () |
| reset password of TPM More... | |
| virtual void | setInTerminal (bool inTerminal) |
| Set inTerminal flag to. More... | |
| virtual bool | getInTerminal () const |
| Get value of inTerminal flag. More... | |
| virtual bool | isLocked () |
| Check if TPM is locked. More... | |
| virtual bool | unlockTpm (const char *password, size_t passwordLength, bool usePassword) |
| Unlock the TPM. More... | |
| virtual void | generateKeyPairInTpm (const Name &keyName, const KeyParams ¶ms) |
| Generate a pair of asymmetric keys. More... | |
| virtual void | deleteKeyPairInTpm (const Name &keyName) |
| Delete a key pair of asymmetric keys. More... | |
| virtual shared_ptr< PublicKey > | getPublicKeyFromTpm (const Name &keyName) |
| Get a public key. More... | |
| virtual Block | signInTpm (const uint8_t *data, size_t dataLength, const Name &keyName, DigestAlgorithm digestAlgorithm) |
| Sign data. More... | |
| virtual ConstBufferPtr | decryptInTpm (const uint8_t *data, size_t dataLength, const Name &keyName, bool isSymmetric) |
| Decrypt data. More... | |
| virtual ConstBufferPtr | encryptInTpm (const uint8_t *data, size_t dataLength, const Name &keyName, bool isSymmetric) |
| Encrypt data. More... | |
| virtual void | generateSymmetricKeyInTpm (const Name &keyName, const KeyParams ¶ms) |
| Generate a symmetric key. More... | |
| virtual bool | doesKeyExistInTpm (const Name &keyName, KeyClass keyClass) |
| Check if a particular key exists. More... | |
| virtual bool | generateRandomBlock (uint8_t *res, size_t size) |
| Generate a random block. More... | |
| 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... | |
Public Member Functions inherited from ndn::SecTpm | |
| SecTpm (const std::string &location) | |
| virtual | ~SecTpm () |
| std::string | getTpmLocator () |
| ConstBufferPtr | exportPrivateKeyPkcs5FromTpm (const Name &keyName, const std::string &password) |
| Export a private key in PKCS#5 format. More... | |
| bool | importPrivateKeyPkcs5IntoTpm (const Name &keyName, const uint8_t *buffer, size_t bufferSize, const std::string &password) |
| Import a private key in PKCS#5 formatted. More... | |
Static Public Attributes | |
| static const std::string | SCHEME |
Protected Member Functions | |
| virtual std::string | getScheme () |
| virtual ConstBufferPtr | exportPrivateKeyPkcs8FromTpm (const Name &keyName) |
| Export a private key in PKCS#8 format. More... | |
| virtual bool | importPrivateKeyPkcs8IntoTpm (const Name &keyName, const uint8_t *buf, size_t size) |
| Import a private key from PKCS#8 formatted. More... | |
| virtual bool | importPublicKeyPkcs1IntoTpm (const Name &keyName, const uint8_t *buf, size_t size) |
| Import a public key in PKCS#1 formatted. More... | |
| void | generateKeyPairInTpmInternal (const Name &keyName, const KeyParams ¶ms, bool needRetry) |
| void | deleteKeyPairInTpmInternal (const Name &keyName, bool needRetry) |
| ConstBufferPtr | exportPrivateKeyPkcs8FromTpmInternal (const Name &keyName, bool needRetry) |
| bool | importPrivateKeyPkcs8IntoTpmInternal (const Name &keyName, const uint8_t *buf, size_t size, bool needRetry) |
| Block | signInTpmInternal (const uint8_t *data, size_t dataLength, const Name &keyName, DigestAlgorithm digestAlgorithm, bool needRetry) |
Protected Member Functions inherited from ndn::SecTpm | |
| virtual bool | getImpExpPassWord (std::string &password, const std::string &prompt) |
| Get import/export password. More... | |
Additional Inherited Members | |
Protected Attributes inherited from ndn::SecTpm | |
| std::string | m_location |
Definition at line 37 of file sec-tpm-osx.hpp.
|
explicit |
Definition at line 240 of file sec-tpm-osx.cpp.
Referenced by ndn::SecTpmOsx::Error::Error().
|
virtual |
Definition at line 256 of file sec-tpm-osx.cpp.
Referenced by ndn::SecTpmOsx::Error::Error().
|
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::SecTpm.
Definition at line 261 of file sec-tpm-osx.cpp.
Referenced by ndn::SecTpmOsx::Error::Error().
|
virtual |
reset password of TPM
Implements ndn::SecTpm.
Definition at line 270 of file sec-tpm-osx.cpp.
Referenced by ndn::SecTpmOsx::Error::Error().
|
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::SecTpm.
Definition at line 278 of file sec-tpm-osx.cpp.
Referenced by ndn::SecTpmOsx::Error::Error().
|
virtual |
Get value of inTerminal flag.
Implements ndn::SecTpm.
Definition at line 288 of file sec-tpm-osx.cpp.
Referenced by ndn::SecTpmOsx::Error::Error().
|
virtual |
Check if TPM is locked.
Implements ndn::SecTpm.
Definition at line 294 of file sec-tpm-osx.cpp.
Referenced by ndn::SecTpmOsx::Error::Error(), and unlockTpm().
|
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::SecTpm.
Definition at line 306 of file sec-tpm-osx.cpp.
References isLocked().
Referenced by deleteKeyPairInTpmInternal(), ndn::SecTpmOsx::Error::Error(), exportPrivateKeyPkcs8FromTpmInternal(), generateKeyPairInTpmInternal(), importPrivateKeyPkcs8IntoTpmInternal(), and signInTpmInternal().
|
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::SecTpm.
Definition at line 76 of file sec-tpm-osx.hpp.
References generateKeyPairInTpmInternal().
|
inlinevirtual |
Delete a key pair of asymmetric keys.
| keyName | The name of the key pair. |
Implements ndn::SecTpm.
Definition at line 82 of file sec-tpm-osx.hpp.
References deleteKeyPairInTpmInternal(), and getPublicKeyFromTpm().
Get a public key.
| keyName | The public key name. |
| SecTpm::Error | if public key does not exist in TPM. |
Implements ndn::SecTpm.
Definition at line 509 of file sec-tpm-osx.cpp.
References ndn::CFReleaser< T >::get(), ndn::KEY_CLASS_PUBLIC, and ndn::Name::toUri().
Referenced by deleteKeyPairInTpm(), and exportPrivateKeyPkcs8FromTpmInternal().
|
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::SecTpm.
Definition at line 91 of file sec-tpm-osx.hpp.
References addAppToAcl(), decryptInTpm(), doesKeyExistInTpm(), encryptInTpm(), generateRandomBlock(), generateSymmetricKeyInTpm(), getScheme(), and signInTpmInternal().
|
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::SecTpm.
Definition at line 891 of file sec-tpm-osx.cpp.
Referenced by signInTpm().
|
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::SecTpm.
Definition at line 983 of file sec-tpm-osx.cpp.
Referenced by signInTpm().
|
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::SecTpm.
Definition at line 474 of file sec-tpm-osx.cpp.
Referenced by signInTpm().
Check if a particular key exists.
| keyName | The name of the key. |
| keyClass | The class of the key, e.g. KEY_CLASS_PUBLIC, KEY_CLASS_PRIVATE. |
Implements ndn::SecTpm.
Definition at line 1023 of file sec-tpm-osx.cpp.
References ndn::CFReleaser< T >::get().
Referenced by generateKeyPairInTpmInternal(), and signInTpm().
|
virtual |
Generate a random block.
| res | The pointer to the generated block |
| size | The random block size |
Implements ndn::SecTpm.
Definition at line 1054 of file sec-tpm-osx.cpp.
Referenced by signInTpm().
|
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::SecTpm.
Definition at line 935 of file sec-tpm-osx.cpp.
References ndn::ACL_TYPE_PRIVATE, ndn::CFReleaser< T >::get(), ndn::KEY_CLASS_PRIVATE, and ndn::Name::toUri().
Referenced by signInTpm().
|
protectedvirtual |
Implements ndn::SecTpm.
Definition at line 535 of file sec-tpm-osx.cpp.
References SCHEME.
Referenced by signInTpm().
|
inlineprotectedvirtual |
Export a private key in PKCS#8 format.
| keyName | The private key name. |
Implements ndn::SecTpm.
Definition at line 121 of file sec-tpm-osx.hpp.
References exportPrivateKeyPkcs8FromTpmInternal().
|
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::SecTpm.
Definition at line 127 of file sec-tpm-osx.hpp.
References deleteKeyPairInTpmInternal(), exportPrivateKeyPkcs8FromTpmInternal(), generateKeyPairInTpmInternal(), importPrivateKeyPkcs8IntoTpmInternal(), importPublicKeyPkcs1IntoTpm(), and signInTpmInternal().
|
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::SecTpm.
Definition at line 760 of file sec-tpm-osx.cpp.
References ndn::CFReleaser< T >::get(), and ndn::Name::toUri().
Referenced by importPrivateKeyPkcs8IntoTpm().
|
protected |
Definition at line 373 of file sec-tpm-osx.cpp.
References doesKeyExistInTpm(), ndn::CFReleaser< T >::get(), ndn::SimplePublicKeyParams< KeyParamsInfo >::getKeySize(), ndn::KeyParams::getKeyType(), ndn::KEY_CLASS_PUBLIC, ndn::KEY_TYPE_ECDSA, ndn::KEY_TYPE_RSA, and unlockTpm().
Referenced by generateKeyPairInTpm(), and importPrivateKeyPkcs8IntoTpm().
|
protected |
Definition at line 446 of file sec-tpm-osx.cpp.
References ndn::CFReleaser< T >::get(), ndn::Name::toUri(), and unlockTpm().
Referenced by deleteKeyPairInTpm(), and importPrivateKeyPkcs8IntoTpm().
|
protected |
Definition at line 541 of file sec-tpm-osx.cpp.
References ndn::OID::decode(), ndn::OID::encode(), ndn::CFReleaser< T >::get(), getPublicKeyFromTpm(), ndn::KEY_CLASS_PRIVATE, ndn::KEY_TYPE_ECDSA, ndn::KEY_TYPE_RSA, ndn::oid::RSA, ndn::Name::toUri(), and unlockTpm().
Referenced by exportPrivateKeyPkcs8FromTpm(), and importPrivateKeyPkcs8IntoTpm().
|
protected |
Definition at line 643 of file sec-tpm-osx.cpp.
References ndn::OID::decode(), ndn::oid::ECDSA, ndn::CFReleaser< T >::get(), ndn::oid::RSA, ndn::Name::toUri(), and unlockTpm().
Referenced by importPrivateKeyPkcs8IntoTpm().
|
protected |
Definition at line 807 of file sec-tpm-osx.cpp.
References ndn::CFReleaser< T >::get(), ndn::KEY_CLASS_PRIVATE, ndn::tlv::SignatureValue, ndn::Name::toUri(), and unlockTpm().
Referenced by importPrivateKeyPkcs8IntoTpm(), and signInTpm().
|
static |
Definition at line 156 of file sec-tpm-osx.hpp.
Referenced by getScheme().