Botan 1.10.17

skein_512.h
Go to the documentation of this file.
1 /*
2 * The Skein-512 hash function
3 * (C) 2009 Jack Lloyd
4 *
5 * Distributed under the terms of the Botan license
6 */
7
8 #ifndef BOTAN_SKEIN_512_H__
9 #define BOTAN_SKEIN_512_H__
10
11 #include <botan/secmem.h>
12 #include <botan/hash.h>
13 #include <string>
14
15 namespace Botan {
16
17 /**
18 * Skein-512, a SHA-3 candidate
19 */
20 class BOTAN_DLL Skein_512 : public HashFunction
21 {
22 public:
23 /**
24 * @param output_bits the output size of Skein in bits
25 * @param personalization is a string that will paramaterize the
26 * hash output
27 */
28 Skein_512(size_t output_bits = 512,
29 const std::string& personalization = "");
30
31 size_t hash_block_size() const { return 64; }
32 size_t output_length() const { return output_bits / 8; }
33
34 HashFunction* clone() const;
35 std::string name() const;
36 void clear();
37 private:
38 void add_data(const byte input[], size_t length);
39 void final_result(byte out[]);
40
41 std::string personalization;
42 size_t output_bits;
43
44 SecureVector<u64bit> H;
45 SecureVector<u64bit> T;
46 SecureVector<byte> buffer;
47 size_t buf_pos;
48 };
49
50 }
51
52 #endif
Botan::Skein_512::output_length
size_t output_length() const
Definition: skein_512.h:32
Botan::byte
unsigned char byte
Definition: types.h:22
Botan::Skein_512
Definition: skein_512.h:20
Botan::Skein_512::hash_block_size
size_t hash_block_size() const
Definition: skein_512.h:31
Botan
Definition: algo_base.h:14
Botan::HashFunction
Definition: hash.h:20
Botan::SecureVector< u64bit >