| // 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 "libhwsec/backend/tpm1/backend.h" |
| |
| #include <memory> |
| #include <utility> |
| |
| #include <libhwsec-foundation/status/status_chain_macros.h> |
| #include <tpm_manager/proto_bindings/tpm_manager.pb.h> |
| #include <tpm_manager-client/tpm_manager/dbus-proxies.h> |
| |
| #include "libhwsec/error/tpm1_error.h" |
| #include "libhwsec/error/tpm_manager_error.h" |
| #include "libhwsec/overalls/overalls.h" |
| #include "libhwsec/status.h" |
| #include "libhwsec/tss_utils/scoped_tss_type.h" |
| |
| using hwsec_foundation::status::MakeStatus; |
| |
| namespace hwsec { |
| |
| BackendTpm1::BackendTpm1(Proxy& proxy, |
| MiddlewareDerivative middleware_derivative) |
| : proxy_(proxy), |
| tpm_manager_(proxy_.GetTpmManager()), |
| tpm_nvram_(proxy_.GetTpmNvram()), |
| overalls_(proxy_.GetOveralls()), |
| crossystem_(proxy_.GetCrossystem()), |
| middleware_derivative_(middleware_derivative), |
| tss_helper_(tpm_manager_, overalls_), |
| state_(tpm_manager_), |
| da_mitigation_(tpm_manager_), |
| storage_(tpm_manager_, tpm_nvram_), |
| config_(overalls_, tss_helper_, crossystem_), |
| random_(overalls_, tss_helper_), |
| key_management_( |
| overalls_, tss_helper_, state_, config_, middleware_derivative_), |
| sealing_( |
| overalls_, tss_helper_, config_, key_management_, da_mitigation_), |
| deriving_(), |
| signature_sealing_( |
| overalls_, tss_helper_, config_, key_management_, sealing_, random_), |
| encryption_(overalls_, tss_helper_, key_management_), |
| signing_(overalls_, tss_helper_, key_management_), |
| pinweaver_(), |
| pinweaver_manager_(pinweaver_, base::FilePath(), nullptr), |
| vendor_(overalls_, tss_helper_, proxy_.GetTpmManager(), key_management_), |
| recovery_crypto_(overalls_, config_, key_management_, sealing_, signing_), |
| u2f_(), |
| attestation_( |
| overalls_, tss_helper_, config_, key_management_, tpm_manager_), |
| version_attestation_(), |
| ro_data_(tpm_nvram_) {} |
| |
| BackendTpm1::~BackendTpm1() = default; |
| |
| } // namespace hwsec |