summaryrefslogtreecommitdiff
path: root/hex.cpp
diff options
context:
space:
mode:
authorweidai <weidai11@users.noreply.github.com>2002-10-04 17:31:41 +0000
committerweidai <weidai11@users.noreply.github.com>2002-10-04 17:31:41 +0000
commita3b6ece7ab341b5b14135baeccea7d5e4c086771 (patch)
tree8b045309c238226c32a563b1df6b9c30a2f0e0b3 /hex.cpp
downloadcryptopp-git-a3b6ece7ab341b5b14135baeccea7d5e4c086771.tar.gz
Initial revision
Diffstat (limited to 'hex.cpp')
-rw-r--r--hex.cpp32
1 files changed, 32 insertions, 0 deletions
diff --git a/hex.cpp b/hex.cpp
new file mode 100644
index 00000000..fb653794
--- /dev/null
+++ b/hex.cpp
@@ -0,0 +1,32 @@
+// hex.cpp - written and placed in the public domain by Wei Dai
+
+#include "pch.h"
+#include "hex.h"
+
+NAMESPACE_BEGIN(CryptoPP)
+
+static const byte s_vecUpper[] = "0123456789ABCDEF";
+static const byte s_vecLower[] = "0123456789abcdef";
+
+void HexEncoder::IsolatedInitialize(const NameValuePairs &parameters)
+{
+ bool uppercase = parameters.GetValueWithDefault("Uppercase", true);
+ m_filter->Initialize(CombinedNameValuePairs(
+ parameters,
+ MakeParameters("EncodingLookupArray", uppercase ? &s_vecUpper[0] : &s_vecLower[0])("Log2Base", 4)));
+}
+
+const int *HexDecoder::GetDecodingLookupArray()
+{
+ static bool s_initialized = false;
+ static int s_array[256];
+
+ if (!s_initialized)
+ {
+ InitializeDecodingLookupArray(s_array, s_vecUpper, 16, true);
+ s_initialized = true;
+ }
+ return s_array;
+}
+
+NAMESPACE_END