diff options
| author | Egor Tensin <egor@tensin.name> | 2026-06-13 14:37:12 +0200 |
|---|---|---|
| committer | Egor Tensin <egor@tensin.name> | 2026-06-13 14:37:12 +0200 |
| commit | 6cac3cb57cb4f430df80f8a21e358ad40ae59c89 (patch) | |
| tree | b9551474bedb7fdd6a9a4e37bc641bd8d0cfcfb4 /aesxx/utils/decrypt_bmp.cpp | |
| parent | cmake: upgrade cmake-common, introduce new features, etc. (diff) | |
| download | aes-tools-6cac3cb57cb4f430df80f8a21e358ad40ae59c89.tar.gz aes-tools-6cac3cb57cb4f430df80f8a21e358ad40ae59c89.zip | |
add .clang-format
Diffstat (limited to 'aesxx/utils/decrypt_bmp.cpp')
| -rw-r--r-- | aesxx/utils/decrypt_bmp.cpp | 83 |
1 files changed, 33 insertions, 50 deletions
diff --git a/aesxx/utils/decrypt_bmp.cpp b/aesxx/utils/decrypt_bmp.cpp index 9f9cd52..86f6b7d 100644 --- a/aesxx/utils/decrypt_bmp.cpp +++ b/aesxx/utils/decrypt_bmp.cpp @@ -9,83 +9,66 @@ #include <aesxx/all.hpp> -#include <windows.h> - #include <boost/program_options.hpp> +#include <windows.h> + #include <exception> #include <iostream> #include <string> -namespace -{ - void decrypt_bmp( - aes::Box& box, - const std::string& ciphertext_path, - const std::string& plaintext_path) - { - bmp::BmpFile bmp{file::read_file(ciphertext_path)}; - bmp.replace_pixels(box.decrypt_buffer( - bmp.get_pixels(), - bmp.get_pixels_size())); - file::write_file(plaintext_path, bmp.get_buffer(), bmp.get_size()); - } +namespace { - void decrypt_bmp(const FileSettings& settings) - { - const auto& algorithm = settings.algorithm; - const auto& mode = settings.mode; +void decrypt_bmp(aes::Box& box, + const std::string& ciphertext_path, + const std::string& plaintext_path) { + bmp::BmpFile bmp{file::read_file(ciphertext_path)}; + bmp.replace_pixels(box.decrypt_buffer(bmp.get_pixels(), bmp.get_pixels_size())); + file::write_file(plaintext_path, bmp.get_buffer(), bmp.get_size()); +} - aes::Box::Key key; - aes::Box::parse_key(key, algorithm, settings.key); +void decrypt_bmp(const FileSettings& settings) { + const auto& algorithm = settings.algorithm; + const auto& mode = settings.mode; - if (aes::mode_requires_init_vector(mode)) - { - aes::Box::Block iv; - aes::Box::parse_block(iv, algorithm, settings.iv); + aes::Box::Key key; + aes::Box::parse_key(key, algorithm, settings.key); - aes::Box box{algorithm, key, mode, iv}; - decrypt_bmp(box, settings.input_path, settings.output_path); - } - else - { - aes::Box box{algorithm, key}; - decrypt_bmp(box, settings.input_path, settings.output_path); - } + if (aes::mode_requires_init_vector(mode)) { + aes::Box::Block iv; + aes::Box::parse_block(iv, algorithm, settings.iv); + + aes::Box box{algorithm, key, mode, iv}; + decrypt_bmp(box, settings.input_path, settings.output_path); + } else { + aes::Box box{algorithm, key}; + decrypt_bmp(box, settings.input_path, settings.output_path); } } -int main(int argc, char** argv) -{ - try - { +} // namespace + +int main(int argc, char** argv) { + try { FileSettings settings{argv[0]}; - try - { + try { settings.parse(argc, argv); - } - catch (const boost::program_options::error& e) - { + } catch (const boost::program_options::error& e) { settings.usage_error(e); return 1; } - if (settings.exit_with_usage) - { + if (settings.exit_with_usage) { settings.usage(); return 0; } decrypt_bmp(settings); - } - catch (const aes::Error& e) - { + } catch (const aes::Error& e) { std::cerr << e; return 1; - } - catch (const std::exception& e) - { + } catch (const std::exception& e) { std::cerr << e.what() << "\n"; return 1; } |
