mirror of
https://github.com/mangosfour/server.git
synced 2025-12-26 16:37:06 +00:00
Small backport from other branch.
Conflicts: src/game/Player.cpp src/game/SharedDefines.h src/game/UpdateFields.h src/realmd/AuthCodes.h src/shared/Auth/AuthCrypt.cpp src/shared/Auth/HMACSHA1.cpp
This commit is contained in:
parent
1904d2e654
commit
73f6bf1783
8 changed files with 14 additions and 10 deletions
|
|
@ -21,7 +21,7 @@
|
|||
#include "Log.h"
|
||||
#include "BigNumber.h"
|
||||
|
||||
AuthCrypt::AuthCrypt()
|
||||
AuthCrypt::AuthCrypt() : _clientDecrypt(SHA_DIGEST_LENGTH), _serverEncrypt(SHA_DIGEST_LENGTH)
|
||||
{
|
||||
_initialized = false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -165,7 +165,7 @@ bool BigNumber::isZero() const
|
|||
return BN_is_zero(_bn)!=0;
|
||||
}
|
||||
|
||||
uint8 *BigNumber::AsByteArray(int minSize)
|
||||
uint8 *BigNumber::AsByteArray(int minSize, bool reverse)
|
||||
{
|
||||
int length = (minSize >= GetNumBytes()) ? minSize : GetNumBytes();
|
||||
|
||||
|
|
@ -182,7 +182,8 @@ uint8 *BigNumber::AsByteArray(int minSize)
|
|||
|
||||
BN_bn2bin(_bn, (unsigned char *)_array);
|
||||
|
||||
std::reverse(_array, _array + length);
|
||||
if (reverse)
|
||||
std::reverse(_array, _array + length);
|
||||
|
||||
return _array;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -81,7 +81,7 @@ class BigNumber
|
|||
struct bignum_st *BN() { return _bn; }
|
||||
|
||||
uint32 AsDword();
|
||||
uint8* AsByteArray(int minSize = 0);
|
||||
uint8* AsByteArray(int minSize = 0, bool reverse = true);
|
||||
|
||||
const char *AsHexStr();
|
||||
const char *AsDecStr();
|
||||
|
|
|
|||
|
|
@ -44,6 +44,7 @@ void HMACSHA1::UpdateData(const std::string &str)
|
|||
{
|
||||
UpdateData((uint8 const*)str.c_str(), str.length());
|
||||
}
|
||||
|
||||
void HMACSHA1::Finalize()
|
||||
{
|
||||
uint32 length = 0;
|
||||
|
|
|
|||
|
|
@ -34,6 +34,7 @@ class HMACSHA1
|
|||
~HMACSHA1();
|
||||
void UpdateBigNumber(BigNumber *bn);
|
||||
void UpdateData(const uint8 *data, int length);
|
||||
void UpdateData(const std::string &str);
|
||||
void Finalize();
|
||||
uint8 *ComputeHash(BigNumber *bn);
|
||||
uint8 *GetDigest() { return (uint8*)m_digest; }
|
||||
|
|
|
|||
|
|
@ -19,18 +19,18 @@
|
|||
#include "Auth/SARC4.h"
|
||||
#include <openssl/sha.h>
|
||||
|
||||
SARC4::SARC4()
|
||||
SARC4::SARC4(uint8 len)
|
||||
{
|
||||
EVP_CIPHER_CTX_init(&m_ctx);
|
||||
EVP_EncryptInit_ex(&m_ctx, EVP_rc4(), NULL, NULL, NULL);
|
||||
EVP_CIPHER_CTX_set_key_length(&m_ctx, SHA_DIGEST_LENGTH);
|
||||
EVP_CIPHER_CTX_set_key_length(&m_ctx, len);
|
||||
}
|
||||
|
||||
SARC4::SARC4(uint8 *seed)
|
||||
SARC4::SARC4(uint8 *seed, uint8 len)
|
||||
{
|
||||
EVP_CIPHER_CTX_init(&m_ctx);
|
||||
EVP_EncryptInit_ex(&m_ctx, EVP_rc4(), NULL, NULL, NULL);
|
||||
EVP_CIPHER_CTX_set_key_length(&m_ctx, SHA_DIGEST_LENGTH);
|
||||
EVP_CIPHER_CTX_set_key_length(&m_ctx, len);
|
||||
EVP_EncryptInit_ex(&m_ctx, NULL, NULL, seed, NULL);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -25,8 +25,8 @@
|
|||
class SARC4
|
||||
{
|
||||
public:
|
||||
SARC4();
|
||||
SARC4(uint8 *seed);
|
||||
SARC4(uint8 len);
|
||||
SARC4(uint8 *seed, uint8 len);
|
||||
~SARC4();
|
||||
void Init(uint8 *seed);
|
||||
void UpdateData(int len, uint8 *data);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue