All checks were successful
continuous-integration/drone/push Build is passing
this commit adds a (nearly) complete implementation of the generator. * wrap calls to generator in a fortuna class method random_data * calls generator's method generate_random_data, that internally calls generate_blocks * use a proper 256bit key in G_state * add reseed method implementation * call a reseed in initialize_generator * do_sha returns proper digest now * add proper do_crypto implementation * call generate_blocks internally * handle re-keying * optimise header includes TODO: there are still many commented (enabled on demand) debugging statements -> TO BE REMOVED
32 lines
632 B
C++
32 lines
632 B
C++
#ifndef FORTUNA_FORTUNA_CPP
|
|
#define FORTUNA_FORTUNA_CPP
|
|
|
|
#include "fortuna.h"
|
|
|
|
#include <cryptopp/osrng.h>
|
|
#include <cryptopp/hex.h>
|
|
#include <cryptopp/filters.h>
|
|
#include <cryptopp/serpent.h>
|
|
#include <cryptopp/ccm.h>
|
|
#include <fmt/core.h>
|
|
|
|
#include <cassert>
|
|
#include <cstring>
|
|
|
|
|
|
namespace fortuna {
|
|
Fortuna::Fortuna(){
|
|
}
|
|
Fortuna::~Fortuna() = default;
|
|
|
|
|
|
auto Fortuna::random_data(unsigned int n_bytes) -> void {
|
|
std::string n{gen.generate_random_data(n_bytes)};
|
|
fmt::print("got you {} proper bytes from generate_random_data -> {}\n",
|
|
n_bytes, n);
|
|
} //random_data
|
|
|
|
} // namespace fortuna
|
|
|
|
#endif//FORTUNA_FORTUNA_CPP
|