00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00049 #ifndef B64_INCL_B64_H_B64
00050 #define B64_INCL_B64_H_B64
00051
00052
00053
00054
00055
00056 #ifndef B64_DOCUMENTATION_SKIP_SECTION
00057 # define B64_VER_B64_H_B64_MAJOR 1
00058 # define B64_VER_B64_H_B64_MINOR 6
00059 # define B64_VER_B64_H_B64_REVISION 1
00060 # define B64_VER_B64_H_B64_EDIT 31
00061 #endif
00062
00079 #ifndef B64_DOCUMENTATION_SKIP_SECTION
00080 # define B64_VER_1_0_1 0x01000100
00081 # define B64_VER_1_0_2 0x01000200
00082 # define B64_VER_1_0_3 0x01000300
00083 # define B64_VER_1_1_1 0x01010100
00084 # define B64_VER_1_1_2 0x01010200
00085 # define B64_VER_1_1_3 0x01010300
00086 # define B64_VER_1_2_1 0x01020100
00087 # define B64_VER_1_2_2 0x01020200
00088 # define B64_VER_1_2_3 0x01020300
00089 # define B64_VER_1_2_4 0x01020400
00090 # define B64_VER_1_2_5 0x01020500
00091 # define B64_VER_1_2_6 0x01020600
00092 # define B64_VER_1_2_7 0x01020700
00093 # define B64_VER_1_3_1 0x010301ff
00094 # define B64_VER_1_3_2 0x010302ff
00095 # define B64_VER_1_3_3 0x010303ff
00096 # define B64_VER_1_3_4 0x010304ff
00097 # define B64_VER_1_4_1_ALPHA_1 0x01040101
00098 #endif
00099
00100 #define B64_VER_MAJOR 1
00101 #define B64_VER_MINOR 4
00102 #define B64_VER_REVISION 1
00103 #define B64_VER 0x01040101
00104
00105
00106
00107
00108
00109 #include <stddef.h>
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119 #if defined(SYNESIS_VARIANT_TEST)
00120 # if !defined(B64_VARIANT_TEST)
00121 # define B64_VARIANT_TEST
00122 # endif
00123 #endif
00124
00125
00126
00127
00128
00129 #if !defined(B64_NO_NAMESPACE) && \
00130 !defined(__cplusplus)
00131 # define B64_NO_NAMESPACE
00132 #endif
00133
00134 #ifdef B64_NAMESPACE
00135 # undef B64_NAMESPACE
00136 #endif
00137
00138 #ifdef B64_NAMESPACE_QUALIFIER
00139 # undef B64_NAMESPACE_QUALIFIER
00140 #endif
00141
00142
00143 #ifndef B64_NO_NAMESPACE
00144
00145 # ifdef B64_CUSTOM_NAMESPACE
00146 # define B64_NAMESPACE B64_CUSTOM_NAMESPACE
00147 # else
00148 # define B64_NAMESPACE b64
00149 # endif
00150
00151 # if defined(B64_CUSTOM_NAMESPACE) && \
00152 defined(B64_CUSTOM_NAMESPACE_QUALIFIER)
00153 # define B64_NAMESPACE_QUALIFIER B64_CUSTOM_NAMESPACE_QUALIFIER
00154 # else
00155 # define B64_NAMESPACE_QUALIFIER ::B64_NAMESPACE
00156 # endif
00157
00158
00167 namespace B64_NAMESPACE
00168 {
00169 #endif
00170
00171
00172
00173
00174
00179 typedef char b64_char_t;
00180
00183 enum B64_RC
00184 {
00185 B64_RC_OK = 0
00186 , B64_RC_INSUFFICIENT_BUFFER = 1
00187 , B64_RC_TRUNCATED_INPUT = 2
00188 , B64_RC_DATA_ERROR = 3
00189 #ifndef B64_DOCUMENTATION_SKIP_SECTION
00190 , B64_max_RC_value
00191 #endif
00192 };
00193
00194 #ifndef __cplusplus
00195 typedef enum B64_RC B64_RC;
00196 #endif
00197
00200 enum B64_FLAGS
00201 {
00202 B64_F_LINE_LEN_USE_PARAM = 0x0000
00203 , B64_F_LINE_LEN_INFINITE = 0x0001
00204 , B64_F_LINE_LEN_64 = 0x0002
00205 , B64_F_LINE_LEN_76 = 0x0003
00206 , B64_F_LINE_LEN_MASK = 0x000f
00207 , B64_F_STOP_ON_NOTHING = 0x0000
00208 , B64_F_STOP_ON_UNKNOWN_CHAR = 0x0100
00209 , B64_F_STOP_ON_UNEXPECTED_WS = 0x0200
00210 , B64_F_STOP_ON_BAD_CHAR = 0x0300
00211 };
00212
00213 #ifndef __cplusplus
00214 typedef enum B64_FLAGS B64_FLAGS;
00215 #endif
00216
00217
00218
00219
00220
00221 #ifdef __cplusplus
00222 extern "C" {
00223 #endif
00224
00248 size_t b64_encode(
00249 void const* src
00250 , size_t srcSize
00251 , b64_char_t* dest
00252 , size_t destLen
00253 );
00254
00283 size_t b64_encode2(
00284 void const* src
00285 , size_t srcSize
00286 , b64_char_t* dest
00287 , size_t destLen
00288 , unsigned flags
00289 , int lineLen
00290 , B64_RC* rc
00291 );
00292
00326 size_t b64_decode(
00327 b64_char_t const* src
00328 , size_t srcLen
00329 , void* dest
00330 , size_t destSize
00331 );
00332
00373 size_t b64_decode2(
00374 b64_char_t const* src
00375 , size_t srcLen
00376 , void* dest
00377 , size_t destSize
00378 , unsigned flags
00379 , b64_char_t const** badChar
00380 , B64_RC* rc
00381 );
00382
00387 char const* b64_getErrorString(B64_RC code);
00388
00395 size_t b64_getErrorStringLength(B64_RC code);
00396
00397
00398 #ifdef __cplusplus
00399 }
00400 #endif
00401
00402
00403
00404
00405
00406 #ifndef B64_NO_NAMESPACE
00407 }
00408
00409 # ifndef B64_DOCUMENTATION_SKIP_SECTION
00410
00411 namespace stlsoft
00412 {
00413
00414 inline char const *c_str_data_a( B64_NAMESPACE_QUALIFIER::B64_RC code)
00415 {
00416 return B64_NAMESPACE_QUALIFIER::b64_getErrorString(code);
00417 }
00418 inline char const *c_str_data( B64_NAMESPACE_QUALIFIER::B64_RC code)
00419 {
00420 return B64_NAMESPACE_QUALIFIER::b64_getErrorString(code);
00421 }
00422
00423 inline size_t c_str_len_a( B64_NAMESPACE_QUALIFIER::B64_RC code)
00424 {
00425 return B64_NAMESPACE_QUALIFIER::b64_getErrorStringLength(code);
00426 }
00427 inline size_t c_str_len( B64_NAMESPACE_QUALIFIER::B64_RC code)
00428 {
00429 return B64_NAMESPACE_QUALIFIER::b64_getErrorStringLength(code);
00430 }
00431
00432 inline char const *c_str_ptr_a( B64_NAMESPACE_QUALIFIER::B64_RC code)
00433 {
00434 return B64_NAMESPACE_QUALIFIER::b64_getErrorString(code);
00435 }
00436 inline char const *c_str_ptr( B64_NAMESPACE_QUALIFIER::B64_RC code)
00437 {
00438 return B64_NAMESPACE_QUALIFIER::b64_getErrorString(code);
00439 }
00440
00441 }
00442
00443 # endif
00444
00445 #endif
00446
00447
00448
00449 #endif
00450
00451