From d2b7354c24c75a8b1c9e52bb88dfef00dcd53c26 Mon Sep 17 00:00:00 2001 From: Peter Conrad Date: Thu, 4 Apr 2019 14:00:20 +0200 Subject: [PATCH] Remove unused base36 --- CMakeLists.txt | 1 - include/fc/crypto/base36.hpp | 9 ---- src/crypto/base36.cpp | 86 ----------------------------------- tests/crypto/base_n_tests.cpp | 24 ---------- 4 files changed, 120 deletions(-) delete mode 100644 include/fc/crypto/base36.hpp delete mode 100644 src/crypto/base36.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index fbf1ca0..f0d7f8e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -254,7 +254,6 @@ set( fc_sources src/crypto/aes.cpp src/crypto/crc.cpp src/crypto/city.cpp - src/crypto/base36.cpp src/crypto/base58.cpp src/crypto/base64.cpp src/crypto/bigint.cpp diff --git a/include/fc/crypto/base36.hpp b/include/fc/crypto/base36.hpp deleted file mode 100644 index 1cd158e..0000000 --- a/include/fc/crypto/base36.hpp +++ /dev/null @@ -1,9 +0,0 @@ -#pragma once -#include - -namespace fc -{ - std::vector from_base36( const std::string& b36 ); - std::string to_base36( const std::vector& vec ); - std::string to_base36( const char* data, size_t len ); -} diff --git a/src/crypto/base36.cpp b/src/crypto/base36.cpp deleted file mode 100644 index c4a9d23..0000000 --- a/src/crypto/base36.cpp +++ /dev/null @@ -1,86 +0,0 @@ -#include -#include -#include -#include -#include - -namespace fc -{ - std::string to_base36( const char* data, size_t len ) - { - if( len == 0 ) return std::string(); - - const char* src = data; - int src_len = len; - std::unique_ptr buffer(new char[len+1]); - if (*data & 0x80) { - buffer[0] = 0; - memcpy( buffer.get() + 1, data, len ); - src = buffer.get(); - src_len++; - } - fc::bigint value( src, src_len ); - - auto base36 = "0123456789abcdefghijklmnopqrstuvwxyz"; - std::vector out( static_cast(len * 1.6) + 2 ); - int pos = out.size() - 1; - out[pos] = '\0'; - fc::bigint _36(36); - do { - if( value ) { - --pos; - out[pos] = base36[(value % _36).to_int64()]; - } - } while (value /= _36); - while (len-- > 0 && *data++ == 0) { - out[--pos] = '0'; - } - return &out[pos]; //std::string( &out[pos], out.size() - pos); - } - - std::string to_base36( const std::vector& vec ) - { - return to_base36( (const char*)vec.data(), vec.size() ); - } - - std::vector from_base36( const std::string& b36 ) - { - if ( b36.empty() ) { - std::vector empty; - return empty; - } - - fc::bigint value; - - fc::bigint pos = 0; - fc::bigint _36(36); - for( auto itr = b36.rbegin(); itr != b36.rend(); ++itr ) - { - if( *itr >= '0' && *itr <= '9' ) - value = value + _36.exp(pos) * fc::bigint(*itr - '0'); - else if( *itr >= 'a' && *itr <= 'z' ) - value = value + (_36.exp(pos) * fc::bigint(10+*itr - 'a')); - else if( *itr >= 'A' && *itr <= 'Z' ) - value = value + (_36.exp(pos) * fc::bigint(10+*itr - 'A')); - else - { - wlog("unknown '${char}'", ("char",std::string(&*itr,1)) ); - } - ++pos; - } - - std::vector bytes = value; - int leading_zeros = 0, len = bytes.size(); - const char *in = b36.c_str(); - while (*in++ == '0') { leading_zeros++; } - char* first = bytes.data(); - while (len > 0 && *first == 0) { first++; len--; } - std::vector result; - result.resize(leading_zeros + len, 0); - if (len) - { - memcpy( result.data() + leading_zeros, first, len ); - } - return result; - } -} diff --git a/tests/crypto/base_n_tests.cpp b/tests/crypto/base_n_tests.cpp index 97786a1..fbc60ce 100644 --- a/tests/crypto/base_n_tests.cpp +++ b/tests/crypto/base_n_tests.cpp @@ -1,7 +1,6 @@ #include #include -#include #include #include #include @@ -43,29 +42,6 @@ BOOST_AUTO_TEST_CASE(hex_test) } -static void test_36( const std::string& test, const std::string& expected ) -{ - std::vector vec( test.begin(), test.end() ); - std::string enc1 = fc::to_base36( vec ); - std::string enc2 = fc::to_base36( test.c_str(), test.size() ); - BOOST_CHECK_EQUAL( enc1, enc2 ); - BOOST_CHECK_EQUAL( expected, enc2 ); - - std::vector dec = fc::from_base36( enc1 ); - BOOST_CHECK_EQUAL( vec.size(), dec.size() ); - BOOST_CHECK( vec == dec ); -} - -BOOST_AUTO_TEST_CASE(base36_test) -{ - test_36( TEST1, "" ); - test_36( TEST2, "01o35" ); - test_36( TEST3, "l4ksdleyi5pnl0un5raue268ptj43dwjwmz15ie2" ); - test_36( TEST4, "2rrrvpb7y4" ); - test_36( TEST5, "000" ); -} - - static void test_58( const std::string& test, const std::string& expected ) { std::vector vec( test.begin(), test.end() );