in fortuna, a use of 128bit integer is necessary, which also violates ISO C++:
"warning: ISO C++ does not support ‘__int128’ for ‘ctr’ [-Wpedantic]"
enclosing only the problematic blocks in ignore is chosen as a superior
course of action, compared to completely removing "-Wpedantic" from
CXX_FLAGS, as proposed in #2, as that would prevent any further
"pedantic" warnings from any further code to be shown.
this way, it is assured that the warning "ignore" is activated after
push the push, after which the environment is returned back to its
previous state with a pop, allowing any further warnings to appear.
closes#2
* project-wide refactor to accomodate removal of "using namespace xyz"
to stop polluting top-level namespace with "std" as recommended by the
Google C++ style guide.
* use a pre-commit hook to enforce this
ref:
https://google.github.io/styleguide/cppguide.html#Namespaces
* link against cryptopp
* use both sha2 and sha3 generation functions
* try calling do_sha() directly
* call reseed() that in turn calls do_sha()
* return a bogus number, not the proper digest for now (see TODOs)
cryptopp needed to be installed to archlinux for the valgrind step to
pass successfully
squashed the following:
commit a28354d585
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
commit 926216fad3
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
commit 01eadae32f
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
* the purpose is to subdivide the global scope
* use 'fortuna' as the top-level namespace
* use 'generator' namespace for the generator functions
* wrap the entire file after includes
multiple changes combined in a single commit, I know...
also, a move towards the use of OOP paradigm is imminent as we now have
to do rewrites at multiple places in the code for any minor change