void FDumpHex::HexDump(RWCString incoming,int nLen) { //int nLen = incoming.length(); unsigned int x = 0; unsigned char test_hex[1024] = {""}; unsigned char ch = '\x20'; memcpy(test_hex,incoming,incoming.length()); int i, nCount; unsigned char Line[LINELEN] = {""}; ULONG ulOffset = 0L; RWCString Data; // char buffer_for_input[17] = {""}; char pre_test = '\x20'; RWCString test_pre; RWCString char_return; FDumpHex retorno_ascii; while (nLen > 0L) { nCount = nLen > LINELEN ? LINELEN : nLen; Data = incoming(ulOffset,nCount); memcpy(test_hex,Data,nCount); printf("%04lX ", ulOffset); for (i = 0; i < nCount; i++) { x = test_hex[i]; char_return = retorno_ascii.RetornoASCII(x); cout << char_return ; // Outputs 0x2a\n cout << " "; } cout << " " ; test_pre = Data ; //cout << test_pre ; cout << endl; nLen -= nCount; ulOffset += nCount; } return ; }
/* RWCString FDumpHex::DES_Hex_Decrypt(char sHexKey[],char sCorrect[] ) { char *testfn = "DES_Hex()"; char sOutput[20] = {""}; long lngRet; printf("KY=%s\n", sHexKey); printf("PT=%s\n", sCorrect); lngRet = DES_Hex(sOutput, sCorrect, sHexKey, DECRYPT); return RWCString(sOutput); } RWCString FDumpHex::DES_Hex_Encrypt(char sHexKey[],char sCorrect[] ) { char *testfn = "DES_Hex()"; char sOutput[20] = {""}; long lngRet; printf("KY=%s\n", sHexKey); printf("PT=%s\n", sCorrect); lngRet = DES_Hex(sOutput, sCorrect, sHexKey, ENCRYPT); return RWCString(sOutput); } */ void FDumpHex::HexDumpFile(RWCString incoming) { RWCString b_number2 = "hex"; RWCString fname = "LogTrans."+b_number2; RWCString m_fname = fname; ofstream fp; RWTime t; // Current time char buf[16],nbuf[64]; time_t ltime; time(<ime); struct tm *today = localtime(<ime); strftime(buf,sizeof(buf),"%m%d%Y",today); sprintf(nbuf,"%s_%s",buf,m_fname); RWCString newname = nbuf; fp.open(newname, ios::app ); fp << endl; fp << t ; fp << endl; int nLen = incoming.length(); unsigned int x = 0; unsigned char test_hex[1024] = {""}; unsigned char ch = '\x20'; memcpy(test_hex,incoming,incoming.length()); int i, nCount; unsigned char Line[LINELEN] = {""}; ULONG ulOffset = 0L; RWCString Data; char buffer_for_input[17] = {""}; char pre_test = '\x20'; RWCString test_pre; RWCString char_return; FDumpHex retorno_ascii; while (nLen > 0L) { nCount = nLen > LINELEN ? LINELEN : nLen; Data = incoming(ulOffset,nCount); memcpy(test_hex,Data,nCount); //printf("%04lX ", ulOffset); for (i = 0; i < nCount; i++) { x = test_hex[i]; char_return = retorno_ascii.RetornoASCII(x); fp << char_return; fp << " "; } fp << " "; test_pre = Data ; fp << test_pre; fp << endl; nLen -= nCount; ulOffset += nCount; } fp.close(); return ; }
unsigned long operator()(RWCString x) const { return x.length() * (long)x(0); }