Easy to use class supporting BASE64 encoding for your C++ project.
CBase64 Class Reference
|
Public Member Functions |
| size_t | CalcBufferSize (size_t length) const |
| bool | IsBase64Char (uchar c) const |
| uchar | Encode (uchar c) const |
| size_t | Encode (const uchar *in, size_t length, uchar *outbuf, size_t size, uint option=BASE64_STANDARD) const |
| uchar | Decode (uchar c) const |
| size_t | Decode (const uchar *in, size_t length, uchar *outbuf, size_t size, uint option=BASE64_STANDARD) const |
Static Public Member Functions |
| static uchar | to_uchar (char c) |
Detailed Description
Encode/Decode data according to Base64 encoding format
These routines use the 64-character subset of International
Alphabet IA5 discussed in RFC 1421 (printeable encoding) and RFC 1522
(base64 MIME).
Value Encoding Value Encoding Value Encoding Value Encoding
0 A 17 R 34 i 51 z
1 B 18 S 35 j 52 0
2 C 19 T 36 k 53 1
3 D 20 U 37 l 54 2
4 E 21 V 38 m 55 3
5 F 22 W 39 n 56 4
6 G 23 X 40 o 57 5
7 H 24 Y 41 p 58 6
8 I 25 Z 42 q 59 7
9 J 26 a 43 r 60 8
10 K 27 b 44 s 61 9
11 L 28 c 45 t 62 +
12 M 29 d 46 u 63 /
13 N 30 e 47 v
14 O 31 f 48 w (pad) =
15 P 32 g 49 x
16 Q 33 h 50 y
Member Function Documentation
| static uchar CBase64::to_uchar |
( |
char |
c |
) |
[inline, static] |
Convert to uchar
- Parameters:
- Returns:
- unsigned character
| size_t CBase64::CalcBufferSize |
( |
size_t |
length |
) |
const [inline] |
Calculate buffer size requirement
- Parameters:
| length | size of binary data in bytes |
- Returns:
- size of required buffer including NULL
| bool CBase64::IsBase64Char |
( |
uchar |
c |
) |
const [inline] |
Test if a character is a valid Base64 alphabet
- Parameters:
- Returns:
- true if valid Base64 alphabet
| uchar CBase64::Encode |
( |
uchar |
c |
) |
const [inline] |
Encode a byte to Base64 encoding
- Parameters:
| c | byte to convert to Base64 (6-bit) |
- Returns:
- value byte in Base64 alphabet, or error (-1) for invalid input
| size_t CBase64::Encode |
( |
const uchar * |
in, |
|
|
size_t |
length, |
|
|
uchar * |
outbuf, |
|
|
size_t |
size, |
|
|
uint |
option = BASE64_STANDARD | |
|
) |
| | const |
Encode an array of bytes to Base64 string
- Parameters:
| in | byte pointer of data source |
| length | size of data source |
| outbuf | byte pointer of destination buffer |
| size | size of destination buffer |
| option | newline option |
- Returns:
- number of bytes copied, or error (-1) for invalid input
| uchar CBase64::Decode |
( |
uchar |
c |
) |
const |
Decode a Base64 alphabet data to 6-bit representation
- Parameters:
| c | Alphabet data to convert to binary value |
- Returns:
- binary value (0-63), or error (-1) for invalid input
| size_t CBase64::Decode |
( |
const uchar * |
in, |
|
|
size_t |
length, |
|
|
uchar * |
outbuf, |
|
|
size_t |
size, |
|
|
uint |
option = BASE64_STANDARD | |
|
) |
| | const |
Decode an array of bytes to binary. It's safe for 'in' and 'outbuf' to be the same buffer.
- Parameters:
| in | byte pointer of data source (Base64 Alphabet) |
| length | size of data source |
| outbuf | byte pointer of destination buffer |
| size | size of destination buffer |
| option | newline option |
- Returns:
- number of bytes copied, or error (-1) for invalid input