Return Type | Function name | Arguments |
---|---|---|
void | Base64Encode | (hzChain&,const char*,) |
Declared in file: hzCodec.h
Defined in file : hzCodec.cpp
Function Logic:
Function body:
void Base64Encode (hzChain& Encoded, const char* pRaw) { _hzfunc("Base64Encode(char*)") ; const char* r ; int32_t A ; int32_t B ; int32_t C ; int32_t D ; int32_t nSeg = 0; uchar a ; uchar b ; uchar c ; uchar bits ; char buf [8]; Encoded.Clear() ; if (!pRaw || !pRaw[0]) return ; for (r = pRaw ; *r ; r++) { a = b = c = bits = 0; a = *r ; r++ ; bits++ ; if (*r) { b = *r ; r++ ; bits++ ; if (*r) { c = *r ; bits++ ; } } A = B = C = D = 0; A = ((a & 0xfc)>>2); B = ((a & 0x03)<<4); B |= ((b & 0xf0)>>4); C = ((b & 0x0f)<<2); C |= ((c & 0xc0)>>6); D = c & 0x3f; buf[0]= bits ? s_base64_array[A] : ''=''; buf[1]= bits ? s_base64_array[B] : ''=''; buf[2]= bits > 1? s_base64_array[C] : ''=''; buf[3]= bits > 2? s_base64_array[D] : ''=''; buf[4]= 0; Encoded += buf ; nSeg++ ; if (nSeg == 19) { Encoded += "\r\n" ; nSeg = 0; } } }