Commit Graph

57 Commits

Author SHA1 Message Date
surtur ad6c01daaa
remove unused event_scheduler
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-27 20:46:27 +01:00
surtur 2b1349b256
cmake: add -fno-signed-zeros, -ffunction-sections
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-27 20:32:57 +01:00
surtur d99ef986bf
cmake: add -Wvla in Debug builds
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-27 20:28:16 +01:00
surtur 1517b150ed
cmake: CMAKE_BUILD_TYPE MATCHES -> STREQUAL
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-26 17:07:34 +01:00
surtur 7d856dab8e
cmake: use clang-tidy with extra-arg '-std=c++20'
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-24 10:31:16 +01:00
surtur 8b446d4bfe
cmake: update clang-tidy options (speed,relevance)
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-20 04:21:47 +01:00
surtur 706176bcc4
cmake: add libs using target_include_directories
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-17 00:28:52 +01:00
surtur bb1d895d4e
cmake: switch to alt. compiler detection mechanism
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-14 07:02:12 +01:00
surtur 65882cad15
cmake: only run TSan on non-SAN,TIDY Debug builds
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-14 06:58:49 +01:00
surtur ad71199e1a
cmake: look for fmtlib system pkg first
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-14 04:48:48 +01:00
surtur a2020d212d
cmake: add -W{conversion,shadow,cast-qual}
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-14 04:24:43 +01:00
surtur 01a9797569
cmake: ThreadSan on (NOT SAN), avoid *San clashes
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-14 04:22:32 +01:00
surtur 97b178f243
cmake: -Wformat -> -Wformat=2
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-14 04:11:57 +01:00
surtur dec7875276
cmake: look for threads lib in a portable way
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-14 04:09:44 +01:00
surtur 03578f9016
accumulator: refactor entropy_src,add files
All checks were successful
continuous-integration/drone/push Build is passing
* add event_scheduler_impl.h and properly override its base class
* add urandom_entropy_src.cpp, move there logic from header
* add urandom_entropy_src.cpp to CMakeLists.txt
* add unique_ptr per impl: one for both EventSchedulerImpl and
  EventAdderImpl each
* wrap a call in reinterpret_cast and reformat code
* add missing includes (best effort)
2022-01-13 05:40:33 +01:00
surtur 795b9ffe54
add proper SeedFileManager implementation
All checks were successful
continuous-integration/drone/push Build is passing
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
surtur e7cce999a0
ci: fix git submodule update --init race condition
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-14 04:41:43 +01:00
surtur ef418cf89c
fmt::fmt: header-only -> statically linked lib
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-13 05:50:56 +01:00
surtur 04e088c07f
cmake: reindent;add vim modeline
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-07 17:45:05 +01:00
surtur 5ad8e610a4
cmake: integrate iwyu, if/when present
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-07 06:20:26 +01:00
surtur d4c7c61ac4
cmake,makefile: think of clang++, too
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-07 05:14:56 +01:00
surtur 19d5ff0f22
cmake,makefile: SAN,TIDY,VALGRIND opts;clean turbo
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-07 03:42:42 +01:00
surtur 554030bbaa
cmake: a little refactor
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-04 05:33:14 +01:00
surtur 55cb3b6ec7
chore(cmake): improve legibility
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-01 07:11:21 +01:00
surtur 928011dd54
chore(cmake): record gcc switches for debugging
All checks were successful
continuous-integration/drone/push Build is passing
2021-12-30 22:34:22 +01:00
surtur 6408b1ded7
add fmtlog library
All checks were successful
continuous-integration/drone/push Build is passing
"fmtlog is a performant fmtlib-style logging library with latency in nanoseconds."
ref: https://github.com/MengRao/fmtlog
2021-12-30 22:30:41 +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 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 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 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 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 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 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 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 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
surtur d942e06263
cmake: compile PIC with "-fPIC"
All checks were successful
continuous-integration/drone/push Build is passing
2021-11-20 22:31:55 +01:00
surtur e531aa6289
cmake: print version
All checks were successful
continuous-integration/drone/push Build is passing
2021-11-20 22:31:55 +01:00
surtur bd421295c4
feat: use fmt instead of iostreams
All checks were successful
continuous-integration/drone/push Build is passing
switch to fmt - "A modern formatting library" - for fun and profit,
currently in header-only configuration.

ref: https://github.com/fmtlib/fmt

closes #5
closes #4
2021-11-18 22:05:05 +01:00
surtur 9fd35eee93
cmake: require the declared cxx standard
All checks were successful
continuous-integration/drone/push Build is passing
2021-11-18 19:49:15 +01:00
surtur b934b11aa9
cmake(release): harden the build
All checks were successful
continuous-integration/drone/push Build is passing
2021-11-15 23:07:59 +01:00
surtur 0199fbd675
cmake: optimize for debugging with -Og
All checks were successful
continuous-integration/drone/push Build is passing
2021-11-15 23:04:37 +01:00
surtur bad86c31df
refactor(-lcryptopp): use cmake's facilities
All checks were successful
continuous-integration/drone/push Build is passing
this means that all builds configured with cmake (not just those called
with our custom development makefile) are properly linked with cryptopp
2021-11-13 00:13:19 +01:00
surtur ea11801789
add fortuna class
All checks were successful
continuous-integration/drone/push Build is passing
2021-11-10 23:58:42 +01:00
surtur 2bab9e7afa
cmake: use lld if available
All checks were successful
continuous-integration/drone/push Build is passing
the find "query" is a little naive but hey, we're looking at the usual
place. the purpose of this change is iteration speedup and as lld is the
quickest kid on the block, we're using it.
2021-11-02 04:40:07 +01:00