source: trunk/src-cryptopp/hex.cpp

Last change on this file was e230cb0, checked in by David Stainton <dstainton415@…>, at 2016-10-12T13:27:29Z

Add cryptopp from tag CRYPTOPP_5_6_5

  • Property mode set to 100644
File size: 1.2 KB
Line 
1// hex.cpp - written and placed in the public domain by Wei Dai
2
3#include "pch.h"
4
5#ifndef CRYPTOPP_IMPORTS
6
7#include "hex.h"
8
9NAMESPACE_BEGIN(CryptoPP)
10
11namespace
12{
13        const byte s_vecUpper[] = "0123456789ABCDEF";
14        const byte s_vecLower[] = "0123456789abcdef";
15}
16
17void HexEncoder::IsolatedInitialize(const NameValuePairs &parameters)
18{
19        bool uppercase = parameters.GetValueWithDefault(Name::Uppercase(), true);
20        m_filter->Initialize(CombinedNameValuePairs(
21                parameters,
22                MakeParameters(Name::EncodingLookupArray(), uppercase ? &s_vecUpper[0] : &s_vecLower[0], false)(Name::Log2Base(), 4, true)));
23}
24
25void HexDecoder::IsolatedInitialize(const NameValuePairs &parameters)
26{
27        BaseN_Decoder::IsolatedInitialize(CombinedNameValuePairs(
28                parameters,
29                MakeParameters(Name::DecodingLookupArray(), GetDefaultDecodingLookupArray(), false)(Name::Log2Base(), 4, true)));
30}
31
32const int *HexDecoder::GetDefaultDecodingLookupArray()
33{
34        static volatile bool s_initialized = false;
35        static int s_array[256];
36
37        if (!s_initialized)
38        {
39                InitializeDecodingLookupArray(s_array, s_vecUpper, 16, true);
40                s_initialized = true;
41        }
42        return s_array;
43}
44
45NAMESPACE_END
46
47#endif
Note: See TracBrowser for help on using the repository browser.