sha256.hpp
Go to the documentation of this file.
1 
10 #ifndef _SHA256_H_
11 #define _SHA256_H_
12 
13 #include "shax.hpp"
14 
15 
16 namespace cryptoTools {
17 
18 
25 class SHA256 : public SHAx
26 {
27 private:
32  uint32_t H[8];
33 
37 
38  uint32_t a;
39  uint32_t b;
40  uint32_t c;
41  uint32_t d;
42  uint32_t e;
43  uint32_t f;
44  uint32_t g;
45  uint32_t h;
46 
48 
51  std::vector<uint32_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 } // closing namespace
70 
71 #endif