3 const char b64_table
[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
5 u32
b64_encode (u8
*base64_hash
, const u32 len
, const u8
*base64_plain
)
7 u8
*out_ptr
= (u8
*) base64_hash
;
8 u8
*in_ptr
= (u8
*) base64_plain
;
14 for (i
= 0; i
< (len
- 2); i
+= 3)
16 char out_val0
= b64_table
[ ((in_ptr
[0] >> 2) & 0x3f)];
17 char out_val1
= b64_table
[((in_ptr
[0] << 4) & 0x30) | ((in_ptr
[1] >> 4) & 0x0f)];
18 char out_val2
= b64_table
[((in_ptr
[1] << 2) & 0x3c) | ((in_ptr
[2] >> 6) & 0x03)];
19 char out_val3
= b64_table
[ ((in_ptr
[2] >> 0) & 0x3f)];
21 out_ptr
[0] = out_val0
& 0x7f;
22 out_ptr
[1] = out_val1
& 0x7f;
23 out_ptr
[2] = out_val2
& 0x7f;
24 out_ptr
[3] = out_val3
& 0x7f;
31 char out_val0
= b64_table
[ ((in_ptr
[0] >> 2) & 0x3f)];
32 char out_val1
= b64_table
[((in_ptr
[0] << 4) & 0x30) ];
34 out_ptr
[0] = out_val0
& 0x7f;
35 out_ptr
[1] = out_val1
& 0x7f;
44 char out_val0
= b64_table
[ ((in_ptr
[0] >> 2) & 0x3f)];
45 char out_val1
= b64_table
[((in_ptr
[0] << 4) & 0x30) | ((in_ptr
[1] >> 4) & 0x0f)];
46 char out_val2
= b64_table
[((in_ptr
[1] << 2) & 0x3c) ];
48 out_ptr
[0] = out_val0
& 0x7f;
49 out_ptr
[1] = out_val1
& 0x7f;
50 out_ptr
[2] = out_val2
& 0x7f;