86 lines
1.6 KiB
C++
86 lines
1.6 KiB
C++
#include <string.h>
|
|
//#include <..\key20\pbkey.hpp>
|
|
/*
|
|
void decompress_data(byte *input,byte *output,int insize,int outsize);
|
|
|
|
static void
|
|
regis_read()
|
|
{
|
|
int i , output_size;
|
|
File f;
|
|
|
|
if(!f.open(FileName(syspath,"REGKEY.PB")))
|
|
{
|
|
registered = TRUE;
|
|
|
|
return;
|
|
}
|
|
|
|
output_size = int(f.len() - 33);
|
|
|
|
byte *output_data = new byte[output_size];
|
|
|
|
f.seek(33);
|
|
f.read(output_data , output_size);
|
|
f.close();
|
|
|
|
for(i = 0 ; i < output_size ; i++)
|
|
{
|
|
output_data[i] ^= fixed_xor_data[i % 100];
|
|
}
|
|
|
|
KeyFile *kf = new KeyFile;
|
|
|
|
decompress_data(output_data , (byte *)kf , output_size , sizeof(*kf));
|
|
|
|
delete [] output_data;
|
|
|
|
encrypt((char *)kf->keyData,sizeof(kf->keyData),kf->xorData);
|
|
|
|
if(
|
|
kf->keyCrc != crc32(kf->keyData , sizeof(kf->keyData))
|
|
|| kf->xorCrc != crc32(kf->xorData , sizeof(kf->xorData))
|
|
)
|
|
{
|
|
registered = TRUE;
|
|
|
|
delete kf;
|
|
|
|
return;
|
|
}
|
|
|
|
if(kf->securityCheck[regSelectedTable] != calc_security(&kf->keyData[0] , regTable1 , regTable2))
|
|
{
|
|
registered = TRUE;
|
|
|
|
delete kf;
|
|
|
|
return;
|
|
}
|
|
|
|
regis = kf->keyData[0];
|
|
|
|
delete kf;
|
|
|
|
if(
|
|
(regis.expirDate.ok() && regis.expirDate <= Date(TODAY))
|
|
||
|
|
(regis.expirVersion && regis.expirVersion <= VER_WORD)
|
|
)
|
|
{
|
|
static int count = 0;
|
|
|
|
if(!count++) LOG("Key file expired!");
|
|
|
|
registered = TRUE;
|
|
return;
|
|
}
|
|
|
|
registered = (!stricmp(regis.sysopName,cfg.sysopname) && !stricmp(regis.bbsName,cfg.bbsname));
|
|
|
|
if(VER_BETA < 0xF000 && !regis.beta)
|
|
registered = FALSE;
|
|
|
|
//if(VER_BETA < 0xF000 && ....) registered = FALSE;
|
|
}*/
|