1#ifndef CRYPTOPP_BASE64_H
2#define CRYPTOPP_BASE64_H
3
4#include "basecode.h"
5
6NAMESPACE_BEGIN(CryptoPP)
7
8//! Base64 Encoder Class
9class Base64Encoder : public SimpleProxyFilter
10{
11public:
12	Base64Encoder(BufferedTransformation *attachment = NULL, bool insertLineBreaks = true, int maxLineLength = 72)
13		: SimpleProxyFilter(new BaseN_Encoder(new Grouper), attachment)
14	{
15		IsolatedInitialize(MakeParameters(Name::InsertLineBreaks(), insertLineBreaks)(Name::MaxLineLength(), maxLineLength));
16	}
17
18	void IsolatedInitialize(const NameValuePairs &parameters);
19};
20
21//! Base64 Decoder Class
22class Base64Decoder : public BaseN_Decoder
23{
24public:
25	Base64Decoder(BufferedTransformation *attachment = NULL)
26		: BaseN_Decoder(GetDecodingLookupArray(), 6, attachment) {}
27
28	void IsolatedInitialize(const NameValuePairs &parameters) {}
29
30private:
31	static const int * CRYPTOPP_API GetDecodingLookupArray();
32};
33
34NAMESPACE_END
35
36#endif
37