// Copyright 2016 Google Inc. All Rights Reserved. // // Mock implementation of OEMCrypto APIs // #ifndef OEMCRYPTO_RSA_KEY_SHARED_H_ #define OEMCRYPTO_RSA_KEY_SHARED_H_ #include #include namespace wvoec_mock { // Shared pointer with specialized destructor. This pointer is only shared // from a CryptoEngine to a Session -- so we don't have to use full reference // counting. class RSA_shared_ptr { public: RSA_shared_ptr() : rsa_key_(NULL), key_owned_(false) {} ~RSA_shared_ptr() { reset(); }; // Explicitly allow copy as share. explicit RSA_shared_ptr(const RSA_shared_ptr& other) : rsa_key_(other.rsa_key_), key_owned_(false) {} RSA* get() { return rsa_key_; } void reset(); bool LoadPkcs8RsaKey(const uint8_t* buffer, size_t length); private: void operator=(const RSA_shared_ptr); // disallow assign. RSA* rsa_key_; bool key_owned_; }; } // namespace wvoec_mock #endif // OEMCRYPTO_RSA_KEY_SHARED_H_