blob: 3a95d36c498235f9d63f9a6944ca92ebdf969433 [file] [log] [blame]
// Copyright 2015 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 TPM_MANAGER_COMMON_TPM_OWNERSHIP_INTERFACE_H_
#define TPM_MANAGER_COMMON_TPM_OWNERSHIP_INTERFACE_H_
#include <base/callback.h>
#include <tpm_manager/proto_bindings/tpm_manager.pb.h>
#include "tpm_manager/common/export.h"
namespace tpm_manager {
// The command interface for TPM administration. Inherited by both IPC proxy
// and service classes. All methods are asynchronous because all TPM operations
// may take a long time to finish.
class TPM_MANAGER_EXPORT TpmOwnershipInterface {
public:
virtual ~TpmOwnershipInterface() = default;
// Gets TPM status, which includes enabled, owned, passwords, etc. Processes
// |request| and calls |callback| with a reply when the process is done.
using GetTpmStatusCallback = base::Callback<void(const GetTpmStatusReply&)>;
virtual void GetTpmStatus(const GetTpmStatusRequest& request,
const GetTpmStatusCallback& callback) = 0;
// Gets TPM nonsensitive status, which includes enabled, owned, presence of
// password, etc. Processes |request| and calls |callback| with a reply when
// the process is done.
using GetTpmNonsensitiveStatusCallback =
base::Callback<void(const GetTpmNonsensitiveStatusReply&)>;
virtual void GetTpmNonsensitiveStatus(
const GetTpmNonsensitiveStatusRequest& request,
const GetTpmNonsensitiveStatusCallback& callback) = 0;
// Gets TPM version info. Processes |request| and calls |callback| with a
// reply when the process is done.
using GetVersionInfoCallback =
base::Callback<void(const GetVersionInfoReply&)>;
virtual void GetVersionInfo(const GetVersionInfoRequest& request,
const GetVersionInfoCallback& callback) = 0;
// Gets dictionary attack (DA) info. Processes |request| and calls |callback|
// with a reply when the process is done.
using GetDictionaryAttackInfoCallback =
base::Callback<void(const GetDictionaryAttackInfoReply&)>;
virtual void GetDictionaryAttackInfo(
const GetDictionaryAttackInfoRequest& request,
const GetDictionaryAttackInfoCallback& callback) = 0;
// Resets dictionary attack (DA) lock. Processes |request| and calls
// |callback| with a reply when the process is done.
using ResetDictionaryAttackLockCallback =
base::Callback<void(const ResetDictionaryAttackLockReply&)>;
virtual void ResetDictionaryAttackLock(
const ResetDictionaryAttackLockRequest& request,
const ResetDictionaryAttackLockCallback& callback) = 0;
// Processes a TakeOwnershipRequest and responds with a TakeOwnershipReply.
using TakeOwnershipCallback = base::Callback<void(const TakeOwnershipReply&)>;
virtual void TakeOwnership(const TakeOwnershipRequest& request,
const TakeOwnershipCallback& callback) = 0;
// Processes a RemoveOwnerDependencyRequest and responds with a
// RemoveOwnerDependencyReply.
using RemoveOwnerDependencyCallback =
base::Callback<void(const RemoveOwnerDependencyReply&)>;
virtual void RemoveOwnerDependency(
const RemoveOwnerDependencyRequest& request,
const RemoveOwnerDependencyCallback& callback) = 0;
// Processes a ClearStoredOwnerPasswordRequest and responds with a
// ClearStoredOwnerPasswordReply.
using ClearStoredOwnerPasswordCallback =
base::Callback<void(const ClearStoredOwnerPasswordReply&)>;
virtual void ClearStoredOwnerPassword(
const ClearStoredOwnerPasswordRequest& request,
const ClearStoredOwnerPasswordCallback& callback) = 0;
};
} // namespace tpm_manager
#endif // TPM_MANAGER_COMMON_TPM_OWNERSHIP_INTERFACE_H_