Files
Sun1602/Server/TheMola/DBDecryptFileReader.cpp
T
2022-10-26 12:25:11 +08:00

80 lines
1.4 KiB
C++

#include "Structure.h"
#include "Crypt.RndKey.h"
#include "DBDecryptFileReader.h"
#include <stdio.h>
BOOL DBDecryptFileReader::ReadStart( const CHAR* pFileName, QueryKey IN dbp )
{
union
{
CHAR pChr[sizeof(DWORD)];
DWORD pDW;
};
memcpy( pChr, dbp, sizeof(DWORD) );
if( Open( pFileName, pDW ) == FALSE )
{
printf( "Can't open file\n" );
return FALSE;
}
for( int i=1 ; i<(4+1) ; ++i )
{
_GetIdentification( (BYTE*)ID_PWD[i].m_pUserID );
_GetPassword( (BYTE*)ID_PWD[i].m_pUserPWD );
}
return TRUE;
}
BOOL DBDecryptFileReader::ReadStartFromBuffer( const BYTE* pSTREAM, QueryKey IN dbp )
{
union
{
CHAR pChr[sizeof(DWORD)];
DWORD pDW;
};
memcpy( pChr, dbp, sizeof(DWORD) );
if( ReadEncryptedBuffer(
pSTREAM,
MIN_FILE_DATA_SIZE + (DWORD)sizeof(CRYPT_FILE_HEADER),
pDW
) == FALSE )
{
printf( "Can't open file\n" );
return FALSE;
}
for( int i=1 ; i<(4+1) ; ++i )
{
_GetIdentification( (BYTE*)ID_PWD[i].m_pUserID );
_GetPassword( (BYTE*)ID_PWD[i].m_pUserPWD );
}
return TRUE;
}
VOID DBDecryptFileReader::ReadEnd()
{
Close();
}
BOOL DBDecryptFileReader::_GetIdentification( BYTE* IN OUT pID )
{
if( this->Read( pID, MAX_ID_SIZE ) < 0 )
return FALSE;
return TRUE;
}
BOOL DBDecryptFileReader::_GetPassword( BYTE* IN OUT pPWD )
{
if( this->Read( pPWD, MAX_PWD_SIZE ) < 0 )
return FALSE;
return TRUE;
}