Merge pull request #89 from MindL0ve/main

This commit is contained in:
rtw1x1
2026-02-01 20:52:57 +00:00
committed by GitHub
5 changed files with 3 additions and 87 deletions

View File

@@ -32,11 +32,6 @@
#include <shacal2.h> #include <shacal2.h>
#include <skipjack.h> #include <skipjack.h>
#include <tea.h> #include <tea.h>
#ifdef __THEMIDA__
#include <ThemidaSDK.h>
#endif
#include "Debug.h" #include "Debug.h"
@@ -162,9 +157,6 @@ void Cipher::CleanUp() {
} }
size_t Cipher::Prepare(void* buffer, size_t* length) { size_t Cipher::Prepare(void* buffer, size_t* length) {
#ifdef __THEMIDA__
VM_START
#endif
assert(key_agreement_ == NULL); assert(key_agreement_ == NULL);
key_agreement_ = new DH2KeyAgreement(); key_agreement_ = new DH2KeyAgreement();
@@ -174,18 +166,12 @@ size_t Cipher::Prepare(void* buffer, size_t* length) {
delete key_agreement_; delete key_agreement_;
key_agreement_ = NULL; key_agreement_ = NULL;
} }
#ifdef __THEMIDA__
VM_END
#endif
return agreed_length; return agreed_length;
} }
bool Cipher::Activate(bool polarity, size_t agreed_length, bool Cipher::Activate(bool polarity, size_t agreed_length,
const void* buffer, size_t length) { const void* buffer, size_t length) {
#ifdef __THEMIDA__
VM_START
#endif
assert(activated_ == false); assert(activated_ == false);
assert(key_agreement_ != NULL); assert(key_agreement_ != NULL);
@@ -195,18 +181,11 @@ bool Cipher::Activate(bool polarity, size_t agreed_length,
} }
delete key_agreement_; delete key_agreement_;
key_agreement_ = NULL; key_agreement_ = NULL;
#ifdef __THEMIDA__
VM_END
#endif
return result; return result;
} }
bool Cipher::SetUp(bool polarity) { bool Cipher::SetUp(bool polarity) {
#ifdef __THEMIDA__
VM_START
#endif
assert(key_agreement_ != NULL); assert(key_agreement_ != NULL);
const SecByteBlock& shared = key_agreement_->shared(); const SecByteBlock& shared = key_agreement_->shared();
@@ -268,9 +247,6 @@ bool Cipher::SetUp(bool polarity) {
assert(encoder_ != NULL); assert(encoder_ != NULL);
assert(decoder_ != NULL); assert(decoder_ != NULL);
#ifdef __THEMIDA__
VM_END
#endif
return true; return true;
} }
@@ -340,10 +316,6 @@ DH2KeyAgreement::~DH2KeyAgreement() {
} }
size_t DH2KeyAgreement::Prepare(void* buffer, size_t* length) { size_t DH2KeyAgreement::Prepare(void* buffer, size_t* length) {
#ifdef __THEMIDA__
VM_START
#endif
// RFC 5114, 1024-bit MODP Group with 160-bit Prime Order Subgroup // RFC 5114, 1024-bit MODP Group with 160-bit Prime Order Subgroup
// http://tools.ietf.org/html/rfc5114#section-2.1 // http://tools.ietf.org/html/rfc5114#section-2.1
Integer p("0xB10B8F96A080E01DDE92DE5EAE5D54EC52C99FBCFB06A3C6" Integer p("0xB10B8F96A080E01DDE92DE5EAE5D54EC52C99FBCFB06A3C6"
@@ -418,10 +390,6 @@ size_t DH2KeyAgreement::Prepare(void* buffer, size_t* length) {
memcpy(buf, spub_key.BytePtr(), spub_key_length); memcpy(buf, spub_key.BytePtr(), spub_key_length);
memcpy(buf + spub_key_length, epub_key.BytePtr(), epub_key_length); memcpy(buf + spub_key_length, epub_key.BytePtr(), epub_key_length);
#ifdef __THEMIDA__
VM_END
#endif
return dh2_.AgreedValueLength(); return dh2_.AgreedValueLength();
} }
@@ -431,14 +399,12 @@ bool DH2KeyAgreement::Agree(size_t agreed_length, const void* buffer, size_t len
return false; return false;
} }
const size_t spub_key_length = dh2_.StaticPublicKeyLength(); const size_t spub_key_length = dh2_.StaticPublicKeyLength();
const size_t epub_key_length = dh2_.EphemeralPublicKeyLength(); if (const size_t epub_key_length = dh2_.EphemeralPublicKeyLength(); length != (spub_key_length + epub_key_length)) {
if (length != (spub_key_length + epub_key_length)) {
// Wrong data length // Wrong data length
return false; return false;
} }
shared_.New(dh2_.AgreedValueLength()); shared_.New(dh2_.AgreedValueLength());
const CryptoPP::byte* buf = (const CryptoPP::byte*)buffer; if (const CryptoPP::byte* buf = (const CryptoPP::byte*)buffer; !dh2_.Agree(shared_, spriv_key_, epriv_key_, buf, buf + spub_key_length)) {
if (!dh2_.Agree(shared_, spriv_key_, epriv_key_, buf, buf + spub_key_length)) {
// Failed to reach shared secret // Failed to reach shared secret
return false; return false;
} }

View File

@@ -10,7 +10,6 @@
// Forward declaration // Forward declaration
class KeyAgreement; class KeyAgreement;
//THEMIDA
// Communication channel encryption handler. // Communication channel encryption handler.
class Cipher { class Cipher {
public: public:

View File

@@ -629,7 +629,7 @@ const char * GetRecvHeaderName(BYTE header)
stringList[30] = "HEADER_GC_QUICKSLOT_SWAP"; stringList[30] = "HEADER_GC_QUICKSLOT_SWAP";
stringList[31] = "HEADER_GC_ITEM_OWNERSHIP"; stringList[31] = "HEADER_GC_ITEM_OWNERSHIP";
stringList[33] = "HEADER_GC_ITEM_UNBIND_TIME"; stringList[33] = "HEADER_GC_ITEM_UNBIND_TIME";
stringList[34] = "HEADER_GC_WHISPER "; stringList[34] = "HEADER_GC_WHISPER";
stringList[35] = "HEADER_GC_ALERT"; stringList[35] = "HEADER_GC_ALERT";
stringList[36] = "HEADER_GC_MOTION"; stringList[36] = "HEADER_GC_MOTION";
stringList[38] = "HEADER_GC_SHOP"; stringList[38] = "HEADER_GC_SHOP";

View File

@@ -68,10 +68,8 @@ struct FGetPickingPoint
CMapOutdoor::CMapOutdoor() CMapOutdoor::CMapOutdoor()
{ {
CGraphicImage * pAlphaFogImage = (CGraphicImage *) CResourceManager::Instance().GetResourcePointer("D:/ymir work/special/fog.tga");
CGraphicImage * pAttrImage = (CGraphicImage *)CResourceManager::Instance().GetResourcePointer("d:/ymir work/special/white.dds"); CGraphicImage * pAttrImage = (CGraphicImage *)CResourceManager::Instance().GetResourcePointer("d:/ymir work/special/white.dds");
CGraphicImage * pBuildTransparentImage = (CGraphicImage *)CResourceManager::Instance().GetResourcePointer("d:/ymir Work/special/PCBlockerAlpha.dds"); CGraphicImage * pBuildTransparentImage = (CGraphicImage *)CResourceManager::Instance().GetResourcePointer("d:/ymir Work/special/PCBlockerAlpha.dds");
m_AlphaFogImageInstance.SetImagePointer(pAlphaFogImage);
m_attrImageInstance.SetImagePointer(pAttrImage); m_attrImageInstance.SetImagePointer(pAttrImage);
m_BuildingTransparentImageInstance.SetImagePointer(pBuildTransparentImage); m_BuildingTransparentImageInstance.SetImagePointer(pBuildTransparentImage);
@@ -168,7 +166,6 @@ bool CMapOutdoor::Initialize()
D3DXMatrixIdentity(&m_matWorldForCommonUse); D3DXMatrixIdentity(&m_matWorldForCommonUse);
InitializeFog();
InitializeVisibleParts(); InitializeVisibleParts();
m_dwBaseX = 0; m_dwBaseX = 0;
@@ -212,8 +209,6 @@ bool CMapOutdoor::Destroy()
m_rkList_kGuildArea.clear(); m_rkList_kGuildArea.clear();
m_kPool_kMonsterAreaInfo.Destroy(); m_kPool_kMonsterAreaInfo.Destroy();
m_AlphaFogImageInstance.Destroy();
CSpeedTreeForestDirectX8::Instance().Clear(); CSpeedTreeForestDirectX8::Instance().Clear();
return true; return true;
@@ -1045,39 +1040,6 @@ BOOL CMapOutdoor::GetTerrainPointer(const BYTE c_byTerrainNum, CTerrain ** ppTer
return TRUE; return TRUE;
} }
void CMapOutdoor::InitializeFog()
{
memset(&m_matAlphaFogTexture, 0, sizeof(D3DXMATRIX));
m_matAlphaFogTexture._31 = -0.001f;
m_matAlphaFogTexture._41 = -7.0f;
m_matAlphaFogTexture._42 = 0.5f;
}
void CMapOutdoor::SaveAlphaFogOperation()
{
STATEMANAGER.SetTextureStageState(1, D3DTSS_COLORARG1, D3DTA_CURRENT);
STATEMANAGER.SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_SELECTARG1);
STATEMANAGER.SetTextureStageState(1, D3DTSS_ALPHAARG1, D3DTA_CURRENT);
STATEMANAGER.SetTextureStageState(1, D3DTSS_ALPHAARG2, D3DTA_TEXTURE);
STATEMANAGER.SetTextureStageState(1, D3DTSS_ALPHAOP, D3DTOP_MODULATE);
STATEMANAGER.SetTextureStageState(1, D3DTSS_TEXTURETRANSFORMFLAGS, D3DTTFF_COUNT2);
STATEMANAGER.SetTextureStageState(1, D3DTSS_TEXCOORDINDEX, D3DTSS_TCI_CAMERASPACEPOSITION);
STATEMANAGER.SetSamplerState(1, D3DSAMP_ADDRESSU, D3DTADDRESS_CLAMP);
STATEMANAGER.SetSamplerState(1, D3DSAMP_ADDRESSV, D3DTADDRESS_CLAMP);
STATEMANAGER.SetTransform(D3DTS_TEXTURE1, &m_matAlphaFogTexture);
STATEMANAGER.SaveRenderState(D3DRS_ALPHABLENDENABLE, TRUE);
STATEMANAGER.SetTexture(1, m_AlphaFogImageInstance.GetTexturePointer()->GetD3DTexture());
}
void CMapOutdoor::RestoreAlphaFogOperation()
{
STATEMANAGER.SetTextureStageState(1, D3DTSS_TEXTURETRANSFORMFLAGS, D3DTTFF_DISABLE);
STATEMANAGER.SetTextureStageState(1, D3DTSS_TEXCOORDINDEX, 1);
STATEMANAGER.RestoreRenderState(D3DRS_ALPHABLENDENABLE);
}
void CMapOutdoor::SetDrawShadow(bool bDrawShadow) void CMapOutdoor::SetDrawShadow(bool bDrawShadow)
{ {
m_bDrawShadow = bDrawShadow; m_bDrawShadow = bDrawShadow;

View File

@@ -71,7 +71,6 @@ class CMapOutdoor : public CMapBase
protected: protected:
bool Initialize(); bool Initialize();
void InitializeFog();
virtual bool Destroy(); virtual bool Destroy();
virtual void OnSetEnvironmentDataPtr(); virtual void OnSetEnvironmentDataPtr();
@@ -163,9 +162,6 @@ class CMapOutdoor : public CMapBase
void AssignTerrainPtr(); // 현재 좌표에서 주위(ex. 3x3)에 있는 것들의 포인터를 연결한다. (업데이트 시 불려짐) void AssignTerrainPtr(); // 현재 좌표에서 주위(ex. 3x3)에 있는 것들의 포인터를 연결한다. (업데이트 시 불려짐)
void SaveAlphaFogOperation();
void RestoreAlphaFogOperation();
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// New // New
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
@@ -412,13 +408,6 @@ class CMapOutdoor : public CMapBase
void UnloadWaterTexture(); void UnloadWaterTexture();
//Water //Water
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
// Alpha Fog
CGraphicImageInstance m_AlphaFogImageInstance;
D3DXMATRIX m_matAlphaFogTexture;
// Alpha Fog
//////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// Character Shadow // Character Shadow