diff options
author | komels <komels@yandex-team.ru> | 2022-04-15 16:53:39 +0300 |
---|---|---|
committer | komels <komels@yandex-team.ru> | 2022-04-15 16:53:39 +0300 |
commit | 703a2fb6e100d202d1c7fcd052d73bd5affef408 (patch) | |
tree | 22b7320c06bb04d86dbf7b9af9ae44281331cd15 /library/cpp/openssl/big_integer | |
parent | 3375bbfda1e2afb03aa2072bf5f2f2c3a26026e8 (diff) | |
download | ydb-703a2fb6e100d202d1c7fcd052d73bd5affef408.tar.gz |
Move 'kikimr/yndx'-depending tests out of ydb/core
ref:0a380e13308d579e0545a76924330d1ca5129c43
Diffstat (limited to 'library/cpp/openssl/big_integer')
-rw-r--r-- | library/cpp/openssl/big_integer/CMakeLists.txt | 19 | ||||
-rw-r--r-- | library/cpp/openssl/big_integer/big_integer.cpp | 61 | ||||
-rw-r--r-- | library/cpp/openssl/big_integer/big_integer.h | 57 | ||||
-rw-r--r-- | library/cpp/openssl/big_integer/ut/big_integer_ut.cpp | 43 |
4 files changed, 0 insertions, 180 deletions
diff --git a/library/cpp/openssl/big_integer/CMakeLists.txt b/library/cpp/openssl/big_integer/CMakeLists.txt deleted file mode 100644 index 55d94de253..0000000000 --- a/library/cpp/openssl/big_integer/CMakeLists.txt +++ /dev/null @@ -1,19 +0,0 @@ - -# This file was gererated by the build system used internally in the Yandex monorepo. -# Only simple modifications are allowed (adding source-files to targets, adding simple properties -# like target_include_directories). These modifications will be ported to original -# ya.make files by maintainers. Any complex modifications which can't be ported back to the -# original buildsystem will not be accepted. - - -find_package(OpenSSL REQUIRED) - -add_library(cpp-openssl-big_integer) -target_link_libraries(cpp-openssl-big_integer PUBLIC - contrib-libs-cxxsupp - yutil - OpenSSL::OpenSSL -) -target_sources(cpp-openssl-big_integer PRIVATE - ${CMAKE_SOURCE_DIR}/library/cpp/openssl/big_integer/big_integer.cpp -) diff --git a/library/cpp/openssl/big_integer/big_integer.cpp b/library/cpp/openssl/big_integer/big_integer.cpp deleted file mode 100644 index de59f84499..0000000000 --- a/library/cpp/openssl/big_integer/big_integer.cpp +++ /dev/null @@ -1,61 +0,0 @@ -#include "big_integer.h" - -#include <util/generic/yexception.h> -#include <util/generic/scope.h> -#include <util/stream/output.h> - -#include <contrib/libs/openssl/include/openssl/bn.h> - -using namespace NOpenSsl; - -TBigInteger::~TBigInteger() noexcept { - BN_free(Impl_); -} - -TBigInteger TBigInteger::FromULong(ui64 value) { - TBigInteger result(BN_new()); - - Y_ENSURE(result.Impl(), "BN_new() failed"); - Y_ENSURE(BN_set_word(result.Impl(), value) == 1, "BN_set_word() failed"); - - return result; -} - -TBigInteger TBigInteger::FromRegion(const void* ptr, size_t len) { - auto result = BN_bin2bn((ui8*)(ptr), len, nullptr); - - Y_ENSURE(result, "BN_bin2bn() failed"); - - return result; -} - -int TBigInteger::Compare(const TBigInteger& a, const TBigInteger& b) noexcept { - return BN_cmp(a.Impl(), b.Impl()); -} - -size_t TBigInteger::NumBytes() const noexcept { - return BN_num_bytes(Impl_); -} - -size_t TBigInteger::ToRegion(void* to) const noexcept { - const auto ret = BN_bn2bin(Impl_, (unsigned char*)to); - - Y_VERIFY(ret >= 0, "it happens"); - - return ret; -} - -TString TBigInteger::ToDecimalString() const { - auto res = BN_bn2dec(Impl_); - - Y_DEFER { - OPENSSL_free(res); - }; - - return res; -} - -template <> -void Out<TBigInteger>(IOutputStream& out, const TBigInteger& bi) { - out << bi.ToDecimalString(); -} diff --git a/library/cpp/openssl/big_integer/big_integer.h b/library/cpp/openssl/big_integer/big_integer.h deleted file mode 100644 index 07763c5e13..0000000000 --- a/library/cpp/openssl/big_integer/big_integer.h +++ /dev/null @@ -1,57 +0,0 @@ -#pragma once - -#include <util/generic/ptr.h> -#include <util/generic/strbuf.h> -#include <util/generic/utility.h> -#include <util/generic/string.h> - -struct bignum_st; - -namespace NOpenSsl { - class TBigInteger { - inline TBigInteger(bignum_st* impl) noexcept - : Impl_(impl) - { - } - - static int Compare(const TBigInteger& a, const TBigInteger& b) noexcept; - - public: - inline TBigInteger(TBigInteger&& other) noexcept { - Swap(other); - } - - ~TBigInteger() noexcept; - - static TBigInteger FromULong(ui64 value); - static TBigInteger FromRegion(const void* ptr, size_t len); - - inline const bignum_st* Impl() const noexcept { - return Impl_; - } - - inline bignum_st* Impl() noexcept { - return Impl_; - } - - inline void Swap(TBigInteger& other) noexcept { - DoSwap(Impl_, other.Impl_); - } - - inline friend bool operator==(const TBigInteger& a, const TBigInteger& b) noexcept { - return Compare(a, b) == 0; - } - - inline friend bool operator!=(const TBigInteger& a, const TBigInteger& b) noexcept { - return !(a == b); - } - - size_t NumBytes() const noexcept; - size_t ToRegion(void* to) const noexcept; - - TString ToDecimalString() const; - - private: - bignum_st* Impl_ = nullptr; - }; -} diff --git a/library/cpp/openssl/big_integer/ut/big_integer_ut.cpp b/library/cpp/openssl/big_integer/ut/big_integer_ut.cpp deleted file mode 100644 index 8a0050f531..0000000000 --- a/library/cpp/openssl/big_integer/ut/big_integer_ut.cpp +++ /dev/null @@ -1,43 +0,0 @@ -#include "big_integer.h" - -#include <library/cpp/testing/unittest/registar.h> - -#include <util/system/byteorder.h> -#include <util/stream/str.h> - -Y_UNIT_TEST_SUITE(BigInteger) { - using NOpenSsl::TBigInteger; - - Y_UNIT_TEST(Initialization) { - constexpr ui64 testVal = 12345678900; - const auto fromULong = TBigInteger::FromULong(testVal); - - const ui64 testArea = HostToInet(testVal); // transform to big-endian - const auto fromRegion = TBigInteger::FromRegion(&testArea, sizeof(testArea)); - UNIT_ASSERT(fromULong == fromRegion); - UNIT_ASSERT_VALUES_EQUAL(fromULong, fromRegion); - - const auto fromULongOther = TBigInteger::FromULong(22345678900); - UNIT_ASSERT(fromULong != fromULongOther); - } - - Y_UNIT_TEST(Decimal) { - UNIT_ASSERT_VALUES_EQUAL(TBigInteger::FromULong(123456789).ToDecimalString(), "123456789"); - } - - Y_UNIT_TEST(Region) { - const auto v1 = TBigInteger::FromULong(1234567890); - char buf[1024]; - const auto v2 = TBigInteger::FromRegion(buf, v1.ToRegion(buf)); - - UNIT_ASSERT_VALUES_EQUAL(v1, v2); - } - - Y_UNIT_TEST(Output) { - TStringStream ss; - - ss << TBigInteger::FromULong(123456789); - - UNIT_ASSERT_VALUES_EQUAL(ss.Str(), "123456789"); - } -} |