8 #ifndef BOTAN_SKEIN_512_H_
9 #define BOTAN_SKEIN_512_H_
11 #include <botan/hash.h>
12 #include <botan/threefish_512.h>
32 const std::string& personalization =
"");
38 std::unique_ptr<HashFunction>
copy_state()
const override;
39 std::string
name()
const override;
40 void clear()
override;
45 SKEIN_PERSONALIZATION = 8,
46 SKEIN_PUBLIC_KEY = 12,
47 SKEIN_KEY_IDENTIFIER = 16,
53 void add_data(
const uint8_t input[],
size_t length)
override;
54 void final_result(uint8_t out[])
override;
56 void ubi_512(
const uint8_t msg[],
size_t msg_len);
59 void reset_tweak(type_code
type,
bool is_final);
61 std::string m_personalization;
64 std::unique_ptr<Threefish_512> m_threefish;
65 secure_vector<uint64_t> m_T;
66 secure_vector<uint8_t> m_buffer;
int(* final)(unsigned char *, CTX *)
#define BOTAN_PUBLIC_API(maj, min)
size_t hash_block_size() const override
virtual std::string name() const =0
virtual HashFunction * clone() const =0
virtual std::unique_ptr< HashFunction > copy_state() const =0
size_t output_length() const override
#define BOTAN_FUTURE_INTERNAL_HEADER(hdr)