KeyringMemory class.
More...
#include <keyring_memory.h>
|
| KeyringMemory ()=default |
|
std::vector< char > | serialize (const std::string &key) const |
| Serializes and encrypts keyring data to memory buffer. More...
|
|
void | parse (const std::string &key, const char *buffer, std::size_t buffer_size) |
| Parses and decrypts keyring data. More...
|
|
void | store (const std::string &uid, const std::string &attribute, const std::string &value) override |
| Stores an attribute value in an entry. More...
|
|
std::string | fetch (const std::string &uid, const std::string &attribute) const override |
| Retrieves attribute value from an entry. More...
|
|
bool | remove (const std::string &uid) override |
| Removes an entry. More...
|
|
bool | remove_attribute (const std::string &uid, const std::string &attribute) override |
| Removes an attribute from an entry. More...
|
|
const std::map< std::string, std::map< std::string, std::string > > & | entries () const |
|
| Keyring ()=default |
|
| Keyring (const Keyring &)=default |
|
Keyring & | operator= (const Keyring &)=default |
|
virtual | ~Keyring ()=default |
|
|
std::map< std::string, std::map< std::string, std::string > > | entries_ |
|
KeyringMemory class.
Implements Keyring interface and provides additional methods for parsing and serialization using a simple binary format. Also, handles AES encryption. Used primarily for testing and as a base for KeyringFile.
◆ KeyringMemory()
mysql_harness::KeyringMemory::KeyringMemory |
( |
| ) |
|
|
default |
◆ entries()
const std::map< std::string, std::map< std::string, std::string > > & mysql_harness::KeyringMemory::entries |
( |
| ) |
const |
|
inline |
◆ fetch()
std::string mysql_harness::KeyringMemory::fetch |
( |
const std::string & |
uid, |
|
|
const std::string & |
attribute |
|
) |
| const |
|
overridevirtual |
Retrieves attribute value from an entry.
- Parameters
-
[in] | uid | Entry id. |
[in] | attribute | Attribute id. |
- Returns
- Attribute value.
- Exceptions
-
std::out_of_range | Attribute not found. |
Implements mysql_harness::Keyring.
◆ parse()
void mysql_harness::KeyringMemory::parse |
( |
const std::string & |
key, |
|
|
const char * |
buffer, |
|
|
std::size_t |
buffer_size |
|
) |
| |
Parses and decrypts keyring data.
- Parameters
-
[in] | key | Key used for decryption. |
[in] | buffer | Serialized keyring data. |
[in] | buffer_size | Size of the data. |
- Exceptions
-
std::exception | Parsing failed. |
◆ remove()
bool mysql_harness::KeyringMemory::remove |
( |
const std::string & |
uid | ) |
|
|
overridevirtual |
Removes an entry.
- Parameters
-
- Returns
- success
- Return values
-
true | uid removed |
false | uid not removed |
Implements mysql_harness::Keyring.
◆ remove_attribute()
bool mysql_harness::KeyringMemory::remove_attribute |
( |
const std::string & |
uid, |
|
|
const std::string & |
attribute |
|
) |
| |
|
overridevirtual |
Removes an attribute from an entry.
- Parameters
-
[in] | uid | Entry id. |
[in] | attribute | Attribute id. |
- Returns
- success
- Return values
-
true | uid removed |
false | uid not removed |
Implements mysql_harness::Keyring.
◆ serialize()
std::vector< char > mysql_harness::KeyringMemory::serialize |
( |
const std::string & |
key | ) |
const |
Serializes and encrypts keyring data to memory buffer.
- Parameters
-
[in] | key | Key used for encryption. |
- Returns
- Serialized keyring data.
- Exceptions
-
std::exception | Serialization failed. |
◆ store()
void mysql_harness::KeyringMemory::store |
( |
const std::string & |
uid, |
|
|
const std::string & |
attribute, |
|
|
const std::string & |
value |
|
) |
| |
|
overridevirtual |
Stores an attribute value in an entry.
- Parameters
-
[in] | uid | Entry id. |
[in] | attribute | Attribute id. |
[in] | value | Attribute value. |
Implements mysql_harness::Keyring.
◆ entries_
std::map<std::string, std::map<std::string, std::string> > mysql_harness::KeyringMemory::entries_ |
|
private |
◆ kFormatVersion
constexpr static unsigned int mysql_harness::KeyringMemory::kFormatVersion = 0 |
|
staticconstexpr |
The documentation for this class was generated from the following files: