blob: 9a420840fba8b3f2179b871407e4853e574f199a [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.
#ifndef LIBHWSEC_FRONTEND_CHAPS_MOCK_FRONTEND_H_
#define LIBHWSEC_FRONTEND_CHAPS_MOCK_FRONTEND_H_
#include <string>
#include <vector>
#include <absl/container/flat_hash_set.h>
#include <brillo/secure_blob.h>
#include <gmock/gmock.h>
#include "libhwsec/frontend/chaps/frontend.h"
#include "libhwsec/frontend/mock_frontend.h"
namespace hwsec {
class MockChapsFrontend : public MockFrontend, public ChapsFrontend {
public:
MockChapsFrontend() = default;
~MockChapsFrontend() override = default;
MOCK_METHOD(StatusOr<uint32_t>, GetFamily, (), (const override));
MOCK_METHOD(StatusOr<bool>, IsEnabled, (), (const override));
MOCK_METHOD(StatusOr<bool>, IsReady, (), (const override));
MOCK_METHOD(StatusOr<brillo::Blob>,
GetRandomBlob,
(size_t size),
(const override));
MOCK_METHOD(StatusOr<brillo::SecureBlob>,
GetRandomSecureBlob,
(size_t),
(const override));
MOCK_METHOD(Status,
IsRSAModulusSupported,
(uint32_t modulus_bits),
(const override));
MOCK_METHOD(Status, IsECCurveSupported, (int nid), (const override));
MOCK_METHOD(StatusOr<CreateKeyResult>,
GenerateRSAKey,
(int modulus_bits,
const brillo::Blob& public_exponent,
const brillo::SecureBlob& auth_value,
AllowSoftwareGen allow_soft_gen,
AllowDecrypt allow_decrypt,
AllowSign allow_sign),
(const override));
MOCK_METHOD(StatusOr<RSAPublicInfo>,
GetRSAPublicKey,
(Key key),
(const override));
MOCK_METHOD(StatusOr<CreateKeyResult>,
GenerateECCKey,
(int nid,
const brillo::SecureBlob& auth_value,
AllowDecrypt allow_decrypt,
AllowSign allow_sign),
(const override));
MOCK_METHOD(StatusOr<ECCPublicInfo>,
GetECCPublicKey,
(Key key),
(const override));
MOCK_METHOD(StatusOr<CreateKeyResult>,
WrapRSAKey,
(const brillo::Blob& exponent,
const brillo::Blob& modulus,
const brillo::SecureBlob& prime_factor,
const brillo::SecureBlob& auth_value,
AllowDecrypt allow_decrypt,
AllowSign allow_sign),
(const override));
MOCK_METHOD(StatusOr<CreateKeyResult>,
WrapECCKey,
(int curve_nid,
const brillo::Blob& public_point_x,
const brillo::Blob& public_point_y,
const brillo::SecureBlob& private_value,
const brillo::SecureBlob& auth_value,
AllowDecrypt allow_decrypt,
AllowSign allow_sign),
(const override));
MOCK_METHOD(StatusOr<ScopedKey>,
LoadKey,
(const brillo::Blob& key_blob,
const brillo::SecureBlob& auth_value),
(const override));
MOCK_METHOD(StatusOr<brillo::SecureBlob>,
Decrypt,
(Key key, const brillo::Blob& ciphertext),
(const override));
MOCK_METHOD(StatusOr<brillo::SecureBlob>,
Unbind,
(Key key, const brillo::Blob& ciphertext),
(const override));
MOCK_METHOD(StatusOr<brillo::Blob>,
Sign,
(Key key,
const brillo::Blob& data,
const SigningOptions& options),
(const override));
MOCK_METHOD(StatusOr<ChapsSealedData>,
SealData,
(const brillo::SecureBlob& unsealed_data,
const brillo::SecureBlob& auth_value),
(const override));
MOCK_METHOD(StatusOr<brillo::SecureBlob>,
UnsealData,
(const ChapsSealedData& sealed_data,
const brillo::SecureBlob& auth_value),
(const override));
MOCK_METHOD(void,
GetRandomSecureBlobAsync,
(size_t size, GetRandomSecureBlobCallback callback),
(const override));
MOCK_METHOD(void,
SealDataAsync,
(const brillo::SecureBlob& unsealed_data,
const brillo::SecureBlob& auth_value,
SealDataCallback callback),
(const override));
MOCK_METHOD(void,
UnsealDataAsync,
(const ChapsSealedData& sealed_data,
const brillo::SecureBlob& auth_value,
UnsealDataCallback callback),
(const override));
};
} // namespace hwsec
#endif // LIBHWSEC_FRONTEND_CHAPS_MOCK_FRONTEND_H_