13daa5a0d71ba8facd8be9370df54c20c23be6d8dUtkarsh Sanghi// 23daa5a0d71ba8facd8be9370df54c20c23be6d8dUtkarsh Sanghi// Copyright (C) 2015 The Android Open Source Project 33daa5a0d71ba8facd8be9370df54c20c23be6d8dUtkarsh Sanghi// 43daa5a0d71ba8facd8be9370df54c20c23be6d8dUtkarsh Sanghi// Licensed under the Apache License, Version 2.0 (the "License"); 53daa5a0d71ba8facd8be9370df54c20c23be6d8dUtkarsh Sanghi// you may not use this file except in compliance with the License. 63daa5a0d71ba8facd8be9370df54c20c23be6d8dUtkarsh Sanghi// You may obtain a copy of the License at 73daa5a0d71ba8facd8be9370df54c20c23be6d8dUtkarsh Sanghi// 83daa5a0d71ba8facd8be9370df54c20c23be6d8dUtkarsh Sanghi// http://www.apache.org/licenses/LICENSE-2.0 93daa5a0d71ba8facd8be9370df54c20c23be6d8dUtkarsh Sanghi// 103daa5a0d71ba8facd8be9370df54c20c23be6d8dUtkarsh Sanghi// Unless required by applicable law or agreed to in writing, software 113daa5a0d71ba8facd8be9370df54c20c23be6d8dUtkarsh Sanghi// distributed under the License is distributed on an "AS IS" BASIS, 123daa5a0d71ba8facd8be9370df54c20c23be6d8dUtkarsh Sanghi// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 133daa5a0d71ba8facd8be9370df54c20c23be6d8dUtkarsh Sanghi// See the License for the specific language governing permissions and 143daa5a0d71ba8facd8be9370df54c20c23be6d8dUtkarsh Sanghi// limitations under the License. 153daa5a0d71ba8facd8be9370df54c20c23be6d8dUtkarsh Sanghi// 1630a5bba00647d29e324111005deb76a0466f8c6bDarren Krahn 17745de272a4afde07cd3b3a7c376976bd0a972b36Darren Krahn#ifndef ATTESTATION_COMMON_MOCK_CRYPTO_UTILITY_H_ 18745de272a4afde07cd3b3a7c376976bd0a972b36Darren Krahn#define ATTESTATION_COMMON_MOCK_CRYPTO_UTILITY_H_ 1930a5bba00647d29e324111005deb76a0466f8c6bDarren Krahn 20745de272a4afde07cd3b3a7c376976bd0a972b36Darren Krahn#include "attestation/common/crypto_utility.h" 2130a5bba00647d29e324111005deb76a0466f8c6bDarren Krahn 2230a5bba00647d29e324111005deb76a0466f8c6bDarren Krahn#include <string> 2330a5bba00647d29e324111005deb76a0466f8c6bDarren Krahn 2430a5bba00647d29e324111005deb76a0466f8c6bDarren Krahn#include <gmock/gmock.h> 2530a5bba00647d29e324111005deb76a0466f8c6bDarren Krahn 2630a5bba00647d29e324111005deb76a0466f8c6bDarren Krahnnamespace attestation { 2730a5bba00647d29e324111005deb76a0466f8c6bDarren Krahn 2830a5bba00647d29e324111005deb76a0466f8c6bDarren Krahnclass MockCryptoUtility : public CryptoUtility { 2930a5bba00647d29e324111005deb76a0466f8c6bDarren Krahn public: 30d66389850c33614ffbbbbc3f768621182fd853baDarren Krahn MockCryptoUtility(); 31d66389850c33614ffbbbbc3f768621182fd853baDarren Krahn ~MockCryptoUtility() override; 32d66389850c33614ffbbbbc3f768621182fd853baDarren Krahn 33d66389850c33614ffbbbbc3f768621182fd853baDarren Krahn MOCK_CONST_METHOD2(GetRandom, bool(size_t, std::string*)); 3430a5bba00647d29e324111005deb76a0466f8c6bDarren Krahn 35d569cf62b11f74b7ca2ff2db53414927f7e2d66aDarren Krahn MOCK_METHOD2(CreateSealedKey, bool(std::string* aes_key, 36d569cf62b11f74b7ca2ff2db53414927f7e2d66aDarren Krahn std::string* sealed_key)); 3730a5bba00647d29e324111005deb76a0466f8c6bDarren Krahn 38d569cf62b11f74b7ca2ff2db53414927f7e2d66aDarren Krahn MOCK_METHOD4(EncryptData, bool(const std::string& data, 39d569cf62b11f74b7ca2ff2db53414927f7e2d66aDarren Krahn const std::string& aes_key, 40d569cf62b11f74b7ca2ff2db53414927f7e2d66aDarren Krahn const std::string& sealed_key, 41d569cf62b11f74b7ca2ff2db53414927f7e2d66aDarren Krahn std::string* encrypted_data)); 4230a5bba00647d29e324111005deb76a0466f8c6bDarren Krahn 43d569cf62b11f74b7ca2ff2db53414927f7e2d66aDarren Krahn MOCK_METHOD3(UnsealKey, bool(const std::string& encrypted_data, 44d569cf62b11f74b7ca2ff2db53414927f7e2d66aDarren Krahn std::string* aes_key, 45d569cf62b11f74b7ca2ff2db53414927f7e2d66aDarren Krahn std::string* sealed_key)); 4630a5bba00647d29e324111005deb76a0466f8c6bDarren Krahn 47d569cf62b11f74b7ca2ff2db53414927f7e2d66aDarren Krahn MOCK_METHOD3(DecryptData, bool(const std::string& encrypted_data, 48d569cf62b11f74b7ca2ff2db53414927f7e2d66aDarren Krahn const std::string& aes_key, 49d569cf62b11f74b7ca2ff2db53414927f7e2d66aDarren Krahn std::string* data)); 506222defa52eb13c0d90673f642f2647f7753478bDarren Krahn MOCK_METHOD2(GetRSASubjectPublicKeyInfo, bool(const std::string&, 516222defa52eb13c0d90673f642f2647f7753478bDarren Krahn std::string*)); 522e89ba764046e015ae90a1668f7cb3eb29cf509dDarren Krahn MOCK_METHOD2(GetRSAPublicKey, bool(const std::string&, std::string*)); 532e89ba764046e015ae90a1668f7cb3eb29cf509dDarren Krahn MOCK_METHOD4(EncryptIdentityCredential, bool(const std::string&, 542e89ba764046e015ae90a1668f7cb3eb29cf509dDarren Krahn const std::string&, 552e89ba764046e015ae90a1668f7cb3eb29cf509dDarren Krahn const std::string&, 562e89ba764046e015ae90a1668f7cb3eb29cf509dDarren Krahn EncryptedIdentityCredential*)); 57bc0c74963418442991072b2c87baec839eec9c20Darren Krahn MOCK_METHOD3(EncryptForUnbind, bool(const std::string&, 58bc0c74963418442991072b2c87baec839eec9c20Darren Krahn const std::string&, 59bc0c74963418442991072b2c87baec839eec9c20Darren Krahn std::string*)); 60ccf90703bb6989e659b12a6494e84fdb921008edDarren Krahn MOCK_METHOD3(VerifySignature, bool(const std::string&, 61ccf90703bb6989e659b12a6494e84fdb921008edDarren Krahn const std::string&, 62ccf90703bb6989e659b12a6494e84fdb921008edDarren Krahn const std::string&)); 6330a5bba00647d29e324111005deb76a0466f8c6bDarren Krahn}; 6430a5bba00647d29e324111005deb76a0466f8c6bDarren Krahn 6530a5bba00647d29e324111005deb76a0466f8c6bDarren Krahn} // namespace attestation 6630a5bba00647d29e324111005deb76a0466f8c6bDarren Krahn 67745de272a4afde07cd3b3a7c376976bd0a972b36Darren Krahn#endif // ATTESTATION_COMMON_MOCK_CRYPTO_UTILITY_H_ 68