| // 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 <utility> | |
| #include "base/files/file_path.h" | |
| #include "libhwsec/backend/tpm2/backend.h" | |
| namespace hwsec { | |
| BackendTpm2::BackendTpm2(Proxy& proxy, | |
| MiddlewareDerivative middleware_derivative, | |
| const base::FilePath& pw_hash_tree_dir, | |
| Metrics* metrics) | |
| : proxy_(proxy), | |
| tpm_manager_(proxy_.GetTpmManager()), | |
| tpm_nvram_(proxy_.GetTpmNvram()), | |
| crossystem_(proxy_.GetCrossystem()), | |
| platform_(proxy_.GetPlatform()), | |
| middleware_derivative_(middleware_derivative), | |
| context_(proxy_.GetTrunksCommandTransceiver(), | |
| proxy_.GetTrunksDbusTransceiver(), | |
| proxy_.GetTrunksFactory()), | |
| state_(tpm_manager_), | |
| da_mitigation_(tpm_manager_), | |
| session_management_(context_), | |
| config_(context_, session_management_, crossystem_), | |
| storage_(config_, tpm_manager_, tpm_nvram_), | |
| key_management_(context_, config_, tpm_manager_, middleware_derivative_), | |
| sealing_(context_, config_, key_management_, session_management_), | |
| signature_sealing_( | |
| context_, config_, key_management_, session_management_), | |
| deriving_(context_, config_, key_management_), | |
| encryption_(context_, config_, key_management_), | |
| signing_(context_, config_, key_management_), | |
| random_(context_), | |
| pinweaver_(context_, config_), | |
| pinweaver_manager_(pinweaver_, pw_hash_tree_dir, metrics), | |
| recovery_crypto_(context_, config_, key_management_, session_management_), | |
| u2f_(context_, vendor_), | |
| attestation_( | |
| context_, config_, key_management_, random_, signing_, tpm_manager_), | |
| ro_data_(context_, key_management_, signing_, tpm_nvram_), | |
| vendor_(context_, tpm_manager_, ro_data_), | |
| version_attestation_(context_, config_, key_management_, platform_), | |
| event_management_(context_, middleware_derivative_) {} | |
| BackendTpm2::~BackendTpm2() = default; | |
| } // namespace hwsec |