NetBurner 3.5.0
PDF Version
 
base64.h
Go to the documentation of this file.
1/*NB_REVISION*/
2
3/*NB_COPYRIGHT*/
4
5
17#ifndef _BASE64_H_
18#define _BASE64_H_
19
20#include <basictypes.h>
21#include <ctype.h>
22#include <iointernal.h>
23
40int Base64Decode(const char *input, uint8_t *outputbuf, const char *pEndMarker = NULL);
41
58int Base64UrlDecode(const char *input, uint8_t *outputbuf, const char *pEndMarker = NULL);
59
76int Base64Encode(uint8_t *input, int inlen, char *outputbuf);
77
94int Base64UrlEncode(uint8_t *input, int inlen, char *outputbuf);
95
113int Base64StreamEncode(int fd, uint8_t *input, int inlen, char *outBuf, int maxOutLen);
114
132int Base64UrlStreamEncode(int fd, uint8_t *input, int inlen, char *outBuf, int maxOutLen);
133
134class b64ctx
135{
136 private:
137 int bits;
138 uint32_t accum;
139 char *outBuf;
140 const char *encodestr;
141 int maxOutLen;
142 int m_myFd;
143 int m_baseFd;
144
145 int write(const char *in, int inlen);
146 int close();
147 friend int b64io_write(int fd, const char *in, int nbytes);
148 friend int b64io_close(int fd);
149
150 public:
151 b64ctx(char *_outBuf, int _maxOutLen, bool UrlEncode = false);
152 void init(char *_outBuf, int _maxOutLen);
153 int flush();
154
155 int GetFD(IoExpandStruct &io, int baseFd);
156};
157
158#ifdef TEST_BASE64
159/* Test string */
160const char *base64msg =
161 "TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFz\
162b24sIGJ1dCBieSB0aGlzIHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCB\
163pcyBhIGx1c3Qgb2YgdGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbi\
164B0aGUgY29udGludWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLCBle\
165GNlZWRzIHRoZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4=";
166#endif /* #ifdef TEST_BASE64 */
167
168#endif /* #ifndef _BASE64_H_ */
169
int Base64UrlEncode(uint8_t *input, int inlen, char *outputbuf)
Encodes arbitrary binary bytes into Base64Url string.
int Base64UrlStreamEncode(int fd, uint8_t *input, int inlen, char *outBuf, int maxOutLen)
Encodes arbitrary binary bytes into Base64Url string and writes them to a file descriptor.
int Base64StreamEncode(int fd, uint8_t *input, int inlen, char *outBuf, int maxOutLen)
Encodes arbitrary binary bytes into Base64 string and writes them to a file descriptor.
int Base64UrlDecode(const char *input, uint8_t *outputbuf, const char *pEndMarker=NULL)
Decodes a null terminated Base64Url string into bytes.
int Base64Decode(const char *input, uint8_t *outputbuf, const char *pEndMarker=NULL)
Decodes a null terminated Base64 string into bytes.
int Base64Encode(uint8_t *input, int inlen, char *outputbuf)
Encodes arbitrary binary bytes into Base64 string.
void init()
System initialization. Ideally called at the beginning of all applications, since the easiest Recover...
Extra File Descriptors.