00001
00002
00003
00004
00005
00006 #ifndef CRYPTOPP_HEX_H
00007 #define CRYPTOPP_HEX_H
00008
00009 #include "cryptlib.h"
00010 #include "basecode.h"
00011
00012 NAMESPACE_BEGIN(CryptoPP)
00013
00014
00015 class CRYPTOPP_DLL HexEncoder : public SimpleProxyFilter
00016 {
00017 public:
00018 HexEncoder(BufferedTransformation *attachment = NULL, bool uppercase = true, int outputGroupSize = 0, const std::string &separator = ":", const std::string &terminator = "")
00019 : SimpleProxyFilter(new BaseN_Encoder(new Grouper), attachment)
00020 {
00021 IsolatedInitialize(MakeParameters(Name::Uppercase(), uppercase)(Name::GroupSize(), outputGroupSize)(Name::Separator(), ConstByteArrayParameter(separator))(Name::Terminator(), ConstByteArrayParameter(terminator)));
00022 }
00023
00024 void IsolatedInitialize(const NameValuePairs ¶meters);
00025 };
00026
00027
00028 class CRYPTOPP_DLL HexDecoder : public BaseN_Decoder
00029 {
00030 public:
00031 HexDecoder(BufferedTransformation *attachment = NULL)
00032 : BaseN_Decoder(GetDefaultDecodingLookupArray(), 4, attachment) {}
00033
00034 void IsolatedInitialize(const NameValuePairs ¶meters);
00035
00036 private:
00037 static const int * CRYPTOPP_API GetDefaultDecodingLookupArray();
00038 };
00039
00040 NAMESPACE_END
00041
00042 #endif