// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_ASH_ATTESTATION_SOFT_BIND_ATTESTATION_FLOW_H_
#define CHROME_BROWSER_ASH_ATTESTATION_SOFT_BIND_ATTESTATION_FLOW_H_
#include <string>
#include "base/functional/callback.h"
#include "components/account_id/account_id.h"
namespace ash::attestation {
class SoftBindAttestationFlow {
public:
using Callback =
base::OnceCallback<void(const std::vector<std::string>& certs,
bool valid)>;
SoftBindAttestationFlow() = default;
virtual ~SoftBindAttestationFlow() = default;
// !!! WARNING !!! This API should only be called by the browser itself.
// Any new usage of this API should undergo security review.
// Must be invoked on the UI thread due to AttestationClient requirements.
// If the call times out before request completion, the request will
// continue in the background so long as this object is not freed.
virtual void GetCertificate(Callback callback,
const AccountId& account_id,
const std::string& user_key) = 0;
};
} // namespace ash::attestation
#endif // CHROME_BROWSER_ASH_ATTESTATION_SOFT_BIND_ATTESTATION_FLOW_H_