Newer
Older
#ifndef __VEREIGN_IDENTITY_PROVIDER_HH
#define __VEREIGN_IDENTITY_PROVIDER_HH
#include <vereign/kvstore/crypto_storage.hh>
#include <mutex>
namespace vereign::identity {
class Provider {
public:
Provider(kvstore::CryptoStorage& storage);
// disable copying
Provider(const kvstore::Storage&) = delete;
auto operator=(const kvstore::Storage&) -> Provider& = delete;
auto ResetIdentity(const std::string& pin) -> std::string;
auto LoadIdentity(const std::string& pin) -> std::string;
auto GetIdentityPublicKeyBase64() -> std::string;
auto GetDeviceHash() -> std::string;
~Provider();
private:
std::mutex mu_;
kvstore::CryptoStorage& storage_;
};
} // namespace vereign::identity
#endif // __VEREIGN_IDENTITY_PROVIDER_HH