| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- // hex.h - originally written and placed in the public domain by Wei Dai
- /// \file hex.h
- /// \brief Classes for HexEncoder and HexDecoder
- #ifndef CRYPTOPP_HEX_H
- #define CRYPTOPP_HEX_H
- #include "cryptlib.h"
- #include "basecode.h"
- NAMESPACE_BEGIN(CryptoPP)
- /// \brief Converts given data to base 16
- class CRYPTOPP_DLL HexEncoder : public SimpleProxyFilter
- {
- public:
- /// \brief Construct a HexEncoder
- /// \param attachment a BufferedTrasformation to attach to this object
- /// \param uppercase a flag indicating uppercase output
- /// \param groupSize the size of the output grouping
- /// \param separator the separator to use between groups
- /// \param terminator the terminator append after processing
- HexEncoder(BufferedTransformation *attachment = NULLPTR, bool uppercase = true, int groupSize = 0, const std::string &separator = ":", const std::string &terminator = "")
- : SimpleProxyFilter(new BaseN_Encoder(new Grouper), attachment)
- {
- IsolatedInitialize(MakeParameters(Name::Uppercase(), uppercase)(Name::GroupSize(), groupSize)(Name::Separator(), ConstByteArrayParameter(separator))(Name::Terminator(), ConstByteArrayParameter(terminator)));
- }
- void IsolatedInitialize(const NameValuePairs ¶meters);
- };
- /// \brief Decode base 16 data back to bytes
- class CRYPTOPP_DLL HexDecoder : public BaseN_Decoder
- {
- public:
- /// \brief Construct a HexDecoder
- /// \param attachment a BufferedTrasformation to attach to this object
- HexDecoder(BufferedTransformation *attachment = NULLPTR)
- : BaseN_Decoder(GetDefaultDecodingLookupArray(), 4, attachment) {}
- void IsolatedInitialize(const NameValuePairs ¶meters);
- private:
- static const int * CRYPTOPP_API GetDefaultDecodingLookupArray();
- };
- NAMESPACE_END
- #endif
|