blob: 705121f81b900c19d8a6f1516bcf7e6c021fac44 [file] [log] [blame]
// Copyright 2020 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef HWSEC_TEST_UTILS_FAKE_PCA_AGENT_SERVICE_H_
#define HWSEC_TEST_UTILS_FAKE_PCA_AGENT_SERVICE_H_
#include <memory>
#include <attestation/proto_bindings/pca_agent.pb.h>
#include <base/memory/ref_counted.h>
#include <brillo/daemons/dbus_daemon.h>
#include <brillo/dbus/dbus_object.h>
#include <dbus/attestation/dbus-constants.h>
// This generated file has to go after the protobuf definition.
#include <attestation/pca-agent/dbus_adaptors/org.chromium.PcaAgent.h>
namespace hwsec_test_utils {
namespace fake_pca_agent {
class FakePcaAgentService : public org::chromium::PcaAgentInterface {
public:
FakePcaAgentService();
~FakePcaAgentService() override = default;
// Not copyable or movable.
FakePcaAgentService(const FakePcaAgentService&) = delete;
FakePcaAgentService& operator=(const FakePcaAgentService&) = delete;
FakePcaAgentService(FakePcaAgentService&&) = delete;
FakePcaAgentService& operator=(FakePcaAgentService&&) = delete;
void Enroll(std::unique_ptr<brillo::dbus_utils::DBusMethodResponse<
attestation::pca_agent::EnrollReply>> response,
const attestation::pca_agent::EnrollRequest& in_request) override;
void GetCertificate(
std::unique_ptr<brillo::dbus_utils::DBusMethodResponse<
attestation::pca_agent::GetCertificateReply>> response,
const attestation::pca_agent::GetCertificateRequest& in_request) override;
};
class FakePcaAgentServiceAdaptor : public org::chromium::PcaAgentAdaptor {
public:
explicit FakePcaAgentServiceAdaptor(
org::chromium::PcaAgentInterface* pca_agent_interface,
scoped_refptr<dbus::Bus> bus)
: org::chromium::PcaAgentAdaptor(pca_agent_interface),
dbus_object_(
nullptr,
bus,
dbus::ObjectPath(attestation::pca_agent::kPcaAgentServicePath)) {}
// Not copyable or movable.
FakePcaAgentServiceAdaptor(const FakePcaAgentServiceAdaptor&) = delete;
FakePcaAgentServiceAdaptor& operator=(const FakePcaAgentServiceAdaptor&) =
delete;
FakePcaAgentServiceAdaptor(FakePcaAgentServiceAdaptor&&) = delete;
FakePcaAgentServiceAdaptor& operator=(FakePcaAgentServiceAdaptor&&) = delete;
void RegisterAsync(
const brillo::dbus_utils::AsyncEventSequencer::CompletionAction& cb) {
RegisterWithDBusObject(&dbus_object_);
dbus_object_.RegisterAsync(cb);
}
private:
brillo::dbus_utils::DBusObject dbus_object_;
};
} // namespace fake_pca_agent
} // namespace hwsec_test_utils
#endif // HWSEC_TEST_UTILS_FAKE_PCA_AGENT_SERVICE_H_