From fa252b5b08f2095318c6628413fa5859970aa2f4 Mon Sep 17 00:00:00 2001 From: Egor Tensin Date: Mon, 22 Jun 2026 19:11:55 +0200 Subject: aesxx/utils: more refactoring --- aesxx/utils/decrypt_block.cpp | 10 +++--- aesxx/utils/encrypt_block.cpp | 10 +++--- aesxx/utils/helpers/cmd_parser_block.hpp | 54 ++++++++++++++++++++++---------- 3 files changed, 49 insertions(+), 25 deletions(-) diff --git a/aesxx/utils/decrypt_block.cpp b/aesxx/utils/decrypt_block.cpp index f6bd8a3..be5c003 100644 --- a/aesxx/utils/decrypt_block.cpp +++ b/aesxx/utils/decrypt_block.cpp @@ -161,11 +161,13 @@ int main(int argc, char** argv) { return 0; } - for (const auto& input : settings.inputs) { - if (settings.use_boxes) { - decrypt_using_boxes(settings.algorithm, settings.mode, input); + for (const auto& input : settings.get_inputs()) { + if (settings.use_boxes()) { + decrypt_using_boxes(settings.get_algorithm(), settings.get_mode(), input); } else { - decrypt_using_cxx_api(settings.algorithm, settings.mode, input, settings.verbose); + decrypt_using_cxx_api( + settings.get_algorithm(), settings.get_mode(), input, settings.verbose() + ); } } } catch (const aes::Error& e) { diff --git a/aesxx/utils/encrypt_block.cpp b/aesxx/utils/encrypt_block.cpp index a67cd6b..2e59634 100644 --- a/aesxx/utils/encrypt_block.cpp +++ b/aesxx/utils/encrypt_block.cpp @@ -164,11 +164,13 @@ int main(int argc, char** argv) { return 0; } - for (const auto& input : settings.inputs) { - if (settings.use_boxes) { - encrypt_using_boxes(settings.algorithm, settings.mode, input); + for (const auto& input : settings.get_inputs()) { + if (settings.use_boxes()) { + encrypt_using_boxes(settings.get_algorithm(), settings.get_mode(), input); } else { - encrypt_using_cxx_api(settings.algorithm, settings.mode, input, settings.verbose); + encrypt_using_cxx_api( + settings.get_algorithm(), settings.get_mode(), input, settings.verbose() + ); } } } catch (const aes::Error& e) { diff --git a/aesxx/utils/helpers/cmd_parser_block.hpp b/aesxx/utils/helpers/cmd_parser_block.hpp index 0093617..68177f5 100644 --- a/aesxx/utils/helpers/cmd_parser_block.hpp +++ b/aesxx/utils/helpers/cmd_parser_block.hpp @@ -47,17 +47,9 @@ public: std::vector blocks; }; - aes::Algorithm algorithm = AES_AES128; - aes::Mode mode = AES_ECB; - - bool use_boxes = false; - bool verbose = false; - - std::vector inputs; - explicit BlockSettings(std::string_view argv0) : SettingsParser{argv0} { visible.add_options()( - "verbose,v", boost::program_options::bool_switch(&verbose), "enable verbose output" + "verbose,v", boost::program_options::bool_switch(&_verbose), "enable verbose output" ); visible.add_options()( "algorithm,a", @@ -73,15 +65,9 @@ public: ); visible.add_options()( "use-boxes,b", - boost::program_options::bool_switch(&use_boxes), + boost::program_options::bool_switch(&_use_boxes), "use the \"boxes\" interface" ); - hidden.add_options()( - "args", - boost::program_options::value>(&args), - "shouldn't be visible" - ); - positional.add("args", -1); } const char* get_short_description() const override { @@ -90,7 +76,16 @@ public: } void parse(int argc, char* argv[]) override { + std::vector args; + hidden.add_options()( + "args", + boost::program_options::value>(&args), + "shouldn't be visible" + ); + positional.add("args", -1); + SettingsParser::parse(argc, argv); + parse_inputs( std::deque{ std::make_move_iterator(args.begin()), std::make_move_iterator(args.end()) @@ -98,6 +93,26 @@ public: ); } + aes::Algorithm get_algorithm() const { + return algorithm; + } + + aes::Mode get_mode() const { + return mode; + } + + const std::vector& get_inputs() const { + return inputs; + } + + bool use_boxes() const { + return _use_boxes; + } + + bool verbose() const { + return _verbose; + } + private: void parse_inputs(std::deque&& src) { while (!src.empty()) @@ -142,5 +157,10 @@ private: return blocks; } - std::vector args; + aes::Algorithm algorithm; + aes::Mode mode; + std::vector inputs; + + bool _use_boxes = false; + bool _verbose = false; }; -- cgit v1.3