| // Copyright 2022 The ChromiumOS Authors | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| #include <memory> | |
| #include <base/check.h> | |
| #include <libcrossystem/crossystem.h> | |
| #include <libstorage/platform/platform.h> | |
| #include <tpm_manager/proto_bindings/tpm_manager.pb.h> | |
| #include <tpm_manager-client/tpm_manager/dbus-proxies.h> | |
| #if USE_TPM2 | |
| #include <trunks/command_transceiver.h> | |
| #include <trunks/trunks_factory.h> | |
| #endif | |
| #if USE_TPM1 | |
| #include "libhwsec/overalls/overalls.h" | |
| #endif | |
| #include "libhwsec/proxy/proxy.h" | |
| namespace hwsec { | |
| void Proxy::SetOveralls(hwsec::overalls::Overalls* overalls) { | |
| overalls_ptr_ = overalls; | |
| } | |
| void Proxy::SetTrunksCommandTransceiver( | |
| trunks::CommandTransceiver* trunks_command_transceiver) { | |
| trunks_command_transceiver_ = trunks_command_transceiver; | |
| } | |
| void Proxy::SetTrunksDbusTransceiver( | |
| trunks::DbusTransceiver* trunks_dbus_transceiver) { | |
| trunks_dbus_transceiver_ = trunks_dbus_transceiver; | |
| } | |
| void Proxy::SetTrunksFactory(trunks::TrunksFactory* trunks_factory) { | |
| trunks_factory_ptr_ = trunks_factory; | |
| } | |
| void Proxy::SetTpmManager( | |
| org::chromium::TpmManagerProxyInterface* tpm_manager) { | |
| tpm_manager_ = tpm_manager; | |
| } | |
| void Proxy::SetTpmNvram(org::chromium::TpmNvramProxyInterface* tpm_nvram) { | |
| tpm_nvram_ = tpm_nvram; | |
| } | |
| void Proxy::SetCrossystem(crossystem::Crossystem* crossystem) { | |
| crossystem_ = crossystem; | |
| } | |
| void Proxy::SetPlatform(libstorage::Platform* platform) { | |
| platform_ = platform; | |
| } | |
| // A tricks to make the linkage failure if accessing wrong proxy on the | |
| // wrong board. | |
| #if USE_TPM1 | |
| hwsec::overalls::Overalls& Proxy::GetOveralls() const { | |
| CHECK(overalls_ptr_); | |
| return *overalls_ptr_; | |
| } | |
| #endif | |
| // A tricks to make the linkage failure if accessing wrong proxy on the | |
| // wrong board. | |
| #if USE_TPM2 | |
| trunks::CommandTransceiver& Proxy::GetTrunksCommandTransceiver() const { | |
| CHECK(trunks_command_transceiver_); | |
| return *trunks_command_transceiver_; | |
| } | |
| trunks::DbusTransceiver* Proxy::GetTrunksDbusTransceiver() const { | |
| return trunks_dbus_transceiver_; | |
| } | |
| trunks::TrunksFactory& Proxy::GetTrunksFactory() const { | |
| CHECK(trunks_factory_ptr_); | |
| return *trunks_factory_ptr_; | |
| } | |
| #endif | |
| org::chromium::TpmManagerProxyInterface& Proxy::GetTpmManager() const { | |
| CHECK(tpm_manager_); | |
| return *tpm_manager_; | |
| } | |
| org::chromium::TpmNvramProxyInterface& Proxy::GetTpmNvram() const { | |
| CHECK(tpm_nvram_); | |
| return *tpm_nvram_; | |
| } | |
| crossystem::Crossystem& Proxy::GetCrossystem() const { | |
| CHECK(crossystem_); | |
| return *crossystem_; | |
| } | |
| libstorage::Platform& Proxy::GetPlatform() const { | |
| CHECK(platform_); | |
| return *platform_; | |
| } | |
| } // namespace hwsec |