Commit Graph

305 Commits

Author SHA1 Message Date
surtur 8cafbc7706
fix: -Wextra-semi 2022-02-03 00:49:40 +01:00
surtur a3daa722da
chore: print info msgs to stderr 2022-02-03 00:37:20 +01:00
surtur 0e4d1aeef0
cmake: enable building with '-pedantic' 2022-01-30 23:00:13 +01:00
surtur 80fcb13e8b
generator: use least-significant-byte-first ctr 2022-01-30 22:56:08 +01:00
surtur c6bf1c7f52
generator: use de_hex() 2022-01-30 22:40:21 +01:00
surtur fa9dc26f66
Util: add de_hex() fun 2022-01-30 21:56:20 +01:00
surtur dc1ab343eb
rename: set_gen() -> set_gen_ptr() 2022-01-30 20:48:08 +01:00
surtur 01238c805a
generator: change exit(1) -> throw 2022-01-30 00:00:20 +01:00
surtur df4c9d7bdb
accumulator: add noexcept where reasonable 2022-01-29 23:54:26 +01:00
surtur 74f8af7bfc
accumulator: rm unused pools_service() 2022-01-27 23:59:56 +01:00
surtur 19ea0076a3
accumulator: rm unused accumulator_service() 2022-01-27 23:59:38 +01:00
surtur 1a02256b2b
generator: add ctr_inc() fun 2022-01-27 22:54:53 +01:00
surtur 715523eb1a
generator: add std::array<std::byte, 16> counter 2022-01-27 22:48:58 +01:00
surtur c9218e47e8
chore(main): rm unused var 2022-01-27 21:22:50 +01:00
surtur 71f61085dd
cmake: change -mtune generic -> native 2022-01-27 21:19:50 +01:00
surtur ad6c01daaa
remove unused event_scheduler 2022-01-27 20:46:27 +01:00
surtur 2b1349b256
cmake: add -fno-signed-zeros, -ffunction-sections 2022-01-27 20:32:57 +01:00
surtur d99ef986bf
cmake: add -Wvla in Debug builds 2022-01-27 20:28:16 +01:00
surtur a1beb2893d
generator: make sure not to return data unseeded 2022-01-26 22:59:37 +01:00
surtur 8f0f29d190
generator: make some internal vars const 2022-01-26 22:43:22 +01:00
surtur c40806e68d
generator: create permanent Serpent encryption obj 2022-01-26 22:35:45 +01:00
surtur 1517b150ed
cmake: CMAKE_BUILD_TYPE MATCHES -> STREQUAL 2022-01-26 17:07:34 +01:00
surtur c9398a0bf4
fix(sfm): use correct size in cast 2022-01-24 19:25:04 +01:00
surtur 7d856dab8e
cmake: use clang-tidy with extra-arg '-std=c++20' 2022-01-24 10:31:16 +01:00
surtur a3251a7c8b
fix(pool): properly encode full event 2022-01-24 03:55:19 +01:00
surtur d401bb6c25
add chance namespace; handle signals 2022-01-23 22:22:28 +01:00
surtur 710ee80f91
chore(pool): format 2022-01-23 22:12:17 +01:00
surtur a68166da57
fortuna: run svcs while(continue_running.load()) 2022-01-23 20:47:42 +01:00
surtur 5693b24ee0
fortuna: sleep only if sfm svc is running 2022-01-23 20:45:06 +01:00
surtur 2c56d9af27
fortuna: std::atomic<bool> continue_running 2022-01-23 20:39:11 +01:00
surtur e706de7702
fortuna: use a once_flag in initialize_prng() 2022-01-23 20:37:15 +01:00
surtur 01de51dc73
fortuna: assert i==Accumulator::init_pool_num==0 2022-01-23 20:31:58 +01:00
surtur f48927738d
sfm: assert checkup_interval < seed_write_interval 2022-01-23 20:27:14 +01:00
surtur 8b9fbe1e1e
sfm: add get_write_interval() const member func. 2022-01-23 20:18:59 +01:00
surtur b8f76886eb
sfm: make write_interval const, as in unchanging 2022-01-23 20:17:36 +01:00
surtur fa4c9d048e
fortuna: use die_point latch
wait on the latch in Fortuna's dtor until threads finish execution
2022-01-23 20:11:11 +01:00
surtur 680272bed4
fortuna: thread -> jthread; add die_point latch 2022-01-23 20:07:49 +01:00
surtur 06deab6ef1
chore(fortuna): make sync_point latch private 2022-01-23 20:00:30 +01:00
surtur 47e893b674
accumulator: rm commented std::move(&gen) 2022-01-22 21:42:44 +01:00
surtur 3bf79b49fd
accumulator: make reg bool atomic 2022-01-22 21:39:45 +01:00
surtur 9f95ebe3b1
pool: make all_ok atomic 2022-01-22 21:33:49 +01:00
surtur e452a63b4a
pool: add call_once to initialize_pool() mem. fun
* also protect set_id() member function with a std::lock_guard, which
  holds mtx for the time of initialization
2022-01-22 21:17:36 +01:00
surtur 14462e6b16
chore(pool): rm unimportant print statements 2022-01-22 20:40:47 +01:00
surtur 4f5072d276
fortuna: add final specifier 2022-01-22 20:18:46 +01:00
surtur 65abd3b2f3
chore: rm redundant da_pools, using shared_ptr 2022-01-22 19:57:51 +01:00
surtur 580531acf2
chore: rm {accumulator,generator}_service, threads 2022-01-22 19:27:58 +01:00
surtur 52de785399
fortuna: properly handle reseeds
* move reseed_ctr and related member functions to Accumulator

* create a std::shared_ptr<Accumulator> to Fortuna's internal
  Accumulator object and feed that into SeedFileManager instead of a
  reference, which used to get copied to a new object in SeedFileManager

* make Accumulator non-copyable, since it's only to be created once.
  instead, a shared_ptr is used to facilitate multiple-access

* handle concurrency in Accumulator as the reseed_ctr-related functions
  can now be accessed from both Fortuna and SeedFileManager, declare mtx
  as mutable (since it's also used in a const function)

* use std::scoped_lock in 'initialize_prng()' to safely lock both mutexes
2022-01-22 18:36:51 +01:00
surtur 760fd1bd9c
fortuna: std::unique_lock x2 -> std::scoped_lock 2022-01-21 20:55:44 +01:00
surtur 4c77810535
chore(fortuna): lock print_mtx in {} scopes 2022-01-21 20:44:24 +01:00
surtur 3db8100089
chore(fortuna): rm dbg l_ctr 2022-01-21 19:51:54 +01:00