blob: a6f5e4b1c5d132871c4b202cd91b22c018eaed65 [file] [log] [blame] [edit]
// 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