diff options
author | Stephan Springer | 2019-04-10 10:56:06 +0200 |
---|---|---|
committer | Stephan Springer | 2019-04-10 10:56:06 +0200 |
commit | 9c591788a3dc1fc106cca590bb421f6908baca68 (patch) | |
tree | 29f3268dae9447d5354c60106ca433ae429379b5 /qca-botan2.patch | |
parent | 0c80420b701667fe80aae2ae2c294fc8877a98a9 (diff) | |
download | aur-9c591788a3dc1fc106cca590bb421f6908baca68.tar.gz |
update to version 2.2.0
Diffstat (limited to 'qca-botan2.patch')
-rw-r--r-- | qca-botan2.patch | 280 |
1 files changed, 0 insertions, 280 deletions
diff --git a/qca-botan2.patch b/qca-botan2.patch deleted file mode 100644 index 479e291514d8..000000000000 --- a/qca-botan2.patch +++ /dev/null @@ -1,280 +0,0 @@ -From 47163784d74232e3a844fc42897bffc7eff817b4 Mon Sep 17 00:00:00 2001 -From: Antonio Rojas <arojas@archlinux.org> -Date: Wed, 11 Apr 2018 21:43:57 +0200 -Subject: Add botan 2 support - -Botan 1.10 will be EOL'd this year. This patch is a rough port to botan 2 API. Also: - -- Removes support for botan < 1.10 to simplify code (1.10 was released 7 years ago) -- Ports the cmake module to use pkgconfig, since botan-config doesn't exist anymore in v2. -- To minimize ifdef'd code, botan2 unique_ptr's are release'd -- Removes -ansi C(XX)FLAGS, botan 2 requires C++11 - -Differential Revision: https://phabricator.kde.org/D11997 ---- - CMakeLists.txt | 4 +- - cmake/modules/FindBotan.cmake | 22 +---------- - plugins/qca-botan/qca-botan.cpp | 87 ++++++++++++++++++++--------------------- - 3 files changed, 46 insertions(+), 67 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 7ef32ee..28b0169 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -131,8 +131,8 @@ if (CMAKE_COMPILER_IS_GNUCXX) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wcast-align") - endif() - -- set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-long-long -ansi -Wundef -Werror-implicit-function-declaration -Wchar-subscripts -Wall -W -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -fno-common") -- set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wchar-subscripts -Wall -W -Wpointer-arith -Wwrite-strings -Wformat-security -fno-check-new -fno-common") -+ set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-long-long -Wundef -Werror-implicit-function-declaration -Wchar-subscripts -Wall -W -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -fno-common") -+ set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wnon-virtual-dtor -Wno-long-long -Wundef -Wchar-subscripts -Wall -W -Wpointer-arith -Wwrite-strings -Wformat-security -fno-check-new -fno-common") - endif (CMAKE_SYSTEM_NAME MATCHES Linux) - endif (CMAKE_COMPILER_IS_GNUCXX) - -diff --git a/cmake/modules/FindBotan.cmake b/cmake/modules/FindBotan.cmake -index 0c4e24b..ce92df5 100644 ---- a/cmake/modules/FindBotan.cmake -+++ b/cmake/modules/FindBotan.cmake -@@ -11,30 +11,12 @@ - # Redistribution and use is allowed according to the terms of the BSD license. - # For details see the accompanying COPYING-CMAKE-SCRIPTS file. - --# libgcrypt is moving to pkg-config, but earlier version don't have it -- --#search in typical paths for libgcrypt-config --FIND_PROGRAM(BOTANCONFIG_EXECUTABLE NAMES botan-config botan-config-1.10) --mark_as_advanced(BOTANCONFIG_EXECUTABLE) -- - #reset variables - set(BOTAN_LIBRARIES) - set(BOTAN_CFLAGS) - --# if botan-config has been found --IF(BOTANCONFIG_EXECUTABLE) -- -- EXEC_PROGRAM(${BOTANCONFIG_EXECUTABLE} ARGS --libs RETURN_VALUE _return_VALUE OUTPUT_VARIABLE BOTAN_LIBRARIES) -- -- EXEC_PROGRAM(${BOTANCONFIG_EXECUTABLE} ARGS --cflags RETURN_VALUE _return_VALUE OUTPUT_VARIABLE BOTAN_CFLAGS) -- -- IF(BOTAN_LIBRARIES) -- SET(BOTAN_FOUND TRUE) -- ENDIF(BOTAN_LIBRARIES) -- -- MARK_AS_ADVANCED(BOTAN_CFLAGS BOTAN_LIBRARIES) -- --ENDIF(BOTANCONFIG_EXECUTABLE) -+find_package(PkgConfig) -+pkg_search_module(BOTAN REQUIRED botan>=1.10 botan-1.10 botan-2) - - if (BOTAN_FOUND) - if (NOT Botan_FIND_QUIETLY) -diff --git a/plugins/qca-botan/qca-botan.cpp b/plugins/qca-botan/qca-botan.cpp -index f387575..8822ab5 100644 ---- a/plugins/qca-botan/qca-botan.cpp -+++ b/plugins/qca-botan/qca-botan.cpp -@@ -23,13 +23,18 @@ - - #include <qstringlist.h> - --#include <botan/botan.h> - #include <botan/hmac.h> --#if BOTAN_VERSION_CODE < BOTAN_VERSION_CODE_FOR(1,9,0) --#include <botan/s2k.h> --#endif --#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,8,0) -+#include <botan/version.h> -+#if BOTAN_VERSION_CODE < BOTAN_VERSION_CODE_FOR(2,0,0) -+#include <botan/botan.h> - #include <botan/algo_factory.h> -+#else -+#include <botan/auto_rng.h> -+#include <botan/block_cipher.h> -+#include <botan/filters.h> -+#include <botan/hash.h> -+#include <botan/pbkdf.h> -+#include <botan/stream_cipher.h> - #endif - - #include <stdlib.h> -@@ -51,14 +56,8 @@ public: - QCA::SecureArray nextBytes(int size) - { - QCA::SecureArray buf(size); --#if BOTAN_VERSION_CODE < BOTAN_VERSION_CODE_FOR(1,5,0) -- Botan::Global_RNG::randomize( (Botan::byte*)buf.data(), buf.size(), Botan::SessionKey ); --#elif BOTAN_VERSION_CODE < BOTAN_VERSION_CODE_FOR(1,7,6) -- Botan::Global_RNG::randomize( (Botan::byte*)buf.data(), buf.size() ); --#else - Botan::AutoSeeded_RNG rng; - rng.randomize(reinterpret_cast<Botan::byte*>(buf.data()), buf.size()); --#endif - return buf; - } - }; -@@ -70,7 +69,11 @@ class BotanHashContext : public QCA::HashContext - public: - BotanHashContext( const QString &hashName, QCA::Provider *p, const QString &type) : QCA::HashContext(p, type) - { -+#if BOTAN_VERSION_CODE < BOTAN_VERSION_CODE_FOR(2,0,0) - m_hashObj = Botan::get_hash(hashName.toStdString()); -+#else -+ m_hashObj = Botan::HashFunction::create(hashName.toStdString()).release(); -+#endif - } - - ~BotanHashContext() -@@ -95,11 +98,7 @@ public: - - QCA::MemoryRegion final() - { --#if BOTAN_VERSION_CODE < BOTAN_VERSION_CODE_FOR(1,9,0) -- QCA::SecureArray a( m_hashObj->OUTPUT_LENGTH ); --#else - QCA::SecureArray a( m_hashObj->output_length() ); --#endif - m_hashObj->final( (Botan::byte *)a.data() ); - return a; - } -@@ -115,10 +114,10 @@ class BotanHMACContext : public QCA::MACContext - public: - BotanHMACContext( const QString &hashName, QCA::Provider *p, const QString &type) : QCA::MACContext(p, type) - { --#if BOTAN_VERSION_CODE < BOTAN_VERSION_CODE_FOR(1,8,0) -- m_hashObj = new Botan::HMAC(hashName.toStdString()); --#else -+#if BOTAN_VERSION_CODE < BOTAN_VERSION_CODE_FOR(2,0,0) - m_hashObj = new Botan::HMAC(Botan::global_state().algorithm_factory().make_hash_function(hashName.toStdString())); -+#else -+ m_hashObj = new Botan::HMAC(Botan::HashFunction::create_or_throw(hashName.toStdString()).release()); - #endif - if (0 == m_hashObj) { - std::cout << "null context object" << std::endl; -@@ -161,11 +160,7 @@ public: - - void final( QCA::MemoryRegion *out) - { --#if BOTAN_VERSION_CODE < BOTAN_VERSION_CODE_FOR(1,9,0) -- QCA::SecureArray sa( m_hashObj->OUTPUT_LENGTH, 0 ); --#else - QCA::SecureArray sa( m_hashObj->output_length(), 0 ); --#endif - m_hashObj->final( (Botan::byte *)sa.data() ); - *out = sa; - } -@@ -197,15 +192,8 @@ public: - QCA::SymmetricKey makeKey(const QCA::SecureArray &secret, const QCA::InitializationVector &salt, - unsigned int keyLength, unsigned int iterationCount) - { --#if BOTAN_VERSION_CODE < BOTAN_VERSION_CODE_FOR(1,9,0) -- m_s2k->set_iterations(iterationCount); -- m_s2k->change_salt((const Botan::byte*)salt.data(), salt.size()); -- std::string secretString(secret.data(), secret.size() ); -- Botan::OctetString key = m_s2k->derive_key(keyLength, secretString); --#else - std::string secretString(secret.data(), secret.size() ); - Botan::OctetString key = m_s2k->derive_key(keyLength, secretString, (const Botan::byte*)salt.data(), salt.size(), iterationCount); --#endif - QCA::SecureArray retval(QByteArray((const char*)key.begin(), key.length())); - return QCA::SymmetricKey(retval); - } -@@ -222,15 +210,6 @@ public: - std::string secretString(secret.data(), secret.size() ); - - *iterationCount = 0; --#if BOTAN_VERSION_CODE < BOTAN_VERSION_CODE_FOR(1,9,0) -- m_s2k->set_iterations(1); -- m_s2k->change_salt((const Botan::byte*)salt.data(), salt.size()); -- timer.start(); -- while (timer.elapsed() < msecInterval) { -- key = m_s2k->derive_key(keyLength, secretString); -- ++(*iterationCount); -- } --#else - timer.start(); - while (timer.elapsed() < msecInterval) { - key = m_s2k->derive_key(keyLength, -@@ -240,7 +219,6 @@ public: - 1); - ++(*iterationCount); - } --#endif - return makeKey(secret, salt, keyLength, *iterationCount); - } - -@@ -304,7 +282,14 @@ public: - - int blockSize() const - { -+#if BOTAN_VERSION_CODE < BOTAN_VERSION_CODE_FOR(2,0,0) - return Botan::block_size_of(m_algoName); -+#else -+ if(const std::unique_ptr<Botan::BlockCipher> bc = Botan::BlockCipher::create(m_algoName)) -+ return bc->block_size(); -+ -+ throw Botan::Algorithm_Not_Found(m_algoName); -+#endif - } - - QCA::AuthTag tag() const -@@ -337,23 +322,31 @@ public: - - QCA::KeyLength keyLength() const - { --#if BOTAN_VERSION_CODE < BOTAN_VERSION_CODE_FOR(1,9,0) -- return QCA::KeyLength( Botan::min_keylength_of(m_algoName), -- Botan::max_keylength_of(m_algoName), -- Botan::keylength_multiple_of(m_algoName) ); --#else -+#if BOTAN_VERSION_CODE < BOTAN_VERSION_CODE_FOR(2,0,0) - Botan::Algorithm_Factory &af = Botan::global_state().algorithm_factory(); -+#endif - Botan::Key_Length_Specification kls(0); -+#if BOTAN_VERSION_CODE < BOTAN_VERSION_CODE_FOR(2,0,0) - if(const Botan::BlockCipher *bc = af.prototype_block_cipher(m_algoName)) -+#else -+ if(const std::unique_ptr<Botan::BlockCipher> bc = Botan::BlockCipher::create(m_algoName)) -+#endif - kls = bc->key_spec(); -+#if BOTAN_VERSION_CODE < BOTAN_VERSION_CODE_FOR(2,0,0) - else if(const Botan::StreamCipher *sc = af.prototype_stream_cipher(m_algoName)) -+#else -+ else if(const std::unique_ptr<Botan::StreamCipher> sc = Botan::StreamCipher::create(m_algoName)) -+#endif - kls = sc->key_spec(); -+#if BOTAN_VERSION_CODE < BOTAN_VERSION_CODE_FOR(2,0,0) - else if(const Botan::MessageAuthenticationCode *mac = af.prototype_mac(m_algoName)) -+#else -+ else if(const std::unique_ptr<Botan::MessageAuthenticationCode> mac = Botan::MessageAuthenticationCode::create(m_algoName)) -+#endif - kls = mac->key_spec(); - return QCA::KeyLength( kls.minimum_keylength(), - kls.maximum_keylength(), - kls.keylength_multiple() ); --#endif - } - - -@@ -379,7 +372,9 @@ class botanProvider : public QCA::Provider - public: - void init() - { -+#if BOTAN_VERSION_CODE < BOTAN_VERSION_CODE_FOR(2,0,0) - m_init = new Botan::LibraryInitializer; -+#endif - } - - ~botanProvider() -@@ -538,7 +533,9 @@ public: - return 0; - } - private: -+#if BOTAN_VERSION_CODE < BOTAN_VERSION_CODE_FOR(2,0,0) - Botan::LibraryInitializer *m_init; -+#endif - - }; - --- -cgit v0.11.2 - |