Botan  1.10.9
bmw_512.h
Go to the documentation of this file.
1 /*
2 * Blue Midnight Wish 512 (Round 2 tweaked)
3 * (C) 2009 Jack Lloyd
4 *
5 * Distributed under the terms of the Botan license
6 */
7 
8 #ifndef BOTAN_BMW_512_H__
9 #define BOTAN_BMW_512_H__
10 
11 #include <botan/mdx_hash.h>
12 
13 namespace Botan {
14 
15 /**
16 * Blue Midnight Wish 512 (Round 2 tweaked version)
17 */
18 class BOTAN_DLL BMW_512 : public MDx_HashFunction
19  {
20  public:
21  std::string name() const { return "BMW512"; }
22  size_t output_length() const { return 64; }
23  HashFunction* clone() const { return new BMW_512; }
24 
25  void clear();
26 
27  BMW_512() : MDx_HashFunction(128, false, true), H(16), M(16), Q(32)
28  { clear(); }
29  private:
30  void compress_n(const byte input[], size_t blocks);
31  void copy_out(byte output[]);
32 
33  SecureVector<u64bit> H, M, Q;
34  };
35 
36 }
37 
38 #endif
std::string name() const
Definition: bmw_512.h:21
HashFunction * clone() const
Definition: bmw_512.h:23
unsigned char byte
Definition: types.h:22
size_t output_length() const
Definition: bmw_512.h:22