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

191 lines
3.9 KiB
C++

#include "DBEncryptFileWriter.h"
#include <stdio.h>
#ifdef _DEBUG
# pragma comment(lib, "TheMOLA_d.lib" )
#else
# pragma comment(lib, "TheMOLA.lib" )
#endif
struct SArgument
{
CHAR* pFileName;
union
{
DWORD dwKey;
CHAR _tKey[4];
};
CHAR pID_Dev[MAX_ID_SIZE+1];
CHAR pPwd_Dev[MAX_PWD_SIZE+1];
CHAR pID_Company[MAX_ID_SIZE+1];
CHAR pPwd_Company[MAX_PWD_SIZE+1];
CHAR pID_Live[MAX_ID_SIZE+1];
CHAR pPwd_Live[MAX_PWD_SIZE+1];
CHAR pID_TestLive[MAX_ID_SIZE+1];
CHAR pPwd_TestLive[MAX_PWD_SIZE+1];
};
static VOID Usage();
static BOOL ParseArgument( SArgument& rArg, CHAR* argv[] );
int main(int argc, CHAR* argv[])
{
SArgument rArg;
if( !(argc > 4) || !ParseArgument( rArg, argv ) )
{
Usage();
return -1;
}
DBEncryptFileWriter* pDBWriter = new DBEncryptFileWriter();
if( !pDBWriter->WriteStart( rArg.pFileName, rArg._tKey ) )
{
printf( "Can't start encrypt\n" );
return -1;
}
//
if( !pDBWriter->SetIdentification( (BYTE*)rArg.pID_Dev ) )
{
printf( "Can't encrypt\n" );
return -1;
}
if( !pDBWriter->SetPassword( (BYTE*)rArg.pPwd_Dev ) )
{
printf( "Can't encrypt\n" );
return -1;
}
//
if( !pDBWriter->SetIdentification( (BYTE*)rArg.pID_Company ) )
{
printf( "Can't encrypt\n" );
return -1;
}
if( !pDBWriter->SetPassword( (BYTE*)rArg.pPwd_Company ) )
{
printf( "Can't encrypt\n" );
return -1;
}
//
if( !pDBWriter->SetIdentification( (BYTE*)rArg.pID_Live ) )
{
printf( "Can't encrypt\n" );
return -1;
}
if( !pDBWriter->SetPassword( (BYTE*)rArg.pPwd_Live ) )
{
printf( "Can't encrypt\n" );
return -1;
}
//
if( !pDBWriter->SetIdentification( (BYTE*)rArg.pID_TestLive ) )
{
printf( "Can't encrypt\n" );
return -1;
}
if( !pDBWriter->SetPassword( (BYTE*)rArg.pPwd_TestLive ) )
{
printf( "Can't encrypt\n" );
return -1;
}
pDBWriter->WriteEnd();
printf( "SUCCESS! created file %s\n", rArg.pFileName );
return 0;
}
static BOOL ParseArgument( SArgument& rArg, CHAR* argv[] )
{
CHAR* pFileName = argv[1];
CHAR* pKey = argv[2];
CHAR* pID_Dev = argv[3];
CHAR* pPwd_Dev = argv[4];
CHAR* pID_Company = argv[5];
CHAR* pPwd_Company = argv[6];
CHAR* pID_Live = argv[7];
CHAR* pPwd_Live = argv[8];
CHAR* pID_TestLive = argv[9];
CHAR* pPwd_TestLive = argv[10];
if( strlen(pKey) < 1 || strlen(pFileName) < 1 )
return FALSE;
int len;
len = (int)strlen(pID_Dev);
if( !len || !(len<16) )
return FALSE;
len = (int)strlen(pPwd_Dev);
if( !len || !(len<16) )
return FALSE;
len = (int)strlen(pID_Company);
if( !len || !(len<16) )
return FALSE;
len = (int)strlen(pPwd_Company);
if( !len || !(len<16) )
return FALSE;
len = (int)strlen(pID_Live);
if( !len || !(len<16) )
return FALSE;
len = (int)strlen(pPwd_Live);
if( !len || !(len<16) )
return FALSE;
len = (int)strlen(pID_TestLive);
if( !len || !(len<16) )
return FALSE;
len = (int)strlen(pPwd_TestLive);
if( !len || !(len<16) )
return FALSE;
//printf( "%s\t%s\n", pKey, pFileName );
rArg.pFileName = pFileName;
memcpy( rArg._tKey, pKey, 4 );
memcpy( rArg.pID_Dev, pID_Dev, MAX_ID_SIZE );
rArg.pID_Dev[MAX_ID_SIZE] = '\0';
memcpy( rArg.pPwd_Dev, pPwd_Dev, MAX_PWD_SIZE );
rArg.pPwd_Dev[MAX_PWD_SIZE] = '\0';
memcpy( rArg.pID_Company, pID_Company, MAX_ID_SIZE );
rArg.pID_Company[MAX_ID_SIZE] = '\0';
memcpy( rArg.pPwd_Company, pPwd_Company, MAX_PWD_SIZE );
rArg.pPwd_Company[MAX_PWD_SIZE] = '\0';
memcpy( rArg.pID_Live, pID_Live, MAX_ID_SIZE );
rArg.pID_Live[MAX_ID_SIZE] = '\0';
memcpy( rArg.pPwd_Live, pPwd_Live, MAX_PWD_SIZE );
rArg.pPwd_Live[MAX_PWD_SIZE] = '\0';
memcpy( rArg.pID_TestLive, pID_TestLive, MAX_ID_SIZE );
rArg.pID_TestLive[MAX_ID_SIZE] = '\0';
memcpy( rArg.pPwd_TestLive, pPwd_TestLive, MAX_PWD_SIZE );
rArg.pPwd_TestLive[MAX_PWD_SIZE] = '\0';
return TRUE;
}
static VOID Usage()
{
printf( "encoder.exe [FileName] [KEY] "
"[DevID:16] [DevPwd:16] "
"[CompanyID:16] [CompanyPwd:16] "
"[LiveID:16] [LivePwd:16] "
"[TestLiveID:16] [TestLivePwd:16] \n" );
}