1 #ifndef MYSQL_VAULT_KEY_H 2 #define MYSQL_VAULT_KEY_H 3 4 #include "keyring_key.h" 5 #include "i_serialized_object.h" 6 7 namespace keyring { 8 9 struct Vault_key : public Key, public ISerialized_object 10 { Vault_keyVault_key11 Vault_key(const char *a_key_id, const char *a_key_type, const char *a_user_id, 12 const void *a_key, size_t a_key_len) 13 : Key(a_key_id, a_key_type, a_user_id, a_key, a_key_len) 14 , was_key_retrieved(false) 15 {} 16 Vault_keyVault_key17 Vault_key(const Vault_key &vault_key) 18 : Key(vault_key.key_id.c_str(), vault_key.key_type.c_str(), 19 vault_key.user_id.c_str(), vault_key.key.get(), vault_key.key_len) 20 , was_key_retrieved(false) 21 { 22 this->key_operation = vault_key.key_operation; 23 } Vault_keyVault_key24 Vault_key() 25 {} 26 27 using Key::get_key_data; 28 uchar* get_key_data() const; 29 using Key::get_key_data_size; 30 size_t get_key_data_size() const; 31 using Key::get_key_type; 32 const std::string* get_key_type() const; 33 34 virtual my_bool get_next_key(IKey **key); 35 virtual my_bool has_next_key(); 36 virtual void create_key_signature() const; 37 virtual void xor_data(); 38 39 protected: 40 bool was_key_retrieved; 41 }; 42 43 } // namespace keyring 44 45 #endif // MYSQL_VAULT_KEY_H 46