aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/3rdparty/botan/src/lib/hash
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs/3rdparty/botan/src/lib/hash')
-rw-r--r--src/libs/3rdparty/botan/src/lib/hash/hash.cpp375
-rw-r--r--src/libs/3rdparty/botan/src/lib/hash/hash.h91
-rw-r--r--src/libs/3rdparty/botan/src/lib/hash/info.txt7
-rw-r--r--src/libs/3rdparty/botan/src/lib/hash/mdx_hash/info.txt5
-rw-r--r--src/libs/3rdparty/botan/src/lib/hash/mdx_hash/mdx_hash.cpp108
-rw-r--r--src/libs/3rdparty/botan/src/lib/hash/mdx_hash/mdx_hash.h68
-rw-r--r--src/libs/3rdparty/botan/src/lib/hash/sha1/info.txt7
-rw-r--r--src/libs/3rdparty/botan/src/lib/hash/sha1/sha160.cpp188
-rw-r--r--src/libs/3rdparty/botan/src/lib/hash/sha1/sha160.h73
-rw-r--r--src/libs/3rdparty/botan/src/lib/hash/sha1/sha1_armv8/info.txt10
-rw-r--r--src/libs/3rdparty/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp207
-rw-r--r--src/libs/3rdparty/botan/src/lib/hash/sha1/sha1_sse2/info.txt5
-rw-r--r--src/libs/3rdparty/botan/src/lib/hash/sha1/sha1_sse2/sha1_sse2.cpp335
-rw-r--r--src/libs/3rdparty/botan/src/lib/hash/sha1/sha1_x86/info.txt11
-rw-r--r--src/libs/3rdparty/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp216
-rw-r--r--src/libs/3rdparty/botan/src/lib/hash/sha2_32/info.txt7
-rw-r--r--src/libs/3rdparty/botan/src/lib/hash/sha2_32/sha2_32.cpp236
-rw-r--r--src/libs/3rdparty/botan/src/lib/hash/sha2_32/sha2_32.h89
-rw-r--r--src/libs/3rdparty/botan/src/lib/hash/sha2_32/sha2_32_armv8/info.txt10
-rw-r--r--src/libs/3rdparty/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp204
-rw-r--r--src/libs/3rdparty/botan/src/lib/hash/sha2_32/sha2_32_bmi2/info.txt10
-rw-r--r--src/libs/3rdparty/botan/src/lib/hash/sha2_32/sha2_32_bmi2/sha2_32_bmi2.cpp139
-rw-r--r--src/libs/3rdparty/botan/src/lib/hash/sha2_32/sha2_32_x86/info.txt11
-rw-r--r--src/libs/3rdparty/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp215
-rw-r--r--src/libs/3rdparty/botan/src/lib/hash/sha2_64/info.txt7
-rw-r--r--src/libs/3rdparty/botan/src/lib/hash/sha2_64/sha2_64.cpp241
-rw-r--r--src/libs/3rdparty/botan/src/lib/hash/sha2_64/sha2_64.h82
27 files changed, 0 insertions, 2957 deletions
diff --git a/src/libs/3rdparty/botan/src/lib/hash/hash.cpp b/src/libs/3rdparty/botan/src/lib/hash/hash.cpp
deleted file mode 100644
index ad1a1bf0c3..0000000000
--- a/src/libs/3rdparty/botan/src/lib/hash/hash.cpp
+++ /dev/null
@@ -1,375 +0,0 @@
-/*
-* Hash Functions
-* (C) 2015 Jack Lloyd
-*
-* Botan is released under the Simplified BSD License (see license.txt)
-*/
-
-#include <botan/hash.h>
-#include <botan/scan_name.h>
-#include <botan/exceptn.h>
-
-#if defined(BOTAN_HAS_ADLER32)
- #include <botan/adler32.h>
-#endif
-
-#if defined(BOTAN_HAS_CRC24)
- #include <botan/crc24.h>
-#endif
-
-#if defined(BOTAN_HAS_CRC32)
- #include <botan/crc32.h>
-#endif
-
-#if defined(BOTAN_HAS_GOST_34_11)
- #include <botan/gost_3411.h>
-#endif
-
-#if defined(BOTAN_HAS_KECCAK)
- #include <botan/keccak.h>
-#endif
-
-#if defined(BOTAN_HAS_MD4)
- #include <botan/md4.h>
-#endif
-
-#if defined(BOTAN_HAS_MD5)
- #include <botan/md5.h>
-#endif
-
-#if defined(BOTAN_HAS_RIPEMD_160)
- #include <botan/rmd160.h>
-#endif
-
-#if defined(BOTAN_HAS_SHA1)
- #include <botan/sha160.h>
-#endif
-
-#if defined(BOTAN_HAS_SHA2_32)
- #include <botan/sha2_32.h>
-#endif
-
-#if defined(BOTAN_HAS_SHA2_64)
- #include <botan/sha2_64.h>
-#endif
-
-#if defined(BOTAN_HAS_SHA3)
- #include <botan/sha3.h>
-#endif
-
-#if defined(BOTAN_HAS_SHAKE)
- #include <botan/shake.h>
-#endif
-
-#if defined(BOTAN_HAS_SKEIN_512)
- #include <botan/skein_512.h>
-#endif
-
-#if defined(BOTAN_HAS_STREEBOG)
- #include <botan/streebog.h>
-#endif
-
-#if defined(BOTAN_HAS_SM3)
- #include <botan/sm3.h>
-#endif
-
-#if defined(BOTAN_HAS_TIGER)
- #include <botan/tiger.h>
-#endif
-
-#if defined(BOTAN_HAS_WHIRLPOOL)
- #include <botan/whrlpool.h>
-#endif
-
-#if defined(BOTAN_HAS_PARALLEL_HASH)
- #include <botan/par_hash.h>
-#endif
-
-#if defined(BOTAN_HAS_COMB4P)
- #include <botan/comb4p.h>
-#endif
-
-#if defined(BOTAN_HAS_BLAKE2B)
- #include <botan/blake2b.h>
-#endif
-
-#if defined(BOTAN_HAS_BEARSSL)
- #include <botan/internal/bearssl.h>
-#endif
-
-#if defined(BOTAN_HAS_OPENSSL)
- #include <botan/internal/openssl.h>
-#endif
-
-#if defined(BOTAN_HAS_COMMONCRYPTO)
- #include <botan/internal/commoncrypto.h>
-#endif
-
-namespace Botan {
-
-std::unique_ptr<HashFunction> HashFunction::create(const std::string& algo_spec,
- const std::string& provider)
- {
-
-#if defined(BOTAN_HAS_COMMONCRYPTO)
- if(provider.empty() || provider == "commoncrypto")
- {
- if(auto hash = make_commoncrypto_hash(algo_spec))
- return hash;
-
- if(!provider.empty())
- return nullptr;
- }
-#endif
-
-#if defined(BOTAN_HAS_OPENSSL)
- if(provider.empty() || provider == "openssl")
- {
- if(auto hash = make_openssl_hash(algo_spec))
- return hash;
-
- if(!provider.empty())
- return nullptr;
- }
-#endif
-
-#if defined(BOTAN_HAS_BEARSSL)
- if(provider.empty() || provider == "bearssl")
- {
- if(auto hash = make_bearssl_hash(algo_spec))
- return hash;
-
- if(!provider.empty())
- return nullptr;
- }
-#endif
-
- if(provider.empty() == false && provider != "base")
- return nullptr; // unknown provider
-
-#if defined(BOTAN_HAS_SHA1)
- if(algo_spec == "SHA-160" ||
- algo_spec == "SHA-1" ||
- algo_spec == "SHA1")
- {
- return std::unique_ptr<HashFunction>(new SHA_160);
- }
-#endif
-
-#if defined(BOTAN_HAS_SHA2_32)
- if(algo_spec == "SHA-224")
- {
- return std::unique_ptr<HashFunction>(new SHA_224);
- }
-
- if(algo_spec == "SHA-256")
- {
- return std::unique_ptr<HashFunction>(new SHA_256);
- }
-#endif
-
-#if defined(BOTAN_HAS_SHA2_64)
- if(algo_spec == "SHA-384")
- {
- return std::unique_ptr<HashFunction>(new SHA_384);
- }
-
- if(algo_spec == "SHA-512")
- {
- return std::unique_ptr<HashFunction>(new SHA_512);
- }
-
- if(algo_spec == "SHA-512-256")
- {
- return std::unique_ptr<HashFunction>(new SHA_512_256);
- }
-#endif
-
-#if defined(BOTAN_HAS_RIPEMD_160)
- if(algo_spec == "RIPEMD-160")
- {
- return std::unique_ptr<HashFunction>(new RIPEMD_160);
- }
-#endif
-
-#if defined(BOTAN_HAS_WHIRLPOOL)
- if(algo_spec == "Whirlpool")
- {
- return std::unique_ptr<HashFunction>(new Whirlpool);
- }
-#endif
-
-#if defined(BOTAN_HAS_MD5)
- if(algo_spec == "MD5")
- {
- return std::unique_ptr<HashFunction>(new MD5);
- }
-#endif
-
-#if defined(BOTAN_HAS_MD4)
- if(algo_spec == "MD4")
- {
- return std::unique_ptr<HashFunction>(new MD4);
- }
-#endif
-
-#if defined(BOTAN_HAS_GOST_34_11)
- if(algo_spec == "GOST-R-34.11-94" || algo_spec == "GOST-34.11")
- {
- return std::unique_ptr<HashFunction>(new GOST_34_11);
- }
-#endif
-
-#if defined(BOTAN_HAS_ADLER32)
- if(algo_spec == "Adler32")
- {
- return std::unique_ptr<HashFunction>(new Adler32);
- }
-#endif
-
-#if defined(BOTAN_HAS_CRC24)
- if(algo_spec == "CRC24")
- {
- return std::unique_ptr<HashFunction>(new CRC24);
- }
-#endif
-
-#if defined(BOTAN_HAS_CRC32)
- if(algo_spec == "CRC32")
- {
- return std::unique_ptr<HashFunction>(new CRC32);
- }
-#endif
-
- const SCAN_Name req(algo_spec);
-
-#if defined(BOTAN_HAS_TIGER)
- if(req.algo_name() == "Tiger")
- {
- return std::unique_ptr<HashFunction>(
- new Tiger(req.arg_as_integer(0, 24),
- req.arg_as_integer(1, 3)));
- }
-#endif
-
-#if defined(BOTAN_HAS_SKEIN_512)
- if(req.algo_name() == "Skein-512")
- {
- return std::unique_ptr<HashFunction>(
- new Skein_512(req.arg_as_integer(0, 512), req.arg(1, "")));
- }
-#endif
-
-#if defined(BOTAN_HAS_BLAKE2B)
- if(req.algo_name() == "Blake2b")
- {
- return std::unique_ptr<HashFunction>(
- new Blake2b(req.arg_as_integer(0, 512)));
- }
-#endif
-
-#if defined(BOTAN_HAS_KECCAK)
- if(req.algo_name() == "Keccak-1600")
- {
- return std::unique_ptr<HashFunction>(
- new Keccak_1600(req.arg_as_integer(0, 512)));
- }
-#endif
-
-#if defined(BOTAN_HAS_SHA3)
- if(req.algo_name() == "SHA-3")
- {
- return std::unique_ptr<HashFunction>(
- new SHA_3(req.arg_as_integer(0, 512)));
- }
-#endif
-
-#if defined(BOTAN_HAS_SHAKE)
- if(req.algo_name() == "SHAKE-128")
- {
- return std::unique_ptr<HashFunction>(new SHAKE_128(req.arg_as_integer(0, 128)));
- }
- if(req.algo_name() == "SHAKE-256")
- {
- return std::unique_ptr<HashFunction>(new SHAKE_256(req.arg_as_integer(0, 256)));
- }
-#endif
-
-#if defined(BOTAN_HAS_STREEBOG)
- if(algo_spec == "Streebog-256")
- {
- return std::unique_ptr<HashFunction>(new Streebog_256);
- }
- if(algo_spec == "Streebog-512")
- {
- return std::unique_ptr<HashFunction>(new Streebog_512);
- }
-#endif
-
-#if defined(BOTAN_HAS_SM3)
- if(algo_spec == "SM3")
- {
- return std::unique_ptr<HashFunction>(new SM3);
- }
-#endif
-
-#if defined(BOTAN_HAS_WHIRLPOOL)
- if(req.algo_name() == "Whirlpool")
- {
- return std::unique_ptr<HashFunction>(new Whirlpool);
- }
-#endif
-
-#if defined(BOTAN_HAS_PARALLEL_HASH)
- if(req.algo_name() == "Parallel")
- {
- std::vector<std::unique_ptr<HashFunction>> hashes;
-
- for(size_t i = 0; i != req.arg_count(); ++i)
- {
- auto h = HashFunction::create(req.arg(i));
- if(!h)
- {
- return nullptr;
- }
- hashes.push_back(std::move(h));
- }
-
- return std::unique_ptr<HashFunction>(new Parallel(hashes));
- }
-#endif
-
-#if defined(BOTAN_HAS_COMB4P)
- if(req.algo_name() == "Comb4P" && req.arg_count() == 2)
- {
- std::unique_ptr<HashFunction> h1(HashFunction::create(req.arg(0)));
- std::unique_ptr<HashFunction> h2(HashFunction::create(req.arg(1)));
-
- if(h1 && h2)
- return std::unique_ptr<HashFunction>(new Comb4P(h1.release(), h2.release()));
- }
-#endif
-
-
- return nullptr;
- }
-
-//static
-std::unique_ptr<HashFunction>
-HashFunction::create_or_throw(const std::string& algo,
- const std::string& provider)
- {
- if(auto hash = HashFunction::create(algo, provider))
- {
- return hash;
- }
- throw Lookup_Error("Hash", algo, provider);
- }
-
-std::vector<std::string> HashFunction::providers(const std::string& algo_spec)
- {
- return probe_providers_of<HashFunction>(algo_spec, {"base", "bearssl", "openssl", "commoncrypto"});
- }
-
-}
-
diff --git a/src/libs/3rdparty/botan/src/lib/hash/hash.h b/src/libs/3rdparty/botan/src/lib/hash/hash.h
deleted file mode 100644
index 8c6440e650..0000000000
--- a/src/libs/3rdparty/botan/src/lib/hash/hash.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
-* Hash Function Base Class
-* (C) 1999-2008 Jack Lloyd
-*
-* Botan is released under the Simplified BSD License (see license.txt)
-*/
-
-#ifndef BOTAN_HASH_FUNCTION_BASE_CLASS_H_
-#define BOTAN_HASH_FUNCTION_BASE_CLASS_H_
-
-#include <botan/buf_comp.h>
-#include <string>
-#include <memory>
-
-namespace Botan {
-
-/**
-* This class represents hash function (message digest) objects
-*/
-class BOTAN_PUBLIC_API(2,0) HashFunction : public Buffered_Computation
- {
- public:
- /**
- * Create an instance based on a name, or return null if the
- * algo/provider combination cannot be found. If provider is
- * empty then best available is chosen.
- */
- static std::unique_ptr<HashFunction>
- create(const std::string& algo_spec,
- const std::string& provider = "");
-
- /**
- * Create an instance based on a name
- * If provider is empty then best available is chosen.
- * @param algo_spec algorithm name
- * @param provider provider implementation to use
- * Throws Lookup_Error if not found.
- */
- static std::unique_ptr<HashFunction>
- create_or_throw(const std::string& algo_spec,
- const std::string& provider = "");
-
- /**
- * @return list of available providers for this algorithm, empty if not available
- * @param algo_spec algorithm name
- */
- static std::vector<std::string> providers(const std::string& algo_spec);
-
- /**
- * @return new object representing the same algorithm as *this
- */
- virtual HashFunction* clone() const = 0;
-
- /**
- * @return provider information about this implementation. Default is "base",
- * might also return "sse2", "avx2", "openssl", or some other arbitrary string.
- */
- virtual std::string provider() const { return "base"; }
-
- virtual ~HashFunction() = default;
-
- /**
- * Reset the state.
- */
- virtual void clear() = 0;
-
- /**
- * @return the hash function name
- */
- virtual std::string name() const = 0;
-
- /**
- * @return hash block size as defined for this algorithm
- */
- virtual size_t hash_block_size() const { return 0; }
-
- /**
- * Return a new hash object with the same state as *this. This
- * allows computing the hash of several messages with a common
- * prefix more efficiently than would otherwise be possible.
- *
- * This function should be called `clone` but that was already
- * used for the case of returning an uninitialized object.
- * @return new hash object
- */
- virtual std::unique_ptr<HashFunction> copy_state() const = 0;
- };
-
-}
-
-#endif
diff --git a/src/libs/3rdparty/botan/src/lib/hash/info.txt b/src/libs/3rdparty/botan/src/lib/hash/info.txt
deleted file mode 100644
index 8d38170589..0000000000
--- a/src/libs/3rdparty/botan/src/lib/hash/info.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-<defines>
-HASH -> 20180112
-</defines>
-
-<header:public>
-hash.h
-</header:public>
diff --git a/src/libs/3rdparty/botan/src/lib/hash/mdx_hash/info.txt b/src/libs/3rdparty/botan/src/lib/hash/mdx_hash/info.txt
deleted file mode 100644
index 6a509f1be9..0000000000
--- a/src/libs/3rdparty/botan/src/lib/hash/mdx_hash/info.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-<defines>
-MDX_HASH_FUNCTION -> 20131128
-</defines>
-
-load_on dep
diff --git a/src/libs/3rdparty/botan/src/lib/hash/mdx_hash/mdx_hash.cpp b/src/libs/3rdparty/botan/src/lib/hash/mdx_hash/mdx_hash.cpp
deleted file mode 100644
index 7d163dbfb0..0000000000
--- a/src/libs/3rdparty/botan/src/lib/hash/mdx_hash/mdx_hash.cpp
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
-* Merkle-Damgard Hash Function
-* (C) 1999-2008 Jack Lloyd
-*
-* Botan is released under the Simplified BSD License (see license.txt)
-*/
-
-#include <botan/mdx_hash.h>
-#include <botan/exceptn.h>
-#include <botan/loadstor.h>
-
-namespace Botan {
-
-/*
-* MDx_HashFunction Constructor
-*/
-MDx_HashFunction::MDx_HashFunction(size_t block_len,
- bool byte_end,
- bool bit_end,
- size_t cnt_size) :
- m_buffer(block_len),
- m_count(0),
- m_position(0),
- BIG_BYTE_ENDIAN(byte_end),
- BIG_BIT_ENDIAN(bit_end),
- COUNT_SIZE(cnt_size)
- {
- }
-
-/*
-* Clear memory of sensitive data
-*/
-void MDx_HashFunction::clear()
- {
- zeroise(m_buffer);
- m_count = m_position = 0;
- }
-
-/*
-* Update the hash
-*/
-void MDx_HashFunction::add_data(const uint8_t input[], size_t length)
- {
- m_count += length;
-
- if(m_position)
- {
- buffer_insert(m_buffer, m_position, input, length);
-
- if(m_position + length >= m_buffer.size())
- {
- compress_n(m_buffer.data(), 1);
- input += (m_buffer.size() - m_position);
- length -= (m_buffer.size() - m_position);
- m_position = 0;
- }
- }
-
- const size_t full_blocks = length / m_buffer.size();
- const size_t remaining = length % m_buffer.size();
-
- if(full_blocks)
- compress_n(input, full_blocks);
-
- buffer_insert(m_buffer, m_position, input + full_blocks * m_buffer.size(), remaining);
- m_position += remaining;
- }
-
-/*
-* Finalize a hash
-*/
-void MDx_HashFunction::final_result(uint8_t output[])
- {
- clear_mem(&m_buffer[m_position], m_buffer.size() - m_position);
- m_buffer[m_position] = (BIG_BIT_ENDIAN ? 0x80 : 0x01);
-
- if(m_position >= m_buffer.size() - COUNT_SIZE)
- {
- compress_n(m_buffer.data(), 1);
- zeroise(m_buffer);
- }
-
- write_count(&m_buffer[m_buffer.size() - COUNT_SIZE]);
-
- compress_n(m_buffer.data(), 1);
- copy_out(output);
- clear();
- }
-
-/*
-* Write the count bits to the buffer
-*/
-void MDx_HashFunction::write_count(uint8_t out[])
- {
- if(COUNT_SIZE < 8)
- throw Invalid_State("MDx_HashFunction::write_count: COUNT_SIZE < 8");
- if(COUNT_SIZE >= output_length() || COUNT_SIZE >= hash_block_size())
- throw Invalid_Argument("MDx_HashFunction: COUNT_SIZE is too big");
-
- const uint64_t bit_count = m_count * 8;
-
- if(BIG_BYTE_ENDIAN)
- store_be(bit_count, out + COUNT_SIZE - 8);
- else
- store_le(bit_count, out + COUNT_SIZE - 8);
- }
-
-}
diff --git a/src/libs/3rdparty/botan/src/lib/hash/mdx_hash/mdx_hash.h b/src/libs/3rdparty/botan/src/lib/hash/mdx_hash/mdx_hash.h
deleted file mode 100644
index f958e9fb75..0000000000
--- a/src/libs/3rdparty/botan/src/lib/hash/mdx_hash/mdx_hash.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
-* MDx Hash Function
-* (C) 1999-2008 Jack Lloyd
-*
-* Botan is released under the Simplified BSD License (see license.txt)
-*/
-
-#ifndef BOTAN_MDX_BASE_H_
-#define BOTAN_MDX_BASE_H_
-
-#include <botan/hash.h>
-
-namespace Botan {
-
-/**
-* MDx Hash Function Base Class
-*/
-class BOTAN_PUBLIC_API(2,0) MDx_HashFunction : public HashFunction
- {
- public:
- /**
- * @param block_length is the number of bytes per block
- * @param big_byte_endian specifies if the hash uses big-endian bytes
- * @param big_bit_endian specifies if the hash uses big-endian bits
- * @param counter_size specifies the size of the counter var in bytes
- */
- MDx_HashFunction(size_t block_length,
- bool big_byte_endian,
- bool big_bit_endian,
- size_t counter_size = 8);
-
- size_t hash_block_size() const override final { return m_buffer.size(); }
- protected:
- void add_data(const uint8_t input[], size_t length) override final;
- void final_result(uint8_t output[]) override final;
-
- /**
- * Run the hash's compression function over a set of blocks
- * @param blocks the input
- * @param block_n the number of blocks
- */
- virtual void compress_n(const uint8_t blocks[], size_t block_n) = 0;
-
- void clear() override;
-
- /**
- * Copy the output to the buffer
- * @param buffer to put the output into
- */
- virtual void copy_out(uint8_t buffer[]) = 0;
-
- /**
- * Write the count, if used, to this spot
- * @param out where to write the counter to
- */
- virtual void write_count(uint8_t out[]);
- private:
- secure_vector<uint8_t> m_buffer;
- uint64_t m_count;
- size_t m_position;
-
- const bool BIG_BYTE_ENDIAN, BIG_BIT_ENDIAN;
- const size_t COUNT_SIZE;
- };
-
-}
-
-#endif
diff --git a/src/libs/3rdparty/botan/src/lib/hash/sha1/info.txt b/src/libs/3rdparty/botan/src/lib/hash/sha1/info.txt
deleted file mode 100644
index 6d326af1c9..0000000000
--- a/src/libs/3rdparty/botan/src/lib/hash/sha1/info.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-<defines>
-SHA1 -> 20131128
-</defines>
-
-<requires>
-mdx_hash
-</requires>
diff --git a/src/libs/3rdparty/botan/src/lib/hash/sha1/sha160.cpp b/src/libs/3rdparty/botan/src/lib/hash/sha1/sha160.cpp
deleted file mode 100644
index 8c12a4f042..0000000000
--- a/src/libs/3rdparty/botan/src/lib/hash/sha1/sha160.cpp
+++ /dev/null
@@ -1,188 +0,0 @@
-/*
-* SHA-160
-* (C) 1999-2008,2011 Jack Lloyd
-*
-* Botan is released under the Simplified BSD License (see license.txt)
-*/
-
-#include <botan/sha160.h>
-#include <botan/cpuid.h>
-
-namespace Botan {
-
-std::unique_ptr<HashFunction> SHA_160::copy_state() const
- {
- return std::unique_ptr<HashFunction>(new SHA_160(*this));
- }
-
-namespace SHA1_F {
-
-namespace {
-
-/*
-* SHA-160 F1 Function
-*/
-inline void F1(uint32_t A, uint32_t& B, uint32_t C, uint32_t D, uint32_t& E, uint32_t msg)
- {
- E += (D ^ (B & (C ^ D))) + msg + 0x5A827999 + rotl<5>(A);
- B = rotl<30>(B);
- }
-
-/*
-* SHA-160 F2 Function
-*/
-inline void F2(uint32_t A, uint32_t& B, uint32_t C, uint32_t D, uint32_t& E, uint32_t msg)
- {
- E += (B ^ C ^ D) + msg + 0x6ED9EBA1 + rotl<5>(A);
- B = rotl<30>(B);
- }
-
-/*
-* SHA-160 F3 Function
-*/
-inline void F3(uint32_t A, uint32_t& B, uint32_t C, uint32_t D, uint32_t& E, uint32_t msg)
- {
- E += ((B & C) | ((B | C) & D)) + msg + 0x8F1BBCDC + rotl<5>(A);
- B = rotl<30>(B);
- }
-
-/*
-* SHA-160 F4 Function
-*/
-inline void F4(uint32_t A, uint32_t& B, uint32_t C, uint32_t D, uint32_t& E, uint32_t msg)
- {
- E += (B ^ C ^ D) + msg + 0xCA62C1D6 + rotl<5>(A);
- B = rotl<30>(B);
- }
-
-}
-
-}
-
-/*
-* SHA-160 Compression Function
-*/
-void SHA_160::compress_n(const uint8_t input[], size_t blocks)
- {
- using namespace SHA1_F;
-
-#if defined(BOTAN_HAS_SHA1_X86_SHA_NI)
- if(CPUID::has_intel_sha())
- {
- return sha1_compress_x86(m_digest, input, blocks);
- }
-#endif
-
-#if defined(BOTAN_HAS_SHA1_ARMV8)
- if(CPUID::has_arm_sha1())
- {
- return sha1_armv8_compress_n(m_digest, input, blocks);
- }
-#endif
-
-#if defined(BOTAN_HAS_SHA1_SSE2)
- if(CPUID::has_sse2())
- {
- return sse2_compress_n(m_digest, input, blocks);
- }
-
-#endif
-
- uint32_t A = m_digest[0], B = m_digest[1], C = m_digest[2],
- D = m_digest[3], E = m_digest[4];
-
- m_W.resize(80);
-
- for(size_t i = 0; i != blocks; ++i)
- {
- load_be(m_W.data(), input, 16);
-
- for(size_t j = 16; j != 80; j += 8)
- {
- m_W[j ] = rotl<1>(m_W[j-3] ^ m_W[j-8] ^ m_W[j-14] ^ m_W[j-16]);
- m_W[j+1] = rotl<1>(m_W[j-2] ^ m_W[j-7] ^ m_W[j-13] ^ m_W[j-15]);
- m_W[j+2] = rotl<1>(m_W[j-1] ^ m_W[j-6] ^ m_W[j-12] ^ m_W[j-14]);
- m_W[j+3] = rotl<1>(m_W[j ] ^ m_W[j-5] ^ m_W[j-11] ^ m_W[j-13]);
- m_W[j+4] = rotl<1>(m_W[j+1] ^ m_W[j-4] ^ m_W[j-10] ^ m_W[j-12]);
- m_W[j+5] = rotl<1>(m_W[j+2] ^ m_W[j-3] ^ m_W[j- 9] ^ m_W[j-11]);
- m_W[j+6] = rotl<1>(m_W[j+3] ^ m_W[j-2] ^ m_W[j- 8] ^ m_W[j-10]);
- m_W[j+7] = rotl<1>(m_W[j+4] ^ m_W[j-1] ^ m_W[j- 7] ^ m_W[j- 9]);
- }
-
- F1(A, B, C, D, E, m_W[ 0]); F1(E, A, B, C, D, m_W[ 1]);
- F1(D, E, A, B, C, m_W[ 2]); F1(C, D, E, A, B, m_W[ 3]);
- F1(B, C, D, E, A, m_W[ 4]); F1(A, B, C, D, E, m_W[ 5]);
- F1(E, A, B, C, D, m_W[ 6]); F1(D, E, A, B, C, m_W[ 7]);
- F1(C, D, E, A, B, m_W[ 8]); F1(B, C, D, E, A, m_W[ 9]);
- F1(A, B, C, D, E, m_W[10]); F1(E, A, B, C, D, m_W[11]);
- F1(D, E, A, B, C, m_W[12]); F1(C, D, E, A, B, m_W[13]);
- F1(B, C, D, E, A, m_W[14]); F1(A, B, C, D, E, m_W[15]);
- F1(E, A, B, C, D, m_W[16]); F1(D, E, A, B, C, m_W[17]);
- F1(C, D, E, A, B, m_W[18]); F1(B, C, D, E, A, m_W[19]);
-
- F2(A, B, C, D, E, m_W[20]); F2(E, A, B, C, D, m_W[21]);
- F2(D, E, A, B, C, m_W[22]); F2(C, D, E, A, B, m_W[23]);
- F2(B, C, D, E, A, m_W[24]); F2(A, B, C, D, E, m_W[25]);
- F2(E, A, B, C, D, m_W[26]); F2(D, E, A, B, C, m_W[27]);
- F2(C, D, E, A, B, m_W[28]); F2(B, C, D, E, A, m_W[29]);
- F2(A, B, C, D, E, m_W[30]); F2(E, A, B, C, D, m_W[31]);
- F2(D, E, A, B, C, m_W[32]); F2(C, D, E, A, B, m_W[33]);
- F2(B, C, D, E, A, m_W[34]); F2(A, B, C, D, E, m_W[35]);
- F2(E, A, B, C, D, m_W[36]); F2(D, E, A, B, C, m_W[37]);
- F2(C, D, E, A, B, m_W[38]); F2(B, C, D, E, A, m_W[39]);
-
- F3(A, B, C, D, E, m_W[40]); F3(E, A, B, C, D, m_W[41]);
- F3(D, E, A, B, C, m_W[42]); F3(C, D, E, A, B, m_W[43]);
- F3(B, C, D, E, A, m_W[44]); F3(A, B, C, D, E, m_W[45]);
- F3(E, A, B, C, D, m_W[46]); F3(D, E, A, B, C, m_W[47]);
- F3(C, D, E, A, B, m_W[48]); F3(B, C, D, E, A, m_W[49]);
- F3(A, B, C, D, E, m_W[50]); F3(E, A, B, C, D, m_W[51]);
- F3(D, E, A, B, C, m_W[52]); F3(C, D, E, A, B, m_W[53]);
- F3(B, C, D, E, A, m_W[54]); F3(A, B, C, D, E, m_W[55]);
- F3(E, A, B, C, D, m_W[56]); F3(D, E, A, B, C, m_W[57]);
- F3(C, D, E, A, B, m_W[58]); F3(B, C, D, E, A, m_W[59]);
-
- F4(A, B, C, D, E, m_W[60]); F4(E, A, B, C, D, m_W[61]);
- F4(D, E, A, B, C, m_W[62]); F4(C, D, E, A, B, m_W[63]);
- F4(B, C, D, E, A, m_W[64]); F4(A, B, C, D, E, m_W[65]);
- F4(E, A, B, C, D, m_W[66]); F4(D, E, A, B, C, m_W[67]);
- F4(C, D, E, A, B, m_W[68]); F4(B, C, D, E, A, m_W[69]);
- F4(A, B, C, D, E, m_W[70]); F4(E, A, B, C, D, m_W[71]);
- F4(D, E, A, B, C, m_W[72]); F4(C, D, E, A, B, m_W[73]);
- F4(B, C, D, E, A, m_W[74]); F4(A, B, C, D, E, m_W[75]);
- F4(E, A, B, C, D, m_W[76]); F4(D, E, A, B, C, m_W[77]);
- F4(C, D, E, A, B, m_W[78]); F4(B, C, D, E, A, m_W[79]);
-
- A = (m_digest[0] += A);
- B = (m_digest[1] += B);
- C = (m_digest[2] += C);
- D = (m_digest[3] += D);
- E = (m_digest[4] += E);
-
- input += hash_block_size();
- }
- }
-
-/*
-* Copy out the digest
-*/
-void SHA_160::copy_out(uint8_t output[])
- {
- copy_out_vec_be(output, output_length(), m_digest);
- }
-
-/*
-* Clear memory of sensitive data
-*/
-void SHA_160::clear()
- {
- MDx_HashFunction::clear();
- zeroise(m_W);
- m_digest[0] = 0x67452301;
- m_digest[1] = 0xEFCDAB89;
- m_digest[2] = 0x98BADCFE;
- m_digest[3] = 0x10325476;
- m_digest[4] = 0xC3D2E1F0;
- }
-
-}
diff --git a/src/libs/3rdparty/botan/src/lib/hash/sha1/sha160.h b/src/libs/3rdparty/botan/src/lib/hash/sha1/sha160.h
deleted file mode 100644
index 9f7035ee63..0000000000
--- a/src/libs/3rdparty/botan/src/lib/hash/sha1/sha160.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
-* SHA-160
-* (C) 1999-2007,2016 Jack Lloyd
-*
-* Botan is released under the Simplified BSD License (see license.txt)
-*/
-
-#ifndef BOTAN_SHA_160_H_
-#define BOTAN_SHA_160_H_
-
-#include <botan/mdx_hash.h>
-
-namespace Botan {
-
-/**
-* NIST's SHA-160
-*/
-class BOTAN_PUBLIC_API(2,0) SHA_160 final : public MDx_HashFunction
- {
- public:
- std::string name() const override { return "SHA-160"; }
- size_t output_length() const override { return 20; }
- HashFunction* clone() const override { return new SHA_160; }
- std::unique_ptr<HashFunction> copy_state() const override;
-
- void clear() override;
-
- SHA_160() : MDx_HashFunction(64, true, true), m_digest(5)
- {
- clear();
- }
-
- private:
- void compress_n(const uint8_t[], size_t blocks) override;
-
-#if defined(BOTAN_HAS_SHA1_ARMV8)
- static void sha1_armv8_compress_n(secure_vector<uint32_t>& digest,
- const uint8_t blocks[],
- size_t block_count);
-#endif
-
-#if defined(BOTAN_HAS_SHA1_SSE2)
- static void sse2_compress_n(secure_vector<uint32_t>& digest,
- const uint8_t blocks[],
- size_t block_count);
-#endif
-
-#if defined(BOTAN_HAS_SHA1_X86_SHA_NI)
- // Using x86 SHA instructions in Intel Goldmont and Cannonlake
- static void sha1_compress_x86(secure_vector<uint32_t>& digest,
- const uint8_t blocks[],
- size_t block_count);
-#endif
-
-
- void copy_out(uint8_t[]) override;
-
- /**
- * The digest value
- */
- secure_vector<uint32_t> m_digest;
-
- /**
- * The message buffer
- */
- secure_vector<uint32_t> m_W;
- };
-
-typedef SHA_160 SHA_1;
-
-}
-
-#endif
diff --git a/src/libs/3rdparty/botan/src/lib/hash/sha1/sha1_armv8/info.txt b/src/libs/3rdparty/botan/src/lib/hash/sha1/sha1_armv8/info.txt
deleted file mode 100644
index 405ac412c4..0000000000
--- a/src/libs/3rdparty/botan/src/lib/hash/sha1/sha1_armv8/info.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-<defines>
-SHA1_ARMV8 -> 20170117
-</defines>
-
-need_isa armv8crypto
-
-<cc>
-gcc:4.9
-clang:3.8
-</cc>
diff --git a/src/libs/3rdparty/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp b/src/libs/3rdparty/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp
deleted file mode 100644
index 3dc9f43d85..0000000000
--- a/src/libs/3rdparty/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp
+++ /dev/null
@@ -1,207 +0,0 @@
-/*
-* SHA-1 using CPU instructions in ARMv8
-*
-* Contributed by Jeffrey Walton. Based on public domain code by
-* Johannes Schneiders, Skip Hovsmith and Barry O'Rourke.
-*
-* Botan is released under the Simplified BSD License (see license.txt)
-*/
-
-#include <botan/sha160.h>
-#include <arm_neon.h>
-
-namespace Botan {
-
-/*
-* SHA-1 using CPU instructions in ARMv8
-*/
-//static
-#if defined(BOTAN_HAS_SHA1_ARMV8)
-BOTAN_FUNC_ISA("+crypto")
-void SHA_160::sha1_armv8_compress_n(secure_vector<uint32_t>& digest, const uint8_t input8[], size_t blocks)
- {
- uint32x4_t ABCD;
- uint32_t E0;
-
- // Load magic constants
- const uint32x4_t C0 = vdupq_n_u32(0x5A827999);
- const uint32x4_t C1 = vdupq_n_u32(0x6ED9EBA1);
- const uint32x4_t C2 = vdupq_n_u32(0x8F1BBCDC);
- const uint32x4_t C3 = vdupq_n_u32(0xCA62C1D6);
-
- ABCD = vld1q_u32(&digest[0]);
- E0 = digest[4];
-
- // Intermediate void* cast due to https://llvm.org/bugs/show_bug.cgi?id=20670
- const uint32_t* input32 = reinterpret_cast<const uint32_t*>(reinterpret_cast<const void*>(input8));
-
- while (blocks)
- {
- // Save current hash
- const uint32x4_t ABCD_SAVED = ABCD;
- const uint32_t E0_SAVED = E0;
-
- uint32x4_t MSG0, MSG1, MSG2, MSG3;
- uint32x4_t TMP0, TMP1;
- uint32_t E1;
-
- MSG0 = vld1q_u32(input32 + 0);
- MSG1 = vld1q_u32(input32 + 4);
- MSG2 = vld1q_u32(input32 + 8);
- MSG3 = vld1q_u32(input32 + 12);
-
- MSG0 = vreinterpretq_u32_u8(vrev32q_u8(vreinterpretq_u8_u32(MSG0)));
- MSG1 = vreinterpretq_u32_u8(vrev32q_u8(vreinterpretq_u8_u32(MSG1)));
- MSG2 = vreinterpretq_u32_u8(vrev32q_u8(vreinterpretq_u8_u32(MSG2)));
- MSG3 = vreinterpretq_u32_u8(vrev32q_u8(vreinterpretq_u8_u32(MSG3)));
-
- TMP0 = vaddq_u32(MSG0, C0);
- TMP1 = vaddq_u32(MSG1, C0);
-
- // Rounds 0-3
- E1 = vsha1h_u32(vgetq_lane_u32(ABCD, 0));
- ABCD = vsha1cq_u32(ABCD, E0, TMP0);
- TMP0 = vaddq_u32(MSG2, C0);
- MSG0 = vsha1su0q_u32(MSG0, MSG1, MSG2);
-
- // Rounds 4-7
- E0 = vsha1h_u32(vgetq_lane_u32(ABCD, 0));
- ABCD = vsha1cq_u32(ABCD, E1, TMP1);
- TMP1 = vaddq_u32(MSG3, C0);
- MSG0 = vsha1su1q_u32(MSG0, MSG3);
- MSG1 = vsha1su0q_u32(MSG1, MSG2, MSG3);
-
- // Rounds 8-11
- E1 = vsha1h_u32(vgetq_lane_u32(ABCD, 0));
- ABCD = vsha1cq_u32(ABCD, E0, TMP0);
- TMP0 = vaddq_u32(MSG0, C0);
- MSG1 = vsha1su1q_u32(MSG1, MSG0);
- MSG2 = vsha1su0q_u32(MSG2, MSG3, MSG0);
-
- // Rounds 12-15
- E0 = vsha1h_u32(vgetq_lane_u32(ABCD, 0));
- ABCD = vsha1cq_u32(ABCD, E1, TMP1);
- TMP1 = vaddq_u32(MSG1, C1);
- MSG2 = vsha1su1q_u32(MSG2, MSG1);
- MSG3 = vsha1su0q_u32(MSG3, MSG0, MSG1);
-
- // Rounds 16-19
- E1 = vsha1h_u32(vgetq_lane_u32(ABCD, 0));
- ABCD = vsha1cq_u32(ABCD, E0, TMP0);
- TMP0 = vaddq_u32(MSG2, C1);
- MSG3 = vsha1su1q_u32(MSG3, MSG2);
- MSG0 = vsha1su0q_u32(MSG0, MSG1, MSG2);
-
- // Rounds 20-23
- E0 = vsha1h_u32(vgetq_lane_u32(ABCD, 0));
- ABCD = vsha1pq_u32(ABCD, E1, TMP1);
- TMP1 = vaddq_u32(MSG3, C1);
- MSG0 = vsha1su1q_u32(MSG0, MSG3);
- MSG1 = vsha1su0q_u32(MSG1, MSG2, MSG3);
-
- // Rounds 24-27
- E1 = vsha1h_u32(vgetq_lane_u32(ABCD, 0));
- ABCD = vsha1pq_u32(ABCD, E0, TMP0);
- TMP0 = vaddq_u32(MSG0, C1);
- MSG1 = vsha1su1q_u32(MSG1, MSG0);
- MSG2 = vsha1su0q_u32(MSG2, MSG3, MSG0);
-
- // Rounds 28-31
- E0 = vsha1h_u32(vgetq_lane_u32(ABCD, 0));
- ABCD = vsha1pq_u32(ABCD, E1, TMP1);
- TMP1 = vaddq_u32(MSG1, C1);
- MSG2 = vsha1su1q_u32(MSG2, MSG1);
- MSG3 = vsha1su0q_u32(MSG3, MSG0, MSG1);
-
- // Rounds 32-35
- E1 = vsha1h_u32(vgetq_lane_u32(ABCD, 0));
- ABCD = vsha1pq_u32(ABCD, E0, TMP0);
- TMP0 = vaddq_u32(MSG2, C2);
- MSG3 = vsha1su1q_u32(MSG3, MSG2);
- MSG0 = vsha1su0q_u32(MSG0, MSG1, MSG2);
-
- // Rounds 36-39
- E0 = vsha1h_u32(vgetq_lane_u32(ABCD, 0));
- ABCD = vsha1pq_u32(ABCD, E1, TMP1);
- TMP1 = vaddq_u32(MSG3, C2);
- MSG0 = vsha1su1q_u32(MSG0, MSG3);
- MSG1 = vsha1su0q_u32(MSG1, MSG2, MSG3);
-
- // Rounds 40-43
- E1 = vsha1h_u32(vgetq_lane_u32(ABCD, 0));
- ABCD = vsha1mq_u32(ABCD, E0, TMP0);
- TMP0 = vaddq_u32(MSG0, C2);
- MSG1 = vsha1su1q_u32(MSG1, MSG0);
- MSG2 = vsha1su0q_u32(MSG2, MSG3, MSG0);
-
- // Rounds 44-47
- E0 = vsha1h_u32(vgetq_lane_u32(ABCD, 0));
- ABCD = vsha1mq_u32(ABCD, E1, TMP1);
- TMP1 = vaddq_u32(MSG1, C2);
- MSG2 = vsha1su1q_u32(MSG2, MSG1);
- MSG3 = vsha1su0q_u32(MSG3, MSG0, MSG1);
-
- // Rounds 48-51
- E1 = vsha1h_u32(vgetq_lane_u32(ABCD, 0));
- ABCD = vsha1mq_u32(ABCD, E0, TMP0);
- TMP0 = vaddq_u32(MSG2, C2);
- MSG3 = vsha1su1q_u32(MSG3, MSG2);
- MSG0 = vsha1su0q_u32(MSG0, MSG1, MSG2);
-
- // Rounds 52-55
- E0 = vsha1h_u32(vgetq_lane_u32(ABCD, 0));
- ABCD = vsha1mq_u32(ABCD, E1, TMP1);
- TMP1 = vaddq_u32(MSG3, C3);
- MSG0 = vsha1su1q_u32(MSG0, MSG3);
- MSG1 = vsha1su0q_u32(MSG1, MSG2, MSG3);
-
- // Rounds 56-59
- E1 = vsha1h_u32(vgetq_lane_u32(ABCD, 0));
- ABCD = vsha1mq_u32(ABCD, E0, TMP0);
- TMP0 = vaddq_u32(MSG0, C3);
- MSG1 = vsha1su1q_u32(MSG1, MSG0);
- MSG2 = vsha1su0q_u32(MSG2, MSG3, MSG0);
-
- // Rounds 60-63
- E0 = vsha1h_u32(vgetq_lane_u32(ABCD, 0));
- ABCD = vsha1pq_u32(ABCD, E1, TMP1);
- TMP1 = vaddq_u32(MSG1, C3);
- MSG2 = vsha1su1q_u32(MSG2, MSG1);
- MSG3 = vsha1su0q_u32(MSG3, MSG0, MSG1);
-
- // Rounds 64-67
- E1 = vsha1h_u32(vgetq_lane_u32(ABCD, 0));
- ABCD = vsha1pq_u32(ABCD, E0, TMP0);
- TMP0 = vaddq_u32(MSG2, C3);
- MSG3 = vsha1su1q_u32(MSG3, MSG2);
- MSG0 = vsha1su0q_u32(MSG0, MSG1, MSG2);
-
- // Rounds 68-71
- E0 = vsha1h_u32(vgetq_lane_u32(ABCD, 0));
- ABCD = vsha1pq_u32(ABCD, E1, TMP1);
- TMP1 = vaddq_u32(MSG3, C3);
- MSG0 = vsha1su1q_u32(MSG0, MSG3);
-
- // Rounds 72-75
- E1 = vsha1h_u32(vgetq_lane_u32(ABCD, 0));
- ABCD = vsha1pq_u32(ABCD, E0, TMP0);
-
- // Rounds 76-79
- E0 = vsha1h_u32(vgetq_lane_u32(ABCD, 0));
- ABCD = vsha1pq_u32(ABCD, E1, TMP1);
-
- // Add state back
- E0 += E0_SAVED;
- ABCD = vaddq_u32(ABCD_SAVED, ABCD);
-
- input32 += 64/4;
- blocks--;
- }
-
- // Save digest
- vst1q_u32(&digest[0], ABCD);
- digest[4] = E0;
- }
-#endif
-
-}
diff --git a/src/libs/3rdparty/botan/src/lib/hash/sha1/sha1_sse2/info.txt b/src/libs/3rdparty/botan/src/lib/hash/sha1/sha1_sse2/info.txt
deleted file mode 100644
index 272bf5e8d4..0000000000
--- a/src/libs/3rdparty/botan/src/lib/hash/sha1/sha1_sse2/info.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-<defines>
-SHA1_SSE2 -> 20160803
-</defines>
-
-need_isa sse2
diff --git a/src/libs/3rdparty/botan/src/lib/hash/sha1/sha1_sse2/sha1_sse2.cpp b/src/libs/3rdparty/botan/src/lib/hash/sha1/sha1_sse2/sha1_sse2.cpp
deleted file mode 100644
index 88e5a0d2c7..0000000000
--- a/src/libs/3rdparty/botan/src/lib/hash/sha1/sha1_sse2/sha1_sse2.cpp
+++ /dev/null
@@ -1,335 +0,0 @@
-/*
-* SHA-1 using SSE2
-* Based on public domain code by Dean Gaudet
-* (http://arctic.org/~dean/crypto/sha1.html)
-* (C) 2009-2011 Jack Lloyd
-*
-* Botan is released under the Simplified BSD License (see license.txt)
-*/
-
-#include <botan/sha160.h>
-#include <emmintrin.h>
-
-namespace Botan {
-
-namespace SHA1_SSE2_F {
-
-namespace {
-
-/*
-* First 16 bytes just need byte swapping. Preparing just means
-* adding in the round constants.
-*/
-
-#define prep00_15(P, W) \
- do { \
- W = _mm_shufflehi_epi16(W, _MM_SHUFFLE(2, 3, 0, 1)); \
- W = _mm_shufflelo_epi16(W, _MM_SHUFFLE(2, 3, 0, 1)); \
- W = _mm_or_si128(_mm_slli_epi16(W, 8), \
- _mm_srli_epi16(W, 8)); \
- P.u128 = _mm_add_epi32(W, K00_19); \
- } while(0)
-
-/*
-For each multiple of 4, t, we want to calculate this:
-
-W[t+0] = rol(W[t-3] ^ W[t-8] ^ W[t-14] ^ W[t-16], 1);
-W[t+1] = rol(W[t-2] ^ W[t-7] ^ W[t-13] ^ W[t-15], 1);
-W[t+2] = rol(W[t-1] ^ W[t-6] ^ W[t-12] ^ W[t-14], 1);
-W[t+3] = rol(W[t] ^ W[t-5] ^ W[t-11] ^ W[t-13], 1);
-
-we'll actually calculate this:
-
-W[t+0] = rol(W[t-3] ^ W[t-8] ^ W[t-14] ^ W[t-16], 1);
-W[t+1] = rol(W[t-2] ^ W[t-7] ^ W[t-13] ^ W[t-15], 1);
-W[t+2] = rol(W[t-1] ^ W[t-6] ^ W[t-12] ^ W[t-14], 1);
-W[t+3] = rol( 0 ^ W[t-5] ^ W[t-11] ^ W[t-13], 1);
-W[t+3] ^= rol(W[t+0], 1);
-
-the parameters are:
-
-W0 = &W[t-16];
-W1 = &W[t-12];
-W2 = &W[t- 8];
-W3 = &W[t- 4];
-
-and on output:
-prepared = W0 + K
-W0 = W[t]..W[t+3]
-*/
-
-/* note that there is a step here where i want to do a rol by 1, which
-* normally would look like this:
-*
-* r1 = psrld r0,$31
-* r0 = pslld r0,$1
-* r0 = por r0,r1
-*
-* but instead i do this:
-*
-* r1 = pcmpltd r0,zero
-* r0 = paddd r0,r0
-* r0 = psub r0,r1
-*
-* because pcmpltd and paddd are available in both MMX units on
-* efficeon, pentium-m, and opteron but shifts are available in
-* only one unit.
-*/
-#define prep(prep, XW0, XW1, XW2, XW3, K) \
- do { \
- __m128i r0, r1, r2, r3; \
- \
- /* load W[t-4] 16-byte aligned, and shift */ \
- r3 = _mm_srli_si128((XW3), 4); \
- r0 = (XW0); \
- /* get high 64-bits of XW0 into low 64-bits */ \
- r1 = _mm_shuffle_epi32((XW0), _MM_SHUFFLE(1,0,3,2)); \
- /* load high 64-bits of r1 */ \
- r1 = _mm_unpacklo_epi64(r1, (XW1)); \
- r2 = (XW2); \
- \
- r0 = _mm_xor_si128(r1, r0); \
- r2 = _mm_xor_si128(r3, r2); \
- r0 = _mm_xor_si128(r2, r0); \
- /* unrotated W[t]..W[t+2] in r0 ... still need W[t+3] */ \
- \
- r2 = _mm_slli_si128(r0, 12); \
- r1 = _mm_cmplt_epi32(r0, _mm_setzero_si128()); \
- r0 = _mm_add_epi32(r0, r0); /* shift left by 1 */ \
- r0 = _mm_sub_epi32(r0, r1); /* r0 has W[t]..W[t+2] */ \
- \
- r3 = _mm_srli_epi32(r2, 30); \
- r2 = _mm_slli_epi32(r2, 2); \
- \
- r0 = _mm_xor_si128(r0, r3); \
- r0 = _mm_xor_si128(r0, r2); /* r0 now has W[t+3] */ \
- \
- (XW0) = r0; \
- (prep).u128 = _mm_add_epi32(r0, K); \
- } while(0)
-
-/*
-* SHA-160 F1 Function
-*/
-inline void F1(uint32_t A, uint32_t& B, uint32_t C, uint32_t D, uint32_t& E, uint32_t msg)
- {
- E += (D ^ (B & (C ^ D))) + msg + rotl<5>(A);
- B = rotl<30>(B);
- }
-
-/*
-* SHA-160 F2 Function
-*/
-inline void F2(uint32_t A, uint32_t& B, uint32_t C, uint32_t D, uint32_t& E, uint32_t msg)
- {
- E += (B ^ C ^ D) + msg + rotl<5>(A);
- B = rotl<30>(B);
- }
-
-/*
-* SHA-160 F3 Function
-*/
-inline void F3(uint32_t A, uint32_t& B, uint32_t C, uint32_t D, uint32_t& E, uint32_t msg)
- {
- E += ((B & C) | ((B | C) & D)) + msg + rotl<5>(A);
- B = rotl<30>(B);
- }
-
-/*
-* SHA-160 F4 Function
-*/
-inline void F4(uint32_t A, uint32_t& B, uint32_t C, uint32_t D, uint32_t& E, uint32_t msg)
- {
- E += (B ^ C ^ D) + msg + rotl<5>(A);
- B = rotl<30>(B);
- }
-
-}
-
-}
-
-/*
-* SHA-160 Compression Function using SSE for message expansion
-*/
-//static
-BOTAN_FUNC_ISA("sse2")
-void SHA_160::sse2_compress_n(secure_vector<uint32_t>& digest, const uint8_t input[], size_t blocks)
- {
- using namespace SHA1_SSE2_F;
-
- const __m128i K00_19 = _mm_set1_epi32(0x5A827999);
- const __m128i K20_39 = _mm_set1_epi32(0x6ED9EBA1);
- const __m128i K40_59 = _mm_set1_epi32(0x8F1BBCDC);
- const __m128i K60_79 = _mm_set1_epi32(0xCA62C1D6);
-
- uint32_t A = digest[0],
- B = digest[1],
- C = digest[2],
- D = digest[3],
- E = digest[4];
-
- const __m128i* input_mm = reinterpret_cast<const __m128i*>(input);
-
- for(size_t i = 0; i != blocks; ++i)
- {
- union v4si {
- uint32_t u32[4];
- __m128i u128;
- };
-
- v4si P0, P1, P2, P3;
-
- __m128i W0 = _mm_loadu_si128(&input_mm[0]);
- prep00_15(P0, W0);
-
- __m128i W1 = _mm_loadu_si128(&input_mm[1]);
- prep00_15(P1, W1);
-
- __m128i W2 = _mm_loadu_si128(&input_mm[2]);
- prep00_15(P2, W2);
-
- __m128i W3 = _mm_loadu_si128(&input_mm[3]);
- prep00_15(P3, W3);
-
- /*
- Using SSE4; slower on Core2 and Nehalem
- #define GET_P_32(P, i) _mm_extract_epi32(P.u128, i)
-
- Much slower on all tested platforms
- #define GET_P_32(P,i) _mm_cvtsi128_si32(_mm_srli_si128(P.u128, i*4))
- */
-
-#define GET_P_32(P, i) P.u32[i]
-
- F1(A, B, C, D, E, GET_P_32(P0, 0));
- F1(E, A, B, C, D, GET_P_32(P0, 1));
- F1(D, E, A, B, C, GET_P_32(P0, 2));
- F1(C, D, E, A, B, GET_P_32(P0, 3));
- prep(P0, W0, W1, W2, W3, K00_19);
-
- F1(B, C, D, E, A, GET_P_32(P1, 0));
- F1(A, B, C, D, E, GET_P_32(P1, 1));
- F1(E, A, B, C, D, GET_P_32(P1, 2));
- F1(D, E, A, B, C, GET_P_32(P1, 3));
- prep(P1, W1, W2, W3, W0, K20_39);
-
- F1(C, D, E, A, B, GET_P_32(P2, 0));
- F1(B, C, D, E, A, GET_P_32(P2, 1));
- F1(A, B, C, D, E, GET_P_32(P2, 2));
- F1(E, A, B, C, D, GET_P_32(P2, 3));
- prep(P2, W2, W3, W0, W1, K20_39);
-
- F1(D, E, A, B, C, GET_P_32(P3, 0));
- F1(C, D, E, A, B, GET_P_32(P3, 1));
- F1(B, C, D, E, A, GET_P_32(P3, 2));
- F1(A, B, C, D, E, GET_P_32(P3, 3));
- prep(P3, W3, W0, W1, W2, K20_39);
-
- F1(E, A, B, C, D, GET_P_32(P0, 0));
- F1(D, E, A, B, C, GET_P_32(P0, 1));
- F1(C, D, E, A, B, GET_P_32(P0, 2));
- F1(B, C, D, E, A, GET_P_32(P0, 3));
- prep(P0, W0, W1, W2, W3, K20_39);
-
- F2(A, B, C, D, E, GET_P_32(P1, 0));
- F2(E, A, B, C, D, GET_P_32(P1, 1));
- F2(D, E, A, B, C, GET_P_32(P1, 2));
- F2(C, D, E, A, B, GET_P_32(P1, 3));
- prep(P1, W1, W2, W3, W0, K20_39);
-
- F2(B, C, D, E, A, GET_P_32(P2, 0));
- F2(A, B, C, D, E, GET_P_32(P2, 1));
- F2(E, A, B, C, D, GET_P_32(P2, 2));
- F2(D, E, A, B, C, GET_P_32(P2, 3));
- prep(P2, W2, W3, W0, W1, K40_59);
-
- F2(C, D, E, A, B, GET_P_32(P3, 0));
- F2(B, C, D, E, A, GET_P_32(P3, 1));
- F2(A, B, C, D, E, GET_P_32(P3, 2));
- F2(E, A, B, C, D, GET_P_32(P3, 3));
- prep(P3, W3, W0, W1, W2, K40_59);
-
- F2(D, E, A, B, C, GET_P_32(P0, 0));
- F2(C, D, E, A, B, GET_P_32(P0, 1));
- F2(B, C, D, E, A, GET_P_32(P0, 2));
- F2(A, B, C, D, E, GET_P_32(P0, 3));
- prep(P0, W0, W1, W2, W3, K40_59);
-
- F2(E, A, B, C, D, GET_P_32(P1, 0));
- F2(D, E, A, B, C, GET_P_32(P1, 1));
- F2(C, D, E, A, B, GET_P_32(P1, 2));
- F2(B, C, D, E, A, GET_P_32(P1, 3));
- prep(P1, W1, W2, W3, W0, K40_59);
-
- F3(A, B, C, D, E, GET_P_32(P2, 0));
- F3(E, A, B, C, D, GET_P_32(P2, 1));
- F3(D, E, A, B, C, GET_P_32(P2, 2));
- F3(C, D, E, A, B, GET_P_32(P2, 3));
- prep(P2, W2, W3, W0, W1, K40_59);
-
- F3(B, C, D, E, A, GET_P_32(P3, 0));
- F3(A, B, C, D, E, GET_P_32(P3, 1));
- F3(E, A, B, C, D, GET_P_32(P3, 2));
- F3(D, E, A, B, C, GET_P_32(P3, 3));
- prep(P3, W3, W0, W1, W2, K60_79);
-
- F3(C, D, E, A, B, GET_P_32(P0, 0));
- F3(B, C, D, E, A, GET_P_32(P0, 1));
- F3(A, B, C, D, E, GET_P_32(P0, 2));
- F3(E, A, B, C, D, GET_P_32(P0, 3));
- prep(P0, W0, W1, W2, W3, K60_79);
-
- F3(D, E, A, B, C, GET_P_32(P1, 0));
- F3(C, D, E, A, B, GET_P_32(P1, 1));
- F3(B, C, D, E, A, GET_P_32(P1, 2));
- F3(A, B, C, D, E, GET_P_32(P1, 3));
- prep(P1, W1, W2, W3, W0, K60_79);
-
- F3(E, A, B, C, D, GET_P_32(P2, 0));
- F3(D, E, A, B, C, GET_P_32(P2, 1));
- F3(C, D, E, A, B, GET_P_32(P2, 2));
- F3(B, C, D, E, A, GET_P_32(P2, 3));
- prep(P2, W2, W3, W0, W1, K60_79);
-
- F4(A, B, C, D, E, GET_P_32(P3, 0));
- F4(E, A, B, C, D, GET_P_32(P3, 1));
- F4(D, E, A, B, C, GET_P_32(P3, 2));
- F4(C, D, E, A, B, GET_P_32(P3, 3));
- prep(P3, W3, W0, W1, W2, K60_79);
-
- F4(B, C, D, E, A, GET_P_32(P0, 0));
- F4(A, B, C, D, E, GET_P_32(P0, 1));
- F4(E, A, B, C, D, GET_P_32(P0, 2));
- F4(D, E, A, B, C, GET_P_32(P0, 3));
-
- F4(C, D, E, A, B, GET_P_32(P1, 0));
- F4(B, C, D, E, A, GET_P_32(P1, 1));
- F4(A, B, C, D, E, GET_P_32(P1, 2));
- F4(E, A, B, C, D, GET_P_32(P1, 3));
-
- F4(D, E, A, B, C, GET_P_32(P2, 0));
- F4(C, D, E, A, B, GET_P_32(P2, 1));
- F4(B, C, D, E, A, GET_P_32(P2, 2));
- F4(A, B, C, D, E, GET_P_32(P2, 3));
-
- F4(E, A, B, C, D, GET_P_32(P3, 0));
- F4(D, E, A, B, C, GET_P_32(P3, 1));
- F4(C, D, E, A, B, GET_P_32(P3, 2));
- F4(B, C, D, E, A, GET_P_32(P3, 3));
-
- A = (digest[0] += A);
- B = (digest[1] += B);
- C = (digest[2] += C);
- D = (digest[3] += D);
- E = (digest[4] += E);
-
- input_mm += (64 / 16);
- }
-
-#undef GET_P_32
- }
-
-#undef prep00_15
-#undef prep
-
-}
diff --git a/src/libs/3rdparty/botan/src/lib/hash/sha1/sha1_x86/info.txt b/src/libs/3rdparty/botan/src/lib/hash/sha1/sha1_x86/info.txt
deleted file mode 100644
index cfa1750c23..0000000000
--- a/src/libs/3rdparty/botan/src/lib/hash/sha1/sha1_x86/info.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-<defines>
-SHA1_X86_SHA_NI -> 20170518
-</defines>
-
-need_isa sha,ssse3,sse41
-
-<cc>
-clang:3.9
-gcc:5.0
-msvc:19.0 # MSVS 2015
-</cc>
diff --git a/src/libs/3rdparty/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp b/src/libs/3rdparty/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp
deleted file mode 100644
index 76feebcea1..0000000000
--- a/src/libs/3rdparty/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp
+++ /dev/null
@@ -1,216 +0,0 @@
-/*
-* SHA-1 using Intel SHA intrinsic
-*
-* Based on public domain code by Sean Gulley
-* (https://github.com/mitls/hacl-star/tree/master/experimental/hash)
-* Adapted to Botan by Jeffrey Walton.
-*
-* Further changes
-*
-* (C) 2017 Jack Lloyd
-*
-* Botan is released under the Simplified BSD License (see license.txt)
-*/
-
-#include <botan/sha160.h>
-#include <immintrin.h>
-
-namespace Botan {
-
-#if defined(BOTAN_HAS_SHA1_X86_SHA_NI)
-BOTAN_FUNC_ISA("sha,ssse3,sse4.1")
-void SHA_160::sha1_compress_x86(secure_vector<uint32_t>& digest,
- const uint8_t input[],
- size_t blocks)
- {
- const __m128i MASK = _mm_set_epi64x(0x0001020304050607ULL, 0x08090a0b0c0d0e0fULL);
- const __m128i* input_mm = reinterpret_cast<const __m128i*>(input);
-
- uint32_t* state = digest.data();
-
- // Load initial values
- __m128i ABCD = _mm_loadu_si128(reinterpret_cast<__m128i*>(state));
- __m128i E0 = _mm_set_epi32(state[4], 0, 0, 0);
- ABCD = _mm_shuffle_epi32(ABCD, 0x1B);
-
- while (blocks)
- {
- // Save current hash
- const __m128i ABCD_SAVE = ABCD;
- const __m128i E0_SAVE = E0;
-
- __m128i MSG0, MSG1, MSG2, MSG3;
- __m128i E1;
-
- // Rounds 0-3
- MSG0 = _mm_loadu_si128(input_mm+0);
- MSG0 = _mm_shuffle_epi8(MSG0, MASK);
- E0 = _mm_add_epi32(E0, MSG0);
- E1 = ABCD;
- ABCD = _mm_sha1rnds4_epu32(ABCD, E0, 0);
-
- // Rounds 4-7
- MSG1 = _mm_loadu_si128(input_mm+1);
- MSG1 = _mm_shuffle_epi8(MSG1, MASK);
- E1 = _mm_sha1nexte_epu32(E1, MSG1);
- E0 = ABCD;
- ABCD = _mm_sha1rnds4_epu32(ABCD, E1, 0);
- MSG0 = _mm_sha1msg1_epu32(MSG0, MSG1);
-
- // Rounds 8-11
- MSG2 = _mm_loadu_si128(input_mm+2);
- MSG2 = _mm_shuffle_epi8(MSG2, MASK);
- E0 = _mm_sha1nexte_epu32(E0, MSG2);
- E1 = ABCD;
- ABCD = _mm_sha1rnds4_epu32(ABCD, E0, 0);
- MSG1 = _mm_sha1msg1_epu32(MSG1, MSG2);
- MSG0 = _mm_xor_si128(MSG0, MSG2);
-
- // Rounds 12-15
- MSG3 = _mm_loadu_si128(input_mm+3);
- MSG3 = _mm_shuffle_epi8(MSG3, MASK);
- E1 = _mm_sha1nexte_epu32(E1, MSG3);
- E0 = ABCD;
- MSG0 = _mm_sha1msg2_epu32(MSG0, MSG3);
- ABCD = _mm_sha1rnds4_epu32(ABCD, E1, 0);
- MSG2 = _mm_sha1msg1_epu32(MSG2, MSG3);
- MSG1 = _mm_xor_si128(MSG1, MSG3);
-
- // Rounds 16-19
- E0 = _mm_sha1nexte_epu32(E0, MSG0);
- E1 = ABCD;
- MSG1 = _mm_sha1msg2_epu32(MSG1, MSG0);
- ABCD = _mm_sha1rnds4_epu32(ABCD, E0, 0);
- MSG3 = _mm_sha1msg1_epu32(MSG3, MSG0);
- MSG2 = _mm_xor_si128(MSG2, MSG0);
-
- // Rounds 20-23
- E1 = _mm_sha1nexte_epu32(E1, MSG1);
- E0 = ABCD;
- MSG2 = _mm_sha1msg2_epu32(MSG2, MSG1);
- ABCD = _mm_sha1rnds4_epu32(ABCD, E1, 1);
- MSG0 = _mm_sha1msg1_epu32(MSG0, MSG1);
- MSG3 = _mm_xor_si128(MSG3, MSG1);
-
- // Rounds 24-27
- E0 = _mm_sha1nexte_epu32(E0, MSG2);
- E1 = ABCD;
- MSG3 = _mm_sha1msg2_epu32(MSG3, MSG2);
- ABCD = _mm_sha1rnds4_epu32(ABCD, E0, 1);
- MSG1 = _mm_sha1msg1_epu32(MSG1, MSG2);
- MSG0 = _mm_xor_si128(MSG0, MSG2);
-
- // Rounds 28-31
- E1 = _mm_sha1nexte_epu32(E1, MSG3);
- E0 = ABCD;
- MSG0 = _mm_sha1msg2_epu32(MSG0, MSG3);
- ABCD = _mm_sha1rnds4_epu32(ABCD, E1, 1);
- MSG2 = _mm_sha1msg1_epu32(MSG2, MSG3);
- MSG1 = _mm_xor_si128(MSG1, MSG3);
-
- // Rounds 32-35
- E0 = _mm_sha1nexte_epu32(E0, MSG0);
- E1 = ABCD;
- MSG1 = _mm_sha1msg2_epu32(MSG1, MSG0);
- ABCD = _mm_sha1rnds4_epu32(ABCD, E0, 1);
- MSG3 = _mm_sha1msg1_epu32(MSG3, MSG0);
- MSG2 = _mm_xor_si128(MSG2, MSG0);
-
- // Rounds 36-39
- E1 = _mm_sha1nexte_epu32(E1, MSG1);
- E0 = ABCD;
- MSG2 = _mm_sha1msg2_epu32(MSG2, MSG1);
- ABCD = _mm_sha1rnds4_epu32(ABCD, E1, 1);
- MSG0 = _mm_sha1msg1_epu32(MSG0, MSG1);
- MSG3 = _mm_xor_si128(MSG3, MSG1);
-
- // Rounds 40-43
- E0 = _mm_sha1nexte_epu32(E0, MSG2);
- E1 = ABCD;
- MSG3 = _mm_sha1msg2_epu32(MSG3, MSG2);
- ABCD = _mm_sha1rnds4_epu32(ABCD, E0, 2);
- MSG1 = _mm_sha1msg1_epu32(MSG1, MSG2);
- MSG0 = _mm_xor_si128(MSG0, MSG2);
-
- // Rounds 44-47
- E1 = _mm_sha1nexte_epu32(E1, MSG3);
- E0 = ABCD;
- MSG0 = _mm_sha1msg2_epu32(MSG0, MSG3);
- ABCD = _mm_sha1rnds4_epu32(ABCD, E1, 2);
- MSG2 = _mm_sha1msg1_epu32(MSG2, MSG3);
- MSG1 = _mm_xor_si128(MSG1, MSG3);
-
- // Rounds 48-51
- E0 = _mm_sha1nexte_epu32(E0, MSG0);
- E1 = ABCD;
- MSG1 = _mm_sha1msg2_epu32(MSG1, MSG0);
- ABCD = _mm_sha1rnds4_epu32(ABCD, E0, 2);
- MSG3 = _mm_sha1msg1_epu32(MSG3, MSG0);
- MSG2 = _mm_xor_si128(MSG2, MSG0);
-
- // Rounds 52-55
- E1 = _mm_sha1nexte_epu32(E1, MSG1);
- E0 = ABCD;
- MSG2 = _mm_sha1msg2_epu32(MSG2, MSG1);
- ABCD = _mm_sha1rnds4_epu32(ABCD, E1, 2);
- MSG0 = _mm_sha1msg1_epu32(MSG0, MSG1);
- MSG3 = _mm_xor_si128(MSG3, MSG1);
-
- // Rounds 56-59
- E0 = _mm_sha1nexte_epu32(E0, MSG2);
- E1 = ABCD;
- MSG3 = _mm_sha1msg2_epu32(MSG3, MSG2);
- ABCD = _mm_sha1rnds4_epu32(ABCD, E0, 2);
- MSG1 = _mm_sha1msg1_epu32(MSG1, MSG2);
- MSG0 = _mm_xor_si128(MSG0, MSG2);
-
- // Rounds 60-63
- E1 = _mm_sha1nexte_epu32(E1, MSG3);
- E0 = ABCD;
- MSG0 = _mm_sha1msg2_epu32(MSG0, MSG3);
- ABCD = _mm_sha1rnds4_epu32(ABCD, E1, 3);
- MSG2 = _mm_sha1msg1_epu32(MSG2, MSG3);
- MSG1 = _mm_xor_si128(MSG1, MSG3);
-
- // Rounds 64-67
- E0 = _mm_sha1nexte_epu32(E0, MSG0);
- E1 = ABCD;
- MSG1 = _mm_sha1msg2_epu32(MSG1, MSG0);
- ABCD = _mm_sha1rnds4_epu32(ABCD, E0, 3);
- MSG3 = _mm_sha1msg1_epu32(MSG3, MSG0);
- MSG2 = _mm_xor_si128(MSG2, MSG0);
-
- // Rounds 68-71
- E1 = _mm_sha1nexte_epu32(E1, MSG1);
- E0 = ABCD;
- MSG2 = _mm_sha1msg2_epu32(MSG2, MSG1);
- ABCD = _mm_sha1rnds4_epu32(ABCD, E1, 3);
- MSG3 = _mm_xor_si128(MSG3, MSG1);
-
- // Rounds 72-75
- E0 = _mm_sha1nexte_epu32(E0, MSG2);
- E1 = ABCD;
- MSG3 = _mm_sha1msg2_epu32(MSG3, MSG2);
- ABCD = _mm_sha1rnds4_epu32(ABCD, E0, 3);
-
- // Rounds 76-79
- E1 = _mm_sha1nexte_epu32(E1, MSG3);
- E0 = ABCD;
- ABCD = _mm_sha1rnds4_epu32(ABCD, E1, 3);
-
- // Add values back to state
- E0 = _mm_sha1nexte_epu32(E0, E0_SAVE);
- ABCD = _mm_add_epi32(ABCD, ABCD_SAVE);
-
- input_mm += 4;
- blocks--;
- }
-
- // Save state
- ABCD = _mm_shuffle_epi32(ABCD, 0x1B);
- _mm_storeu_si128(reinterpret_cast<__m128i*>(state), ABCD);
- state[4] = _mm_extract_epi32(E0, 3);
- }
-#endif
-
-}
diff --git a/src/libs/3rdparty/botan/src/lib/hash/sha2_32/info.txt b/src/libs/3rdparty/botan/src/lib/hash/sha2_32/info.txt
deleted file mode 100644
index 7992eff261..0000000000
--- a/src/libs/3rdparty/botan/src/lib/hash/sha2_32/info.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-<defines>
-SHA2_32 -> 20131128
-</defines>
-
-<requires>
-mdx_hash
-</requires>
diff --git a/src/libs/3rdparty/botan/src/lib/hash/sha2_32/sha2_32.cpp b/src/libs/3rdparty/botan/src/lib/hash/sha2_32/sha2_32.cpp
deleted file mode 100644
index 99cc2a6ffb..0000000000
--- a/src/libs/3rdparty/botan/src/lib/hash/sha2_32/sha2_32.cpp
+++ /dev/null
@@ -1,236 +0,0 @@
-/*
-* SHA-{224,256}
-* (C) 1999-2010,2017 Jack Lloyd
-* 2007 FlexSecure GmbH
-*
-* Botan is released under the Simplified BSD License (see license.txt)
-*/
-
-#include <botan/sha2_32.h>
-#include <botan/cpuid.h>
-
-namespace Botan {
-
-std::unique_ptr<HashFunction> SHA_224::copy_state() const
- {
- return std::unique_ptr<HashFunction>(new SHA_224(*this));
- }
-
-std::unique_ptr<HashFunction> SHA_256::copy_state() const
- {
- return std::unique_ptr<HashFunction>(new SHA_256(*this));
- }
-
-/*
-* SHA-256 F1 Function
-*
-* Use a macro as many compilers won't inline a function this big,
-* even though it is much faster if inlined.
-*/
-#define SHA2_32_F(A, B, C, D, E, F, G, H, M1, M2, M3, M4, magic) do { \
- uint32_t A_rho = rotr<2>(A) ^ rotr<13>(A) ^ rotr<22>(A); \
- uint32_t E_rho = rotr<6>(E) ^ rotr<11>(E) ^ rotr<25>(E); \
- uint32_t M2_sigma = rotr<17>(M2) ^ rotr<19>(M2) ^ (M2 >> 10); \
- uint32_t M4_sigma = rotr<7>(M4) ^ rotr<18>(M4) ^ (M4 >> 3); \
- H += magic + E_rho + ((E & F) ^ (~E & G)) + M1; \
- D += H; \
- H += A_rho + ((A & B) | ((A | B) & C)); \
- M1 += M2_sigma + M3 + M4_sigma; \
- } while(0);
-
-/*
-* SHA-224 / SHA-256 compression function
-*/
-void SHA_256::compress_digest(secure_vector<uint32_t>& digest,
- const uint8_t input[], size_t blocks)
- {
-#if defined(BOTAN_HAS_SHA2_32_X86)
- if(CPUID::has_intel_sha())
- {
- return SHA_256::compress_digest_x86(digest, input, blocks);
- }
-#endif
-
-#if defined(BOTAN_HAS_SHA2_32_X86_BMI2)
- if(CPUID::has_bmi2())
- {
- return SHA_256::compress_digest_x86_bmi2(digest, input, blocks);
- }
-#endif
-
-#if defined(BOTAN_HAS_SHA2_32_ARMV8)
- if(CPUID::has_arm_sha2())
- {
- return SHA_256::compress_digest_armv8(digest, input, blocks);
- }
-#endif
-
- uint32_t A = digest[0], B = digest[1], C = digest[2],
- D = digest[3], E = digest[4], F = digest[5],
- G = digest[6], H = digest[7];
-
- for(size_t i = 0; i != blocks; ++i)
- {
- uint32_t W00 = load_be<uint32_t>(input, 0);
- uint32_t W01 = load_be<uint32_t>(input, 1);
- uint32_t W02 = load_be<uint32_t>(input, 2);
- uint32_t W03 = load_be<uint32_t>(input, 3);
- uint32_t W04 = load_be<uint32_t>(input, 4);
- uint32_t W05 = load_be<uint32_t>(input, 5);
- uint32_t W06 = load_be<uint32_t>(input, 6);
- uint32_t W07 = load_be<uint32_t>(input, 7);
- uint32_t W08 = load_be<uint32_t>(input, 8);
- uint32_t W09 = load_be<uint32_t>(input, 9);
- uint32_t W10 = load_be<uint32_t>(input, 10);
- uint32_t W11 = load_be<uint32_t>(input, 11);
- uint32_t W12 = load_be<uint32_t>(input, 12);
- uint32_t W13 = load_be<uint32_t>(input, 13);
- uint32_t W14 = load_be<uint32_t>(input, 14);
- uint32_t W15 = load_be<uint32_t>(input, 15);
-
- SHA2_32_F(A, B, C, D, E, F, G, H, W00, W14, W09, W01, 0x428A2F98);
- SHA2_32_F(H, A, B, C, D, E, F, G, W01, W15, W10, W02, 0x71374491);
- SHA2_32_F(G, H, A, B, C, D, E, F, W02, W00, W11, W03, 0xB5C0FBCF);
- SHA2_32_F(F, G, H, A, B, C, D, E, W03, W01, W12, W04, 0xE9B5DBA5);
- SHA2_32_F(E, F, G, H, A, B, C, D, W04, W02, W13, W05, 0x3956C25B);
- SHA2_32_F(D, E, F, G, H, A, B, C, W05, W03, W14, W06, 0x59F111F1);
- SHA2_32_F(C, D, E, F, G, H, A, B, W06, W04, W15, W07, 0x923F82A4);
- SHA2_32_F(B, C, D, E, F, G, H, A, W07, W05, W00, W08, 0xAB1C5ED5);
- SHA2_32_F(A, B, C, D, E, F, G, H, W08, W06, W01, W09, 0xD807AA98);
- SHA2_32_F(H, A, B, C, D, E, F, G, W09, W07, W02, W10, 0x12835B01);
- SHA2_32_F(G, H, A, B, C, D, E, F, W10, W08, W03, W11, 0x243185BE);
- SHA2_32_F(F, G, H, A, B, C, D, E, W11, W09, W04, W12, 0x550C7DC3);
- SHA2_32_F(E, F, G, H, A, B, C, D, W12, W10, W05, W13, 0x72BE5D74);
- SHA2_32_F(D, E, F, G, H, A, B, C, W13, W11, W06, W14, 0x80DEB1FE);
- SHA2_32_F(C, D, E, F, G, H, A, B, W14, W12, W07, W15, 0x9BDC06A7);
- SHA2_32_F(B, C, D, E, F, G, H, A, W15, W13, W08, W00, 0xC19BF174);
-
- SHA2_32_F(A, B, C, D, E, F, G, H, W00, W14, W09, W01, 0xE49B69C1);
- SHA2_32_F(H, A, B, C, D, E, F, G, W01, W15, W10, W02, 0xEFBE4786);
- SHA2_32_F(G, H, A, B, C, D, E, F, W02, W00, W11, W03, 0x0FC19DC6);
- SHA2_32_F(F, G, H, A, B, C, D, E, W03, W01, W12, W04, 0x240CA1CC);
- SHA2_32_F(E, F, G, H, A, B, C, D, W04, W02, W13, W05, 0x2DE92C6F);
- SHA2_32_F(D, E, F, G, H, A, B, C, W05, W03, W14, W06, 0x4A7484AA);
- SHA2_32_F(C, D, E, F, G, H, A, B, W06, W04, W15, W07, 0x5CB0A9DC);
- SHA2_32_F(B, C, D, E, F, G, H, A, W07, W05, W00, W08, 0x76F988DA);
- SHA2_32_F(A, B, C, D, E, F, G, H, W08, W06, W01, W09, 0x983E5152);
- SHA2_32_F(H, A, B, C, D, E, F, G, W09, W07, W02, W10, 0xA831C66D);
- SHA2_32_F(G, H, A, B, C, D, E, F, W10, W08, W03, W11, 0xB00327C8);
- SHA2_32_F(F, G, H, A, B, C, D, E, W11, W09, W04, W12, 0xBF597FC7);
- SHA2_32_F(E, F, G, H, A, B, C, D, W12, W10, W05, W13, 0xC6E00BF3);
- SHA2_32_F(D, E, F, G, H, A, B, C, W13, W11, W06, W14, 0xD5A79147);
- SHA2_32_F(C, D, E, F, G, H, A, B, W14, W12, W07, W15, 0x06CA6351);
- SHA2_32_F(B, C, D, E, F, G, H, A, W15, W13, W08, W00, 0x14292967);
-
- SHA2_32_F(A, B, C, D, E, F, G, H, W00, W14, W09, W01, 0x27B70A85);
- SHA2_32_F(H, A, B, C, D, E, F, G, W01, W15, W10, W02, 0x2E1B2138);
- SHA2_32_F(G, H, A, B, C, D, E, F, W02, W00, W11, W03, 0x4D2C6DFC);
- SHA2_32_F(F, G, H, A, B, C, D, E, W03, W01, W12, W04, 0x53380D13);
- SHA2_32_F(E, F, G, H, A, B, C, D, W04, W02, W13, W05, 0x650A7354);
- SHA2_32_F(D, E, F, G, H, A, B, C, W05, W03, W14, W06, 0x766A0ABB);
- SHA2_32_F(C, D, E, F, G, H, A, B, W06, W04, W15, W07, 0x81C2C92E);
- SHA2_32_F(B, C, D, E, F, G, H, A, W07, W05, W00, W08, 0x92722C85);
- SHA2_32_F(A, B, C, D, E, F, G, H, W08, W06, W01, W09, 0xA2BFE8A1);
- SHA2_32_F(H, A, B, C, D, E, F, G, W09, W07, W02, W10, 0xA81A664B);
- SHA2_32_F(G, H, A, B, C, D, E, F, W10, W08, W03, W11, 0xC24B8B70);
- SHA2_32_F(F, G, H, A, B, C, D, E, W11, W09, W04, W12, 0xC76C51A3);
- SHA2_32_F(E, F, G, H, A, B, C, D, W12, W10, W05, W13, 0xD192E819);
- SHA2_32_F(D, E, F, G, H, A, B, C, W13, W11, W06, W14, 0xD6990624);
- SHA2_32_F(C, D, E, F, G, H, A, B, W14, W12, W07, W15, 0xF40E3585);
- SHA2_32_F(B, C, D, E, F, G, H, A, W15, W13, W08, W00, 0x106AA070);
-
- SHA2_32_F(A, B, C, D, E, F, G, H, W00, W14, W09, W01, 0x19A4C116);
- SHA2_32_F(H, A, B, C, D, E, F, G, W01, W15, W10, W02, 0x1E376C08);
- SHA2_32_F(G, H, A, B, C, D, E, F, W02, W00, W11, W03, 0x2748774C);
- SHA2_32_F(F, G, H, A, B, C, D, E, W03, W01, W12, W04, 0x34B0BCB5);
- SHA2_32_F(E, F, G, H, A, B, C, D, W04, W02, W13, W05, 0x391C0CB3);
- SHA2_32_F(D, E, F, G, H, A, B, C, W05, W03, W14, W06, 0x4ED8AA4A);
- SHA2_32_F(C, D, E, F, G, H, A, B, W06, W04, W15, W07, 0x5B9CCA4F);
- SHA2_32_F(B, C, D, E, F, G, H, A, W07, W05, W00, W08, 0x682E6FF3);
- SHA2_32_F(A, B, C, D, E, F, G, H, W08, W06, W01, W09, 0x748F82EE);
- SHA2_32_F(H, A, B, C, D, E, F, G, W09, W07, W02, W10, 0x78A5636F);
- SHA2_32_F(G, H, A, B, C, D, E, F, W10, W08, W03, W11, 0x84C87814);
- SHA2_32_F(F, G, H, A, B, C, D, E, W11, W09, W04, W12, 0x8CC70208);
- SHA2_32_F(E, F, G, H, A, B, C, D, W12, W10, W05, W13, 0x90BEFFFA);
- SHA2_32_F(D, E, F, G, H, A, B, C, W13, W11, W06, W14, 0xA4506CEB);
- SHA2_32_F(C, D, E, F, G, H, A, B, W14, W12, W07, W15, 0xBEF9A3F7);
- SHA2_32_F(B, C, D, E, F, G, H, A, W15, W13, W08, W00, 0xC67178F2);
-
- A = (digest[0] += A);
- B = (digest[1] += B);
- C = (digest[2] += C);
- D = (digest[3] += D);
- E = (digest[4] += E);
- F = (digest[5] += F);
- G = (digest[6] += G);
- H = (digest[7] += H);
-
- input += 64;
- }
- }
-
-/*
-* SHA-224 compression function
-*/
-void SHA_224::compress_n(const uint8_t input[], size_t blocks)
- {
- SHA_256::compress_digest(m_digest, input, blocks);
- }
-
-/*
-* Copy out the digest
-*/
-void SHA_224::copy_out(uint8_t output[])
- {
- copy_out_vec_be(output, output_length(), m_digest);
- }
-
-/*
-* Clear memory of sensitive data
-*/
-void SHA_224::clear()
- {
- MDx_HashFunction::clear();
- m_digest[0] = 0xC1059ED8;
- m_digest[1] = 0x367CD507;
- m_digest[2] = 0x3070DD17;
- m_digest[3] = 0xF70E5939;
- m_digest[4] = 0xFFC00B31;
- m_digest[5] = 0x68581511;
- m_digest[6] = 0x64F98FA7;
- m_digest[7] = 0xBEFA4FA4;
- }
-
-/*
-* SHA-256 compression function
-*/
-void SHA_256::compress_n(const uint8_t input[], size_t blocks)
- {
- SHA_256::compress_digest(m_digest, input, blocks);
- }
-
-/*
-* Copy out the digest
-*/
-void SHA_256::copy_out(uint8_t output[])
- {
- copy_out_vec_be(output, output_length(), m_digest);
- }
-
-/*
-* Clear memory of sensitive data
-*/
-void SHA_256::clear()
- {
- MDx_HashFunction::clear();
- m_digest[0] = 0x6A09E667;
- m_digest[1] = 0xBB67AE85;
- m_digest[2] = 0x3C6EF372;
- m_digest[3] = 0xA54FF53A;
- m_digest[4] = 0x510E527F;
- m_digest[5] = 0x9B05688C;
- m_digest[6] = 0x1F83D9AB;
- m_digest[7] = 0x5BE0CD19;
- }
-
-}
diff --git a/src/libs/3rdparty/botan/src/lib/hash/sha2_32/sha2_32.h b/src/libs/3rdparty/botan/src/lib/hash/sha2_32/sha2_32.h
deleted file mode 100644
index bc883f77ac..0000000000
--- a/src/libs/3rdparty/botan/src/lib/hash/sha2_32/sha2_32.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
-* SHA-{224,256}
-* (C) 1999-2011 Jack Lloyd
-* 2007 FlexSecure GmbH
-*
-* Botan is released under the Simplified BSD License (see license.txt)
-*/
-
-#ifndef BOTAN_SHA_224_256_H_
-#define BOTAN_SHA_224_256_H_
-
-#include <botan/mdx_hash.h>
-
-namespace Botan {
-
-/**
-* SHA-224
-*/
-class BOTAN_PUBLIC_API(2,0) SHA_224 final : public MDx_HashFunction
- {
- public:
- std::string name() const override { return "SHA-224"; }
- size_t output_length() const override { return 28; }
- HashFunction* clone() const override { return new SHA_224; }
- std::unique_ptr<HashFunction> copy_state() const override;
-
- void clear() override;
-
- SHA_224() : MDx_HashFunction(64, true, true), m_digest(8)
- { clear(); }
- private:
- void compress_n(const uint8_t[], size_t blocks) override;
- void copy_out(uint8_t[]) override;
-
- secure_vector<uint32_t> m_digest;
- };
-
-/**
-* SHA-256
-*/
-class BOTAN_PUBLIC_API(2,0) SHA_256 final : public MDx_HashFunction
- {
- public:
- std::string name() const override { return "SHA-256"; }
- size_t output_length() const override { return 32; }
- HashFunction* clone() const override { return new SHA_256; }
- std::unique_ptr<HashFunction> copy_state() const override;
-
- void clear() override;
-
- SHA_256() : MDx_HashFunction(64, true, true), m_digest(8)
- { clear(); }
-
- /*
- * Perform a SHA-256 compression. For internal use
- */
- static void compress_digest(secure_vector<uint32_t>& digest,
- const uint8_t input[],
- size_t blocks);
-
- private:
-
-#if defined(BOTAN_HAS_SHA2_32_ARMV8)
- static void compress_digest_armv8(secure_vector<uint32_t>& digest,
- const uint8_t input[],
- size_t blocks);
-#endif
-
-#if defined(BOTAN_HAS_SHA2_32_X86_BMI2)
- static void compress_digest_x86_bmi2(secure_vector<uint32_t>& digest,
- const uint8_t input[],
- size_t blocks);
-#endif
-
-#if defined(BOTAN_HAS_SHA2_32_X86)
- static void compress_digest_x86(secure_vector<uint32_t>& digest,
- const uint8_t input[],
- size_t blocks);
-#endif
-
- void compress_n(const uint8_t[], size_t blocks) override;
- void copy_out(uint8_t[]) override;
-
- secure_vector<uint32_t> m_digest;
- };
-
-}
-
-#endif
diff --git a/src/libs/3rdparty/botan/src/lib/hash/sha2_32/sha2_32_armv8/info.txt b/src/libs/3rdparty/botan/src/lib/hash/sha2_32/sha2_32_armv8/info.txt
deleted file mode 100644
index 74d3fe4abc..0000000000
--- a/src/libs/3rdparty/botan/src/lib/hash/sha2_32/sha2_32_armv8/info.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-<defines>
-SHA2_32_ARMV8 -> 20170117
-</defines>
-
-need_isa armv8crypto
-
-<cc>
-gcc:4.9
-clang:3.8
-</cc>
diff --git a/src/libs/3rdparty/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp b/src/libs/3rdparty/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp
deleted file mode 100644
index 1574a32738..0000000000
--- a/src/libs/3rdparty/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp
+++ /dev/null
@@ -1,204 +0,0 @@
-/*
-* SHA-256 using CPU instructions in ARMv8
-*
-* Contributed by Jeffrey Walton. Based on public domain code by
-* Johannes Schneiders, Skip Hovsmith and Barry O'Rourke.
-*
-* Botan is released under the Simplified BSD License (see license.txt)
-*/
-
-#include <botan/sha2_32.h>
-#include <arm_neon.h>
-
-namespace Botan {
-
-/*
-* SHA-256 using CPU instructions in ARMv8
-*/
-//static
-#if defined(BOTAN_HAS_SHA2_32_ARMV8)
-BOTAN_FUNC_ISA("+crypto")
-void SHA_256::compress_digest_armv8(secure_vector<uint32_t>& digest, const uint8_t input8[], size_t blocks)
- {
- static const uint32_t K[] = {
- 0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5,
- 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5,
- 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3,
- 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174,
- 0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC,
- 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA,
- 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7,
- 0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967,
- 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13,
- 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85,
- 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3,
- 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070,
- 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5,
- 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3,
- 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208,
- 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2,
- };
-
- uint32x4_t STATE0, STATE1, ABEF_SAVE, CDGH_SAVE;
- uint32x4_t MSG0, MSG1, MSG2, MSG3;
- uint32x4_t TMP0, TMP1, TMP2;
-
- // Load initial values
- STATE0 = vld1q_u32(&digest[0]);
- STATE1 = vld1q_u32(&digest[4]);
-
- // Intermediate void* cast due to https://llvm.org/bugs/show_bug.cgi?id=20670
- const uint32_t* input32 = reinterpret_cast<const uint32_t*>(reinterpret_cast<const void*>(input8));
-
- while (blocks)
- {
- // Save current state
- ABEF_SAVE = STATE0;
- CDGH_SAVE = STATE1;
-
- MSG0 = vld1q_u32(input32 + 0);
- MSG1 = vld1q_u32(input32 + 4);
- MSG2 = vld1q_u32(input32 + 8);
- MSG3 = vld1q_u32(input32 + 12);
-
- MSG0 = vreinterpretq_u32_u8(vrev32q_u8(vreinterpretq_u8_u32(MSG0)));
- MSG1 = vreinterpretq_u32_u8(vrev32q_u8(vreinterpretq_u8_u32(MSG1)));
- MSG2 = vreinterpretq_u32_u8(vrev32q_u8(vreinterpretq_u8_u32(MSG2)));
- MSG3 = vreinterpretq_u32_u8(vrev32q_u8(vreinterpretq_u8_u32(MSG3)));
-
- TMP0 = vaddq_u32(MSG0, vld1q_u32(&K[0x00]));
-
- // Rounds 0-3
- MSG0 = vsha256su0q_u32(MSG0, MSG1);
- TMP2 = STATE0;
- TMP1 = vaddq_u32(MSG1, vld1q_u32(&K[0x04]));
- STATE0 = vsha256hq_u32(STATE0, STATE1, TMP0);
- STATE1 = vsha256h2q_u32(STATE1, TMP2, TMP0);
- MSG0 = vsha256su1q_u32(MSG0, MSG2, MSG3);
-
- // Rounds 4-7
- MSG1 = vsha256su0q_u32(MSG1, MSG2);
- TMP2 = STATE0;
- TMP0 = vaddq_u32(MSG2, vld1q_u32(&K[0x08]));
- STATE0 = vsha256hq_u32(STATE0, STATE1, TMP1);
- STATE1 = vsha256h2q_u32(STATE1, TMP2, TMP1);
- MSG1 = vsha256su1q_u32(MSG1, MSG3, MSG0);
-
- // Rounds 8-11
- MSG2 = vsha256su0q_u32(MSG2, MSG3);
- TMP2 = STATE0;
- TMP1 = vaddq_u32(MSG3, vld1q_u32(&K[0x0c]));
- STATE0 = vsha256hq_u32(STATE0, STATE1, TMP0);
- STATE1 = vsha256h2q_u32(STATE1, TMP2, TMP0);
- MSG2 = vsha256su1q_u32(MSG2, MSG0, MSG1);
-
- // Rounds 12-15
- MSG3 = vsha256su0q_u32(MSG3, MSG0);
- TMP2 = STATE0;
- TMP0 = vaddq_u32(MSG0, vld1q_u32(&K[0x10]));
- STATE0 = vsha256hq_u32(STATE0, STATE1, TMP1);
- STATE1 = vsha256h2q_u32(STATE1, TMP2, TMP1);
- MSG3 = vsha256su1q_u32(MSG3, MSG1, MSG2);
-
- // Rounds 16-19
- MSG0 = vsha256su0q_u32(MSG0, MSG1);
- TMP2 = STATE0;
- TMP1 = vaddq_u32(MSG1, vld1q_u32(&K[0x14]));
- STATE0 = vsha256hq_u32(STATE0, STATE1, TMP0);
- STATE1 = vsha256h2q_u32(STATE1, TMP2, TMP0);
- MSG0 = vsha256su1q_u32(MSG0, MSG2, MSG3);
-
- // Rounds 20-23
- MSG1 = vsha256su0q_u32(MSG1, MSG2);
- TMP2 = STATE0;
- TMP0 = vaddq_u32(MSG2, vld1q_u32(&K[0x18]));
- STATE0 = vsha256hq_u32(STATE0, STATE1, TMP1);
- STATE1 = vsha256h2q_u32(STATE1, TMP2, TMP1);
- MSG1 = vsha256su1q_u32(MSG1, MSG3, MSG0);
-
- // Rounds 24-27
- MSG2 = vsha256su0q_u32(MSG2, MSG3);
- TMP2 = STATE0;
- TMP1 = vaddq_u32(MSG3, vld1q_u32(&K[0x1c]));
- STATE0 = vsha256hq_u32(STATE0, STATE1, TMP0);
- STATE1 = vsha256h2q_u32(STATE1, TMP2, TMP0);
- MSG2 = vsha256su1q_u32(MSG2, MSG0, MSG1);
-
- // Rounds 28-31
- MSG3 = vsha256su0q_u32(MSG3, MSG0);
- TMP2 = STATE0;
- TMP0 = vaddq_u32(MSG0, vld1q_u32(&K[0x20]));
- STATE0 = vsha256hq_u32(STATE0, STATE1, TMP1);
- STATE1 = vsha256h2q_u32(STATE1, TMP2, TMP1);
- MSG3 = vsha256su1q_u32(MSG3, MSG1, MSG2);
-
- // Rounds 32-35
- MSG0 = vsha256su0q_u32(MSG0, MSG1);
- TMP2 = STATE0;
- TMP1 = vaddq_u32(MSG1, vld1q_u32(&K[0x24]));
- STATE0 = vsha256hq_u32(STATE0, STATE1, TMP0);
- STATE1 = vsha256h2q_u32(STATE1, TMP2, TMP0);
- MSG0 = vsha256su1q_u32(MSG0, MSG2, MSG3);
-
- // Rounds 36-39
- MSG1 = vsha256su0q_u32(MSG1, MSG2);
- TMP2 = STATE0;
- TMP0 = vaddq_u32(MSG2, vld1q_u32(&K[0x28]));
- STATE0 = vsha256hq_u32(STATE0, STATE1, TMP1);
- STATE1 = vsha256h2q_u32(STATE1, TMP2, TMP1);
- MSG1 = vsha256su1q_u32(MSG1, MSG3, MSG0);
-
- // Rounds 40-43
- MSG2 = vsha256su0q_u32(MSG2, MSG3);
- TMP2 = STATE0;
- TMP1 = vaddq_u32(MSG3, vld1q_u32(&K[0x2c]));
- STATE0 = vsha256hq_u32(STATE0, STATE1, TMP0);
- STATE1 = vsha256h2q_u32(STATE1, TMP2, TMP0);
- MSG2 = vsha256su1q_u32(MSG2, MSG0, MSG1);
-
- // Rounds 44-47
- MSG3 = vsha256su0q_u32(MSG3, MSG0);
- TMP2 = STATE0;
- TMP0 = vaddq_u32(MSG0, vld1q_u32(&K[0x30]));
- STATE0 = vsha256hq_u32(STATE0, STATE1, TMP1);
- STATE1 = vsha256h2q_u32(STATE1, TMP2, TMP1);
- MSG3 = vsha256su1q_u32(MSG3, MSG1, MSG2);
-
- // Rounds 48-51
- TMP2 = STATE0;
- TMP1 = vaddq_u32(MSG1, vld1q_u32(&K[0x34]));
- STATE0 = vsha256hq_u32(STATE0, STATE1, TMP0);
- STATE1 = vsha256h2q_u32(STATE1, TMP2, TMP0);
-
- // Rounds 52-55
- TMP2 = STATE0;
- TMP0 = vaddq_u32(MSG2, vld1q_u32(&K[0x38]));
- STATE0 = vsha256hq_u32(STATE0, STATE1, TMP1);
- STATE1 = vsha256h2q_u32(STATE1, TMP2, TMP1);
-
- // Rounds 56-59
- TMP2 = STATE0;
- TMP1 = vaddq_u32(MSG3, vld1q_u32(&K[0x3c]));
- STATE0 = vsha256hq_u32(STATE0, STATE1, TMP0);
- STATE1 = vsha256h2q_u32(STATE1, TMP2, TMP0);
-
- // Rounds 60-63
- TMP2 = STATE0;
- STATE0 = vsha256hq_u32(STATE0, STATE1, TMP1);
- STATE1 = vsha256h2q_u32(STATE1, TMP2, TMP1);
-
- // Add back to state
- STATE0 = vaddq_u32(STATE0, ABEF_SAVE);
- STATE1 = vaddq_u32(STATE1, CDGH_SAVE);
-
- input32 += 64/4;
- blocks--;
- }
-
- // Save state
- vst1q_u32(&digest[0], STATE0);
- vst1q_u32(&digest[4], STATE1);
- }
-#endif
-
-}
diff --git a/src/libs/3rdparty/botan/src/lib/hash/sha2_32/sha2_32_bmi2/info.txt b/src/libs/3rdparty/botan/src/lib/hash/sha2_32/sha2_32_bmi2/info.txt
deleted file mode 100644
index dc73497163..0000000000
--- a/src/libs/3rdparty/botan/src/lib/hash/sha2_32/sha2_32_bmi2/info.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-<defines>
-SHA2_32_X86_BMI2 -> 20180526
-</defines>
-
-need_isa bmi2
-
-<cc>
-gcc
-clang
-</cc>
diff --git a/src/libs/3rdparty/botan/src/lib/hash/sha2_32/sha2_32_bmi2/sha2_32_bmi2.cpp b/src/libs/3rdparty/botan/src/lib/hash/sha2_32/sha2_32_bmi2/sha2_32_bmi2.cpp
deleted file mode 100644
index 12ceb11c49..0000000000
--- a/src/libs/3rdparty/botan/src/lib/hash/sha2_32/sha2_32_bmi2/sha2_32_bmi2.cpp
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
-* (C) 2018 Jack Lloyd
-*
-* Botan is released under the Simplified BSD License (see license.txt)
-*/
-
-#include <botan/sha2_32.h>
-#include <botan/rotate.h>
-
-namespace Botan {
-
-/*
-Your eyes do not decieve you; this is currently just a copy of the
-baseline SHA-256 implementation. Because we compile it with BMI2
-flags, GCC and Clang use the BMI2 instructions without further help.
-
-Likely instruction scheduling could be improved by using inline asm.
-*/
-
-#define SHA2_32_F(A, B, C, D, E, F, G, H, M1, M2, M3, M4, magic) do { \
- uint32_t A_rho = rotr<2>(A) ^ rotr<13>(A) ^ rotr<22>(A); \
- uint32_t E_rho = rotr<6>(E) ^ rotr<11>(E) ^ rotr<25>(E); \
- uint32_t M2_sigma = rotr<17>(M2) ^ rotr<19>(M2) ^ (M2 >> 10); \
- uint32_t M4_sigma = rotr<7>(M4) ^ rotr<18>(M4) ^ (M4 >> 3); \
- H += magic + E_rho + ((E & F) ^ (~E & G)) + M1; \
- D += H; \
- H += A_rho + ((A & B) | ((A | B) & C)); \
- M1 += M2_sigma + M3 + M4_sigma; \
- } while(0);
-
-void SHA_256::compress_digest_x86_bmi2(secure_vector<uint32_t>& digest,
- const uint8_t input[],
- size_t blocks)
- {
- uint32_t A = digest[0], B = digest[1], C = digest[2],
- D = digest[3], E = digest[4], F = digest[5],
- G = digest[6], H = digest[7];
-
- for(size_t i = 0; i != blocks; ++i)
- {
- uint32_t W00 = load_be<uint32_t>(input, 0);
- uint32_t W01 = load_be<uint32_t>(input, 1);
- uint32_t W02 = load_be<uint32_t>(input, 2);
- uint32_t W03 = load_be<uint32_t>(input, 3);
- uint32_t W04 = load_be<uint32_t>(input, 4);
- uint32_t W05 = load_be<uint32_t>(input, 5);
- uint32_t W06 = load_be<uint32_t>(input, 6);
- uint32_t W07 = load_be<uint32_t>(input, 7);
- uint32_t W08 = load_be<uint32_t>(input, 8);
- uint32_t W09 = load_be<uint32_t>(input, 9);
- uint32_t W10 = load_be<uint32_t>(input, 10);
- uint32_t W11 = load_be<uint32_t>(input, 11);
- uint32_t W12 = load_be<uint32_t>(input, 12);
- uint32_t W13 = load_be<uint32_t>(input, 13);
- uint32_t W14 = load_be<uint32_t>(input, 14);
- uint32_t W15 = load_be<uint32_t>(input, 15);
-
- SHA2_32_F(A, B, C, D, E, F, G, H, W00, W14, W09, W01, 0x428A2F98);
- SHA2_32_F(H, A, B, C, D, E, F, G, W01, W15, W10, W02, 0x71374491);
- SHA2_32_F(G, H, A, B, C, D, E, F, W02, W00, W11, W03, 0xB5C0FBCF);
- SHA2_32_F(F, G, H, A, B, C, D, E, W03, W01, W12, W04, 0xE9B5DBA5);
- SHA2_32_F(E, F, G, H, A, B, C, D, W04, W02, W13, W05, 0x3956C25B);
- SHA2_32_F(D, E, F, G, H, A, B, C, W05, W03, W14, W06, 0x59F111F1);
- SHA2_32_F(C, D, E, F, G, H, A, B, W06, W04, W15, W07, 0x923F82A4);
- SHA2_32_F(B, C, D, E, F, G, H, A, W07, W05, W00, W08, 0xAB1C5ED5);
- SHA2_32_F(A, B, C, D, E, F, G, H, W08, W06, W01, W09, 0xD807AA98);
- SHA2_32_F(H, A, B, C, D, E, F, G, W09, W07, W02, W10, 0x12835B01);
- SHA2_32_F(G, H, A, B, C, D, E, F, W10, W08, W03, W11, 0x243185BE);
- SHA2_32_F(F, G, H, A, B, C, D, E, W11, W09, W04, W12, 0x550C7DC3);
- SHA2_32_F(E, F, G, H, A, B, C, D, W12, W10, W05, W13, 0x72BE5D74);
- SHA2_32_F(D, E, F, G, H, A, B, C, W13, W11, W06, W14, 0x80DEB1FE);
- SHA2_32_F(C, D, E, F, G, H, A, B, W14, W12, W07, W15, 0x9BDC06A7);
- SHA2_32_F(B, C, D, E, F, G, H, A, W15, W13, W08, W00, 0xC19BF174);
-
- SHA2_32_F(A, B, C, D, E, F, G, H, W00, W14, W09, W01, 0xE49B69C1);
- SHA2_32_F(H, A, B, C, D, E, F, G, W01, W15, W10, W02, 0xEFBE4786);
- SHA2_32_F(G, H, A, B, C, D, E, F, W02, W00, W11, W03, 0x0FC19DC6);
- SHA2_32_F(F, G, H, A, B, C, D, E, W03, W01, W12, W04, 0x240CA1CC);
- SHA2_32_F(E, F, G, H, A, B, C, D, W04, W02, W13, W05, 0x2DE92C6F);
- SHA2_32_F(D, E, F, G, H, A, B, C, W05, W03, W14, W06, 0x4A7484AA);
- SHA2_32_F(C, D, E, F, G, H, A, B, W06, W04, W15, W07, 0x5CB0A9DC);
- SHA2_32_F(B, C, D, E, F, G, H, A, W07, W05, W00, W08, 0x76F988DA);
- SHA2_32_F(A, B, C, D, E, F, G, H, W08, W06, W01, W09, 0x983E5152);
- SHA2_32_F(H, A, B, C, D, E, F, G, W09, W07, W02, W10, 0xA831C66D);
- SHA2_32_F(G, H, A, B, C, D, E, F, W10, W08, W03, W11, 0xB00327C8);
- SHA2_32_F(F, G, H, A, B, C, D, E, W11, W09, W04, W12, 0xBF597FC7);
- SHA2_32_F(E, F, G, H, A, B, C, D, W12, W10, W05, W13, 0xC6E00BF3);
- SHA2_32_F(D, E, F, G, H, A, B, C, W13, W11, W06, W14, 0xD5A79147);
- SHA2_32_F(C, D, E, F, G, H, A, B, W14, W12, W07, W15, 0x06CA6351);
- SHA2_32_F(B, C, D, E, F, G, H, A, W15, W13, W08, W00, 0x14292967);
-
- SHA2_32_F(A, B, C, D, E, F, G, H, W00, W14, W09, W01, 0x27B70A85);
- SHA2_32_F(H, A, B, C, D, E, F, G, W01, W15, W10, W02, 0x2E1B2138);
- SHA2_32_F(G, H, A, B, C, D, E, F, W02, W00, W11, W03, 0x4D2C6DFC);
- SHA2_32_F(F, G, H, A, B, C, D, E, W03, W01, W12, W04, 0x53380D13);
- SHA2_32_F(E, F, G, H, A, B, C, D, W04, W02, W13, W05, 0x650A7354);
- SHA2_32_F(D, E, F, G, H, A, B, C, W05, W03, W14, W06, 0x766A0ABB);
- SHA2_32_F(C, D, E, F, G, H, A, B, W06, W04, W15, W07, 0x81C2C92E);
- SHA2_32_F(B, C, D, E, F, G, H, A, W07, W05, W00, W08, 0x92722C85);
- SHA2_32_F(A, B, C, D, E, F, G, H, W08, W06, W01, W09, 0xA2BFE8A1);
- SHA2_32_F(H, A, B, C, D, E, F, G, W09, W07, W02, W10, 0xA81A664B);
- SHA2_32_F(G, H, A, B, C, D, E, F, W10, W08, W03, W11, 0xC24B8B70);
- SHA2_32_F(F, G, H, A, B, C, D, E, W11, W09, W04, W12, 0xC76C51A3);
- SHA2_32_F(E, F, G, H, A, B, C, D, W12, W10, W05, W13, 0xD192E819);
- SHA2_32_F(D, E, F, G, H, A, B, C, W13, W11, W06, W14, 0xD6990624);
- SHA2_32_F(C, D, E, F, G, H, A, B, W14, W12, W07, W15, 0xF40E3585);
- SHA2_32_F(B, C, D, E, F, G, H, A, W15, W13, W08, W00, 0x106AA070);
-
- SHA2_32_F(A, B, C, D, E, F, G, H, W00, W14, W09, W01, 0x19A4C116);
- SHA2_32_F(H, A, B, C, D, E, F, G, W01, W15, W10, W02, 0x1E376C08);
- SHA2_32_F(G, H, A, B, C, D, E, F, W02, W00, W11, W03, 0x2748774C);
- SHA2_32_F(F, G, H, A, B, C, D, E, W03, W01, W12, W04, 0x34B0BCB5);
- SHA2_32_F(E, F, G, H, A, B, C, D, W04, W02, W13, W05, 0x391C0CB3);
- SHA2_32_F(D, E, F, G, H, A, B, C, W05, W03, W14, W06, 0x4ED8AA4A);
- SHA2_32_F(C, D, E, F, G, H, A, B, W06, W04, W15, W07, 0x5B9CCA4F);
- SHA2_32_F(B, C, D, E, F, G, H, A, W07, W05, W00, W08, 0x682E6FF3);
- SHA2_32_F(A, B, C, D, E, F, G, H, W08, W06, W01, W09, 0x748F82EE);
- SHA2_32_F(H, A, B, C, D, E, F, G, W09, W07, W02, W10, 0x78A5636F);
- SHA2_32_F(G, H, A, B, C, D, E, F, W10, W08, W03, W11, 0x84C87814);
- SHA2_32_F(F, G, H, A, B, C, D, E, W11, W09, W04, W12, 0x8CC70208);
- SHA2_32_F(E, F, G, H, A, B, C, D, W12, W10, W05, W13, 0x90BEFFFA);
- SHA2_32_F(D, E, F, G, H, A, B, C, W13, W11, W06, W14, 0xA4506CEB);
- SHA2_32_F(C, D, E, F, G, H, A, B, W14, W12, W07, W15, 0xBEF9A3F7);
- SHA2_32_F(B, C, D, E, F, G, H, A, W15, W13, W08, W00, 0xC67178F2);
-
- A = (digest[0] += A);
- B = (digest[1] += B);
- C = (digest[2] += C);
- D = (digest[3] += D);
- E = (digest[4] += E);
- F = (digest[5] += F);
- G = (digest[6] += G);
- H = (digest[7] += H);
-
- input += 64;
- }
- }
-
-}
diff --git a/src/libs/3rdparty/botan/src/lib/hash/sha2_32/sha2_32_x86/info.txt b/src/libs/3rdparty/botan/src/lib/hash/sha2_32/sha2_32_x86/info.txt
deleted file mode 100644
index 4a0b25910e..0000000000
--- a/src/libs/3rdparty/botan/src/lib/hash/sha2_32/sha2_32_x86/info.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-<defines>
-SHA2_32_X86 -> 20170518
-</defines>
-
-need_isa sha,ssse3,sse41
-
-<cc>
-gcc:5.0
-clang:3.9
-msvc:19.0 # MSVS 2015
-</cc>
diff --git a/src/libs/3rdparty/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp b/src/libs/3rdparty/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp
deleted file mode 100644
index a4bd9b72db..0000000000
--- a/src/libs/3rdparty/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp
+++ /dev/null
@@ -1,215 +0,0 @@
-/*
-* Support for SHA-256 x86 instrinsic
-* Based on public domain code by Sean Gulley
-* (https://github.com/mitls/hacl-star/tree/master/experimental/hash)
-*
-* Botan is released under the Simplified BSD License (see license.txt)
-*/
-
-#include <botan/sha2_32.h>
-#include <immintrin.h>
-
-namespace Botan {
-
-// called from sha2_32.cpp
-#if defined(BOTAN_HAS_SHA2_32_X86)
-BOTAN_FUNC_ISA("sha,sse4.1,ssse3")
-void SHA_256::compress_digest_x86(secure_vector<uint32_t>& digest, const uint8_t input[], size_t blocks)
- {
- __m128i STATE0, STATE1;
- __m128i MSG, TMP, MASK;
- __m128i TMSG0, TMSG1, TMSG2, TMSG3;
- __m128i ABEF_SAVE, CDGH_SAVE;
-
- uint32_t* state = &digest[0];
-
- const __m128i* input_mm = reinterpret_cast<const __m128i*>(input);
-
- // Load initial values
- TMP = _mm_loadu_si128(reinterpret_cast<__m128i*>(&state[0]));
- STATE1 = _mm_loadu_si128(reinterpret_cast<__m128i*>(&state[4]));
- MASK = _mm_set_epi64x(0x0c0d0e0f08090a0bULL, 0x0405060700010203ULL);
-
- TMP = _mm_shuffle_epi32(TMP, 0xB1); // CDAB
- STATE1 = _mm_shuffle_epi32(STATE1, 0x1B); // EFGH
- STATE0 = _mm_alignr_epi8(TMP, STATE1, 8); // ABEF
- STATE1 = _mm_blend_epi16(STATE1, TMP, 0xF0); // CDGH
-
- while (blocks)
- {
- // Save current hash
- ABEF_SAVE = STATE0;
- CDGH_SAVE = STATE1;
-
- // Rounds 0-3
- MSG = _mm_loadu_si128(input_mm);
- TMSG0 = _mm_shuffle_epi8(MSG, MASK);
- MSG = _mm_add_epi32(TMSG0, _mm_set_epi64x(0xE9B5DBA5B5C0FBCFULL, 0x71374491428A2F98ULL));
- STATE1 = _mm_sha256rnds2_epu32(STATE1, STATE0, MSG);
- MSG = _mm_shuffle_epi32(MSG, 0x0E);
- STATE0 = _mm_sha256rnds2_epu32(STATE0, STATE1, MSG);
-
- // Rounds 4-7
- TMSG1 = _mm_loadu_si128(input_mm + 1);
- TMSG1 = _mm_shuffle_epi8(TMSG1, MASK);
- MSG = _mm_add_epi32(TMSG1, _mm_set_epi64x(0xAB1C5ED5923F82A4ULL, 0x59F111F13956C25BULL));
- STATE1 = _mm_sha256rnds2_epu32(STATE1, STATE0, MSG);
- MSG = _mm_shuffle_epi32(MSG, 0x0E);
- STATE0 = _mm_sha256rnds2_epu32(STATE0, STATE1, MSG);
- TMSG0 = _mm_sha256msg1_epu32(TMSG0, TMSG1);
-
- // Rounds 8-11
- TMSG2 = _mm_loadu_si128(input_mm + 2);
- TMSG2 = _mm_shuffle_epi8(TMSG2, MASK);
- MSG = _mm_add_epi32(TMSG2, _mm_set_epi64x(0x550C7DC3243185BEULL, 0x12835B01D807AA98ULL));
- STATE1 = _mm_sha256rnds2_epu32(STATE1, STATE0, MSG);
- MSG = _mm_shuffle_epi32(MSG, 0x0E);
- STATE0 = _mm_sha256rnds2_epu32(STATE0, STATE1, MSG);
- TMSG1 = _mm_sha256msg1_epu32(TMSG1, TMSG2);
-
- // Rounds 12-15
- TMSG3 = _mm_loadu_si128(input_mm + 3);
- TMSG3 = _mm_shuffle_epi8(TMSG3, MASK);
- MSG = _mm_add_epi32(TMSG3, _mm_set_epi64x(0xC19BF1749BDC06A7ULL, 0x80DEB1FE72BE5D74ULL));
- STATE1 = _mm_sha256rnds2_epu32(STATE1, STATE0, MSG);
- TMP = _mm_alignr_epi8(TMSG3, TMSG2, 4);
- TMSG0 = _mm_add_epi32(TMSG0, TMP);
- TMSG0 = _mm_sha256msg2_epu32(TMSG0, TMSG3);
- MSG = _mm_shuffle_epi32(MSG, 0x0E);
- STATE0 = _mm_sha256rnds2_epu32(STATE0, STATE1, MSG);
- TMSG2 = _mm_sha256msg1_epu32(TMSG2, TMSG3);
-
- // Rounds 16-19
- MSG = _mm_add_epi32(TMSG0, _mm_set_epi64x(0x240CA1CC0FC19DC6ULL, 0xEFBE4786E49B69C1ULL));
- STATE1 = _mm_sha256rnds2_epu32(STATE1, STATE0, MSG);
- TMP = _mm_alignr_epi8(TMSG0, TMSG3, 4);
- TMSG1 = _mm_add_epi32(TMSG1, TMP);
- TMSG1 = _mm_sha256msg2_epu32(TMSG1, TMSG0);
- MSG = _mm_shuffle_epi32(MSG, 0x0E);
- STATE0 = _mm_sha256rnds2_epu32(STATE0, STATE1, MSG);
- TMSG3 = _mm_sha256msg1_epu32(TMSG3, TMSG0);
-
- // Rounds 20-23
- MSG = _mm_add_epi32(TMSG1, _mm_set_epi64x(0x76F988DA5CB0A9DCULL, 0x4A7484AA2DE92C6FULL));
- STATE1 = _mm_sha256rnds2_epu32(STATE1, STATE0, MSG);
- TMP = _mm_alignr_epi8(TMSG1, TMSG0, 4);
- TMSG2 = _mm_add_epi32(TMSG2, TMP);
- TMSG2 = _mm_sha256msg2_epu32(TMSG2, TMSG1);
- MSG = _mm_shuffle_epi32(MSG, 0x0E);
- STATE0 = _mm_sha256rnds2_epu32(STATE0, STATE1, MSG);
- TMSG0 = _mm_sha256msg1_epu32(TMSG0, TMSG1);
-
- // Rounds 24-27
- MSG = _mm_add_epi32(TMSG2, _mm_set_epi64x(0xBF597FC7B00327C8ULL, 0xA831C66D983E5152ULL));
- STATE1 = _mm_sha256rnds2_epu32(STATE1, STATE0, MSG);
- TMP = _mm_alignr_epi8(TMSG2, TMSG1, 4);
- TMSG3 = _mm_add_epi32(TMSG3, TMP);
- TMSG3 = _mm_sha256msg2_epu32(TMSG3, TMSG2);
- MSG = _mm_shuffle_epi32(MSG, 0x0E);
- STATE0 = _mm_sha256rnds2_epu32(STATE0, STATE1, MSG);
- TMSG1 = _mm_sha256msg1_epu32(TMSG1, TMSG2);
-
- // Rounds 28-31
- MSG = _mm_add_epi32(TMSG3, _mm_set_epi64x(0x1429296706CA6351ULL, 0xD5A79147C6E00BF3ULL));
- STATE1 = _mm_sha256rnds2_epu32(STATE1, STATE0, MSG);
- TMP = _mm_alignr_epi8(TMSG3, TMSG2, 4);
- TMSG0 = _mm_add_epi32(TMSG0, TMP);
- TMSG0 = _mm_sha256msg2_epu32(TMSG0, TMSG3);
- MSG = _mm_shuffle_epi32(MSG, 0x0E);
- STATE0 = _mm_sha256rnds2_epu32(STATE0, STATE1, MSG);
- TMSG2 = _mm_sha256msg1_epu32(TMSG2, TMSG3);
-
- // Rounds 32-35
- MSG = _mm_add_epi32(TMSG0, _mm_set_epi64x(0x53380D134D2C6DFCULL, 0x2E1B213827B70A85ULL));
- STATE1 = _mm_sha256rnds2_epu32(STATE1, STATE0, MSG);
- TMP = _mm_alignr_epi8(TMSG0, TMSG3, 4);
- TMSG1 = _mm_add_epi32(TMSG1, TMP);
- TMSG1 = _mm_sha256msg2_epu32(TMSG1, TMSG0);
- MSG = _mm_shuffle_epi32(MSG, 0x0E);
- STATE0 = _mm_sha256rnds2_epu32(STATE0, STATE1, MSG);
- TMSG3 = _mm_sha256msg1_epu32(TMSG3, TMSG0);
-
- // Rounds 36-39
- MSG = _mm_add_epi32(TMSG1, _mm_set_epi64x(0x92722C8581C2C92EULL, 0x766A0ABB650A7354ULL));
- STATE1 = _mm_sha256rnds2_epu32(STATE1, STATE0, MSG);
- TMP = _mm_alignr_epi8(TMSG1, TMSG0, 4);
- TMSG2 = _mm_add_epi32(TMSG2, TMP);
- TMSG2 = _mm_sha256msg2_epu32(TMSG2, TMSG1);
- MSG = _mm_shuffle_epi32(MSG, 0x0E);
- STATE0 = _mm_sha256rnds2_epu32(STATE0, STATE1, MSG);
- TMSG0 = _mm_sha256msg1_epu32(TMSG0, TMSG1);
-
- // Rounds 40-43
- MSG = _mm_add_epi32(TMSG2, _mm_set_epi64x(0xC76C51A3C24B8B70ULL, 0xA81A664BA2BFE8A1ULL));
- STATE1 = _mm_sha256rnds2_epu32(STATE1, STATE0, MSG);
- TMP = _mm_alignr_epi8(TMSG2, TMSG1, 4);
- TMSG3 = _mm_add_epi32(TMSG3, TMP);
- TMSG3 = _mm_sha256msg2_epu32(TMSG3, TMSG2);
- MSG = _mm_shuffle_epi32(MSG, 0x0E);
- STATE0 = _mm_sha256rnds2_epu32(STATE0, STATE1, MSG);
- TMSG1 = _mm_sha256msg1_epu32(TMSG1, TMSG2);
-
- // Rounds 44-47
- MSG = _mm_add_epi32(TMSG3, _mm_set_epi64x(0x106AA070F40E3585ULL, 0xD6990624D192E819ULL));
- STATE1 = _mm_sha256rnds2_epu32(STATE1, STATE0, MSG);
- TMP = _mm_alignr_epi8(TMSG3, TMSG2, 4);
- TMSG0 = _mm_add_epi32(TMSG0, TMP);
- TMSG0 = _mm_sha256msg2_epu32(TMSG0, TMSG3);
- MSG = _mm_shuffle_epi32(MSG, 0x0E);
- STATE0 = _mm_sha256rnds2_epu32(STATE0, STATE1, MSG);
- TMSG2 = _mm_sha256msg1_epu32(TMSG2, TMSG3);
-
- // Rounds 48-51
- MSG = _mm_add_epi32(TMSG0, _mm_set_epi64x(0x34B0BCB52748774CULL, 0x1E376C0819A4C116ULL));
- STATE1 = _mm_sha256rnds2_epu32(STATE1, STATE0, MSG);
- TMP = _mm_alignr_epi8(TMSG0, TMSG3, 4);
- TMSG1 = _mm_add_epi32(TMSG1, TMP);
- TMSG1 = _mm_sha256msg2_epu32(TMSG1, TMSG0);
- MSG = _mm_shuffle_epi32(MSG, 0x0E);
- STATE0 = _mm_sha256rnds2_epu32(STATE0, STATE1, MSG);
- TMSG3 = _mm_sha256msg1_epu32(TMSG3, TMSG0);
-
- // Rounds 52-55
- MSG = _mm_add_epi32(TMSG1, _mm_set_epi64x(0x682E6FF35B9CCA4FULL, 0x4ED8AA4A391C0CB3ULL));
- STATE1 = _mm_sha256rnds2_epu32(STATE1, STATE0, MSG);
- TMP = _mm_alignr_epi8(TMSG1, TMSG0, 4);
- TMSG2 = _mm_add_epi32(TMSG2, TMP);
- TMSG2 = _mm_sha256msg2_epu32(TMSG2, TMSG1);
- MSG = _mm_shuffle_epi32(MSG, 0x0E);
- STATE0 = _mm_sha256rnds2_epu32(STATE0, STATE1, MSG);
-
- // Rounds 56-59
- MSG = _mm_add_epi32(TMSG2, _mm_set_epi64x(0x8CC7020884C87814ULL, 0x78A5636F748F82EEULL));
- STATE1 = _mm_sha256rnds2_epu32(STATE1, STATE0, MSG);
- TMP = _mm_alignr_epi8(TMSG2, TMSG1, 4);
- TMSG3 = _mm_add_epi32(TMSG3, TMP);
- TMSG3 = _mm_sha256msg2_epu32(TMSG3, TMSG2);
- MSG = _mm_shuffle_epi32(MSG, 0x0E);
- STATE0 = _mm_sha256rnds2_epu32(STATE0, STATE1, MSG);
-
- // Rounds 60-63
- MSG = _mm_add_epi32(TMSG3, _mm_set_epi64x(0xC67178F2BEF9A3F7ULL, 0xA4506CEB90BEFFFAULL));
- STATE1 = _mm_sha256rnds2_epu32(STATE1, STATE0, MSG);
- MSG = _mm_shuffle_epi32(MSG, 0x0E);
- STATE0 = _mm_sha256rnds2_epu32(STATE0, STATE1, MSG);
-
- // Add values back to state
- STATE0 = _mm_add_epi32(STATE0, ABEF_SAVE);
- STATE1 = _mm_add_epi32(STATE1, CDGH_SAVE);
-
- input_mm += 4;
- blocks--;
- }
-
- TMP = _mm_shuffle_epi32(STATE0, 0x1B); // FEBA
- STATE1 = _mm_shuffle_epi32(STATE1, 0xB1); // DCHG
- STATE0 = _mm_blend_epi16(TMP, STATE1, 0xF0); // DCBA
- STATE1 = _mm_alignr_epi8(STATE1, TMP, 8); // ABEF
-
- // Save state
- _mm_storeu_si128(reinterpret_cast<__m128i*>(&state[0]), STATE0);
- _mm_storeu_si128(reinterpret_cast<__m128i*>(&state[4]), STATE1);
- }
-#endif
-
-}
diff --git a/src/libs/3rdparty/botan/src/lib/hash/sha2_64/info.txt b/src/libs/3rdparty/botan/src/lib/hash/sha2_64/info.txt
deleted file mode 100644
index 6fb415a6bb..0000000000
--- a/src/libs/3rdparty/botan/src/lib/hash/sha2_64/info.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-<defines>
-SHA2_64 -> 20131128
-</defines>
-
-<requires>
-mdx_hash
-</requires>
diff --git a/src/libs/3rdparty/botan/src/lib/hash/sha2_64/sha2_64.cpp b/src/libs/3rdparty/botan/src/lib/hash/sha2_64/sha2_64.cpp
deleted file mode 100644
index 45992e9968..0000000000
--- a/src/libs/3rdparty/botan/src/lib/hash/sha2_64/sha2_64.cpp
+++ /dev/null
@@ -1,241 +0,0 @@
-/*
-* SHA-{384,512}
-* (C) 1999-2011,2015 Jack Lloyd
-*
-* Botan is released under the Simplified BSD License (see license.txt)
-*/
-
-#include <botan/sha2_64.h>
-
-namespace Botan {
-
-std::unique_ptr<HashFunction> SHA_384::copy_state() const
- {
- return std::unique_ptr<HashFunction>(new SHA_384(*this));
- }
-
-std::unique_ptr<HashFunction> SHA_512::copy_state() const
- {
- return std::unique_ptr<HashFunction>(new SHA_512(*this));
- }
-
-std::unique_ptr<HashFunction> SHA_512_256::copy_state() const
- {
- return std::unique_ptr<HashFunction>(new SHA_512_256(*this));
- }
-
-namespace {
-
-/*
-* SHA-512 F1 Function
-*
-* Use a macro as many compilers won't inline a function this big,
-* even though it is much faster if inlined.
-*/
-#define SHA2_64_F(A, B, C, D, E, F, G, H, M1, M2, M3, M4, magic) \
- do { \
- const uint64_t E_rho = rotr<14>(E) ^ rotr<18>(E) ^ rotr<41>(E); \
- const uint64_t A_rho = rotr<28>(A) ^ rotr<34>(A) ^ rotr<39>(A); \
- const uint64_t M2_sigma = rotr<19>(M2) ^ rotr<61>(M2) ^ (M2 >> 6); \
- const uint64_t M4_sigma = rotr<1>(M4) ^ rotr<8>(M4) ^ (M4 >> 7); \
- H += magic + E_rho + ((E & F) ^ (~E & G)) + M1; \
- D += H; \
- H += A_rho + ((A & B) | ((A | B) & C)); \
- M1 += M2_sigma + M3 + M4_sigma; \
- } while(0);
-
-/*
-* SHA-{384,512} Compression Function
-*/
-void SHA64_compress(secure_vector<uint64_t>& digest,
- const uint8_t input[], size_t blocks)
- {
- uint64_t A = digest[0], B = digest[1], C = digest[2],
- D = digest[3], E = digest[4], F = digest[5],
- G = digest[6], H = digest[7];
-
- for(size_t i = 0; i != blocks; ++i)
- {
- uint64_t W00 = load_be<uint64_t>(input, 0);
- uint64_t W01 = load_be<uint64_t>(input, 1);
- uint64_t W02 = load_be<uint64_t>(input, 2);
- uint64_t W03 = load_be<uint64_t>(input, 3);
- uint64_t W04 = load_be<uint64_t>(input, 4);
- uint64_t W05 = load_be<uint64_t>(input, 5);
- uint64_t W06 = load_be<uint64_t>(input, 6);
- uint64_t W07 = load_be<uint64_t>(input, 7);
- uint64_t W08 = load_be<uint64_t>(input, 8);
- uint64_t W09 = load_be<uint64_t>(input, 9);
- uint64_t W10 = load_be<uint64_t>(input, 10);
- uint64_t W11 = load_be<uint64_t>(input, 11);
- uint64_t W12 = load_be<uint64_t>(input, 12);
- uint64_t W13 = load_be<uint64_t>(input, 13);
- uint64_t W14 = load_be<uint64_t>(input, 14);
- uint64_t W15 = load_be<uint64_t>(input, 15);
-
- SHA2_64_F(A, B, C, D, E, F, G, H, W00, W14, W09, W01, 0x428A2F98D728AE22);
- SHA2_64_F(H, A, B, C, D, E, F, G, W01, W15, W10, W02, 0x7137449123EF65CD);
- SHA2_64_F(G, H, A, B, C, D, E, F, W02, W00, W11, W03, 0xB5C0FBCFEC4D3B2F);
- SHA2_64_F(F, G, H, A, B, C, D, E, W03, W01, W12, W04, 0xE9B5DBA58189DBBC);
- SHA2_64_F(E, F, G, H, A, B, C, D, W04, W02, W13, W05, 0x3956C25BF348B538);
- SHA2_64_F(D, E, F, G, H, A, B, C, W05, W03, W14, W06, 0x59F111F1B605D019);
- SHA2_64_F(C, D, E, F, G, H, A, B, W06, W04, W15, W07, 0x923F82A4AF194F9B);
- SHA2_64_F(B, C, D, E, F, G, H, A, W07, W05, W00, W08, 0xAB1C5ED5DA6D8118);
- SHA2_64_F(A, B, C, D, E, F, G, H, W08, W06, W01, W09, 0xD807AA98A3030242);
- SHA2_64_F(H, A, B, C, D, E, F, G, W09, W07, W02, W10, 0x12835B0145706FBE);
- SHA2_64_F(G, H, A, B, C, D, E, F, W10, W08, W03, W11, 0x243185BE4EE4B28C);
- SHA2_64_F(F, G, H, A, B, C, D, E, W11, W09, W04, W12, 0x550C7DC3D5FFB4E2);
- SHA2_64_F(E, F, G, H, A, B, C, D, W12, W10, W05, W13, 0x72BE5D74F27B896F);
- SHA2_64_F(D, E, F, G, H, A, B, C, W13, W11, W06, W14, 0x80DEB1FE3B1696B1);
- SHA2_64_F(C, D, E, F, G, H, A, B, W14, W12, W07, W15, 0x9BDC06A725C71235);
- SHA2_64_F(B, C, D, E, F, G, H, A, W15, W13, W08, W00, 0xC19BF174CF692694);
- SHA2_64_F(A, B, C, D, E, F, G, H, W00, W14, W09, W01, 0xE49B69C19EF14AD2);
- SHA2_64_F(H, A, B, C, D, E, F, G, W01, W15, W10, W02, 0xEFBE4786384F25E3);
- SHA2_64_F(G, H, A, B, C, D, E, F, W02, W00, W11, W03, 0x0FC19DC68B8CD5B5);
- SHA2_64_F(F, G, H, A, B, C, D, E, W03, W01, W12, W04, 0x240CA1CC77AC9C65);
- SHA2_64_F(E, F, G, H, A, B, C, D, W04, W02, W13, W05, 0x2DE92C6F592B0275);
- SHA2_64_F(D, E, F, G, H, A, B, C, W05, W03, W14, W06, 0x4A7484AA6EA6E483);
- SHA2_64_F(C, D, E, F, G, H, A, B, W06, W04, W15, W07, 0x5CB0A9DCBD41FBD4);
- SHA2_64_F(B, C, D, E, F, G, H, A, W07, W05, W00, W08, 0x76F988DA831153B5);
- SHA2_64_F(A, B, C, D, E, F, G, H, W08, W06, W01, W09, 0x983E5152EE66DFAB);
- SHA2_64_F(H, A, B, C, D, E, F, G, W09, W07, W02, W10, 0xA831C66D2DB43210);
- SHA2_64_F(G, H, A, B, C, D, E, F, W10, W08, W03, W11, 0xB00327C898FB213F);
- SHA2_64_F(F, G, H, A, B, C, D, E, W11, W09, W04, W12, 0xBF597FC7BEEF0EE4);
- SHA2_64_F(E, F, G, H, A, B, C, D, W12, W10, W05, W13, 0xC6E00BF33DA88FC2);
- SHA2_64_F(D, E, F, G, H, A, B, C, W13, W11, W06, W14, 0xD5A79147930AA725);
- SHA2_64_F(C, D, E, F, G, H, A, B, W14, W12, W07, W15, 0x06CA6351E003826F);
- SHA2_64_F(B, C, D, E, F, G, H, A, W15, W13, W08, W00, 0x142929670A0E6E70);
- SHA2_64_F(A, B, C, D, E, F, G, H, W00, W14, W09, W01, 0x27B70A8546D22FFC);
- SHA2_64_F(H, A, B, C, D, E, F, G, W01, W15, W10, W02, 0x2E1B21385C26C926);
- SHA2_64_F(G, H, A, B, C, D, E, F, W02, W00, W11, W03, 0x4D2C6DFC5AC42AED);
- SHA2_64_F(F, G, H, A, B, C, D, E, W03, W01, W12, W04, 0x53380D139D95B3DF);
- SHA2_64_F(E, F, G, H, A, B, C, D, W04, W02, W13, W05, 0x650A73548BAF63DE);
- SHA2_64_F(D, E, F, G, H, A, B, C, W05, W03, W14, W06, 0x766A0ABB3C77B2A8);
- SHA2_64_F(C, D, E, F, G, H, A, B, W06, W04, W15, W07, 0x81C2C92E47EDAEE6);
- SHA2_64_F(B, C, D, E, F, G, H, A, W07, W05, W00, W08, 0x92722C851482353B);
- SHA2_64_F(A, B, C, D, E, F, G, H, W08, W06, W01, W09, 0xA2BFE8A14CF10364);
- SHA2_64_F(H, A, B, C, D, E, F, G, W09, W07, W02, W10, 0xA81A664BBC423001);
- SHA2_64_F(G, H, A, B, C, D, E, F, W10, W08, W03, W11, 0xC24B8B70D0F89791);
- SHA2_64_F(F, G, H, A, B, C, D, E, W11, W09, W04, W12, 0xC76C51A30654BE30);
- SHA2_64_F(E, F, G, H, A, B, C, D, W12, W10, W05, W13, 0xD192E819D6EF5218);
- SHA2_64_F(D, E, F, G, H, A, B, C, W13, W11, W06, W14, 0xD69906245565A910);
- SHA2_64_F(C, D, E, F, G, H, A, B, W14, W12, W07, W15, 0xF40E35855771202A);
- SHA2_64_F(B, C, D, E, F, G, H, A, W15, W13, W08, W00, 0x106AA07032BBD1B8);
- SHA2_64_F(A, B, C, D, E, F, G, H, W00, W14, W09, W01, 0x19A4C116B8D2D0C8);
- SHA2_64_F(H, A, B, C, D, E, F, G, W01, W15, W10, W02, 0x1E376C085141AB53);
- SHA2_64_F(G, H, A, B, C, D, E, F, W02, W00, W11, W03, 0x2748774CDF8EEB99);
- SHA2_64_F(F, G, H, A, B, C, D, E, W03, W01, W12, W04, 0x34B0BCB5E19B48A8);
- SHA2_64_F(E, F, G, H, A, B, C, D, W04, W02, W13, W05, 0x391C0CB3C5C95A63);
- SHA2_64_F(D, E, F, G, H, A, B, C, W05, W03, W14, W06, 0x4ED8AA4AE3418ACB);
- SHA2_64_F(C, D, E, F, G, H, A, B, W06, W04, W15, W07, 0x5B9CCA4F7763E373);
- SHA2_64_F(B, C, D, E, F, G, H, A, W07, W05, W00, W08, 0x682E6FF3D6B2B8A3);
- SHA2_64_F(A, B, C, D, E, F, G, H, W08, W06, W01, W09, 0x748F82EE5DEFB2FC);
- SHA2_64_F(H, A, B, C, D, E, F, G, W09, W07, W02, W10, 0x78A5636F43172F60);
- SHA2_64_F(G, H, A, B, C, D, E, F, W10, W08, W03, W11, 0x84C87814A1F0AB72);
- SHA2_64_F(F, G, H, A, B, C, D, E, W11, W09, W04, W12, 0x8CC702081A6439EC);
- SHA2_64_F(E, F, G, H, A, B, C, D, W12, W10, W05, W13, 0x90BEFFFA23631E28);
- SHA2_64_F(D, E, F, G, H, A, B, C, W13, W11, W06, W14, 0xA4506CEBDE82BDE9);
- SHA2_64_F(C, D, E, F, G, H, A, B, W14, W12, W07, W15, 0xBEF9A3F7B2C67915);
- SHA2_64_F(B, C, D, E, F, G, H, A, W15, W13, W08, W00, 0xC67178F2E372532B);
- SHA2_64_F(A, B, C, D, E, F, G, H, W00, W14, W09, W01, 0xCA273ECEEA26619C);
- SHA2_64_F(H, A, B, C, D, E, F, G, W01, W15, W10, W02, 0xD186B8C721C0C207);
- SHA2_64_F(G, H, A, B, C, D, E, F, W02, W00, W11, W03, 0xEADA7DD6CDE0EB1E);
- SHA2_64_F(F, G, H, A, B, C, D, E, W03, W01, W12, W04, 0xF57D4F7FEE6ED178);
- SHA2_64_F(E, F, G, H, A, B, C, D, W04, W02, W13, W05, 0x06F067AA72176FBA);
- SHA2_64_F(D, E, F, G, H, A, B, C, W05, W03, W14, W06, 0x0A637DC5A2C898A6);
- SHA2_64_F(C, D, E, F, G, H, A, B, W06, W04, W15, W07, 0x113F9804BEF90DAE);
- SHA2_64_F(B, C, D, E, F, G, H, A, W07, W05, W00, W08, 0x1B710B35131C471B);
- SHA2_64_F(A, B, C, D, E, F, G, H, W08, W06, W01, W09, 0x28DB77F523047D84);
- SHA2_64_F(H, A, B, C, D, E, F, G, W09, W07, W02, W10, 0x32CAAB7B40C72493);
- SHA2_64_F(G, H, A, B, C, D, E, F, W10, W08, W03, W11, 0x3C9EBE0A15C9BEBC);
- SHA2_64_F(F, G, H, A, B, C, D, E, W11, W09, W04, W12, 0x431D67C49C100D4C);
- SHA2_64_F(E, F, G, H, A, B, C, D, W12, W10, W05, W13, 0x4CC5D4BECB3E42B6);
- SHA2_64_F(D, E, F, G, H, A, B, C, W13, W11, W06, W14, 0x597F299CFC657E2A);
- SHA2_64_F(C, D, E, F, G, H, A, B, W14, W12, W07, W15, 0x5FCB6FAB3AD6FAEC);
- SHA2_64_F(B, C, D, E, F, G, H, A, W15, W13, W08, W00, 0x6C44198C4A475817);
-
- A = (digest[0] += A);
- B = (digest[1] += B);
- C = (digest[2] += C);
- D = (digest[3] += D);
- E = (digest[4] += E);
- F = (digest[5] += F);
- G = (digest[6] += G);
- H = (digest[7] += H);
-
- input += 128;
- }
- }
-
-}
-
-void SHA_512_256::compress_n(const uint8_t input[], size_t blocks)
- {
- SHA64_compress(m_digest, input, blocks);
- }
-
-void SHA_384::compress_n(const uint8_t input[], size_t blocks)
- {
- SHA64_compress(m_digest, input, blocks);
- }
-
-void SHA_512::compress_n(const uint8_t input[], size_t blocks)
- {
- SHA64_compress(m_digest, input, blocks);
- }
-
-void SHA_512_256::copy_out(uint8_t output[])
- {
- copy_out_vec_be(output, output_length(), m_digest);
- }
-
-void SHA_384::copy_out(uint8_t output[])
- {
- copy_out_vec_be(output, output_length(), m_digest);
- }
-
-void SHA_512::copy_out(uint8_t output[])
- {
- copy_out_vec_be(output, output_length(), m_digest);
- }
-
-void SHA_512_256::clear()
- {
- MDx_HashFunction::clear();
- m_digest[0] = 0x22312194FC2BF72C;
- m_digest[1] = 0x9F555FA3C84C64C2;
- m_digest[2] = 0x2393B86B6F53B151;
- m_digest[3] = 0x963877195940EABD;
- m_digest[4] = 0x96283EE2A88EFFE3;
- m_digest[5] = 0xBE5E1E2553863992;
- m_digest[6] = 0x2B0199FC2C85B8AA;
- m_digest[7] = 0x0EB72DDC81C52CA2;
- }
-
-void SHA_384::clear()
- {
- MDx_HashFunction::clear();
- m_digest[0] = 0xCBBB9D5DC1059ED8;
- m_digest[1] = 0x629A292A367CD507;
- m_digest[2] = 0x9159015A3070DD17;
- m_digest[3] = 0x152FECD8F70E5939;
- m_digest[4] = 0x67332667FFC00B31;
- m_digest[5] = 0x8EB44A8768581511;
- m_digest[6] = 0xDB0C2E0D64F98FA7;
- m_digest[7] = 0x47B5481DBEFA4FA4;
- }
-
-void SHA_512::clear()
- {
- MDx_HashFunction::clear();
- m_digest[0] = 0x6A09E667F3BCC908;
- m_digest[1] = 0xBB67AE8584CAA73B;
- m_digest[2] = 0x3C6EF372FE94F82B;
- m_digest[3] = 0xA54FF53A5F1D36F1;
- m_digest[4] = 0x510E527FADE682D1;
- m_digest[5] = 0x9B05688C2B3E6C1F;
- m_digest[6] = 0x1F83D9ABFB41BD6B;
- m_digest[7] = 0x5BE0CD19137E2179;
- }
-
-}
diff --git a/src/libs/3rdparty/botan/src/lib/hash/sha2_64/sha2_64.h b/src/libs/3rdparty/botan/src/lib/hash/sha2_64/sha2_64.h
deleted file mode 100644
index cbe1ad70bb..0000000000
--- a/src/libs/3rdparty/botan/src/lib/hash/sha2_64/sha2_64.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
-* SHA-{384,512}
-* (C) 1999-2010,2015 Jack Lloyd
-*
-* Botan is released under the Simplified BSD License (see license.txt)
-*/
-
-#ifndef BOTAN_SHA_64BIT_H_
-#define BOTAN_SHA_64BIT_H_
-
-#include <botan/mdx_hash.h>
-
-namespace Botan {
-
-/**
-* SHA-384
-*/
-class BOTAN_PUBLIC_API(2,0) SHA_384 final : public MDx_HashFunction
- {
- public:
- std::string name() const override { return "SHA-384"; }
- size_t output_length() const override { return 48; }
- HashFunction* clone() const override { return new SHA_384; }
- std::unique_ptr<HashFunction> copy_state() const override;
-
- void clear() override;
-
- SHA_384() : MDx_HashFunction(128, true, true, 16), m_digest(8)
- { clear(); }
- private:
- void compress_n(const uint8_t[], size_t blocks) override;
- void copy_out(uint8_t[]) override;
-
- secure_vector<uint64_t> m_digest;
- };
-
-/**
-* SHA-512
-*/
-class BOTAN_PUBLIC_API(2,0) SHA_512 final : public MDx_HashFunction
- {
- public:
- std::string name() const override { return "SHA-512"; }
- size_t output_length() const override { return 64; }
- HashFunction* clone() const override { return new SHA_512; }
- std::unique_ptr<HashFunction> copy_state() const override;
-
- void clear() override;
-
- SHA_512() : MDx_HashFunction(128, true, true, 16), m_digest(8)
- { clear(); }
- private:
- void compress_n(const uint8_t[], size_t blocks) override;
- void copy_out(uint8_t[]) override;
-
- secure_vector<uint64_t> m_digest;
- };
-
-/**
-* SHA-512/256
-*/
-class BOTAN_PUBLIC_API(2,0) SHA_512_256 final : public MDx_HashFunction
- {
- public:
- std::string name() const override { return "SHA-512-256"; }
- size_t output_length() const override { return 32; }
- HashFunction* clone() const override { return new SHA_512_256; }
- std::unique_ptr<HashFunction> copy_state() const override;
-
- void clear() override;
-
- SHA_512_256() : MDx_HashFunction(128, true, true, 16), m_digest(8) { clear(); }
- private:
- void compress_n(const uint8_t[], size_t blocks) override;
- void copy_out(uint8_t[]) override;
-
- secure_vector<uint64_t> m_digest;
- };
-
-}
-
-#endif