Android-cuttlefish cvd tool
Public Member Functions | Private Attributes | List of all members
cuttlefish::TpmRemoteProvisioningContext Class Reference

#include <tpm_remote_provisioning_context.h>

Inheritance diagram for cuttlefish::TpmRemoteProvisioningContext:
Inheritance graph
[legend]
Collaboration diagram for cuttlefish::TpmRemoteProvisioningContext:
Collaboration graph
[legend]

Public Member Functions

 TpmRemoteProvisioningContext (TpmResourceManager &resource_manager)
 
 ~TpmRemoteProvisioningContext () override=default
 
std::vector< uint8_t > DeriveBytesFromHbk (const std::string &context, size_t numBytes) const override
 
std::unique_ptr< cppbor::Map > CreateDeviceInfo (uint32_t csrVersion) const override
 
cppcose::ErrMsgOr< std::vector< uint8_t > > BuildProtectedDataPayload (bool isTestMode, const std::vector< uint8_t > &macKey, const std::vector< uint8_t > &aad) const override
 
std::optional< cppcose::HmacSha256 > GenerateHmacSha256 (const cppcose::bytevec &input) const override
 
void GetHwInfo (keymaster::GetHwInfoResponse *hwInfo) const override
 
cppcose::ErrMsgOr< cppbor::Array > BuildCsr (const std::vector< uint8_t > &challenge, cppbor::Array keysToSign) const override
 
std::pair< std::vector< uint8_t >, cppbor::Array > GenerateBcc (bool testMode) const
 
void SetSystemVersion (uint32_t os_version, uint32_t os_patchlevel)
 
void SetVendorPatchlevel (uint32_t vendor_patchlevel)
 
void SetBootPatchlevel (uint32_t boot_patchlevel)
 
void SetVerifiedBootInfo (std::string_view boot_state, std::string_view bootloader_state, const std::vector< uint8_t > &vbmeta_digest)
 

Private Attributes

std::vector< uint8_t > devicePrivKey_
 
cppbor::Array bcc_
 
TpmResourceManagerresource_manager_
 
std::optional< uint32_t > os_version_
 
std::optional< uint32_t > os_patchlevel_
 
std::optional< uint32_t > vendor_patchlevel_
 
std::optional< uint32_t > boot_patchlevel_
 
std::optional< std::string > verified_boot_state_
 
std::optional< std::string > bootloader_state_
 
std::optional< std::vector< uint8_t > > vbmeta_digest_
 

Detailed Description

TPM-backed implementation of the provisioning context.

Constructor & Destructor Documentation

◆ TpmRemoteProvisioningContext()

cuttlefish::TpmRemoteProvisioningContext::TpmRemoteProvisioningContext ( TpmResourceManager resource_manager)

◆ ~TpmRemoteProvisioningContext()

cuttlefish::TpmRemoteProvisioningContext::~TpmRemoteProvisioningContext ( )
overridedefault

Member Function Documentation

◆ BuildCsr()

cppcose::ErrMsgOr< cppbor::Array > cuttlefish::TpmRemoteProvisioningContext::BuildCsr ( const std::vector< uint8_t > &  challenge,
cppbor::Array  keysToSign 
) const
override

◆ BuildProtectedDataPayload()

ErrMsgOr< std::vector< uint8_t > > cuttlefish::TpmRemoteProvisioningContext::BuildProtectedDataPayload ( bool  isTestMode,
const std::vector< uint8_t > &  macKey,
const std::vector< uint8_t > &  aad 
) const
override

◆ CreateDeviceInfo()

std::unique_ptr< cppbor::Map > cuttlefish::TpmRemoteProvisioningContext::CreateDeviceInfo ( uint32_t  csrVersion) const
override

◆ DeriveBytesFromHbk()

std::vector< uint8_t > cuttlefish::TpmRemoteProvisioningContext::DeriveBytesFromHbk ( const std::string &  context,
size_t  numBytes 
) const
override

◆ GenerateBcc()

std::pair< std::vector< uint8_t >, cppbor::Array > cuttlefish::TpmRemoteProvisioningContext::GenerateBcc ( bool  testMode) const

◆ GenerateHmacSha256()

std::optional< cppcose::HmacSha256 > cuttlefish::TpmRemoteProvisioningContext::GenerateHmacSha256 ( const cppcose::bytevec &  input) const
override

◆ GetHwInfo()

void cuttlefish::TpmRemoteProvisioningContext::GetHwInfo ( keymaster::GetHwInfoResponse *  hwInfo) const
override

◆ SetBootPatchlevel()

void cuttlefish::TpmRemoteProvisioningContext::SetBootPatchlevel ( uint32_t  boot_patchlevel)

◆ SetSystemVersion()

void cuttlefish::TpmRemoteProvisioningContext::SetSystemVersion ( uint32_t  os_version,
uint32_t  os_patchlevel 
)

◆ SetVendorPatchlevel()

void cuttlefish::TpmRemoteProvisioningContext::SetVendorPatchlevel ( uint32_t  vendor_patchlevel)

◆ SetVerifiedBootInfo()

void cuttlefish::TpmRemoteProvisioningContext::SetVerifiedBootInfo ( std::string_view  boot_state,
std::string_view  bootloader_state,
const std::vector< uint8_t > &  vbmeta_digest 
)

Member Data Documentation

◆ bcc_

cppbor::Array cuttlefish::TpmRemoteProvisioningContext::bcc_
private

◆ boot_patchlevel_

std::optional<uint32_t> cuttlefish::TpmRemoteProvisioningContext::boot_patchlevel_
private

◆ bootloader_state_

std::optional<std::string> cuttlefish::TpmRemoteProvisioningContext::bootloader_state_
private

◆ devicePrivKey_

std::vector<uint8_t> cuttlefish::TpmRemoteProvisioningContext::devicePrivKey_
private

◆ os_patchlevel_

std::optional<uint32_t> cuttlefish::TpmRemoteProvisioningContext::os_patchlevel_
private

◆ os_version_

std::optional<uint32_t> cuttlefish::TpmRemoteProvisioningContext::os_version_
private

◆ resource_manager_

TpmResourceManager& cuttlefish::TpmRemoteProvisioningContext::resource_manager_
private

◆ vbmeta_digest_

std::optional<std::vector<uint8_t> > cuttlefish::TpmRemoteProvisioningContext::vbmeta_digest_
private

◆ vendor_patchlevel_

std::optional<uint32_t> cuttlefish::TpmRemoteProvisioningContext::vendor_patchlevel_
private

◆ verified_boot_state_

std::optional<std::string> cuttlefish::TpmRemoteProvisioningContext::verified_boot_state_
private

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