diff options
Diffstat (limited to 'src/libs/3rdparty/botan/src/lib/base/buf_comp.h')
-rw-r--r-- | src/libs/3rdparty/botan/src/lib/base/buf_comp.h | 184 |
1 files changed, 0 insertions, 184 deletions
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 a6cc84ba35..0000000000 --- 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 |