Return Type | Function name | Arguments |
---|---|---|
void | Base64Encode | (hzChain&,const hzChain&,) |
Declared in file: hzCodec.h
Defined in file : hzCodec.cpp
Function Logic:
Function body:
void Base64Encode (hzChain& Encoded, const hzChain& Raw) { _hzfunc("Base64Encode(hzChain)") ; chIter 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]; for (r = Raw ; !r.eof() ; r++) { a = b = c = bits = 0; a = *r ; r++ ; bits++ ; if (!r.eof()) { b = *r ; r++ ; bits++ ; if (!r.eof()) { 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; } } }