aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/3rdparty/botan/src/lib/base
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs/3rdparty/botan/src/lib/base')
-rw-r--r--src/libs/3rdparty/botan/src/lib/base/botan.h45
-rw-r--r--src/libs/3rdparty/botan/src/lib/base/buf_comp.h184
-rw-r--r--src/libs/3rdparty/botan/src/lib/base/info.txt17
-rw-r--r--src/libs/3rdparty/botan/src/lib/base/init.h33
-rw-r--r--src/libs/3rdparty/botan/src/lib/base/key_spec.h100
-rw-r--r--src/libs/3rdparty/botan/src/lib/base/lookup.h177
-rw-r--r--src/libs/3rdparty/botan/src/lib/base/scan_name.cpp144
-rw-r--r--src/libs/3rdparty/botan/src/lib/base/scan_name.h117
-rw-r--r--src/libs/3rdparty/botan/src/lib/base/secmem.h202
-rw-r--r--src/libs/3rdparty/botan/src/lib/base/sym_algo.cpp24
-rw-r--r--src/libs/3rdparty/botan/src/lib/base/sym_algo.h108
-rw-r--r--src/libs/3rdparty/botan/src/lib/base/symkey.cpp131
-rw-r--r--src/libs/3rdparty/botan/src/lib/base/symkey.h145
13 files changed, 0 insertions, 1427 deletions
diff --git a/src/libs/3rdparty/botan/src/lib/base/botan.h b/src/libs/3rdparty/botan/src/lib/base/botan.h
deleted file mode 100644
index 26bfa75a796..00000000000
--- a/src/libs/3rdparty/botan/src/lib/base/botan.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
-* A vague catch all include file for Botan
-* (C) 1999-2007 Jack Lloyd
-*
-* Botan is released under the Simplified BSD License (see license.txt)
-*/
-
-#ifndef BOTAN_BOTAN_H_
-#define BOTAN_BOTAN_H_
-
-/*
-* There is no real reason for this header to exist beyond historical
-* reasons. The application should instead include the specific header
-* files that define the interfaces it intends to use.
-*
-* This header file will be removed in Botan 3.x
-*/
-
-#if defined(__GNUC__)
- #warning "botan/botan.h is deprecated"
-#elif defined(_MSC_VER)
- #pragma message ("botan/botan.h is deprecated")
-#endif
-
-#include <botan/lookup.h>
-#include <botan/version.h>
-#include <botan/parsing.h>
-#include <botan/init.h>
-#include <botan/rng.h>
-#include <botan/secmem.h>
-
-#if defined(BOTAN_HAS_AUTO_SEEDING_RNG)
- #include <botan/auto_rng.h>
-#endif
-
-#if defined(BOTAN_HAS_FILTERS)
- #include <botan/filters.h>
-#endif
-
-#if defined(BOTAN_HAS_PUBLIC_KEY_CRYPTO)
- #include <botan/x509_key.h>
- #include <botan/pkcs8.h>
-#endif
-
-#endif
diff --git a/src/libs/3rdparty/botan/src/lib/base/buf_comp.h b/src/libs/3rdparty/botan/src/lib/base/buf_comp.h
deleted file mode 100644
index a6cc84ba351..00000000000
--- a/src/libs/3rdparty/botan/src/lib/base/buf_comp.h
+++ /dev/null
@@ -1,184 +0,0 @@
-/*
-* Buffered Computation
-* (C) 1999-2007 Jack Lloyd
-*
-* Botan is released under the Simplified BSD License (see license.txt)
-*/
-
-#ifndef BOTAN_BUFFERED_COMPUTATION_H_
-#define BOTAN_BUFFERED_COMPUTATION_H_
-
-#include <botan/secmem.h>
-#include <botan/loadstor.h>
-#include <string>
-
-namespace Botan {
-
-/**
-* This class represents any kind of computation which uses an internal
-* state, such as hash functions or MACs
-*/
-class BOTAN_PUBLIC_API(2,0) Buffered_Computation
- {
- public:
- /**
- * @return length of the output of this function in bytes
- */
- virtual size_t output_length() const = 0;
-
- /**
- * Add new input to process.
- * @param in the input to process as a byte array
- * @param length of param in in bytes
- */
- void update(const uint8_t in[], size_t length) { add_data(in, length); }
-
- /**
- * Add new input to process.
- * @param in the input to process as a secure_vector
- */
- void update(const secure_vector<uint8_t>& in)
- {
- add_data(in.data(), in.size());
- }
-
- /**
- * Add new input to process.
- * @param in the input to process as a std::vector
- */
- void update(const std::vector<uint8_t>& in)
- {
- add_data(in.data(), in.size());
- }
-
- /**
- * Add an integer in big-endian order
- * @param in the value
- */
- template<typename T> void update_be(const T in)
- {
- for(size_t i = 0; i != sizeof(T); ++i)
- {
- uint8_t b = get_byte(i, in);
- add_data(&b, 1);
- }
- }
-
- /**
- * Add new input to process.
- * @param str the input to process as a std::string. Will be interpreted
- * as a byte array based on the strings encoding.
- */
- void update(const std::string& str)
- {
- add_data(cast_char_ptr_to_uint8(str.data()), str.size());
- }
-
- /**
- * Process a single byte.
- * @param in the byte to process
- */
- void update(uint8_t in) { add_data(&in, 1); }
-
- /**
- * Complete the computation and retrieve the
- * final result.
- * @param out The byte array to be filled with the result.
- * Must be of length output_length()
- */
- void final(uint8_t out[]) { final_result(out); }
-
- /**
- * Complete the computation and retrieve the
- * final result.
- * @return secure_vector holding the result
- */
- secure_vector<uint8_t> final()
- {
- secure_vector<uint8_t> output(output_length());
- final_result(output.data());
- return output;
- }
-
- std::vector<uint8_t> final_stdvec()
- {
- std::vector<uint8_t> output(output_length());
- final_result(output.data());
- return output;
- }
-
- template<typename Alloc>
- void final(std::vector<uint8_t, Alloc>& out)
- {
- out.resize(output_length());
- final_result(out.data());
- }
-
- /**
- * Update and finalize computation. Does the same as calling update()
- * and final() consecutively.
- * @param in the input to process as a byte array
- * @param length the length of the byte array
- * @result the result of the call to final()
- */
- secure_vector<uint8_t> process(const uint8_t in[], size_t length)
- {
- add_data(in, length);
- return final();
- }
-
- /**
- * Update and finalize computation. Does the same as calling update()
- * and final() consecutively.
- * @param in the input to process
- * @result the result of the call to final()
- */
- secure_vector<uint8_t> process(const secure_vector<uint8_t>& in)
- {
- add_data(in.data(), in.size());
- return final();
- }
-
- /**
- * Update and finalize computation. Does the same as calling update()
- * and final() consecutively.
- * @param in the input to process
- * @result the result of the call to final()
- */
- secure_vector<uint8_t> process(const std::vector<uint8_t>& in)
- {
- add_data(in.data(), in.size());
- return final();
- }
-
- /**
- * Update and finalize computation. Does the same as calling update()
- * and final() consecutively.
- * @param in the input to process as a string
- * @result the result of the call to final()
- */
- secure_vector<uint8_t> process(const std::string& in)
- {
- update(in);
- return final();
- }
-
- virtual ~Buffered_Computation() = default;
- private:
- /**
- * Add more data to the computation
- * @param input is an input buffer
- * @param length is the length of input in bytes
- */
- virtual void add_data(const uint8_t input[], size_t length) = 0;
-
- /**
- * Write the final output to out
- * @param out is an output buffer of output_length()
- */
- virtual void final_result(uint8_t out[]) = 0;
- };
-
-}
-
-#endif
diff --git a/src/libs/3rdparty/botan/src/lib/base/info.txt b/src/libs/3rdparty/botan/src/lib/base/info.txt
deleted file mode 100644
index fd3f7b89058..00000000000
--- a/src/libs/3rdparty/botan/src/lib/base/info.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-<header:public>
-botan.h
-buf_comp.h
-init.h
-key_spec.h
-lookup.h
-secmem.h
-scan_name.h
-sym_algo.h
-symkey.h
-</header:public>
-
-<requires>
-hex
-rng
-utils
-</requires>
diff --git a/src/libs/3rdparty/botan/src/lib/base/init.h b/src/libs/3rdparty/botan/src/lib/base/init.h
deleted file mode 100644
index ba014d8e1d3..00000000000
--- a/src/libs/3rdparty/botan/src/lib/base/init.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
-* Library Initialization
-* (C) 1999-2008,2015 Jack Lloyd
-*
-* Botan is released under the Simplified BSD License (see license.txt)
-*/
-
-#ifndef BOTAN_LIBRARY_INITIALIZER_H_
-#define BOTAN_LIBRARY_INITIALIZER_H_
-
-#include <botan/types.h>
-#include <string>
-
-namespace Botan {
-
-/*
-* Previously botan had state whose lifetime had to be explicitly
-* managed by the application. As of 1.11.14 this is no longer the
-* case, and this class is no longer needed and kept only for backwards
-* compatibility.
-*/
-class BOTAN_PUBLIC_API(2,0) BOTAN_DEPRECATED("LibraryInitializer is no longer required") LibraryInitializer final
- {
- public:
- explicit LibraryInitializer(const std::string& /*ignored*/ = "") { }
-
- static void initialize(const std::string& /*ignored*/ = "") {}
- static void deinitialize() {}
- };
-
-}
-
-#endif
diff --git a/src/libs/3rdparty/botan/src/lib/base/key_spec.h b/src/libs/3rdparty/botan/src/lib/base/key_spec.h
deleted file mode 100644
index 6db20a9b632..00000000000
--- a/src/libs/3rdparty/botan/src/lib/base/key_spec.h
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
-* Symmetric Key Length Specification
-* (C) 2010 Jack Lloyd
-*
-* Botan is released under the Simplified BSD License (see license.txt)
-*/
-
-#ifndef BOTAN_KEY_LEN_SPECIFICATION_H_
-#define BOTAN_KEY_LEN_SPECIFICATION_H_
-
-#include <botan/types.h>
-
-namespace Botan {
-
-/**
-* Represents the length requirements on an algorithm key
-*/
-class BOTAN_PUBLIC_API(2,0) Key_Length_Specification final
- {
- public:
- /**
- * Constructor for fixed length keys
- * @param keylen the supported key length
- */
- explicit Key_Length_Specification(size_t keylen) :
- m_min_keylen(keylen),
- m_max_keylen(keylen),
- m_keylen_mod(1)
- {
- }
-
- /**
- * Constructor for variable length keys
- * @param min_k the smallest supported key length
- * @param max_k the largest supported key length
- * @param k_mod the number of bytes the key must be a multiple of
- */
- Key_Length_Specification(size_t min_k,
- size_t max_k,
- size_t k_mod = 1) :
- m_min_keylen(min_k),
- m_max_keylen(max_k ? max_k : min_k),
- m_keylen_mod(k_mod)
- {
- }
-
- /**
- * @param length is a key length in bytes
- * @return true iff this length is a valid length for this algo
- */
- bool valid_keylength(size_t length) const
- {
- return ((length >= m_min_keylen) &&
- (length <= m_max_keylen) &&
- (length % m_keylen_mod == 0));
- }
-
- /**
- * @return minimum key length in bytes
- */
- size_t minimum_keylength() const
- {
- return m_min_keylen;
- }
-
- /**
- * @return maximum key length in bytes
- */
- size_t maximum_keylength() const
- {
- return m_max_keylen;
- }
-
- /**
- * @return key length multiple in bytes
- */
- size_t keylength_multiple() const
- {
- return m_keylen_mod;
- }
-
- /*
- * Multiplies all length requirements with the given factor
- * @param n the multiplication factor
- * @return a key length specification multiplied by the factor
- */
- Key_Length_Specification multiple(size_t n) const
- {
- return Key_Length_Specification(n * m_min_keylen,
- n * m_max_keylen,
- n * m_keylen_mod);
- }
-
- private:
- size_t m_min_keylen, m_max_keylen, m_keylen_mod;
- };
-
-}
-
-#endif
diff --git a/src/libs/3rdparty/botan/src/lib/base/lookup.h b/src/libs/3rdparty/botan/src/lib/base/lookup.h
deleted file mode 100644
index 1cfa7d3c9cc..00000000000
--- a/src/libs/3rdparty/botan/src/lib/base/lookup.h
+++ /dev/null
@@ -1,177 +0,0 @@
-/*
-* Algorithm Lookup
-* (C) 1999-2007,2015 Jack Lloyd
-*
-* Botan is released under the Simplified BSD License (see license.txt)
-*/
-
-#ifndef BOTAN_LOOKUP_H_
-#define BOTAN_LOOKUP_H_
-
-#include <botan/build.h>
-#include <botan/exceptn.h>
-#include <string>
-#include <vector>
-#include <memory>
-
-#if defined(BOTAN_HAS_BLOCK_CIPHER)
- #include <botan/block_cipher.h>
-#endif
-
-#if defined(BOTAN_HAS_STREAM_CIPHER)
- #include <botan/stream_cipher.h>
-#endif
-
-#if defined(BOTAN_HAS_HASH)
- #include <botan/hash.h>
-#endif
-
-#if defined(BOTAN_HAS_MAC)
- #include <botan/mac.h>
-#endif
-
-namespace Botan {
-
-/*
-* As of 1.11.26 this header is deprecated. Instead use the calls T::create and
-* T::providers (as demonstrated in the implementation below).
-*/
-
-/*
-* Get an algorithm object
-* NOTE: these functions create and return new objects, letting the
-* caller assume ownership of them
-*/
-
-#if defined(BOTAN_HAS_BLOCK_CIPHER)
-
-/**
-* Block cipher factory method.
-*
-* @param algo_spec the name of the desired block cipher
-* @param provider the provider to use
-* @return pointer to the block cipher object
-*/
-BOTAN_DEPRECATED("Use BlockCipher::create")
-inline BlockCipher* get_block_cipher(const std::string& algo_spec,
- const std::string& provider = "")
- {
- return BlockCipher::create(algo_spec, provider).release();
- }
-
-BOTAN_DEPRECATED("Use BlockCipher::create_or_throw")
-inline std::unique_ptr<BlockCipher> make_block_cipher(const std::string& algo_spec,
- const std::string& provider = "")
- {
- return BlockCipher::create_or_throw(algo_spec, provider);
- }
-
-BOTAN_DEPRECATED("Use BlockCipher::providers")
-inline std::vector<std::string> get_block_cipher_providers(const std::string& algo_spec)
- {
- return BlockCipher::providers(algo_spec);
- }
-
-#endif
-
-#if defined(BOTAN_HAS_STREAM_CIPHER)
-
-/**
-* Stream cipher factory method.
-*
-* @param algo_spec the name of the desired stream cipher
-* @param provider the provider to use
-* @return pointer to the stream cipher object
-*/
-BOTAN_DEPRECATED("Use StreamCipher::create")
-inline StreamCipher* get_stream_cipher(const std::string& algo_spec,
- const std::string& provider = "")
- {
- return StreamCipher::create(algo_spec, provider).release();
- }
-
-BOTAN_DEPRECATED("Use StreamCipher::create_or_throw")
-inline std::unique_ptr<StreamCipher> make_stream_cipher(const std::string& algo_spec,
- const std::string& provider = "")
- {
- return StreamCipher::create_or_throw(algo_spec, provider);
- }
-
-BOTAN_DEPRECATED("Use StreamCipher::providers")
-inline std::vector<std::string> get_stream_cipher_providers(const std::string& algo_spec)
- {
- return StreamCipher::providers(algo_spec);
- }
-
-#endif
-
-#if defined(BOTAN_HAS_HASH)
-
-/**
-* Hash function factory method.
-*
-* @param algo_spec the name of the desired hash function
-* @param provider the provider to use
-* @return pointer to the hash function object
-*/
-BOTAN_DEPRECATED("Use HashFunction::create")
-inline HashFunction* get_hash_function(const std::string& algo_spec,
- const std::string& provider = "")
- {
- return HashFunction::create(algo_spec, provider).release();
- }
-
-BOTAN_DEPRECATED("Use HashFunction::create_or_throw")
-inline std::unique_ptr<HashFunction> make_hash_function(const std::string& algo_spec,
- const std::string& provider = "")
- {
- return HashFunction::create_or_throw(algo_spec, provider);
- }
-
-BOTAN_DEPRECATED("Use HashFunction::create")
-inline HashFunction* get_hash(const std::string& algo_spec,
- const std::string& provider = "")
- {
- return HashFunction::create(algo_spec, provider).release();
- }
-
-BOTAN_DEPRECATED("Use HashFunction::providers")
-inline std::vector<std::string> get_hash_function_providers(const std::string& algo_spec)
- {
- return HashFunction::providers(algo_spec);
- }
-
-#endif
-
-#if defined(BOTAN_HAS_MAC)
-/**
-* MAC factory method.
-*
-* @param algo_spec the name of the desired MAC
-* @param provider the provider to use
-* @return pointer to the MAC object
-*/
-BOTAN_DEPRECATED("MessageAuthenticationCode::create")
-inline MessageAuthenticationCode* get_mac(const std::string& algo_spec,
- const std::string& provider = "")
- {
- return MessageAuthenticationCode::create(algo_spec, provider).release();
- }
-
-BOTAN_DEPRECATED("MessageAuthenticationCode::create_or_throw")
-inline std::unique_ptr<MessageAuthenticationCode> make_message_auth(const std::string& algo_spec,
- const std::string& provider = "")
- {
- return MessageAuthenticationCode::create(algo_spec, provider);
- }
-
-BOTAN_DEPRECATED("MessageAuthenticationCode::providers")
-inline std::vector<std::string> get_mac_providers(const std::string& algo_spec)
- {
- return MessageAuthenticationCode::providers(algo_spec);
- }
-#endif
-
-}
-
-#endif
diff --git a/src/libs/3rdparty/botan/src/lib/base/scan_name.cpp b/src/libs/3rdparty/botan/src/lib/base/scan_name.cpp
deleted file mode 100644
index 70c6e7f25c6..00000000000
--- a/src/libs/3rdparty/botan/src/lib/base/scan_name.cpp
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
-* SCAN Name Abstraction
-* (C) 2008-2009,2015 Jack Lloyd
-*
-* Botan is released under the Simplified BSD License (see license.txt)
-*/
-
-#include <botan/scan_name.h>
-#include <botan/parsing.h>
-#include <botan/exceptn.h>
-
-namespace Botan {
-
-namespace {
-
-std::string make_arg(
- const std::vector<std::pair<size_t, std::string> >& name, size_t start)
- {
- std::string output = name[start].second;
- size_t level = name[start].first;
-
- size_t paren_depth = 0;
-
- for(size_t i = start + 1; i != name.size(); ++i)
- {
- if(name[i].first <= name[start].first)
- break;
-
- if(name[i].first > level)
- {
- output += "(" + name[i].second;
- ++paren_depth;
- }
- else if(name[i].first < level)
- {
- output += ")," + name[i].second;
- --paren_depth;
- }
- else
- {
- if(output[output.size() - 1] != '(')
- output += ",";
- output += name[i].second;
- }
-
- level = name[i].first;
- }
-
- for(size_t i = 0; i != paren_depth; ++i)
- output += ")";
-
- return output;
- }
-
-}
-
-SCAN_Name::SCAN_Name(const char* algo_spec) : SCAN_Name(std::string(algo_spec))
- {
- }
-
-SCAN_Name::SCAN_Name(std::string algo_spec) : m_orig_algo_spec(algo_spec), m_alg_name(), m_args(), m_mode_info()
- {
- std::vector<std::pair<size_t, std::string> > name;
- size_t level = 0;
- std::pair<size_t, std::string> accum = std::make_pair(level, "");
-
- const std::string decoding_error = "Bad SCAN name '" + algo_spec + "': ";
-
- for(size_t i = 0; i != algo_spec.size(); ++i)
- {
- char c = algo_spec[i];
-
- if(c == '/' || c == ',' || c == '(' || c == ')')
- {
- if(c == '(')
- ++level;
- else if(c == ')')
- {
- if(level == 0)
- throw Decoding_Error(decoding_error + "Mismatched parens");
- --level;
- }
-
- if(c == '/' && level > 0)
- accum.second.push_back(c);
- else
- {
- if(accum.second != "")
- name.push_back(accum);
- accum = std::make_pair(level, "");
- }
- }
- else
- accum.second.push_back(c);
- }
-
- if(accum.second != "")
- name.push_back(accum);
-
- if(level != 0)
- throw Decoding_Error(decoding_error + "Missing close paren");
-
- if(name.size() == 0)
- throw Decoding_Error(decoding_error + "Empty name");
-
- m_alg_name = name[0].second;
-
- bool in_modes = false;
-
- for(size_t i = 1; i != name.size(); ++i)
- {
- if(name[i].first == 0)
- {
- m_mode_info.push_back(make_arg(name, i));
- in_modes = true;
- }
- else if(name[i].first == 1 && !in_modes)
- m_args.push_back(make_arg(name, i));
- }
- }
-
-std::string SCAN_Name::arg(size_t i) const
- {
- if(i >= arg_count())
- throw Invalid_Argument("SCAN_Name::arg " + std::to_string(i) +
- " out of range for '" + as_string() + "'");
- return m_args[i];
- }
-
-std::string SCAN_Name::arg(size_t i, const std::string& def_value) const
- {
- if(i >= arg_count())
- return def_value;
- return m_args[i];
- }
-
-size_t SCAN_Name::arg_as_integer(size_t i, size_t def_value) const
- {
- if(i >= arg_count())
- return def_value;
- return to_u32bit(m_args[i]);
- }
-
-}
diff --git a/src/libs/3rdparty/botan/src/lib/base/scan_name.h b/src/libs/3rdparty/botan/src/lib/base/scan_name.h
deleted file mode 100644
index 8aa45f50f03..00000000000
--- a/src/libs/3rdparty/botan/src/lib/base/scan_name.h
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
-* SCAN Name Abstraction
-* (C) 2008,2015 Jack Lloyd
-*
-* Botan is released under the Simplified BSD License (see license.txt)
-*/
-
-#ifndef BOTAN_SCAN_NAME_H_
-#define BOTAN_SCAN_NAME_H_
-
-#include <botan/types.h>
-#include <string>
-#include <vector>
-
-namespace Botan {
-
-/**
-A class encapsulating a SCAN name (similar to JCE conventions)
-http://www.users.zetnet.co.uk/hopwood/crypto/scan/
-*/
-class BOTAN_PUBLIC_API(2,0) SCAN_Name final
- {
- public:
- /**
- * Create a SCAN_Name
- * @param algo_spec A SCAN-format name
- */
- explicit SCAN_Name(const char* algo_spec);
-
- /**
- * Create a SCAN_Name
- * @param algo_spec A SCAN-format name
- */
- explicit SCAN_Name(std::string algo_spec);
-
- /**
- * @return original input string
- */
- const std::string& as_string() const { return m_orig_algo_spec; }
-
- /**
- * @return algorithm name
- */
- const std::string& algo_name() const { return m_alg_name; }
-
- /**
- * @return number of arguments
- */
- size_t arg_count() const { return m_args.size(); }
-
- /**
- * @param lower is the lower bound
- * @param upper is the upper bound
- * @return if the number of arguments is between lower and upper
- */
- bool arg_count_between(size_t lower, size_t upper) const
- { return ((arg_count() >= lower) && (arg_count() <= upper)); }
-
- /**
- * @param i which argument
- * @return ith argument
- */
- std::string arg(size_t i) const;
-
- /**
- * @param i which argument
- * @param def_value the default value
- * @return ith argument or the default value
- */
- std::string arg(size_t i, const std::string& def_value) const;
-
- /**
- * @param i which argument
- * @param def_value the default value
- * @return ith argument as an integer, or the default value
- */
- size_t arg_as_integer(size_t i, size_t def_value) const;
-
- /**
- * @return cipher mode (if any)
- */
- std::string cipher_mode() const
- { return (m_mode_info.size() >= 1) ? m_mode_info[0] : ""; }
-
- /**
- * @return cipher mode padding (if any)
- */
- std::string cipher_mode_pad() const
- { return (m_mode_info.size() >= 2) ? m_mode_info[1] : ""; }
-
- private:
- std::string m_orig_algo_spec;
- std::string m_alg_name;
- std::vector<std::string> m_args;
- std::vector<std::string> m_mode_info;
- };
-
-// This is unrelated but it is convenient to stash it here
-template<typename T>
-std::vector<std::string> probe_providers_of(const std::string& algo_spec,
- const std::vector<std::string>& possible)
- {
- std::vector<std::string> providers;
- for(auto&& prov : possible)
- {
- std::unique_ptr<T> o(T::create(algo_spec, prov));
- if(o)
- {
- providers.push_back(prov); // available
- }
- }
- return providers;
- }
-
-}
-
-#endif
diff --git a/src/libs/3rdparty/botan/src/lib/base/secmem.h b/src/libs/3rdparty/botan/src/lib/base/secmem.h
deleted file mode 100644
index 92477438d44..00000000000
--- a/src/libs/3rdparty/botan/src/lib/base/secmem.h
+++ /dev/null
@@ -1,202 +0,0 @@
-/*
-* Secure Memory Buffers
-* (C) 1999-2007,2012 Jack Lloyd
-*
-* Botan is released under the Simplified BSD License (see license.txt)
-*/
-
-#ifndef BOTAN_SECURE_MEMORY_BUFFERS_H_
-#define BOTAN_SECURE_MEMORY_BUFFERS_H_
-
-#include <botan/types.h> // IWYU pragma: export
-#include <botan/mem_ops.h> // IWYU pragma: export
-#include <vector> // IWYU pragma: export
-#include <algorithm>
-#include <deque>
-#include <type_traits>
-
-namespace Botan {
-
-template<typename T>
-class secure_allocator
- {
- public:
- /*
- * Assert exists to prevent someone from doing something that will
- * probably crash anyway (like secure_vector<non_POD_t> where ~non_POD_t
- * deletes a member pointer which was zeroed before it ran).
- * MSVC in debug mode uses non-integral proxy types in container types
- * like std::vector, thus we disable the check there.
- */
-#if !defined(_ITERATOR_DEBUG_LEVEL) || _ITERATOR_DEBUG_LEVEL == 0
- static_assert(std::is_integral<T>::value, "secure_allocator supports only integer types");
-#endif
-
- typedef T value_type;
- typedef std::size_t size_type;
-
-#ifdef BOTAN_BUILD_COMPILER_IS_MSVC_2013
- secure_allocator() = default;
- secure_allocator(const secure_allocator&) = default;
- secure_allocator& operator=(const secure_allocator&) = default;
- ~secure_allocator() = default;
-
- template <typename U>
- struct rebind
- {
- typedef secure_allocator<U> other;
- };
-
- void construct(value_type* mem, const value_type& value)
- {
- std::_Construct(mem, value);
- }
-
- void destroy(value_type* mem)
- {
- std::_Destroy(mem);
- }
-#else
- secure_allocator() BOTAN_NOEXCEPT = default;
- secure_allocator(const secure_allocator&) BOTAN_NOEXCEPT = default;
- secure_allocator& operator=(const secure_allocator&) BOTAN_NOEXCEPT = default;
- ~secure_allocator() BOTAN_NOEXCEPT = default;
-#endif
-
- template<typename U>
- secure_allocator(const secure_allocator<U>&) BOTAN_NOEXCEPT {}
-
- T* allocate(std::size_t n)
- {
- return static_cast<T*>(allocate_memory(n, sizeof(T)));
- }
-
- void deallocate(T* p, std::size_t n)
- {
- deallocate_memory(p, n, sizeof(T));
- }
- };
-
-template<typename T, typename U> inline bool
-operator==(const secure_allocator<T>&, const secure_allocator<U>&)
- { return true; }
-
-template<typename T, typename U> inline bool
-operator!=(const secure_allocator<T>&, const secure_allocator<U>&)
- { return false; }
-
-template<typename T> using secure_vector = std::vector<T, secure_allocator<T>>;
-template<typename T> using secure_deque = std::deque<T, secure_allocator<T>>;
-
-// For better compatibility with 1.10 API
-template<typename T> using SecureVector = secure_vector<T>;
-
-template<typename T>
-std::vector<T> unlock(const secure_vector<T>& in)
- {
- std::vector<T> out(in.size());
- copy_mem(out.data(), in.data(), in.size());
- return out;
- }
-
-template<typename T, typename Alloc>
-size_t buffer_insert(std::vector<T, Alloc>& buf,
- size_t buf_offset,
- const T input[],
- size_t input_length)
- {
- BOTAN_ASSERT_NOMSG(buf_offset <= buf.size());
- const size_t to_copy = std::min(input_length, buf.size() - buf_offset);
- if(to_copy > 0)
- {
- copy_mem(&buf[buf_offset], input, to_copy);
- }
- return to_copy;
- }
-
-template<typename T, typename Alloc, typename Alloc2>
-size_t buffer_insert(std::vector<T, Alloc>& buf,
- size_t buf_offset,
- const std::vector<T, Alloc2>& input)
- {
- BOTAN_ASSERT_NOMSG(buf_offset <= buf.size());
- const size_t to_copy = std::min(input.size(), buf.size() - buf_offset);
- if(to_copy > 0)
- {
- copy_mem(&buf[buf_offset], input.data(), to_copy);
- }
- return to_copy;
- }
-
-template<typename T, typename Alloc, typename Alloc2>
-std::vector<T, Alloc>&
-operator+=(std::vector<T, Alloc>& out,
- const std::vector<T, Alloc2>& in)
- {
- const size_t copy_offset = out.size();
- out.resize(out.size() + in.size());
- if(in.size() > 0)
- {
- copy_mem(&out[copy_offset], in.data(), in.size());
- }
- return out;
- }
-
-template<typename T, typename Alloc>
-std::vector<T, Alloc>& operator+=(std::vector<T, Alloc>& out, T in)
- {
- out.push_back(in);
- return out;
- }
-
-template<typename T, typename Alloc, typename L>
-std::vector<T, Alloc>& operator+=(std::vector<T, Alloc>& out,
- const std::pair<const T*, L>& in)
- {
- const size_t copy_offset = out.size();
- out.resize(out.size() + in.second);
- if(in.second > 0)
- {
- copy_mem(&out[copy_offset], in.first, in.second);
- }
- return out;
- }
-
-template<typename T, typename Alloc, typename L>
-std::vector<T, Alloc>& operator+=(std::vector<T, Alloc>& out,
- const std::pair<T*, L>& in)
- {
- const size_t copy_offset = out.size();
- out.resize(out.size() + in.second);
- if(in.second > 0)
- {
- copy_mem(&out[copy_offset], in.first, in.second);
- }
- return out;
- }
-
-/**
-* Zeroise the values; length remains unchanged
-* @param vec the vector to zeroise
-*/
-template<typename T, typename Alloc>
-void zeroise(std::vector<T, Alloc>& vec)
- {
- clear_mem(vec.data(), vec.size());
- }
-
-/**
-* Zeroise the values then free the memory
-* @param vec the vector to zeroise and free
-*/
-template<typename T, typename Alloc>
-void zap(std::vector<T, Alloc>& vec)
- {
- zeroise(vec);
- vec.clear();
- vec.shrink_to_fit();
- }
-
-}
-
-#endif
diff --git a/src/libs/3rdparty/botan/src/lib/base/sym_algo.cpp b/src/libs/3rdparty/botan/src/lib/base/sym_algo.cpp
deleted file mode 100644
index fff4afbd14a..00000000000
--- a/src/libs/3rdparty/botan/src/lib/base/sym_algo.cpp
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
-* (C) 2018 Jack Lloyd
-*
-* Botan is released under the Simplified BSD License (see license.txt)
-*/
-
-#include <botan/sym_algo.h>
-#include <botan/exceptn.h>
-
-namespace Botan {
-
-void SymmetricAlgorithm::throw_key_not_set_error() const
- {
- throw Key_Not_Set(name());
- }
-
-void SymmetricAlgorithm::set_key(const uint8_t key[], size_t length)
- {
- if(!valid_keylength(length))
- throw Invalid_Key_Length(name(), length);
- key_schedule(key, length);
- }
-
-}
diff --git a/src/libs/3rdparty/botan/src/lib/base/sym_algo.h b/src/libs/3rdparty/botan/src/lib/base/sym_algo.h
deleted file mode 100644
index e69d4f81eb9..00000000000
--- a/src/libs/3rdparty/botan/src/lib/base/sym_algo.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
-* Symmetric Algorithm Base Class
-* (C) 1999-2007 Jack Lloyd
-*
-* Botan is released under the Simplified BSD License (see license.txt)
-*/
-
-#ifndef BOTAN_SYMMETRIC_ALGORITHM_H_
-#define BOTAN_SYMMETRIC_ALGORITHM_H_
-
-#include <botan/key_spec.h>
-#include <botan/symkey.h>
-#include <botan/types.h>
-
-namespace Botan {
-
-/**
-* This class represents a symmetric algorithm object.
-*/
-class BOTAN_PUBLIC_API(2,0) SymmetricAlgorithm
- {
- public:
- virtual ~SymmetricAlgorithm() = default;
-
- /**
- * Reset the state.
- */
- virtual void clear() = 0;
-
- /**
- * @return object describing limits on key size
- */
- virtual Key_Length_Specification key_spec() const = 0;
-
- /**
- * @return minimum allowed key length
- */
- size_t maximum_keylength() const
- {
- return key_spec().maximum_keylength();
- }
-
- /**
- * @return maximum allowed key length
- */
- size_t minimum_keylength() const
- {
- return key_spec().minimum_keylength();
- }
-
- /**
- * Check whether a given key length is valid for this algorithm.
- * @param length the key length to be checked.
- * @return true if the key length is valid.
- */
- bool valid_keylength(size_t length) const
- {
- return key_spec().valid_keylength(length);
- }
-
- /**
- * Set the symmetric key of this object.
- * @param key the SymmetricKey to be set.
- */
- void set_key(const SymmetricKey& key)
- {
- set_key(key.begin(), key.length());
- }
-
- template<typename Alloc>
- void set_key(const std::vector<uint8_t, Alloc>& key)
- {
- set_key(key.data(), key.size());
- }
-
- /**
- * Set the symmetric key of this object.
- * @param key the to be set as a byte array.
- * @param length in bytes of key param
- */
- void set_key(const uint8_t key[], size_t length);
-
- /**
- * @return the algorithm name
- */
- virtual std::string name() const = 0;
-
- protected:
- void verify_key_set(bool cond) const
- {
- if(cond == false)
- throw_key_not_set_error();
- }
-
- private:
- void throw_key_not_set_error() const;
-
- /**
- * Run the key schedule
- * @param key the key
- * @param length of key
- */
- virtual void key_schedule(const uint8_t key[], size_t length) = 0;
- };
-
-}
-
-#endif
diff --git a/src/libs/3rdparty/botan/src/lib/base/symkey.cpp b/src/libs/3rdparty/botan/src/lib/base/symkey.cpp
deleted file mode 100644
index a012773ff3a..00000000000
--- a/src/libs/3rdparty/botan/src/lib/base/symkey.cpp
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
-* OctetString
-* (C) 1999-2007 Jack Lloyd
-*
-* Botan is released under the Simplified BSD License (see license.txt)
-*/
-
-#include <botan/symkey.h>
-#include <botan/rng.h>
-#include <botan/hex.h>
-#include <algorithm>
-
-namespace Botan {
-
-/*
-* Create an OctetString from RNG output
-*/
-OctetString::OctetString(RandomNumberGenerator& rng,
- size_t len)
- {
- m_data = rng.random_vec(len);
- }
-
-/*
-* Create an OctetString from a hex string
-*/
-OctetString::OctetString(const std::string& hex_string)
- {
- m_data.resize(1 + hex_string.length() / 2);
- m_data.resize(hex_decode(m_data.data(), hex_string));
- }
-
-/*
-* Create an OctetString from a byte string
-*/
-OctetString::OctetString(const uint8_t in[], size_t n)
- {
- m_data.assign(in, in + n);
- }
-
-/*
-* Set the parity of each key byte to odd
-*/
-void OctetString::set_odd_parity()
- {
- const uint8_t ODD_PARITY[256] = {
- 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x07, 0x07, 0x08, 0x08, 0x0B, 0x0B,
- 0x0D, 0x0D, 0x0E, 0x0E, 0x10, 0x10, 0x13, 0x13, 0x15, 0x15, 0x16, 0x16,
- 0x19, 0x19, 0x1A, 0x1A, 0x1C, 0x1C, 0x1F, 0x1F, 0x20, 0x20, 0x23, 0x23,
- 0x25, 0x25, 0x26, 0x26, 0x29, 0x29, 0x2A, 0x2A, 0x2C, 0x2C, 0x2F, 0x2F,
- 0x31, 0x31, 0x32, 0x32, 0x34, 0x34, 0x37, 0x37, 0x38, 0x38, 0x3B, 0x3B,
- 0x3D, 0x3D, 0x3E, 0x3E, 0x40, 0x40, 0x43, 0x43, 0x45, 0x45, 0x46, 0x46,
- 0x49, 0x49, 0x4A, 0x4A, 0x4C, 0x4C, 0x4F, 0x4F, 0x51, 0x51, 0x52, 0x52,
- 0x54, 0x54, 0x57, 0x57, 0x58, 0x58, 0x5B, 0x5B, 0x5D, 0x5D, 0x5E, 0x5E,
- 0x61, 0x61, 0x62, 0x62, 0x64, 0x64, 0x67, 0x67, 0x68, 0x68, 0x6B, 0x6B,
- 0x6D, 0x6D, 0x6E, 0x6E, 0x70, 0x70, 0x73, 0x73, 0x75, 0x75, 0x76, 0x76,
- 0x79, 0x79, 0x7A, 0x7A, 0x7C, 0x7C, 0x7F, 0x7F, 0x80, 0x80, 0x83, 0x83,
- 0x85, 0x85, 0x86, 0x86, 0x89, 0x89, 0x8A, 0x8A, 0x8C, 0x8C, 0x8F, 0x8F,
- 0x91, 0x91, 0x92, 0x92, 0x94, 0x94, 0x97, 0x97, 0x98, 0x98, 0x9B, 0x9B,
- 0x9D, 0x9D, 0x9E, 0x9E, 0xA1, 0xA1, 0xA2, 0xA2, 0xA4, 0xA4, 0xA7, 0xA7,
- 0xA8, 0xA8, 0xAB, 0xAB, 0xAD, 0xAD, 0xAE, 0xAE, 0xB0, 0xB0, 0xB3, 0xB3,
- 0xB5, 0xB5, 0xB6, 0xB6, 0xB9, 0xB9, 0xBA, 0xBA, 0xBC, 0xBC, 0xBF, 0xBF,
- 0xC1, 0xC1, 0xC2, 0xC2, 0xC4, 0xC4, 0xC7, 0xC7, 0xC8, 0xC8, 0xCB, 0xCB,
- 0xCD, 0xCD, 0xCE, 0xCE, 0xD0, 0xD0, 0xD3, 0xD3, 0xD5, 0xD5, 0xD6, 0xD6,
- 0xD9, 0xD9, 0xDA, 0xDA, 0xDC, 0xDC, 0xDF, 0xDF, 0xE0, 0xE0, 0xE3, 0xE3,
- 0xE5, 0xE5, 0xE6, 0xE6, 0xE9, 0xE9, 0xEA, 0xEA, 0xEC, 0xEC, 0xEF, 0xEF,
- 0xF1, 0xF1, 0xF2, 0xF2, 0xF4, 0xF4, 0xF7, 0xF7, 0xF8, 0xF8, 0xFB, 0xFB,
- 0xFD, 0xFD, 0xFE, 0xFE };
-
- for(size_t j = 0; j != m_data.size(); ++j)
- m_data[j] = ODD_PARITY[m_data[j]];
- }
-
-/*
-* Hex encode an OctetString
-*/
-std::string OctetString::as_string() const
- {
- return hex_encode(m_data.data(), m_data.size());
- }
-
-/*
-* XOR Operation for OctetStrings
-*/
-OctetString& OctetString::operator^=(const OctetString& k)
- {
- if(&k == this) { zeroise(m_data); return (*this); }
- xor_buf(m_data.data(), k.begin(), std::min(length(), k.length()));
- return (*this);
- }
-
-/*
-* Equality Operation for OctetStrings
-*/
-bool operator==(const OctetString& s1, const OctetString& s2)
- {
- return (s1.bits_of() == s2.bits_of());
- }
-
-/*
-* Unequality Operation for OctetStrings
-*/
-bool operator!=(const OctetString& s1, const OctetString& s2)
- {
- return !(s1 == s2);
- }
-
-/*
-* Append Operation for OctetStrings
-*/
-OctetString operator+(const OctetString& k1, const OctetString& k2)
- {
- secure_vector<uint8_t> out;
- out += k1.bits_of();
- out += k2.bits_of();
- return OctetString(out);
- }
-
-/*
-* XOR Operation for OctetStrings
-*/
-OctetString operator^(const OctetString& k1, const OctetString& k2)
- {
- secure_vector<uint8_t> out(std::max(k1.length(), k2.length()));
-
- copy_mem(out.data(), k1.begin(), k1.length());
- xor_buf(out.data(), k2.begin(), k2.length());
- return OctetString(out);
- }
-
-}
diff --git a/src/libs/3rdparty/botan/src/lib/base/symkey.h b/src/libs/3rdparty/botan/src/lib/base/symkey.h
deleted file mode 100644
index a010cc46644..00000000000
--- a/src/libs/3rdparty/botan/src/lib/base/symkey.h
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
-* OctetString
-* (C) 1999-2007 Jack Lloyd
-*
-* Botan is released under the Simplified BSD License (see license.txt)
-*/
-
-#ifndef BOTAN_SYMKEY_H_
-#define BOTAN_SYMKEY_H_
-
-#include <botan/secmem.h>
-#include <string>
-
-namespace Botan {
-
-/**
-* Octet String
-*/
-class BOTAN_PUBLIC_API(2,0) OctetString final
- {
- public:
- /**
- * @return size of this octet string in bytes
- */
- size_t length() const { return m_data.size(); }
- size_t size() const { return m_data.size(); }
-
- /**
- * @return this object as a secure_vector<uint8_t>
- */
- secure_vector<uint8_t> bits_of() const { return m_data; }
-
- /**
- * @return start of this string
- */
- const uint8_t* begin() const { return m_data.data(); }
-
- /**
- * @return end of this string
- */
- const uint8_t* end() const { return begin() + m_data.size(); }
-
- /**
- * @return this encoded as hex
- */
- std::string as_string() const;
-
- /**
- * XOR the contents of another octet string into this one
- * @param other octet string
- * @return reference to this
- */
- OctetString& operator^=(const OctetString& other);
-
- /**
- * Force to have odd parity
- */
- void set_odd_parity();
-
- /**
- * Create a new OctetString
- * @param str is a hex encoded string
- */
- explicit OctetString(const std::string& str = "");
-
- /**
- * Create a new random OctetString
- * @param rng is a random number generator
- * @param len is the desired length in bytes
- */
- OctetString(class RandomNumberGenerator& rng, size_t len);
-
- /**
- * Create a new OctetString
- * @param in is an array
- * @param len is the length of in in bytes
- */
- OctetString(const uint8_t in[], size_t len);
-
- /**
- * Create a new OctetString
- * @param in a bytestring
- */
- OctetString(const secure_vector<uint8_t>& in) : m_data(in) {}
-
- /**
- * Create a new OctetString
- * @param in a bytestring
- */
- OctetString(const std::vector<uint8_t>& in) : m_data(in.begin(), in.end()) {}
-
- private:
- secure_vector<uint8_t> m_data;
- };
-
-/**
-* Compare two strings
-* @param x an octet string
-* @param y an octet string
-* @return if x is equal to y
-*/
-BOTAN_PUBLIC_API(2,0) bool operator==(const OctetString& x,
- const OctetString& y);
-
-/**
-* Compare two strings
-* @param x an octet string
-* @param y an octet string
-* @return if x is not equal to y
-*/
-BOTAN_PUBLIC_API(2,0) bool operator!=(const OctetString& x,
- const OctetString& y);
-
-/**
-* Concatenate two strings
-* @param x an octet string
-* @param y an octet string
-* @return x concatenated with y
-*/
-BOTAN_PUBLIC_API(2,0) OctetString operator+(const OctetString& x,
- const OctetString& y);
-
-/**
-* XOR two strings
-* @param x an octet string
-* @param y an octet string
-* @return x XORed with y
-*/
-BOTAN_PUBLIC_API(2,0) OctetString operator^(const OctetString& x,
- const OctetString& y);
-
-
-/**
-* Alternate name for octet string showing intent to use as a key
-*/
-using SymmetricKey = OctetString;
-
-/**
-* Alternate name for octet string showing intent to use as an IV
-*/
-using InitializationVector = OctetString;
-
-}
-
-#endif