3#include <StormByte/crypto/password.hxx>
4#include <StormByte/crypto/typedefs.hxx>
5#include <StormByte/crypto/visibility.h>
6#include <StormByte/exception.hxx>
9#include <unordered_map>
16namespace StormByte::Crypto {
26 class STORMBYTE_CRYPTO_PUBLIC
Vault {
69 void Store(std::
string name,
Password password) noexcept;
79 ExpectedPassword Get(const std::
string& name) const noexcept;
86 bool Contains(const std::
string& name) const noexcept;
92 void Remove(const std::
string& name) noexcept;
97 void Clear() noexcept;
103 std::
size_t Size() const noexcept;
109 bool Empty() const noexcept;
112 std::unordered_map<std::
string,
Password> m_passwords;
Secure, reference-counted container for passwords and binary key material.
Definition password.hxx:36
Secure container for named passwords.
Definition vault.hxx:26
Vault()=default
Default constructor. Creates an empty vault.
Vault(const Vault &)=delete
Copy constructor (deleted). Copying is disabled to prevent accidental duplication of the vault.
~Vault() noexcept
Destructor. Releases all stored passwords (secure wipe is performed by Password).
Vault(Vault &&other) noexcept
Move constructor.