NS-3 based Named Data Networking (NDN) simulator
ndnSIM 2.5: NDN, CCN, CCNx, content centric networks
API Documentation
ndn::security::tpm::BackEndOsx Class Reference

The back-end implementation of TPM based on macOS Keychain Services. More...

#include <back-end-osx.hpp>

Inheritance diagram for ndn::security::tpm::BackEndOsx:
Collaboration diagram for ndn::security::tpm::BackEndOsx:

Classes

class  Error
 
class  Impl
 

Public Member Functions

 BackEndOsx (const std::string &location="")
 Create TPM backed based on macOS KeyChain service. More...
 
 ~BackEndOsx () override
 
bool isTerminalMode () const final
 Check if TPM is in terminal mode. More...
 
void setTerminalMode (bool isTerminal) const final
 Set the terminal mode of TPM. More...
 
bool isTpmLocked () const final
 
bool unlockTpm (const char *pw, size_t pwLen) const final
 Unlock TPM. More...
 
- Public Member Functions inherited from ndn::security::tpm::BackEnd
virtual ~BackEnd ()
 
bool hasKey (const Name &keyName) const
 
unique_ptr< KeyHandlegetKeyHandle (const Name &keyName) const
 
unique_ptr< KeyHandlecreateKey (const Name &identity, const KeyParams &params)
 Create key for identity according to params. More...
 
void deleteKey (const Name &keyName)
 Delete a key with name keyName. More...
 
ConstBufferPtr exportKey (const Name &keyName, const char *pw, size_t pwLen)
 
void importKey (const Name &keyName, const uint8_t *pkcs8, size_t pkcs8Len, const char *pw, size_t pwLen)
 Import a private key in encrypted PKCS #8 format. More...
 

Static Public Member Functions

static const std::string & getScheme ()
 
static ConstBufferPtr sign (const KeyRefOsx &key, DigestAlgorithm digestAlgorithm, const uint8_t *buf, size_t size)
 Sign buf with key using digestAlgorithm. More...
 
static ConstBufferPtr decrypt (const KeyRefOsx &key, const uint8_t *cipherText, size_t cipherSize)
 
static ConstBufferPtr derivePublicKey (const KeyRefOsx &key)
 

Additional Inherited Members

- Static Protected Member Functions inherited from ndn::security::tpm::BackEnd
static void setKeyName (KeyHandle &keyHandle, const Name &identity, const KeyParams &params)
 Set the key name in keyHandle according to identity and params. More...
 

Detailed Description

The back-end implementation of TPM based on macOS Keychain Services.

Definition at line 39 of file back-end-osx.hpp.

Constructor & Destructor Documentation

◆ BackEndOsx()

ndn::security::tpm::BackEndOsx::BackEndOsx ( const std::string &  location = "")
explicit

Create TPM backed based on macOS KeyChain service.

Parameters
locationNot used (required by the TPM-registration interface)

Definition at line 131 of file back-end-osx.cpp.

◆ ~BackEndOsx()

ndn::security::tpm::BackEndOsx::~BackEndOsx ( )
overridedefault

Member Function Documentation

◆ getScheme()

const std::string & ndn::security::tpm::BackEndOsx::getScheme ( )
static

Definition at line 146 of file back-end-osx.cpp.

◆ isTerminalMode()

bool ndn::security::tpm::BackEndOsx::isTerminalMode ( ) const
finalvirtual

Check if TPM is in terminal mode.

Default implementation always returns true.

Reimplemented from ndn::security::tpm::BackEnd.

Definition at line 153 of file back-end-osx.cpp.

◆ setTerminalMode()

void ndn::security::tpm::BackEndOsx::setTerminalMode ( bool  isTerminal) const
finalvirtual

Set the terminal mode of TPM.

In terminal mode, TPM will not ask user permission from GUI.

Default implementation does nothing.

Reimplemented from ndn::security::tpm::BackEnd.

Definition at line 159 of file back-end-osx.cpp.

◆ isTpmLocked()

bool ndn::security::tpm::BackEndOsx::isTpmLocked ( ) const
finalvirtual
Returns
True if TPM is locked, otherwise false

Default implementation always returns false.

Reimplemented from ndn::security::tpm::BackEnd.

Definition at line 166 of file back-end-osx.cpp.

Referenced by unlockTpm().

◆ unlockTpm()

bool ndn::security::tpm::BackEndOsx::unlockTpm ( const char *  pw,
size_t  pwLen 
) const
finalvirtual

Unlock TPM.

Parameters
pwThe password to unlock TPM
pwLenThe password size.

Default implementation always returns !isTpmLocked()

Reimplemented from ndn::security::tpm::BackEnd.

Definition at line 178 of file back-end-osx.cpp.

References isTpmLocked().

◆ sign()

ConstBufferPtr ndn::security::tpm::BackEndOsx::sign ( const KeyRefOsx key,
DigestAlgorithm  digestAlgorithm,
const uint8_t *  buf,
size_t  size 
)
static

Sign buf with key using digestAlgorithm.

Definition at line 197 of file back-end-osx.cpp.

References ndn::util::CFReleaser< T >::get(), ndn::security::tpm::getDigestAlgorithm(), and ndn::security::tpm::getDigestSize().

◆ decrypt()

ConstBufferPtr ndn::security::tpm::BackEndOsx::decrypt ( const KeyRefOsx key,
const uint8_t *  cipherText,
size_t  cipherSize 
)
static

Definition at line 248 of file back-end-osx.cpp.

References ndn::util::CFReleaser< T >::get().

◆ derivePublicKey()

ConstBufferPtr ndn::security::tpm::BackEndOsx::derivePublicKey ( const KeyRefOsx key)
static

The documentation for this class was generated from the following files: