Starbound/attic/old_source/StarAuthentication.hpp
2025-03-21 22:23:30 +11:00

46 lines
898 B
C++

#ifndef STAR_AUTHENTICATION_HPP
#define STAR_AUTHENTICATION_HPP
#include "StarVariant.hpp"
#include "StarThread.hpp"
namespace Star {
STAR_CLASS(AuthenticationImpl);
STAR_CLASS(SharedClaim);
STAR_CLASS(Authentication);
class SharedClaim {
public:
virtual ~SharedClaim() {};
virtual bool validateClaim() = 0;
virtual Variant claim() = 0;
virtual String encrypt(String const& message) = 0;
virtual bool verify(String const& message, String const& signature) = 0;
virtual String username() = 0;
};
class Authentication {
public:
void load();
bool validateClaim(bool remoteValidate);
bool logon(String const& username, String const& passwordHash);
Variant claim();
String decrypt(String const& message);
String sign(String const& message);
SharedClaimPtr sharedClaim(Variant const& data);
private:
AuthenticationImplPtr m_impl;
Mutex m_mutex;
};
}
#endif