9 return (binlen * 5 + 3) / 4 + !!append_null;
12 void to_a85(
const u8* data,
int binlen,
char* text,
bool append_null) {
18 const int rem = binlen & 3;
21 for (
int i = 4 - rem; i < 4; i++) {
22 val |= *(--data) << (8 * i);
25 for (i = 0; i < 4 - rem; i++) {
29 *(--text) = val % 85 + 33;
36 val |= *(--data) << 8;
37 val |= *(--data) << 16;
38 val |= *(--data) << 24;
39 *(--text) = val % 85 + 33;
41 *(--text) = val % 85 + 33;
43 *(--text) = val % 85 + 33;
45 *(--text) = val % 85 + 33;
47 *(--text) = val % 85 + 33;
53 return (textlen * 4) / 5;
63 unsigned factor = 52200625;
65 for (i = 0; i < textlen; i++) {
66 val += (*(text++) - 33) * factor;
74 for (i = 0; i < textlen - 1; i++) {
75 *(data++) = val >> shift;
80 u32 val = (*(text++) - 33) * 52200625U;
81 val += (*(text++) - 33) * 614125;
82 val += (*(text++) - 33) * 7225;
83 val += (*(text++) - 33) * 85;
84 val += (*(text++) - 33);
85 assert((binLen-=4)>=0);
86 *(data++) = val >> 24;
87 *(data++) = val >> 16;
int size_for_bin(int textlen)
void to_a85(const u8 *data, int binlen, char *text, bool append_null)
void from_a85(const char *text, int textlen, u8 *data)
int size_for_a85(int binlen, bool append_null)