1#ifndef ENGINE_SERVER_AUTHMANAGER_H
2#define ENGINE_SERVER_AUTHMANAGER_H
10#include <unordered_map>
17 inline const char *
const ADMIN =
"admin";
19 inline const char *
const HELPER =
"helper";
66 std::unordered_map<std::string, CRconRole>
m_Roles;
74 typedef void (*
FListCallback)(
const char *pIdent,
const char *pRoleName,
void *pUser);
79 int AddKeyHash(
const char *pIdent,
MD5_DIGEST Hash,
const unsigned char *pSalt,
const char *pRoleName);
80 int AddKey(
const char *pIdent,
const char *pPw,
const char *pRoleName);
82 int FindKey(
const char *pIdent)
const;
83 bool CheckKey(
int Slot,
const char *pPw)
const;
91 const char *
KeyIdent(
int Slot)
const;
94 void UpdateKey(
int Slot,
const char *pPw,
const char *pRoleName);
100 bool AddRole(
const char *pName,
int Rank);
#define SALT_BYTES
Definition authmanager.h:13
Definition authmanager.h:58
unsigned char m_aSalt[8]
Definition authmanager.h:62
MD5_DIGEST m_Pw
Definition authmanager.h:61
char m_aIdent[64]
Definition authmanager.h:60
CRconRole * m_pRole
Definition authmanager.h:63
static const char * AuthLevelToRoleName(int AuthLevel)
Definition authmanager.cpp:14
void(* FListCallback)(const char *pIdent, const char *pRoleName, void *pUser)
Definition authmanager.h:74
const char * KeyIdent(int Slot) const
Definition authmanager.cpp:165
bool IsGenerated() const
Definition authmanager.cpp:217
int m_aDefault[3]
Definition authmanager.h:68
int DefaultIndex(int AuthLevel) const
Definition authmanager.cpp:142
CRconRole * FindRole(const char *pName)
Definition authmanager.cpp:230
int KeyLevel(int Slot) const
Definition authmanager.cpp:158
int AddKey(const char *pIdent, const char *pPw, const char *pRoleName)
Definition authmanager.cpp:101
void RemoveKey(int Slot)
Definition authmanager.cpp:109
bool IsValidIdent(const char *pIdent) const
Definition authmanager.cpp:172
CAuthManager()
Definition authmanager.cpp:51
void Init()
Definition authmanager.cpp:63
bool AddRole(const char *pName, int Rank)
Definition authmanager.cpp:238
void UpdateKey(int Slot, const char *pPw, const char *pRoleName)
Definition authmanager.cpp:188
int DefaultKey(const char *pRoleName) const
Definition authmanager.cpp:147
void AddDefaultKey(const char *pRoleName, const char *pPw)
Definition authmanager.cpp:205
std::unordered_map< std::string, CRconRole > m_Roles
Definition authmanager.h:66
std::vector< CKey > m_vKeys
Definition authmanager.h:65
int NumNonDefaultKeys() const
Definition authmanager.cpp:222
void ListKeys(FListCallback pfnListCallback, void *pUser)
Definition authmanager.cpp:199
bool m_Generated
Definition authmanager.h:69
int AddKeyHash(const char *pIdent, MD5_DIGEST Hash, const unsigned char *pSalt, const char *pRoleName)
Definition authmanager.cpp:85
bool CheckKey(int Slot, const char *pPw) const
Definition authmanager.cpp:135
void UpdateKeyHash(int Slot, MD5_DIGEST Hash, const unsigned char *pSalt, const char *pRoleName)
Definition authmanager.cpp:177
int FindKey(const char *pIdent) const
Definition authmanager.cpp:126
Definition authmanager.h:31
const char * Name() const
Definition authmanager.h:37
int Rank() const
Definition authmanager.h:45
char m_aName[64]
Definition authmanager.h:32
CRconRole(const char *pName, int Rank)
Definition authmanager.h:47
int m_Rank
Definition authmanager.h:33
@ AUTHED_MOD
Definition protocol.h:80
@ AUTHED_ADMIN
Definition protocol.h:81
@ AUTHED_HELPER
Definition protocol.h:79
@ AUTHED_NO
Definition protocol.h:78
int str_copy(char *dst, const char *src, int dst_size)
Definition str.cpp:6
Definition authmanager.h:16
const char *const ADMIN
Definition authmanager.h:17
const char *const MODERATOR
Definition authmanager.h:18
const char *const HELPER
Definition authmanager.h:19
Definition authmanager.h:23
static constexpr int HELPER
Definition authmanager.h:26
static constexpr int ADMIN
Definition authmanager.h:24
static constexpr int NONE
Definition authmanager.h:27
static constexpr int MODERATOR
Definition authmanager.h:25