#ifndef FORTUNA_GENERATOR_H #define FORTUNA_GENERATOR_H #include namespace fortuna { namespace generator { using namespace std; class Generator { public: void initialize_generator(); auto generate_blocks(unsigned int k_blocks) -> string; private: struct G_state; auto reseed(const string& s) -> void; auto do_sha(int64_t key_with_seed) -> int64_t; auto do_crypto(int64_t k, unsigned __int128 ctr) -> string; /* n is the number of random bytes to generate */ auto generate_random_data(uint n) -> string; protected: auto get_state() -> Generator::G_state; }; // class generator } //namespace generator } //namespace fortuna #endif//FORTUNA_GENERATOR_H