surtur
f64295f052
All checks were successful
continuous-integration/drone/push Build is passing
squashed the following: commita28354d585
Author: surtur <a_mirre@utb.cz> Date: Wed Nov 3 02:14:35 2021 +0100 chore: make G_state a private structure * make G_state private * move protected section behind private * also do cleanup a little -> k and ctr won't exist as part of the generator outside of the G_state struct commit926216fad3
Author: surtur <a_mirre@utb.cz> Date: Wed Nov 3 01:37:28 2021 +0100 chore: make methods aware of objects as a consequence we stopped returning the generator state from every function and equally stopped using it as a parameter to every generator method that handles the state in any way commit01eadae32f
Author: surtur <a_mirre@utb.cz> Date: Tue Nov 2 05:10:58 2021 +0100 feat: move from structural to object paradigm * declare and implement Generator class and member methods * create an instance of Generator in main * call initialize_generator() from main
37 lines
672 B
C++
37 lines
672 B
C++
#ifndef FORTUNA_GENERATOR_H
|
|
#define FORTUNA_GENERATOR_H
|
|
|
|
#include <string>
|
|
|
|
namespace fortuna {
|
|
namespace generator {
|
|
|
|
using namespace std;
|
|
|
|
class Generator {
|
|
public:
|
|
void initialize_generator();
|
|
|
|
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;
|
|
|
|
auto generate_blocks(int k_blocks) -> 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
|