|
| TpmKeyBlobMaker (TpmResourceManager &resource_manager) |
|
keymaster_error_t | CreateKeyBlob (const keymaster::AuthorizationSet &key_description, keymaster_key_origin_t origin, const keymaster::KeymasterKeyBlob &key_material, keymaster::KeymasterKeyBlob *blob, keymaster::AuthorizationSet *hw_enforced, keymaster::AuthorizationSet *sw_enforced) const override |
|
keymaster_error_t | UnvalidatedCreateKeyBlob (const keymaster::KeymasterKeyBlob &key_material, const keymaster::AuthorizationSet &hw_enforced, const keymaster::AuthorizationSet &sw_enforced, const keymaster::AuthorizationSet &hidden, keymaster::KeymasterKeyBlob *blob) const |
|
keymaster_error_t | UnwrapKeyBlob (const keymaster_key_blob_t &blob, keymaster::AuthorizationSet *hw_enforced, keymaster::AuthorizationSet *sw_enforced, const keymaster::AuthorizationSet &hidden, keymaster::KeymasterKeyBlob *key_material) const |
|
keymaster_error_t | SetSystemVersion (uint32_t os_version, uint32_t os_patchlevel) |
|
keymaster_error_t | SetVendorPatchlevel (uint32_t vendor_patchlevel) |
|
keymaster_error_t | SetBootPatchlevel (uint32_t boot_patchlevel) |
|
Encrypts key data using a TPM-resident key and signs it with a TPM-resident key for privacy and integrity.
This class is used to encrypt KeyMint data when it leaves the secure_env process, and is sent for storage to Android. When the data comes back, this class decrypts it again for use in Keymaster and other HAL API calls.
keymaster_error_t cuttlefish::TpmKeyBlobMaker::UnwrapKeyBlob |
( |
const keymaster_key_blob_t & |
blob, |
|
|
keymaster::AuthorizationSet * |
hw_enforced, |
|
|
keymaster::AuthorizationSet * |
sw_enforced, |
|
|
const keymaster::AuthorizationSet & |
hidden, |
|
|
keymaster::KeymasterKeyBlob * |
key_material |
|
) |
| const |
Intermediate function between KeymasterContext::ParseKeyBlob and KeyFactory::LoadKey, The inputs of this function match the outputs of KeymasterContext::ParseKeyBlob and the outputs of this function match the inputs of KeyFactory::LoadKey.
KeymasterContext::ParseKeyBlob is the common entry point for decoding all keys, and is expected to delegate to a KeyFactory depending on the type of the serialized key. This method performs decryption operations shared between all TPM-Keymaster keys.