Commit Graph

171 Commits

Author SHA1 Message Date
surtur b5601acfbd
refactor: non-semantic cleanup
All checks were successful
continuous-integration/drone/push Build is passing
2021-12-29 03:55:01 +01:00
surtur 2086861776
accumulator: implement add_source()
All checks were successful
continuous-integration/drone/push Build is passing
2021-12-29 03:49:36 +01:00
surtur 234b87ff1f
accumulator: use a Generator pointer
All checks were successful
continuous-integration/drone/push Build is passing
2021-12-29 02:56:57 +01:00
surtur 01c402300c
accumulator: add generator-interacting methods
All checks were successful
continuous-integration/drone/push Build is passing
..and a way to work with the generator
2021-12-13 13:22:50 +01:00
surtur 129516a48f
add seed_file_management.h holding SeedFileManager
All checks were successful
continuous-integration/drone/push Build is passing
2021-12-13 05:59:27 +01:00
surtur 04bbf16731
pool: set_s -> append_s as it fits better
All checks were successful
continuous-integration/drone/push Build is passing
2021-12-13 05:24:59 +01:00
surtur af1b4cf5ad
pool: make get_id const as it just reads
All checks were successful
continuous-integration/drone/push Build is passing
2021-12-13 05:24:17 +01:00
surtur 7eaaef2fdb
fortuna: handle reseeds+clear pools for seed
All checks were successful
continuous-integration/drone/push Build is passing
* actually clear out entropy of the pools before a reseed
* correctly prepare the seed for the reseed
* add a couple of helper methods to Pool that assist with getting
  length, retrieving and clearing of the collected entropy
* catch exceptions in main(), handle them gracefully
2021-12-13 05:11:17 +01:00
surtur 65c476dbd6
add Util class + perform general refactor
All checks were successful
continuous-integration/drone/push Build is passing
* rm duplicate do_sha() code, consolidate in Util
* make reseed() public so that it can be called from outside
* rm reseed() from do_crypto() where it has no place
2021-12-13 05:10:07 +01:00
surtur da48e61cc2
add da_threading lib
All checks were successful
continuous-integration/drone/push Build is passing
retrieved from https://stackoverflow.com/a/46135882
original author LWimsey <https://stackoverflow.com/users/6651824/lwimsey> (c) 2017
edited and made into a header-only lib by wanderer <a_mirre at utb.cz> (c) 2021
2021-12-12 22:50:06 +01:00
surtur cf41d323a4
fortuna: add task runner "do_task"; link pthread
All checks were successful
continuous-integration/drone/push Build is passing
2021-12-12 18:42:47 +01:00
surtur 2a67a37cbe
generator: add is_seeded method
All checks were successful
continuous-integration/drone/push Build is passing
2021-12-12 18:40:29 +01:00
surtur b55ca33e24
chore(fortuna): add random_data() checks, batch 1
All checks were successful
continuous-integration/drone/push Build is passing
2021-12-12 06:14:58 +01:00
surtur d907c9db6e
generator: tweak generate_random_data logic
All checks were successful
continuous-integration/drone/push Build is passing
2021-12-11 21:33:42 +01:00
surtur fb02ef9a23
generator: make dtor noexcept
All checks were successful
continuous-integration/drone/push Build is passing
2021-12-11 20:43:48 +01:00
surtur 55a19e6681
chore(event_adder_impl): pool int -> uint8_t
All checks were successful
continuous-integration/drone/push Build is passing
2021-12-11 20:16:24 +01:00
surtur 2d20242b3e
accumulator(pool): (partly) implement add_entropy
All checks were successful
continuous-integration/drone/push Build is passing
2021-12-11 02:53:47 +01:00
surtur 0ccd60ce1b
Merge branch 'fixing-generator' into add-random-sources
All checks were successful
continuous-integration/drone/push Build is passing
* fixing-generator:
  generator: use a proper uin64_t literal
  chore(generator): erase -> clear
  generator: memcpy -> memmove
  fix(generator): incorrect copying, no protections
2021-12-11 02:35:06 +01:00
surtur a6719d4947
accumulator: add add_source
All checks were successful
continuous-integration/drone/push Build is passing
2021-12-11 02:27:52 +01:00
surtur d0e9b08886
accumulator: add urandom_entropy_src
All checks were successful
continuous-integration/drone/push Build is passing
2021-12-11 02:24:40 +01:00
surtur a5b988ba71
accumulator: add event_scheduler,entropy_src ifces
All checks were successful
continuous-integration/drone/push Build is passing
2021-12-11 02:12:49 +01:00
surtur 2fbf5464a0
fortuna: erase -> clear
All checks were successful
continuous-integration/drone/push Build is passing
2021-12-11 01:20:34 +01:00
surtur 25cbddf41f
generator: use a proper uin64_t literal
All checks were successful
continuous-integration/drone/push Build is passing
2021-12-11 01:13:01 +01:00
surtur b9676226c5
chore(generator): erase -> clear
All checks were successful
continuous-integration/drone/push Build is passing
2021-12-11 01:10:14 +01:00
surtur a7e8caa26e
generator: memcpy -> memmove
All checks were successful
continuous-integration/drone/push Build is passing
2021-12-11 01:04:57 +01:00
surtur 595245fbce
fix(generator): incorrect copying, no protections
All checks were successful
continuous-integration/drone/push Build is passing
* use try-catch whenever possible
* perform memcpy operations in the right direction
* make greater use of local constants
* use more of the braced initializations
* there were memcpy operations of incorrect sizes in place, particularly
  in regard to generator key (G.k) and counter (G.ctr), which resulted
  in key bytes being set to garbage
