blob: bf2174abae832079bad2bc1b4f2916bd73fb3be8 [file] [log] [blame]
// Copyright (c) 2012 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 CHAPS_CHAPS_PROXY_MOCK_H_
#define CHAPS_CHAPS_PROXY_MOCK_H_
#include <string>
#include <vector>
#include <brillo/secure_blob.h>
#include <chaps/proto_bindings/ck_structs.pb.h>
#include <gmock/gmock.h>
#include <gtest/gtest.h>
#include "chaps/chaps_interface.h"
#include "chaps/isolate.h"
namespace chaps {
// Defined in chaps.cc.
extern void EnableMockProxy(ChapsInterface* proxy,
brillo::SecureBlob* isolate_credential,
bool is_initialized);
extern void DisableMockProxy();
extern void SetRetryTimeParameters(uint32_t timeout_ms, uint32_t delay_ms);
// ChapsProxyMock is a mock of ChapsInterface.
class ChapsProxyMock : public ChapsInterface {
public:
explicit ChapsProxyMock(bool is_initialized)
: isolate_credential_(
IsolateCredentialManager::GetDefaultIsolateCredential()) {
EnableMockProxy(this, &isolate_credential_, is_initialized);
}
ChapsProxyMock(const ChapsProxyMock&) = delete;
ChapsProxyMock& operator=(const ChapsProxyMock&) = delete;
~ChapsProxyMock() override { DisableMockProxy(); }
MOCK_METHOD3(GetSlotList,
uint32_t(const brillo::SecureBlob&,
bool,
std::vector<uint64_t>*));
MOCK_METHOD3(GetSlotInfo,
uint32_t(const brillo::SecureBlob&, uint64_t, SlotInfo*));
MOCK_METHOD3(GetTokenInfo,
uint32_t(const brillo::SecureBlob&, uint64_t, TokenInfo*));
MOCK_METHOD3(GetMechanismList,
uint32_t(const brillo::SecureBlob&,
uint64_t,
std::vector<uint64_t>*));
MOCK_METHOD4(
GetMechanismInfo,
uint32_t(const brillo::SecureBlob&, uint64_t, uint64_t, MechanismInfo*));
MOCK_METHOD4(InitToken,
uint32_t(const brillo::SecureBlob&,
uint64_t,
const std::string*,
const std::vector<uint8_t>&));
MOCK_METHOD3(InitPIN,
uint32_t(const brillo::SecureBlob&,
uint64_t,
const std::string*));
MOCK_METHOD4(SetPIN,
uint32_t(const brillo::SecureBlob&,
uint64_t,
const std::string*,
const std::string*));
MOCK_METHOD4(
OpenSession,
uint32_t(const brillo::SecureBlob&, uint64_t, uint64_t, uint64_t*));
MOCK_METHOD2(CloseSession, uint32_t(const brillo::SecureBlob&, uint64_t));
MOCK_METHOD2(CloseAllSessions, uint32_t(const brillo::SecureBlob&, uint64_t));
MOCK_METHOD3(GetSessionInfo,
uint32_t(const brillo::SecureBlob&, uint64_t, SessionInfo*));
MOCK_METHOD3(GetOperationState,
uint32_t(const brillo::SecureBlob&,
uint64_t,
std::vector<uint8_t>*));
MOCK_METHOD5(SetOperationState,
uint32_t(const brillo::SecureBlob&,
uint64_t,
const std::vector<uint8_t>&,
uint64_t,
uint64_t));
MOCK_METHOD4(Login,
uint32_t(const brillo::SecureBlob&,
uint64_t,
uint64_t,
const std::string*));
MOCK_METHOD2(Logout, uint32_t(const brillo::SecureBlob&, uint64_t));
MOCK_METHOD4(CreateObject,
uint32_t(const brillo::SecureBlob&,
uint64_t,
const std::vector<uint8_t>&,
uint64_t*));
MOCK_METHOD5(CopyObject,
uint32_t(const brillo::SecureBlob&,
uint64_t,
uint64_t,
const std::vector<uint8_t>&,
uint64_t*));
MOCK_METHOD3(DestroyObject,
uint32_t(const brillo::SecureBlob&, uint64_t, uint64_t));
MOCK_METHOD4(
GetObjectSize,
uint32_t(const brillo::SecureBlob&, uint64_t, uint64_t, uint64_t*));
MOCK_METHOD5(GetAttributeValue,
uint32_t(const brillo::SecureBlob&,
uint64_t,
uint64_t,
const std::vector<uint8_t>&,
std::vector<uint8_t>*));
MOCK_METHOD4(SetAttributeValue,
uint32_t(const brillo::SecureBlob&,
uint64_t,
uint64_t,
const std::vector<uint8_t>&));
MOCK_METHOD3(FindObjectsInit,
uint32_t(const brillo::SecureBlob&,
uint64_t,
const std::vector<uint8_t>&));
MOCK_METHOD4(FindObjects,
uint32_t(const brillo::SecureBlob&,
uint64_t,
uint64_t,
std::vector<uint64_t>*));
MOCK_METHOD2(FindObjectsFinal, uint32_t(const brillo::SecureBlob&, uint64_t));
MOCK_METHOD5(EncryptInit,
uint32_t(const brillo::SecureBlob&,
uint64_t,
uint64_t,
const std::vector<uint8_t>&,
uint64_t key_handle));
MOCK_METHOD6(Encrypt,
uint32_t(const brillo::SecureBlob&,
uint64_t,
const std::vector<uint8_t>&,
uint64_t,
uint64_t*,
std::vector<uint8_t>*));
MOCK_METHOD6(EncryptUpdate,
uint32_t(const brillo::SecureBlob&,
uint64_t,
const std::vector<uint8_t>&,
uint64_t,
uint64_t*,
std::vector<uint8_t>*));
MOCK_METHOD5(EncryptFinal,
uint32_t(const brillo::SecureBlob&,
uint64_t,
uint64_t,
uint64_t*,
std::vector<uint8_t>*));
MOCK_METHOD2(EncryptCancel, void(const brillo::SecureBlob&, uint64_t));
MOCK_METHOD5(DecryptInit,
uint32_t(const brillo::SecureBlob&,
uint64_t,
uint64_t,
const std::vector<uint8_t>&,
uint64_t));
MOCK_METHOD6(Decrypt,
uint32_t(const brillo::SecureBlob&,
uint64_t,
const std::vector<uint8_t>&,
uint64_t,
uint64_t*,
std::vector<uint8_t>*));
MOCK_METHOD6(DecryptUpdate,
uint32_t(const brillo::SecureBlob&,
uint64_t,
const std::vector<uint8_t>&,
uint64_t,
uint64_t*,
std::vector<uint8_t>*));
MOCK_METHOD5(DecryptFinal,
uint32_t(const brillo::SecureBlob&,
uint64_t,
uint64_t,
uint64_t*,
std::vector<uint8_t>*));
MOCK_METHOD2(DecryptCancel, void(const brillo::SecureBlob&, uint64_t));
MOCK_METHOD4(DigestInit,
uint32_t(const brillo::SecureBlob&,
uint64_t,
uint64_t,
const std::vector<uint8_t>&));
MOCK_METHOD6(Digest,
uint32_t(const brillo::SecureBlob&,
uint64_t,
const std::vector<uint8_t>&,
uint64_t,
uint64_t*,
std::vector<uint8_t>*));
MOCK_METHOD3(DigestUpdate,
uint32_t(const brillo::SecureBlob&,
uint64_t,
const std::vector<uint8_t>&));
MOCK_METHOD3(DigestKey,
uint32_t(const brillo::SecureBlob&, uint64_t, uint64_t));
MOCK_METHOD5(DigestFinal,
uint32_t(const brillo::SecureBlob&,
uint64_t,
uint64_t,
uint64_t*,
std::vector<uint8_t>*));
MOCK_METHOD2(DigestCancel, void(const brillo::SecureBlob&, uint64_t));
MOCK_METHOD5(SignInit,
uint32_t(const brillo::SecureBlob&,
uint64_t,
uint64_t,
const std::vector<uint8_t>&,
uint64_t));
MOCK_METHOD6(Sign,
uint32_t(const brillo::SecureBlob&,
uint64_t,
const std::vector<uint8_t>&,
uint64_t,
uint64_t*,
std::vector<uint8_t>*));
MOCK_METHOD3(SignUpdate,
uint32_t(const brillo::SecureBlob&,
uint64_t,
const std::vector<uint8_t>&));
MOCK_METHOD5(SignFinal,
uint32_t(const brillo::SecureBlob&,
uint64_t,
uint64_t,
uint64_t*,
std::vector<uint8_t>*));
MOCK_METHOD2(SignCancel, void(const brillo::SecureBlob&, uint64_t));
MOCK_METHOD5(SignRecoverInit,
uint32_t(const brillo::SecureBlob&,
uint64_t,
uint64_t,
const std::vector<uint8_t>&,
uint64_t));
MOCK_METHOD6(SignRecover,
uint32_t(const brillo::SecureBlob&,
uint64_t,
const std::vector<uint8_t>&,
uint64_t,
uint64_t*,
std::vector<uint8_t>*));
MOCK_METHOD5(VerifyInit,
uint32_t(const brillo::SecureBlob&,
uint64_t,
uint64_t,
const std::vector<uint8_t>&,
uint64_t));
MOCK_METHOD4(Verify,
uint32_t(const brillo::SecureBlob&,
uint64_t,
const std::vector<uint8_t>&,
const std::vector<uint8_t>&));
MOCK_METHOD3(VerifyUpdate,
uint32_t(const brillo::SecureBlob&,
uint64_t,
const std::vector<uint8_t>&));
MOCK_METHOD3(VerifyFinal,
uint32_t(const brillo::SecureBlob&,
uint64_t,
const std::vector<uint8_t>&));
MOCK_METHOD2(VerifyCancel, void(const brillo::SecureBlob&, uint64_t));
MOCK_METHOD5(VerifyRecoverInit,
uint32_t(const brillo::SecureBlob&,
uint64_t,
uint64_t,
const std::vector<uint8_t>&,
uint64_t));
MOCK_METHOD6(VerifyRecover,
uint32_t(const brillo::SecureBlob&,
uint64_t,
const std::vector<uint8_t>&,
uint64_t,
uint64_t*,
std::vector<uint8_t>*));
MOCK_METHOD6(DigestEncryptUpdate,
uint32_t(const brillo::SecureBlob&,
uint64_t,
const std::vector<uint8_t>&,
uint64_t,
uint64_t*,
std::vector<uint8_t>*));
MOCK_METHOD6(DecryptDigestUpdate,
uint32_t(const brillo::SecureBlob&,
uint64_t,
const std::vector<uint8_t>&,
uint64_t,
uint64_t*,
std::vector<uint8_t>*));
MOCK_METHOD6(SignEncryptUpdate,
uint32_t(const brillo::SecureBlob&,
uint64_t,
const std::vector<uint8_t>&,
uint64_t,
uint64_t*,
std::vector<uint8_t>*));
MOCK_METHOD6(DecryptVerifyUpdate,
uint32_t(const brillo::SecureBlob&,
uint64_t,
const std::vector<uint8_t>&,
uint64_t,
uint64_t*,
std::vector<uint8_t>*));
MOCK_METHOD6(GenerateKey,
uint32_t(const brillo::SecureBlob&,
uint64_t,
uint64_t,
const std::vector<uint8_t>&,
const std::vector<uint8_t>&,
uint64_t*));
MOCK_METHOD8(GenerateKeyPair,
uint32_t(const brillo::SecureBlob&,
uint64_t,
uint64_t,
const std::vector<uint8_t>&,
const std::vector<uint8_t>&,
const std::vector<uint8_t>&,
uint64_t*,
uint64_t*));
MOCK_METHOD9(WrapKey,
uint32_t(const brillo::SecureBlob&,
uint64_t,
uint64_t,
const std::vector<uint8_t>&,
uint64_t,
uint64_t,
uint64_t,
uint64_t*,
std::vector<uint8_t>*));
MOCK_METHOD8(UnwrapKey,
uint32_t(const brillo::SecureBlob&,
uint64_t,
uint64_t,
const std::vector<uint8_t>&,
uint64_t,
const std::vector<uint8_t>&,
const std::vector<uint8_t>&,
uint64_t*));
MOCK_METHOD7(DeriveKey,
uint32_t(const brillo::SecureBlob&,
uint64_t,
uint64_t,
const std::vector<uint8_t>&,
uint64_t,
const std::vector<uint8_t>&,
uint64_t*));
MOCK_METHOD3(SeedRandom,
uint32_t(const brillo::SecureBlob&,
uint64_t,
const std::vector<uint8_t>&));
MOCK_METHOD4(GenerateRandom,
uint32_t(const brillo::SecureBlob&,
uint64_t,
uint64_t,
std::vector<uint8_t>*));
private:
brillo::SecureBlob isolate_credential_;
};
} // namespace chaps
#endif // CHAPS_CHAPS_PROXY_MOCK_H_