Line | Count | Source (jump to first uncovered line) |
1 | | // hex.h - originally written and placed in the public domain by Wei Dai |
2 | | |
3 | | /// \file hex.h |
4 | | /// \brief Classes for HexEncoder and HexDecoder |
5 | | |
6 | | #ifndef CRYPTOPP_HEX_H |
7 | | #define CRYPTOPP_HEX_H |
8 | | |
9 | | #include "cryptlib.h" |
10 | | #include "basecode.h" |
11 | | |
12 | | NAMESPACE_BEGIN(CryptoPP) |
13 | | |
14 | | /// \brief Converts given data to base 16 |
15 | | class CRYPTOPP_DLL HexEncoder : public SimpleProxyFilter |
16 | | { |
17 | | public: |
18 | | /// \brief Construct a HexEncoder |
19 | | /// \param attachment a BufferedTrasformation to attach to this object |
20 | | /// \param uppercase a flag indicating uppercase output |
21 | | /// \param groupSize the size of the output grouping |
22 | | /// \param separator the separator to use between groups |
23 | | /// \param terminator the terminator append after processing |
24 | | HexEncoder(BufferedTransformation *attachment = NULLPTR, bool uppercase = true, int groupSize = 0, const std::string &separator = ":", const std::string &terminator = "") |
25 | | : SimpleProxyFilter(new BaseN_Encoder(new Grouper), attachment) |
26 | 0 | { |
27 | 0 | IsolatedInitialize(MakeParameters(Name::Uppercase(), uppercase)(Name::GroupSize(), groupSize)(Name::Separator(), ConstByteArrayParameter(separator))(Name::Terminator(), ConstByteArrayParameter(terminator))); |
28 | 0 | } |
29 | | |
30 | | void IsolatedInitialize(const NameValuePairs ¶meters); |
31 | | }; |
32 | | |
33 | | /// \brief Decode base 16 data back to bytes |
34 | | class CRYPTOPP_DLL HexDecoder : public BaseN_Decoder |
35 | | { |
36 | | public: |
37 | | /// \brief Construct a HexDecoder |
38 | | /// \param attachment a BufferedTrasformation to attach to this object |
39 | | HexDecoder(BufferedTransformation *attachment = NULLPTR) |
40 | 135k | : BaseN_Decoder(GetDefaultDecodingLookupArray(), 4, attachment) {} |
41 | | |
42 | | void IsolatedInitialize(const NameValuePairs ¶meters); |
43 | | |
44 | | private: |
45 | | static const int * CRYPTOPP_API GetDefaultDecodingLookupArray(); |
46 | | }; |
47 | | |
48 | | NAMESPACE_END |
49 | | |
50 | | #endif |