a C++ take on Fortuna CSPRNG implementation, as devised by Niels Fergusson and Bruce Schneier in Practical Cryptography 🍀
This repository has been archived on 2022-02-10. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
surtur 795b9ffe54
All checks were successful
continuous-integration/drone/push Build is passing
add proper SeedFileManager implementation
a couple of fixes/necessary additions were made along the way, namely:
* add a default constructor for DoTask
* rework of the mutex/lock_guard/unique_lock logic in generator/fortuna
* add .fortuna.seed to the list of the ignored (.gitignore)
* add helper function to util for convertin bytes to blocks (16b==block)
* add a wrapper for around the SeedFileManager instance and a way to see
  if it's dead or alive (so that it can be restarted if needed)
* the timeout for saving of the seed file has been decreased to a more
  reasonable value than 10 minutes (I wouldn't want to lose potentially
  up to 10 minutes worth of entropy)
2022-01-09 11:58:38 +01:00
lib add fmtlog library 2021-12-30 22:30:41 +01:00
.clang-format initial commit 2021-10-24 21:29:49 +02:00
.clang-tidy chore(clang-tidy): unify flags 2021-12-10 18:57:25 +01:00
.drone.starlark ci: rm 'build on alpine' step 2022-01-10 05:02:44 +01:00
.gitattributes add .gitattributes file 2021-10-24 21:34:16 +02:00
.gitignore add proper SeedFileManager implementation 2022-01-09 11:58:38 +01:00
.gitmodules feat: use fmt instead of iostreams 2021-11-18 22:05:05 +01:00
.pre-commit-config.yaml pre-commit: add check-yaml,edit cppcheck hook 2022-01-06 22:12:50 +01:00
CMakeLists.txt add proper SeedFileManager implementation 2022-01-09 11:58:38 +01:00
LICENSE initial commit 2021-10-24 21:29:49 +02:00
Makefile makefile(clean tgt): follow symlinks (build dir) 2022-01-07 21:04:54 +01:00
accumulator.cpp accumulator: make ctor noexcept 2022-01-02 07:21:25 +01:00
accumulator.h chore(accumulator): reorder includes 2022-01-06 00:30:46 +01:00
do_task.cpp refactor(DoTask): formatting and naming 2022-01-01 07:38:06 +01:00
do_task.h add proper SeedFileManager implementation 2022-01-09 11:58:38 +01:00
entropy_src.h entropy_src: add max_event_length variable 2022-01-02 07:35:00 +01:00
event_adder.h add EventAdder interface 2021-12-06 01:02:43 +01:00
event_adder_impl.h chore(event_adder_impl): pool int -> uint8_t 2021-12-11 20:16:24 +01:00
event_scheduler.h accumulator: add event_scheduler,entropy_src ifces 2021-12-11 02:12:49 +01:00
fortuna.cpp add proper SeedFileManager implementation 2022-01-09 11:58:38 +01:00
fortuna.h add proper SeedFileManager implementation 2022-01-09 11:58:38 +01:00
generator.cpp add proper SeedFileManager implementation 2022-01-09 11:58:38 +01:00
generator.h add proper SeedFileManager implementation 2022-01-09 11:58:38 +01:00
main.cpp fortuna: add generator service 2022-01-03 07:49:53 +01:00
pool.cpp handle PRNG state in R_state + accumulator basis 2021-12-04 00:40:39 +01:00
pool.h pool: no copy constructor 2022-01-03 02:49:23 +01:00
seed_file_management.cpp add proper SeedFileManager implementation 2022-01-09 11:58:38 +01:00
seed_file_management.h add proper SeedFileManager implementation 2022-01-09 11:58:38 +01:00
urandom_entropy_src.h urandom_entropy_src: add service method prototype 2022-01-02 07:46:28 +01:00
util.h add proper SeedFileManager implementation 2022-01-09 11:58:38 +01:00