21#include <keymaster/key.h>
22#include <keymaster/keymaster_context.h>
23#include <keymaster/km_openssl/attestation_record.h>
29class TpmAttestationRecordContext;
30class TpmResourceManager;
33class TpmRemoteProvisioningContext;
54 uint32_t os_patchlevel)
override {
55 return wrapped_.SetSystemVersion(os_version, os_patchlevel);
58 uint32_t* os_patchlevel)
const override {
59 return wrapped_.GetSystemVersion(os_version, os_patchlevel);
63 keymaster_algorithm_t algorithm)
const override {
64 return wrapped_.GetKeyFactory(algorithm);
67 keymaster_algorithm_t algorithm,
68 keymaster_purpose_t purpose)
const override {
69 return wrapped_.GetOperationFactory(algorithm, purpose);
72 size_t* algorithms_count)
const override {
73 return wrapped_.GetSupportedAlgorithms(algorithms_count);
77 const keymaster::KeymasterKeyBlob& key_to_upgrade,
78 const keymaster::AuthorizationSet& upgrade_params,
79 keymaster::KeymasterKeyBlob* upgraded_key)
const override {
80 return wrapped_.UpgradeKeyBlob(key_to_upgrade, upgrade_params,
85 const keymaster::KeymasterKeyBlob& blob,
86 const keymaster::AuthorizationSet& additional_params,
87 keymaster::UniquePtr<keymaster::Key>* key)
const override {
88 return wrapped_.ParseKeyBlob(blob, additional_params, key);
92 size_t length)
const override {
93 return wrapped_.AddRngEntropy(buf, length);
97 return wrapped_.enforcement_policy();
101 return wrapped_.attestation_context();
105 const keymaster::Key& key,
106 const keymaster::AuthorizationSet& attest_params,
107 keymaster::UniquePtr<keymaster::Key> attest_key,
108 const keymaster::KeymasterBlob& issuer_subject,
109 keymaster_error_t*
error)
const override {
110 return wrapped_.GenerateAttestation(
111 key, attest_params, std::move(attest_key), issuer_subject,
error);
115 const keymaster::Key& key,
const keymaster::AuthorizationSet& cert_params,
116 bool fake_signature, keymaster_error_t*
error)
const override {
117 return wrapped_.GenerateSelfSignedCertificate(key, cert_params,
118 fake_signature,
error);
122 const keymaster::KeymasterKeyBlob& wrapped_key_blob,
123 const keymaster::KeymasterKeyBlob& wrapping_key_blob,
124 const keymaster::AuthorizationSet& wrapping_key_params,
125 const keymaster::KeymasterKeyBlob& masking_key,
126 keymaster::AuthorizationSet* wrapped_key_params,
127 keymaster_key_format_t* wrapped_key_format,
128 keymaster::KeymasterKeyBlob* wrapped_key_material)
const override {
130 wrapped_key_blob, wrapping_key_blob, wrapping_key_params, masking_key,
131 wrapped_key_params, wrapped_key_format, wrapped_key_material);
135 const std::uint8_t* input_data,
size_t input_data_size,
136 const uint8_t confirmation_token[keymaster::kConfirmationTokenSize])
138 return wrapped_.CheckConfirmationToken(input_data, input_data_size,
144 return wrapped_.GetRemoteProvisioningContext();
148 return wrapped_.SetVendorPatchlevel(vendor_patchlevel);
151 return wrapped_.SetBootPatchlevel(boot_patchlevel);
154 std::string_view verified_boot_state, std::string_view bootloader_state,
155 const std::vector<uint8_t>& vbmeta_digest) {
156 return wrapped_.SetVerifiedBootInfo(verified_boot_state, bootloader_state,
160 return wrapped_.GetVendorPatchlevel();
163 return wrapped_.GetBootPatchlevel();
167 const keymaster::SetAttestationIdsRequest& request)
override {
168 return wrapped_.SetAttestationIds(request);
172 const keymaster::SetAttestationIdsKM3Request& request)
override {
173 return wrapped_.SetAttestationIdsKM3(request);
Definition: proxy_keymaster_context.h:44
keymaster_error_t SetSystemVersion(uint32_t os_version, uint32_t os_patchlevel) override
Definition: proxy_keymaster_context.h:53
keymaster_error_t SetBootPatchlevel(uint32_t boot_patchlevel) override
Definition: proxy_keymaster_context.h:150
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
Definition: proxy_keymaster_context.h:121
std::optional< uint32_t > GetVendorPatchlevel() const override
Definition: proxy_keymaster_context.h:159
keymaster::KeymasterEnforcement * enforcement_policy() override
Definition: proxy_keymaster_context.h:96
keymaster::RemoteProvisioningContext * GetRemoteProvisioningContext() const override
Definition: proxy_keymaster_context.h:142
keymaster_error_t SetAttestationIds(const keymaster::SetAttestationIdsRequest &request) override
Definition: proxy_keymaster_context.h:166
const keymaster::KeyFactory * GetKeyFactory(keymaster_algorithm_t algorithm) const override
Definition: proxy_keymaster_context.h:62
std::optional< uint32_t > GetBootPatchlevel() const override
Definition: proxy_keymaster_context.h:162
~ProxyKeymasterContext()=default
keymaster::AttestationContext * attestation_context() override
Definition: proxy_keymaster_context.h:100
keymaster_error_t ParseKeyBlob(const keymaster::KeymasterKeyBlob &blob, const keymaster::AuthorizationSet &additional_params, keymaster::UniquePtr< keymaster::Key > *key) const override
Definition: proxy_keymaster_context.h:84
keymaster_error_t SetVerifiedBootInfo(std::string_view verified_boot_state, std::string_view bootloader_state, const std::vector< uint8_t > &vbmeta_digest)
Definition: proxy_keymaster_context.h:153
void GetSystemVersion(uint32_t *os_version, uint32_t *os_patchlevel) const override
Definition: proxy_keymaster_context.h:57
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
Definition: proxy_keymaster_context.h:104
keymaster::KmVersion GetKmVersion() const override
Definition: proxy_keymaster_context.h:49
keymaster_error_t UpgradeKeyBlob(const keymaster::KeymasterKeyBlob &key_to_upgrade, const keymaster::AuthorizationSet &upgrade_params, keymaster::KeymasterKeyBlob *upgraded_key) const override
Definition: proxy_keymaster_context.h:76
keymaster_error_t AddRngEntropy(const uint8_t *buf, size_t length) const override
Definition: proxy_keymaster_context.h:91
keymaster_error_t CheckConfirmationToken(const std::uint8_t *input_data, size_t input_data_size, const uint8_t confirmation_token[keymaster::kConfirmationTokenSize]) const
Definition: proxy_keymaster_context.h:134
const keymaster_algorithm_t * GetSupportedAlgorithms(size_t *algorithms_count) const override
Definition: proxy_keymaster_context.h:71
KeymasterContext & wrapped_
Definition: proxy_keymaster_context.h:177
keymaster_error_t SetVendorPatchlevel(uint32_t vendor_patchlevel) override
Definition: proxy_keymaster_context.h:147
keymaster_error_t SetAttestationIdsKM3(const keymaster::SetAttestationIdsKM3Request &request) override
Definition: proxy_keymaster_context.h:171
const keymaster::OperationFactory * GetOperationFactory(keymaster_algorithm_t algorithm, keymaster_purpose_t purpose) const override
Definition: proxy_keymaster_context.h:66
keymaster::CertificateChain GenerateSelfSignedCertificate(const keymaster::Key &key, const keymaster::AuthorizationSet &cert_params, bool fake_signature, keymaster_error_t *error) const override
Definition: proxy_keymaster_context.h:114
ProxyKeymasterContext(KeymasterContext &wrapped)
Definition: proxy_keymaster_context.h:46
#define error(format, args...)
Definition: fec_private.h:201
Definition: alloc_utils.cpp:23