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 3
00060 # define B64_VER_B64_H_B64_EDIT 35
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 # define B64_VER_1_4_2 0x010402ff
00099 #endif
00100
00101 #define B64_VER_MAJOR 1
00102 #define B64_VER_MINOR 4
00103 #define B64_VER_REVISION 2
00104 #define B64_VER 0x010402ff
00105
00106
00107
00108
00109
00110 #include <stddef.h>
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120 #if defined(SYNESIS_VARIANT_TEST)
00121 # if !defined(B64_VARIANT_TEST)
00122 # define B64_VARIANT_TEST
00123 # endif
00124 #endif
00125
00126
00127
00128
00129
00130 #if !defined(B64_NO_NAMESPACE) && \
00131 !defined(__cplusplus)
00132 # define B64_NO_NAMESPACE
00133 #endif
00134
00135 #ifdef B64_NAMESPACE
00136 # undef B64_NAMESPACE
00137 #endif
00138
00139 #ifdef B64_NAMESPACE_QUALIFIER
00140 # undef B64_NAMESPACE_QUALIFIER
00141 #endif
00142
00143
00144 #ifndef B64_NO_NAMESPACE
00145
00146 # ifdef B64_CUSTOM_NAMESPACE
00147 # define B64_NAMESPACE B64_CUSTOM_NAMESPACE
00148 # else
00149 # define B64_NAMESPACE b64
00150 # endif
00151
00152 # if defined(B64_CUSTOM_NAMESPACE) && \
00153 defined(B64_CUSTOM_NAMESPACE_QUALIFIER)
00154 # define B64_NAMESPACE_QUALIFIER B64_CUSTOM_NAMESPACE_QUALIFIER
00155 # else
00156 # define B64_NAMESPACE_QUALIFIER ::B64_NAMESPACE
00157 # endif
00158
00159
00168 namespace B64_NAMESPACE
00169 {
00170 #endif
00171
00172
00173
00174
00175
00180 typedef char b64_char_t;
00181
00184 enum B64_RC
00185 {
00186 B64_RC_OK = 0
00187 , B64_RC_INSUFFICIENT_BUFFER = 1
00188 , B64_RC_TRUNCATED_INPUT = 2
00189 , B64_RC_DATA_ERROR = 3
00190 #ifndef B64_DOCUMENTATION_SKIP_SECTION
00191 , B64_max_RC_value
00192 #endif
00193 };
00194
00195 #ifndef __cplusplus
00196 typedef enum B64_RC B64_RC;
00197 #endif
00198
00201 enum B64_FLAGS
00202 {
00203 B64_F_LINE_LEN_USE_PARAM = 0x0000
00204 , B64_F_LINE_LEN_INFINITE = 0x0001
00205 , B64_F_LINE_LEN_64 = 0x0002
00206 , B64_F_LINE_LEN_76 = 0x0003
00207 , B64_F_LINE_LEN_MASK = 0x000f
00208 , B64_F_STOP_ON_NOTHING = 0x0000
00209 , B64_F_STOP_ON_UNKNOWN_CHAR = 0x0100
00210 , B64_F_STOP_ON_UNEXPECTED_WS = 0x0200
00211 , B64_F_STOP_ON_BAD_CHAR = 0x0300
00212 };
00213
00214 #ifndef __cplusplus
00215 typedef enum B64_FLAGS B64_FLAGS;
00216 #endif
00217
00218
00219
00220
00221
00222 #ifdef __cplusplus
00223 extern "C" {
00224 #endif
00225
00249 size_t b64_encode(
00250 void const* src
00251 , size_t srcSize
00252 , b64_char_t* dest
00253 , size_t destLen
00254 );
00255
00284 size_t b64_encode2(
00285 void const* src
00286 , size_t srcSize
00287 , b64_char_t* dest
00288 , size_t destLen
00289 , unsigned flags
00290 , int lineLen
00291 , B64_RC* rc
00292 );
00293
00327 size_t b64_decode(
00328 b64_char_t const* src
00329 , size_t srcLen
00330 , void* dest
00331 , size_t destSize
00332 );
00333
00374 size_t b64_decode2(
00375 b64_char_t const* src
00376 , size_t srcLen
00377 , void* dest
00378 , size_t destSize
00379 , unsigned flags
00380 , b64_char_t const** badChar
00381 , B64_RC* rc
00382 );
00383
00391 char const* b64_getErrorString(B64_RC code);
00392
00402 size_t b64_getErrorStringLength(B64_RC code);
00403
00404
00413 #define b64_getStatusCodeString b64_getErrorString
00414
00423 #define b64_getStatusCodeStringLength b64_getErrorStringLength
00424
00425
00426 #ifdef __cplusplus
00427 }
00428 #endif
00429
00430
00431
00432
00433
00434 #ifndef B64_NO_NAMESPACE
00435 }
00436
00437 # ifndef B64_DOCUMENTATION_SKIP_SECTION
00438
00439 namespace stlsoft
00440 {
00441
00442 inline char const *c_str_data_a( B64_NAMESPACE_QUALIFIER::B64_RC code)
00443 {
00444 return B64_NAMESPACE_QUALIFIER::b64_getStatusCodeString(code);
00445 }
00446 inline char const *c_str_data( B64_NAMESPACE_QUALIFIER::B64_RC code)
00447 {
00448 return B64_NAMESPACE_QUALIFIER::b64_getStatusCodeString(code);
00449 }
00450
00451 inline size_t c_str_len_a( B64_NAMESPACE_QUALIFIER::B64_RC code)
00452 {
00453 return B64_NAMESPACE_QUALIFIER::b64_getStatusCodeStringLength(code);
00454 }
00455 inline size_t c_str_len( B64_NAMESPACE_QUALIFIER::B64_RC code)
00456 {
00457 return B64_NAMESPACE_QUALIFIER::b64_getStatusCodeStringLength(code);
00458 }
00459
00460 inline char const *c_str_ptr_a( B64_NAMESPACE_QUALIFIER::B64_RC code)
00461 {
00462 return B64_NAMESPACE_QUALIFIER::b64_getStatusCodeString(code);
00463 }
00464 inline char const *c_str_ptr( B64_NAMESPACE_QUALIFIER::B64_RC code)
00465 {
00466 return B64_NAMESPACE_QUALIFIER::b64_getStatusCodeString(code);
00467 }
00468
00469 }
00470
00471 # endif
00472
00473 #endif
00474
00475
00476
00477 #endif
00478
00479