diff options
Diffstat (limited to 'aesxx')
| -rw-r--r-- | aesxx/include/aesxx/block.hpp | 18 | ||||
| -rw-r--r-- | aesxx/utils/helpers/cmd_parser_block.hpp | 4 | ||||
| -rw-r--r-- | aesxx/utils/helpers/data_parsers.hpp | 2 |
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 |
