|
| ProxyKeymasterContext (KeymasterContext &wrapped) |
|
| ~ProxyKeymasterContext ()=default |
|
keymaster::KmVersion | GetKmVersion () const override |
|
keymaster_error_t | SetSystemVersion (uint32_t os_version, uint32_t os_patchlevel) override |
|
void | GetSystemVersion (uint32_t *os_version, uint32_t *os_patchlevel) const override |
|
const keymaster::KeyFactory * | GetKeyFactory (keymaster_algorithm_t algorithm) const override |
|
const keymaster::OperationFactory * | GetOperationFactory (keymaster_algorithm_t algorithm, keymaster_purpose_t purpose) const override |
|
const keymaster_algorithm_t * | GetSupportedAlgorithms (size_t *algorithms_count) const override |
|
keymaster_error_t | UpgradeKeyBlob (const keymaster::KeymasterKeyBlob &key_to_upgrade, const keymaster::AuthorizationSet &upgrade_params, keymaster::KeymasterKeyBlob *upgraded_key) const override |
|
keymaster_error_t | ParseKeyBlob (const keymaster::KeymasterKeyBlob &blob, const keymaster::AuthorizationSet &additional_params, keymaster::UniquePtr< keymaster::Key > *key) const override |
|
keymaster_error_t | AddRngEntropy (const uint8_t *buf, size_t length) const override |
|
keymaster::KeymasterEnforcement * | enforcement_policy () override |
|
keymaster::AttestationContext * | attestation_context () override |
|
keymaster::CertificateChain | GenerateAttestation (const keymaster::Key &key, const keymaster::AuthorizationSet &attest_params, keymaster::UniquePtr< keymaster::Key > attest_key, const keymaster::KeymasterBlob &issuer_subject, keymaster_error_t *error) const override |
|
keymaster::CertificateChain | GenerateSelfSignedCertificate (const keymaster::Key &key, const keymaster::AuthorizationSet &cert_params, bool fake_signature, keymaster_error_t *error) const override |
|
keymaster_error_t | UnwrapKey (const keymaster::KeymasterKeyBlob &wrapped_key_blob, const keymaster::KeymasterKeyBlob &wrapping_key_blob, const keymaster::AuthorizationSet &wrapping_key_params, const keymaster::KeymasterKeyBlob &masking_key, keymaster::AuthorizationSet *wrapped_key_params, keymaster_key_format_t *wrapped_key_format, keymaster::KeymasterKeyBlob *wrapped_key_material) const override |
|
keymaster_error_t | CheckConfirmationToken (const std::uint8_t *input_data, size_t input_data_size, const uint8_t confirmation_token[keymaster::kConfirmationTokenSize]) const |
|
keymaster::RemoteProvisioningContext * | GetRemoteProvisioningContext () const override |
|
keymaster_error_t | SetVendorPatchlevel (uint32_t vendor_patchlevel) override |
|
keymaster_error_t | SetBootPatchlevel (uint32_t boot_patchlevel) override |
|
keymaster_error_t | SetVerifiedBootInfo (std::string_view verified_boot_state, std::string_view bootloader_state, const std::vector< uint8_t > &vbmeta_digest) |
|
std::optional< uint32_t > | GetVendorPatchlevel () const override |
|
std::optional< uint32_t > | GetBootPatchlevel () const override |
|
keymaster_error_t | SetAttestationIds (const keymaster::SetAttestationIdsRequest &request) override |
|
keymaster_error_t | SetAttestationIdsKM3 (const keymaster::SetAttestationIdsKM3Request &request) override |
|
Implementation of KeymasterContext that proxies to another implementation.
Because AndroidKeymaster wraps a KeymasterContext and puts it into a unique pointer, it doesn't let the implementer manage the lifetime of the KeymasterContext implementation. This proxy breaks that relationship, and allows the lifetimes to be distinct as long as the KeymasterContext instance outlives the AndroidKeymaster instance.