Commit Graph

69 Commits

Author SHA1 Message Date
surtur c40806e68d
generator: create permanent Serpent encryption obj
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-26 22:35:45 +01:00
surtur 606527618d
gen: simplify time_to_reseed() return logic
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-20 08:40:42 +01:00
surtur 674ceedc4a
gen: mtx -> mutable recursive_mtx to all functions
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-20 08:36:02 +01:00
surtur 55659bd243
generator: pass param by const&
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-17 07:22:19 +01:00
surtur b4d7cb3dfb
chore: rm trailing ;
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-17 04:03:06 +01:00
surtur 7fca4481c8
generator: implement time_to_reseed() fun
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-15 13:35:56 +01:00
surtur 57fae8f582
generate_random_data: return early on invalid arg
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-14 05:44:37 +01:00
surtur 53cde1371f
generator: improve iteration
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-14 05:40:22 +01:00
surtur e0448d6d08
fortuna,generator: better printing
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-14 05:20:52 +01:00
surtur 0bac9f83d3
generator: fix generate_random_data() function
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-14 01:09:24 +01:00
surtur a0df93c9ec
clang-format: BinPack{Arguments,Parameters}: false
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-13 06:04:18 +01:00
surtur 2c3d5b4528
g: simplify generate_random_data() hexdecode block
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-13 02:15:23 +01:00
surtur 4b216a6f6e
refactor: clang-format
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-10 04:25:03 +01:00
surtur 67c2462c3a
fix: -Wtype-limits x2
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-09 12:31:16 +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 8827582f90
generator: rm using directives,use CryptoPP prefix
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-08 07:30:31 +01:00
surtur f5563397ee
generator wip: add time_to_reseed() member function
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-08 07:24:04 +01:00
surtur ee0fb01dc8
generator: use G.k_length var instead of .size()
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-08 07:16:19 +01:00
surtur b3c1033e6a
generator: resize dst string to needed size
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-08 07:12:42 +01:00
surtur 3d22b8de8b
generator: fix memmove UB warnings
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-08 07:06:31 +01:00
surtur 408d783c37
chore(generator): comments clean-up
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-08 06:34:30 +01:00
surtur 592d3aac47
generator: get rid of AutoSeededRandomPool et al.
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-08 06:01:10 +01:00
surtur 51c0b1fc56
generator: rm misplaced G.k wipe
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-07 05:51:25 +01:00
surtur 1cba4dea10
generator: make get_state() const
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-06 16:47:46 +01:00
surtur 158545f401
generator: rm bogus reseed+add lock guards
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-03 06:29:16 +01:00
surtur 9e6efc9d38
generator: get rid of an intermediary var
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-03 05:17:29 +01:00
surtur 42a73a00af
style(generator) 2022-01-03 01:02:05 +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 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 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 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 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 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 0c2a1c6744
finalise generator
All checks were successful
continuous-integration/drone/push Build is passing
commit a64b52e5a4
Author: surtur <a_mirre@utb.cz>
Date:   Sun Nov 21 23:39:30 2021 +0100

    finalise generator

    this commit adds a (nearly) complete implementation of the generator.

    * wrap calls to generator in a fortuna class method random_data
      * calls generator's method generate_random_data, that internally calls
        generate_blocks
    * use a proper 256bit key in G_state
    * add reseed method implementation
    * call a reseed in initialize_generator
    * do_sha returns proper digest now
    * add proper do_crypto implementation
      * call generate_blocks internally
      * handle re-keying
    * optimise header includes

    TODO: there are still many commented (enabled on demand) debugging statements
    -> TO BE REMOVED
2021-11-30 14:09:39 +01:00
surtur bcd33c2f33
chore: direct braced string initialization
All checks were successful
continuous-integration/drone/push Build is passing
2021-11-20 22:31:55 +01:00
surtur 4cea227cdd
generator: prefer preincrement
All checks were successful
continuous-integration/drone/push Build is passing
2021-11-20 22:31:54 +01:00
surtur 444660bf89
feat(generator): add constructor/destructor
All checks were successful
continuous-integration/drone/push Build is passing
* initialize_generator() is now a private method
* call initialize_generator() inside the constructor of the Generator
* move full struct declaration to generator.h
* have a private field named G of type G_state
* remove explicit instantiation of Generator from fortuna constructor -
  Generator is a private field of fortuna
* remove direct initialize_generator() call from fortuna constructor
* remove get_state() calls as G_state G is now a private field
* refactor get_state() to simply return the *private field G_state G*
* refactor do_crypto() - I know, this should have been split to a
  separate commit - remove function parameters and useless assignments
  inside its body to reflect that once it accesses k and ctr (of the
  G_state G), it won't be necessary for them to be passed as parameters,
  since *G_state G is now a private field*...
2021-11-20 22:31:54 +01:00
surtur 2fa7e135cb
chore(fmt): follow-up of bd42129
All checks were successful
continuous-integration/drone/push Build is passing
this time replace printf's
2021-11-19 22:32:03 +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 8d8129dc40
refactor(generator): use solely SHA3
All checks were successful
continuous-integration/drone/push Build is passing
still in test mode (see the assert) at the moment
2021-11-17 23:40:38 +01:00
surtur 85907e7178
generator: add a meaningful assert message
All checks were successful
continuous-integration/drone/push Build is passing
should help with debugging...
2021-11-16 00:17:16 +01:00
surtur 9a9b81769f
chore(generator): directly reference std methods
All checks were successful
continuous-integration/drone/push Build is passing
instead of using "std::method" for cout and endl
2021-11-15 23:02:49 +01:00
surtur 2f2f47da01
generator: silence pedantic warnings for __int128
All checks were successful
continuous-integration/drone/push Build is passing
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
2021-11-15 22:47:22 +01:00
surtur c0012e36f9
chore: remove unused #include <algorithm>
All checks were successful
continuous-integration/drone/push Build is passing
* "include what you use"
2021-11-15 22:41:22 +01:00
surtur 3f411f687e
chore: header-guard encompass files properly
All checks were successful
continuous-integration/drone/push Build is passing
2021-11-15 22:13:00 +01:00
surtur 2cd8345c4e
refactor: use HexEncoder's built-in lowercase
All checks were successful
continuous-integration/drone/push Build is passing
remove the custom-defined strtolowerpls from generator
2021-11-14 22:23:50 +01:00