// components/unexportable_keys/mojom/unexportable_key_service.mojom-test-utils.h is auto generated by mojom_bindings_generator.py, do not edit

// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef COMPONENTS_UNEXPORTABLE_KEYS_MOJOM_UNEXPORTABLE_KEY_SERVICE_MOJOM_TEST_UTILS_H_
#define COMPONENTS_UNEXPORTABLE_KEYS_MOJOM_UNEXPORTABLE_KEY_SERVICE_MOJOM_TEST_UTILS_H_

#include "components/unexportable_keys/mojom/unexportable_key_service.mojom.h"


namespace unexportable_keys::mojom {


class  UnexportableKeyServiceInterceptorForTesting : public UnexportableKeyService {
  virtual UnexportableKeyService* GetForwardingInterface() = 0;
  void GenerateSigningKey(const std::vector<::crypto::SignatureVerifier::SignatureAlgorithm>& acceptable_algorithms, ::unexportable_keys::BackgroundTaskPriority priority, GenerateSigningKeyCallback callback) override;
  void FromWrappedSigningKey(const std::vector<uint8_t>& wrapped_key, ::unexportable_keys::BackgroundTaskPriority priority, FromWrappedSigningKeyCallback callback) override;
  void GenerateAttestationKey(const std::vector<::crypto::SignatureVerifier::SignatureAlgorithm>& acceptable_algorithms, ::unexportable_keys::BackgroundTaskPriority priority, GenerateAttestationKeyCallback callback) override;
  void FromWrappedAttestationKey(const std::vector<uint8_t>& wrapped_key, ::unexportable_keys::BackgroundTaskPriority priority, FromWrappedAttestationKeyCallback callback) override;
  void Sign(const ::unexportable_keys::UnexportableSigningKeyId& key_id, const std::vector<uint8_t>& data, ::unexportable_keys::BackgroundTaskPriority priority, SignCallback callback) override;
  void Certify(const ::unexportable_keys::UnexportableAttestationKeyId& attestation_key_id, const ::unexportable_keys::UnexportableSigningKeyId& signing_key_id, const std::vector<uint8_t>& challenge, ::unexportable_keys::BackgroundTaskPriority priority, CertifyCallback callback) override;
  void GetAllKeysForGarbageCollection(::unexportable_keys::BackgroundTaskPriority priority, GetAllKeysForGarbageCollectionCallback callback) override;
  void DeleteKeys(const std::vector<::unexportable_keys::UnexportableSigningKeyId>& key_ids, ::unexportable_keys::BackgroundTaskPriority priority, DeleteKeysCallback callback) override;
  void DeleteAllKeys(DeleteAllKeysCallback callback) override;
};
class  UnexportableKeyServiceAsyncWaiter {
 public:
  explicit UnexportableKeyServiceAsyncWaiter(UnexportableKeyService* proxy);

  UnexportableKeyServiceAsyncWaiter(const UnexportableKeyServiceAsyncWaiter&) = delete;
  UnexportableKeyServiceAsyncWaiter& operator=(const UnexportableKeyServiceAsyncWaiter&) = delete;

