sha512.hpp
Go to the documentation of this file.
1 
10 #ifndef _SHA512_H_
11 #define _SHA512_H_
12 
13 #include "shax.hpp"
14 
15 
16 namespace cryptoTools {
17 
18 
25 class SHA512 : public SHAx
26 {
27 private:
31  uint64_t H[8];
32 
33 
37 
38  uint64_t a;
39  uint64_t b;
40  uint64_t c;
41  uint64_t d;
42  uint64_t e;
43  uint64_t f;
44  uint64_t g;
45  uint64_t h;
47 
51  std::vector<uint64_t> M;
52 
56  uint64_t l;
57 
58 public:
59  // Everything that is public is inherited from SHAx.
60  void preprocess(std::vector<uint8_t> initialMessage);
61  void round(unsigned int counter);
62  void hash(std::vector<uint8_t> initialMessage);
63  std::vector<uint8_t> getHash();
64  std::string getType();
65  uint32_t getHashLength();
66 
67 };
68 
69 
70 } // closing namespace
71 
72 #endif
73 
74