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// 16d66389850c33614ffbbbbc3f768621182fd853baDarren Krahn 17745de272a4afde07cd3b3a7c376976bd0a972b36Darren Krahn#include "attestation/common/mock_crypto_utility.h" 18d66389850c33614ffbbbbc3f768621182fd853baDarren Krahn 19d66389850c33614ffbbbbc3f768621182fd853baDarren Krahnusing ::testing::_; 20d66389850c33614ffbbbbc3f768621182fd853baDarren Krahnusing ::testing::Invoke; 21d66389850c33614ffbbbbc3f768621182fd853baDarren Krahnusing ::testing::Return; 22d66389850c33614ffbbbbc3f768621182fd853baDarren Krahnusing ::testing::WithArgs; 23d66389850c33614ffbbbbc3f768621182fd853baDarren Krahn 24d66389850c33614ffbbbbc3f768621182fd853baDarren Krahnnamespace { 25d66389850c33614ffbbbbc3f768621182fd853baDarren Krahn 26d66389850c33614ffbbbbc3f768621182fd853baDarren Krahnbool FakeRandom(size_t num_bytes, std::string* output) { 27d66389850c33614ffbbbbc3f768621182fd853baDarren Krahn *output = std::string(num_bytes, 'A'); 28d66389850c33614ffbbbbc3f768621182fd853baDarren Krahn return true; 29d66389850c33614ffbbbbc3f768621182fd853baDarren Krahn} 30d66389850c33614ffbbbbc3f768621182fd853baDarren Krahn 31d66389850c33614ffbbbbc3f768621182fd853baDarren Krahnbool CopyString(const std::string& s1, std::string* s2) { 32d66389850c33614ffbbbbc3f768621182fd853baDarren Krahn *s2 = s1; 33d66389850c33614ffbbbbc3f768621182fd853baDarren Krahn return true; 34d66389850c33614ffbbbbc3f768621182fd853baDarren Krahn} 35d66389850c33614ffbbbbc3f768621182fd853baDarren Krahn 36d66389850c33614ffbbbbc3f768621182fd853baDarren Krahn} // namespace 37d66389850c33614ffbbbbc3f768621182fd853baDarren Krahn 38d66389850c33614ffbbbbc3f768621182fd853baDarren Krahnnamespace attestation { 39d66389850c33614ffbbbbc3f768621182fd853baDarren Krahn 40d66389850c33614ffbbbbc3f768621182fd853baDarren KrahnMockCryptoUtility::MockCryptoUtility() { 41d66389850c33614ffbbbbc3f768621182fd853baDarren Krahn ON_CALL(*this, GetRandom(_, _)).WillByDefault(Invoke(FakeRandom)); 42d66389850c33614ffbbbbc3f768621182fd853baDarren Krahn ON_CALL(*this, CreateSealedKey(_, _)).WillByDefault(Return(true)); 43d66389850c33614ffbbbbc3f768621182fd853baDarren Krahn ON_CALL(*this, UnsealKey(_, _, _)).WillByDefault(Return(true)); 44d66389850c33614ffbbbbc3f768621182fd853baDarren Krahn ON_CALL(*this, EncryptData(_, _, _, _)) 45d66389850c33614ffbbbbc3f768621182fd853baDarren Krahn .WillByDefault(WithArgs<0, 3>(Invoke(CopyString))); 46d66389850c33614ffbbbbc3f768621182fd853baDarren Krahn ON_CALL(*this, DecryptData(_, _, _)) 47d66389850c33614ffbbbbc3f768621182fd853baDarren Krahn .WillByDefault(WithArgs<0, 2>(Invoke(CopyString))); 486222defa52eb13c0d90673f642f2647f7753478bDarren Krahn ON_CALL(*this, GetRSASubjectPublicKeyInfo(_, _)) 496222defa52eb13c0d90673f642f2647f7753478bDarren Krahn .WillByDefault(Invoke(CopyString)); 50d66389850c33614ffbbbbc3f768621182fd853baDarren Krahn} 51d66389850c33614ffbbbbc3f768621182fd853baDarren Krahn 52d66389850c33614ffbbbbc3f768621182fd853baDarren KrahnMockCryptoUtility::~MockCryptoUtility() {} 53d66389850c33614ffbbbbc3f768621182fd853baDarren Krahn 54d66389850c33614ffbbbbc3f768621182fd853baDarren Krahn} // namespace attestation 55