mirror of
https://github.com/Mauler125/r5sdk.git
synced 2025-02-09 19:15:03 +01:00
Tier2: move random generator from tier0 to tier2
Moved into cryptutils.cpp.
This commit is contained in:
parent
73aff08819
commit
90e4711425
@ -74,7 +74,7 @@ void CNetConBase::SetKey(const char* pBase64NetKey, const bool bUseDefaultOnFail
|
|||||||
{
|
{
|
||||||
const char* errorMsg = nullptr;
|
const char* errorMsg = nullptr;
|
||||||
|
|
||||||
if (!CryptoGenRandom(m_NetKey, sizeof(m_NetKey), errorMsg))
|
if (!Plat_GenerateRandom(m_NetKey, sizeof(m_NetKey), errorMsg))
|
||||||
{
|
{
|
||||||
Error(eDLL_T::ENGINE, NO_ERROR, "RCON Key: generate error (%s)\n", errorMsg);
|
Error(eDLL_T::ENGINE, NO_ERROR, "RCON Key: generate error (%s)\n", errorMsg);
|
||||||
useDefaultKey = true;
|
useDefaultKey = true;
|
||||||
|
@ -8,7 +8,6 @@ int CreateDirHierarchy(const char* filePath);
|
|||||||
bool IsDirectory(const char* path);
|
bool IsDirectory(const char* path);
|
||||||
bool FileEmpty(ifstream& pFile);
|
bool FileEmpty(ifstream& pFile);
|
||||||
MODULEINFO GetModuleInfo(const char* szModule);
|
MODULEINFO GetModuleInfo(const char* szModule);
|
||||||
bool CryptoGenRandom(unsigned char* pData, const uint32_t nDataLen, const char*& outMsg);
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
// Debug
|
// Debug
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
#ifndef TIER2_CRYPTUTILS_H
|
#ifndef TIER2_CRYPTUTILS_H
|
||||||
#define TIER2_CRYPTUTILS_H
|
#define TIER2_CRYPTUTILS_H
|
||||||
|
|
||||||
|
bool Plat_GenerateRandom(unsigned char* pBuffer, const uint32_t nBufLen, const char*& errorMsg);
|
||||||
|
|
||||||
typedef unsigned char CryptoIV_t[16];
|
typedef unsigned char CryptoIV_t[16];
|
||||||
typedef unsigned char CryptoKey_t[16];
|
typedef unsigned char CryptoKey_t[16];
|
||||||
|
|
||||||
|
@ -121,26 +121,6 @@ MODULEINFO GetModuleInfo(const char* szModule)
|
|||||||
return modinfo;
|
return modinfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
// For generating random data.
|
|
||||||
static BCRYPT_ALG_HANDLE s_bcryptAlgorithmProvider;
|
|
||||||
bool CryptoGenRandom(unsigned char* pData, const uint32_t nDataLen, const char*& outMsg)
|
|
||||||
{
|
|
||||||
if (!s_bcryptAlgorithmProvider && (BCryptOpenAlgorithmProvider(&s_bcryptAlgorithmProvider, L"RNG", 0, 0) < 0))
|
|
||||||
{
|
|
||||||
outMsg = "Failed to open rng algorithm";
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (BCryptGenRandom(s_bcryptAlgorithmProvider, pData, nDataLen, 0) < 0)
|
|
||||||
{
|
|
||||||
outMsg = "Failed to generate random data";
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
// For printing output to the debugger.
|
// For printing output to the debugger.
|
||||||
void DbgPrint(LPCSTR sFormat, ...)
|
void DbgPrint(LPCSTR sFormat, ...)
|
||||||
|
@ -11,6 +11,24 @@
|
|||||||
|
|
||||||
#include "tier2/cryptutils.h"
|
#include "tier2/cryptutils.h"
|
||||||
|
|
||||||
|
static BCRYPT_ALG_HANDLE s_algorithmProvider;
|
||||||
|
bool Plat_GenerateRandom(unsigned char* buffer, const uint32_t bufferSize, const char*& errorMsg)
|
||||||
|
{
|
||||||
|
if (!s_algorithmProvider && (BCryptOpenAlgorithmProvider(&s_algorithmProvider, L"RNG", 0, 0) < 0))
|
||||||
|
{
|
||||||
|
errorMsg = "Failed to open rng algorithm";
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (BCryptGenRandom(s_algorithmProvider, buffer, bufferSize, 0) < 0)
|
||||||
|
{
|
||||||
|
errorMsg = "Failed to generate random data";
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
bool Crypto_GenerateIV(CryptoContext_s& ctx, const unsigned char* const data, const size_t size)
|
bool Crypto_GenerateIV(CryptoContext_s& ctx, const unsigned char* const data, const size_t size)
|
||||||
{
|
{
|
||||||
mbedtls_entropy_context entropy;
|
mbedtls_entropy_context entropy;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user