Skip to content
Snippets Groups Projects
provider.hh 750 B
Newer Older
  • Learn to ignore specific revisions
  • Daniel Lyubomirov's avatar
    Daniel Lyubomirov committed
    #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