//////////////////////////////////////////////////////////////////////////////// // Copyright 2016 Google LLC. // // This software is licensed under the terms defined in the Widevine Master // License Agreement. For a copy of this agreement, please contact // widevine-licensing@google.com. //////////////////////////////////////////////////////////////////////////////// #ifndef COMMON_MOCK_RSA_KEY_H_ #define COMMON_MOCK_RSA_KEY_H_ #include #include "testing/gmock.h" #include "common/rsa_key.h" namespace widevine { class MockRsaPrivateKey : public RsaPrivateKey { public: MockRsaPrivateKey() : RsaPrivateKey(RSA_new()) {} ~MockRsaPrivateKey() override {} MOCK_CONST_METHOD2(Decrypt, bool(const std::string& encrypted_message, std::string* decrypted_message)); MOCK_CONST_METHOD2(GenerateSignature, bool(const std::string& message, std::string* signature)); MOCK_CONST_METHOD1(MatchesPrivateKey, bool(const RsaPrivateKey& private_key)); MOCK_CONST_METHOD1(MatchesPublicKey, bool(const RsaPublicKey& public_key)); private: MockRsaPrivateKey(const MockRsaPrivateKey&) = delete; MockRsaPrivateKey& operator=(const MockRsaPrivateKey&) = delete; }; class MockRsaPublicKey : public RsaPublicKey { public: MockRsaPublicKey() : RsaPublicKey(RSA_new()) {} ~MockRsaPublicKey() override {} MOCK_CONST_METHOD2(Encrypt, bool(const std::string& clear_message, std::string* encrypted_message)); MOCK_CONST_METHOD2(VerifySignature, bool(const std::string& message, const std::string& signature)); MOCK_CONST_METHOD1(MatchesPrivateKey, bool(const RsaPrivateKey& private_key)); MOCK_CONST_METHOD1(MatchesPublicKey, bool(const RsaPublicKey& public_key)); private: MockRsaPublicKey(const MockRsaPublicKey&) = delete; MockRsaPublicKey& operator=(const MockRsaPublicKey&) = delete; }; class MockRsaKeyFactory : public RsaKeyFactory { public: MockRsaKeyFactory() {} ~MockRsaKeyFactory() override {} MOCK_CONST_METHOD1(CreateFromPkcs1PrivateKey, std::unique_ptr(const std::string& private_key)); MOCK_CONST_METHOD2( CreateFromPkcs8PrivateKey, std::unique_ptr(const std::string& private_key, const std::string& private_key_passphrase)); MOCK_CONST_METHOD1(CreateFromPkcs1PublicKey, std::unique_ptr(const std::string& public_key)); private: MockRsaKeyFactory(const MockRsaKeyFactory&) = delete; MockRsaKeyFactory& operator=(const MockRsaKeyFactory&) = delete; }; } // namespace widevine #endif // COMMON_MOCK_RSA_KEY_H_