| 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;
}
}
}