2021-12-10 20:02:30 +01:00
surtur 801d605e2a
chore(clang-tidy): unify flags
All checks were successful
continuous-integration/drone/push Build is passing
also add a status message to CMake's output
2021-12-10 18:57:25 +01:00
surtur 053d2187a2
chore(accumulator): make use of init_pool_num
All checks were successful
continuous-integration/drone/push Build is passing
2021-12-09 14:11:39 +01:00
surtur 8b4cd4b6e8
fortuna(random_data): time-tracking precision++
All checks were successful
continuous-integration/drone/push Build is passing
using floats does wonders
2021-12-08 23:17:37 +01:00
surtur 82288fe20d
chore(event_adder_impl): reuse constant p_size
All checks were successful
continuous-integration/drone/push Build is passing
size of pools array will stay the same anyway
2021-12-08 04:19:22 +01:00
surtur c401a47ca7
event_adder_impl: loop with a pre-computed value
All checks were successful
continuous-integration/drone/push Build is passing
2021-12-08 04:07:14 +01:00
surtur 872e6f7f9f
add event_adder_impl
All checks were successful
continuous-integration/drone/push Build is passing
2021-12-08 03:58:18 +01:00
surtur 33f6620662
chore(pool): stop spamming at initialization
All checks were successful
continuous-integration/drone/push Build is passing
2021-12-08 03:40:08 +01:00
surtur 0e3caebb6d
chore(fortuna): formatting
[skip ci]
2021-12-08 03:31:47 +01:00
surtur f02952d72a
fortuna(random_data): add basic time tracking
All checks were successful
continuous-integration/drone/push Build is passing
2021-12-07 15:55:29 +01:00
surtur 9f799c83a9
fortuna: add incr_reseed_ctr
All checks were successful
continuous-integration/drone/push Build is passing
2021-12-07 15:46:01 +01:00
surtur b96ce5d644
fortuna: wrap pool initialization in a try-catch
All checks were successful
continuous-integration/drone/push Build is passing
2021-12-07 02:48:37 +01:00
surtur bc5bb6e700
add EventAdder interface
All checks were successful
continuous-integration/drone/push Build is passing
will be used as a base implementations of sources of random events
2021-12-06 01:02:43 +01:00
surtur 5557f0d9e6
refactor(generator): clean up includes a little
All checks were successful
continuous-integration/drone/push Build is passing
2021-12-06 00:08:32 +01:00
surtur b14600c352
makefile: refactor "clean" target; add "distclean"
All checks were successful
continuous-integration/drone/push Build is passing
* clean now just removes the object files, dwo debugging objects, .cmake
  and intermediary .bin files but keeps CMakeCache and similar
* a new target - distclean - is introduced to do what was previously
  done by "clean", essentially: completely remove the build folders
2021-12-05 15:27:47 +01:00
surtur 7f05984946
integrate clang-tidy into cmake
All checks were successful
continuous-integration/drone/push Build is passing
* consolidate everything with the makefile, the "tidy" target now just
  sets the env var that is checked for in CMakeLists
* rm clang-tidy from pre-commit as it's run as part of the "test"
  makefile target later in the file anyway
2021-12-05 05:13:07 +01:00
surtur 53645ea160
generator: add more try-catch blocks internally
All checks were successful
continuous-integration/drone/push Build is passing
one around initialization and another when calling reseed()
2021-12-05 03:13:47 +01:00
surtur cf0e548315
pre-commit: exclude the lib folder
[skip ci]
2021-12-05 03:10:50 +01:00
surtur 6f6b3cb8e2
generator: wrap the initialization in a try-catch
All checks were successful
continuous-integration/drone/push Build is passing
2021-12-05 02:00:25 +01:00
surtur a1cbbb209e
handle PRNG state in R_state + accumulator basis
All checks were successful
continuous-integration/drone/push Build is passing
* handle the PRNG state with R_state nested class
* add a private property R holding PRNG state to Fortuna
* add R_state properties as defined in Cryptography Engineering:
  * a generator instance
  * a reseed counter
  * 32 pools that the collected entropy is to be distributed over

* add initial definition of the Pool object and its initialization

* attempt to initialize PRNG in Fortuna constructor. wrap the
  initialization call in a try-catch block like a cultured person
* erase the string used to print data from random_data() after it's been
  used
2021-12-04 00:40:39 +01:00
surtur 72bb378709
pre-commit: add 'make san' step
All checks were successful
continuous-integration/drone/push Build is passing
making sure to build with sanitize flags before committing
2021-12-03 20:34:45 +01:00
surtur 77f1fe4c56
cmake,makefile: sanitize!
All checks were successful
continuous-integration/drone/push Build is passing
as per #3
2021-12-02 18:34:07 +01:00
surtur e72aa06813
executable hardening v2
All checks were successful
continuous-integration/drone/push Build is passing
* enable PIE
* pass flags to linker based on the build type
* enable LTO
2021-12-02 18:25:15 +01:00
surtur bb12cf7b56
cmake: always set -Wall
All checks were successful
continuous-integration/drone/push Build is passing
2021-12-02 14:50:39 +01:00
surtur b15e1e9a55
harden executable
All checks were successful
continuous-integration/drone/push Build is passing
* fortify source
* link with "-pie"
* split stack
* set stack-protector to all
2021-11-30 15:52:17 +01:00