  ~UnexportableKeyServiceAsyncWaiter();
  void GenerateSigningKey(
      const std::vector<::crypto::SignatureVerifier::SignatureAlgorithm>& acceptable_algorithms, ::unexportable_keys::BackgroundTaskPriority priority,
base::expected<
  NewSigningKeyDataPtr,
  ::unexportable_keys::ServiceError>* out_result);
  UnexportableKeyService_GenerateSigningKey_ResponseParam_ResultPtr GenerateSigningKey(const std::vector<::crypto::SignatureVerifier::SignatureAlgorithm>& acceptable_algorithms, ::unexportable_keys::BackgroundTaskPriority priority);
  void FromWrappedSigningKey(
      const std::vector<uint8_t>& wrapped_key, ::unexportable_keys::BackgroundTaskPriority priority,
base::expected<
  NewSigningKeyDataPtr,
  ::unexportable_keys::ServiceError>* out_result);
  UnexportableKeyService_FromWrappedSigningKey_ResponseParam_ResultPtr FromWrappedSigningKey(const std::vector<uint8_t>& wrapped_key, ::unexportable_keys::BackgroundTaskPriority priority);
  void GenerateAttestationKey(
      const std::vector<::crypto::SignatureVerifier::SignatureAlgorithm>& acceptable_algorithms, ::unexportable_keys::BackgroundTaskPriority priority,
base::expected<
  NewAttestationKeyDataPtr,
  ::unexportable_keys::ServiceError>* out_result);
  UnexportableKeyService_GenerateAttestationKey_ResponseParam_ResultPtr GenerateAttestationKey(const std::vector<::crypto::SignatureVerifier::SignatureAlgorithm>& acceptable_algorithms, ::unexportable_keys::BackgroundTaskPriority priority);
  void FromWrappedAttestationKey(
      const std::vector<uint8_t>& wrapped_key, ::unexportable_keys::BackgroundTaskPriority priority,
base::expected<
  NewAttestationKeyDataPtr,
  ::unexportable_keys::ServiceError>* out_result);
  UnexportableKeyService_FromWrappedAttestationKey_ResponseParam_ResultPtr FromWrappedAttestationKey(const std::vector<uint8_t>& wrapped_key, ::unexportable_keys::BackgroundTaskPriority priority);
  void Sign(
      const ::unexportable_keys::UnexportableSigningKeyId& key_id, const std::vector<uint8_t>& data, ::unexportable_keys::BackgroundTaskPriority priority,
base::expected<
  std::vector<uint8_t>,
  ::unexportable_keys::ServiceError>* out_result);
  UnexportableKeyService_Sign_ResponseParam_ResultPtr Sign(const ::unexportable_keys::UnexportableSigningKeyId& key_id, const std::vector<uint8_t>& data, ::unexportable_keys::BackgroundTaskPriority priority);
  void Certify(
      const ::unexportable_keys::UnexportableAttestationKeyId& attestation_key_id, const ::unexportable_keys::UnexportableSigningKeyId& signing_key_id, const std::vector<uint8_t>& challenge, ::unexportable_keys::BackgroundTaskPriority priority,
base::expected<
  ::crypto::AttestationStatement,
  ::unexportable_keys::ServiceError>* out_result);
  UnexportableKeyService_Certify_ResponseParam_ResultPtr Certify(const ::unexportable_keys::UnexportableAttestationKeyId& attestation_key_id, const ::unexportable_keys::UnexportableSigningKeyId& signing_key_id, const std::vector<uint8_t>& challenge, ::unexportable_keys::BackgroundTaskPriority priority);
  void GetAllKeysForGarbageCollection(
      ::unexportable_keys::BackgroundTaskPriority priority,
base::expected<
  std::vector<NewSigningKeyDataPtr>,
  ::unexportable_keys::ServiceError>* out_result);
  UnexportableKeyService_GetAllKeysForGarbageCollection_ResponseParam_ResultPtr GetAllKeysForGarbageCollection(::unexportable_keys::BackgroundTaskPriority priority);
  void DeleteKeys(
      const std::vector<::unexportable_keys::UnexportableSigningKeyId>& key_ids, ::unexportable_keys::BackgroundTaskPriority priority,
base::expected<
  uint64_t,
  ::unexportable_keys::ServiceError>* out_result);
  UnexportableKeyService_DeleteKeys_ResponseParam_ResultPtr DeleteKeys(const std::vector<::unexportable_keys::UnexportableSigningKeyId>& key_ids, ::unexportable_keys::BackgroundTaskPriority priority);
  void DeleteAllKeys(
      
base::expected<
  uint64_t,
  ::unexportable_keys::ServiceError>* out_result);
  UnexportableKeyService_DeleteAllKeys_ResponseParam_ResultPtr DeleteAllKeys();

 private:
  UnexportableKeyService* const proxy_;
};




}  // unexportable_keys::mojom

#endif  // COMPONENTS_UNEXPORTABLE_KEYS_MOJOM_UNEXPORTABLE_KEY_SERVICE_MOJOM_TEST_UTILS_H_