summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorEgor Tensin <egor@tensin.name>2026-07-24 12:27:43 +0200
committerEgor Tensin <egor@tensin.name>2026-07-24 12:27:43 +0200
commit978d47ebb09b90993f1f5c40c8010b8fdb2f6378 (patch)
tree7b83750cd64a7616944da391a835291dd82a04e5
parentaesxx: factor out key stuff into key.hpp (diff)
downloadaes-tools-978d47ebb09b90993f1f5c40c8010b8fdb2f6378.tar.gz
aes-tools-978d47ebb09b90993f1f5c40c8010b8fdb2f6378.zip
aesxx/block: refactoring
-rw-r--r--aesxx/include/aesxx/block.hpp18
-rw-r--r--aesxx/utils/helpers/cmd_parser_block.hpp4
-rw-r--r--aesxx/utils/helpers/data_parsers.hpp2
3 files changed, 12 insertions, 12 deletions
diff --git a/aesxx/include/aesxx/block.hpp b/aesxx/include/aesxx/block.hpp
index e1379df..e711b82 100644
--- a/aesxx/include/aesxx/block.hpp
+++ b/aesxx/include/aesxx/block.hpp
@@ -17,25 +17,25 @@ namespace aes {
class Block {
public:
+ using Impl = AES_Block;
+
static Block parse(std::string_view src) {
- return Block{src};
+ Impl dest;
+ aes_parse_block(&dest, src.data(), ErrorDetailsThrowsInDestructor{});
+ return Block{dest};
}
- explicit Block(AES_Block impl) : impl{impl} {}
+ explicit Block(Impl impl) : impl{impl} {}
Block(int hi3, int hi2, int lo1, int lo0) : impl{aes_make_block(hi3, hi2, lo1, lo0)} {}
Block() : Block{0, 0, 0, 0} {}
- explicit Block(std::string_view src) {
- aes_parse_block(&impl, src.data(), ErrorDetailsThrowsInDestructor{});
- }
-
- AES_Block* ptr() {
+ Impl* ptr() {
return &impl;
}
- const AES_Block* ptr() const {
+ const Impl* ptr() const {
return &impl;
}
@@ -52,7 +52,7 @@ public:
}
private:
- AES_Block impl;
+ Impl impl;
};
} // namespace aes
diff --git a/aesxx/utils/helpers/cmd_parser_block.hpp b/aesxx/utils/helpers/cmd_parser_block.hpp
index e8ba1b6..f454331 100644
--- a/aesxx/utils/helpers/cmd_parser_block.hpp
+++ b/aesxx/utils/helpers/cmd_parser_block.hpp
@@ -116,7 +116,7 @@ private:
"an initialization vector is required for the selected mode of operation"
};
}
- iv = aes::Block{std::move(src.front())};
+ iv = aes::Block::parse(src.front());
src.pop_front();
}
@@ -131,7 +131,7 @@ private:
src.pop_front();
if (block == "--")
break;
- blocks.emplace_back(aes::Block{std::move(block)});
+ blocks.emplace_back(aes::Block::parse(block));
}
return blocks;
diff --git a/aesxx/utils/helpers/data_parsers.hpp b/aesxx/utils/helpers/data_parsers.hpp
index acf2ed7..baa8d69 100644
--- a/aesxx/utils/helpers/data_parsers.hpp
+++ b/aesxx/utils/helpers/data_parsers.hpp
@@ -57,7 +57,7 @@ inline void validate(any& dest, const std::vector<std::string>& values, aes::Alg
inline void validate(any& dest, const std::vector<std::string>& values, aes::Block*, int) {
const std::string& src = program_options::validators::get_single_string(values);
- dest = aes::Block{src};
+ dest = aes::Block::parse(src);
}
} // namespace boost