blob: e854367e6dab1190c6b5ee16fd3e6fcb69e1dce7 [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 "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