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
17d66389850c33614ffbbbbc3f768621182fd853baDarren Krahn#ifndef ATTESTATION_SERVER_MOCK_KEY_STORE_H_
18d66389850c33614ffbbbbc3f768621182fd853baDarren Krahn#define ATTESTATION_SERVER_MOCK_KEY_STORE_H_
19d66389850c33614ffbbbbc3f768621182fd853baDarren Krahn
20d66389850c33614ffbbbbc3f768621182fd853baDarren Krahn#include "attestation/server/key_store.h"
21d66389850c33614ffbbbbc3f768621182fd853baDarren Krahn
22d66389850c33614ffbbbbc3f768621182fd853baDarren Krahn#include <string>
23d66389850c33614ffbbbbc3f768621182fd853baDarren Krahn
24d66389850c33614ffbbbbc3f768621182fd853baDarren Krahn#include <base/macros.h>
25d66389850c33614ffbbbbc3f768621182fd853baDarren Krahn#include <gmock/gmock.h>
26d66389850c33614ffbbbbc3f768621182fd853baDarren Krahn
27d66389850c33614ffbbbbc3f768621182fd853baDarren Krahnnamespace attestation {
28d66389850c33614ffbbbbc3f768621182fd853baDarren Krahn
29d66389850c33614ffbbbbc3f768621182fd853baDarren Krahnclass MockKeyStore : public KeyStore {
30d66389850c33614ffbbbbc3f768621182fd853baDarren Krahn public:
31d66389850c33614ffbbbbc3f768621182fd853baDarren Krahn  MockKeyStore();
32d66389850c33614ffbbbbc3f768621182fd853baDarren Krahn  virtual ~MockKeyStore();
33d66389850c33614ffbbbbc3f768621182fd853baDarren Krahn
344dc4629c415e7ca90ff146d7bb75b5646ecd8b17Darren Krahn  MOCK_METHOD3(Read,
354dc4629c415e7ca90ff146d7bb75b5646ecd8b17Darren Krahn               bool(const std::string& username,
364dc4629c415e7ca90ff146d7bb75b5646ecd8b17Darren Krahn                    const std::string& name,
374dc4629c415e7ca90ff146d7bb75b5646ecd8b17Darren Krahn                    std::string* key_data));
384dc4629c415e7ca90ff146d7bb75b5646ecd8b17Darren Krahn  MOCK_METHOD3(Write,
394dc4629c415e7ca90ff146d7bb75b5646ecd8b17Darren Krahn               bool(const std::string& username,
404dc4629c415e7ca90ff146d7bb75b5646ecd8b17Darren Krahn                    const std::string& name,
414dc4629c415e7ca90ff146d7bb75b5646ecd8b17Darren Krahn                    const std::string& key_data));
424dc4629c415e7ca90ff146d7bb75b5646ecd8b17Darren Krahn  MOCK_METHOD2(Delete,
434dc4629c415e7ca90ff146d7bb75b5646ecd8b17Darren Krahn               bool(const std::string& username, const std::string& name));
444dc4629c415e7ca90ff146d7bb75b5646ecd8b17Darren Krahn  MOCK_METHOD2(DeleteByPrefix,
454dc4629c415e7ca90ff146d7bb75b5646ecd8b17Darren Krahn               bool(const std::string& username,
464dc4629c415e7ca90ff146d7bb75b5646ecd8b17Darren Krahn                    const std::string& key_prefix));
474dc4629c415e7ca90ff146d7bb75b5646ecd8b17Darren Krahn  MOCK_METHOD7(Register,
484dc4629c415e7ca90ff146d7bb75b5646ecd8b17Darren Krahn               bool(const std::string& username,
494dc4629c415e7ca90ff146d7bb75b5646ecd8b17Darren Krahn                    const std::string& label,
504dc4629c415e7ca90ff146d7bb75b5646ecd8b17Darren Krahn                    KeyType key_type,
514dc4629c415e7ca90ff146d7bb75b5646ecd8b17Darren Krahn                    KeyUsage key_usage,
524dc4629c415e7ca90ff146d7bb75b5646ecd8b17Darren Krahn                    const std::string& private_key_blob,
534dc4629c415e7ca90ff146d7bb75b5646ecd8b17Darren Krahn                    const std::string& public_key_der,
544dc4629c415e7ca90ff146d7bb75b5646ecd8b17Darren Krahn                    const std::string& certificate));
554dc4629c415e7ca90ff146d7bb75b5646ecd8b17Darren Krahn  MOCK_METHOD2(RegisterCertificate,
564dc4629c415e7ca90ff146d7bb75b5646ecd8b17Darren Krahn               bool(const std::string& username,
574dc4629c415e7ca90ff146d7bb75b5646ecd8b17Darren Krahn                    const std::string& certificate));
58d66389850c33614ffbbbbc3f768621182fd853baDarren Krahn
59d66389850c33614ffbbbbc3f768621182fd853baDarren Krahn private:
60d66389850c33614ffbbbbc3f768621182fd853baDarren Krahn  DISALLOW_COPY_AND_ASSIGN(MockKeyStore);
61d66389850c33614ffbbbbc3f768621182fd853baDarren Krahn};
62d66389850c33614ffbbbbc3f768621182fd853baDarren Krahn
63d66389850c33614ffbbbbc3f768621182fd853baDarren Krahn}  // namespace attestation
64d66389850c33614ffbbbbc3f768621182fd853baDarren Krahn
65d66389850c33614ffbbbbc3f768621182fd853baDarren Krahn#endif  // ATTESTATION_SERVER_MOCK_KEY_STORE_H_
66