#ifndef VARHEXUTILS #define VARHEXUTILS #include #include #include "varint.h" #include #include #include "endian.h" /*uint8_t * encode_big_endian_32(uint32_t ebex32) { uint8_t encbe[10] = {0}; memcpy(encbe, htobe32(ebex32)); return encbe; }*/ int8_t Var_Bytes_Count(uint8_t * countbytesofthis) { static int8_t xrzk_bytescnt = 0; for(int8_t i=0; i<10; i++) { if(countbytesofthis[i] != 0) { xrzk_bytescnt++; } } return xrzk_bytescnt; } uint8_t * Num_To_Varint_64(uint64_t TOV64INPUT) //UINT64_T TO VARINT { static uint8_t buffy_001[60] = {0}; uvarint_encode64(TOV64INPUT, buffy_001, 60); return buffy_001; } uint8_t * Num_To_Varint_32(uint32_t TOV32INPUT) // UINT32_T TO VARINT { static uint8_t buffy_032[60] = {0}; uvarint_encode32(TOV32INPUT, buffy_032, 60); return buffy_032; } uint64_t * Varint_To_Num_64(uint8_t TON64INPUT[60]) //VARINT TO UINT64_t { static uint64_t varintdecode_001 = 0; uvarint_decode64(TON64INPUT, 60, &varintdecode_001); return &varintdecode_001; } uint32_t * Varint_To_Num_32(uint8_t TON32INPUT[60]) //VARINT TO UINT32_t { static uint32_t varintdecode_032 = 0; uvarint_decode32(TON32INPUT, 60, &varintdecode_032); return &varintdecode_032; } // char * Int_To_Hex(uint64_t int2hex) //VAR[binformat] TO HEX { static char int2hex_result[800]="\0"; memset(int2hex_result,0,sizeof(int2hex_result)); sprintf (int2hex_result, "%02lX", int2hex); return int2hex_result; } uint64_t Hex_To_Int(char * hax) { char * hex = NULL; hex=hax; uint64_t val = 0; while (*hex) { // get current character then increment uint8_t byte = *hex++; // transform hex character to the 4bit equivalent number, using the ascii table indexes if (byte >= '0' && byte <= '9') byte = byte - '0'; else if (byte >= 'a' && byte <='f') byte = byte - 'a' + 10; else if (byte >= 'A' && byte <='F') byte = byte - 'A' + 10; // shift 4 to make space for new digit, and add the 4 bits of the new digit val = (val << 4) | (byte & 0xF); } return val; } // void vthconvert(int size, char * crrz01, uint8_t * xbuf) { uint8_t buf[400]; bzero(buf,400); //fixing the buf for(int cz=0; cz