diff options
| author | Egor Tensin <egor@tensin.name> | 2026-06-13 19:06:16 +0200 |
|---|---|---|
| committer | Egor Tensin <egor@tensin.name> | 2026-06-13 19:06:16 +0200 |
| commit | 1b2505ac21ce8dd09a34aff86455a8a3677094a0 (patch) | |
| tree | 61124c0c28bb884842ac931f11a6c203a034fe7e /aesxx/include | |
| parent | workflows/ci: add linting for Python test scripts (diff) | |
| download | aes-tools-1b2505ac21ce8dd09a34aff86455a8a3677094a0.tar.gz aes-tools-1b2505ac21ce8dd09a34aff86455a8a3677094a0.zip | |
finally, perfect .clang-format settings?
Diffstat (limited to 'aesxx/include')
| -rw-r--r-- | aesxx/include/aesxx/aes.hpp | 18 | ||||
| -rw-r--r-- | aesxx/include/aesxx/api.hpp | 134 | ||||
| -rw-r--r-- | aesxx/include/aesxx/box.hpp | 34 | ||||
| -rw-r--r-- | aesxx/include/aesxx/debug.hpp | 22 | ||||
| -rw-r--r-- | aesxx/include/aesxx/error.hpp | 3 | ||||
| -rw-r--r-- | aesxx/include/aesxx/mode.hpp | 30 |
6 files changed, 150 insertions, 91 deletions
diff --git a/aesxx/include/aesxx/aes.hpp b/aesxx/include/aesxx/aes.hpp index dedd366..241e051 100644 --- a/aesxx/include/aesxx/aes.hpp +++ b/aesxx/include/aesxx/aes.hpp @@ -74,8 +74,10 @@ inline void expand_key<AES_AES128>(const aes128::Key& key, aes128::RoundKeys& en } template <> -inline void derive_decryption_keys<AES_AES128>(const aes128::RoundKeys& encryption_keys, - aes128::RoundKeys& decryption_keys) { +inline void derive_decryption_keys<AES_AES128>( + const aes128::RoundKeys& encryption_keys, + aes128::RoundKeys& decryption_keys +) { aes_AES128_derive_decryption_keys(&encryption_keys, &decryption_keys); } @@ -147,8 +149,10 @@ inline void expand_key<AES_AES192>(const aes192::Key& key, aes192::RoundKeys& en } template <> -inline void derive_decryption_keys<AES_AES192>(const aes192::RoundKeys& encryption_keys, - aes192::RoundKeys& decryption_keys) { +inline void derive_decryption_keys<AES_AES192>( + const aes192::RoundKeys& encryption_keys, + aes192::RoundKeys& decryption_keys +) { aes_AES192_derive_decryption_keys(&encryption_keys, &decryption_keys); } @@ -220,8 +224,10 @@ inline void expand_key<AES_AES256>(const aes256::Key& key, aes256::RoundKeys& en } template <> -inline void derive_decryption_keys<AES_AES256>(const aes256::RoundKeys& encryption_keys, - aes256::RoundKeys& decryption_keys) { +inline void derive_decryption_keys<AES_AES256>( + const aes256::RoundKeys& encryption_keys, + aes256::RoundKeys& decryption_keys +) { aes_AES256_derive_decryption_keys(&encryption_keys, &decryption_keys); } diff --git a/aesxx/include/aesxx/api.hpp b/aesxx/include/aesxx/api.hpp index 4c1c868..1797a85 100644 --- a/aesxx/include/aesxx/api.hpp +++ b/aesxx/include/aesxx/api.hpp @@ -37,73 +37,99 @@ template <Algorithm algorithm> std::string to_string(const typename Types<algorithm>::Key&); template <Algorithm algorithm> -void expand_key(const typename Types<algorithm>::Key& key, - typename Types<algorithm>::RoundKeys& encryption_keys); +void expand_key( + const typename Types<algorithm>::Key& key, + typename Types<algorithm>::RoundKeys& encryption_keys +); template <Algorithm algorithm> -void derive_decryption_keys(const typename Types<algorithm>::RoundKeys& encryption_keys, - typename Types<algorithm>::RoundKeys& decryption_keys); +void derive_decryption_keys( + const typename Types<algorithm>::RoundKeys& encryption_keys, + typename Types<algorithm>::RoundKeys& decryption_keys +); -template <Algorithm algorithm, - Mode mode, - typename std::enable_if<ModeRequiresInitVector<mode>::value>::type* = nullptr> -void encrypt_block(const typename Types<algorithm>::Block& plaintext, - const typename Types<algorithm>::RoundKeys& round_keys, - typename Types<algorithm>::Block& iv, - typename Types<algorithm>::Block& ciphertext); +template < + Algorithm algorithm, + Mode mode, + typename std::enable_if<ModeRequiresInitVector<mode>::value>::type* = nullptr> +void encrypt_block( + const typename Types<algorithm>::Block& plaintext, + const typename Types<algorithm>::RoundKeys& round_keys, + typename Types<algorithm>::Block& iv, + typename Types<algorithm>::Block& ciphertext +); -template <Algorithm algorithm, - Mode mode, - typename std::enable_if<!ModeRequiresInitVector<mode>::value>::type* = nullptr> -void encrypt_block(const typename Types<algorithm>::Block& plaintext, - const typename Types<algorithm>::RoundKeys& round_keys, - typename Types<algorithm>::Block& ciphertext); +template < + Algorithm algorithm, + Mode mode, + typename std::enable_if<!ModeRequiresInitVector<mode>::value>::type* = nullptr> +void encrypt_block( + const typename Types<algorithm>::Block& plaintext, + const typename Types<algorithm>::RoundKeys& round_keys, + typename Types<algorithm>::Block& ciphertext +); -template <Algorithm algorithm, - Mode mode, - typename std::enable_if<!ModeRequiresInitVector<mode>::value>::type* = nullptr> -void encrypt_block(const typename Types<algorithm>::Block& plaintext, - const typename Types<algorithm>::RoundKeys& round_keys, - typename Types<algorithm>::Block&, - typename Types<algorithm>::Block& ciphertext) { +template < + Algorithm algorithm, + Mode mode, + typename std::enable_if<!ModeRequiresInitVector<mode>::value>::type* = nullptr> +void encrypt_block( + const typename Types<algorithm>::Block& plaintext, + const typename Types<algorithm>::RoundKeys& round_keys, + typename Types<algorithm>::Block&, + typename Types<algorithm>::Block& ciphertext +) { encrypt_block<algorithm, mode>(plaintext, round_keys, ciphertext); } -template <Algorithm algorithm, - Mode mode, - typename std::enable_if<ModeRequiresInitVector<mode>::value>::type* = nullptr> -void decrypt_block(const typename Types<algorithm>::Block& ciphertext, - const typename Types<algorithm>::RoundKeys& round_keys, - typename Types<algorithm>::Block& iv, - typename Types<algorithm>::Block& plaintext); +template < + Algorithm algorithm, + Mode mode, + typename std::enable_if<ModeRequiresInitVector<mode>::value>::type* = nullptr> +void decrypt_block( + const typename Types<algorithm>::Block& ciphertext, + const typename Types<algorithm>::RoundKeys& round_keys, + typename Types<algorithm>::Block& iv, + typename Types<algorithm>::Block& plaintext +); -template <Algorithm algorithm, - Mode mode, - typename std::enable_if<!ModeRequiresInitVector<mode>::value>::type* = nullptr> -void decrypt_block(const typename Types<algorithm>::Block& ciphertext, - const typename Types<algorithm>::RoundKeys& round_keys, - typename Types<algorithm>::Block& plaintext); +template < + Algorithm algorithm, + Mode mode, + typename std::enable_if<!ModeRequiresInitVector<mode>::value>::type* = nullptr> +void decrypt_block( + const typename Types<algorithm>::Block& ciphertext, + const typename Types<algorithm>::RoundKeys& round_keys, + typename Types<algorithm>::Block& plaintext +); -template <Algorithm algorithm, - Mode mode, - typename std::enable_if<!ModeRequiresInitVector<mode>::value>::type* = nullptr> -void decrypt_block(const typename Types<algorithm>::Block& ciphertext, - const typename Types<algorithm>::RoundKeys& round_keys, - typename Types<algorithm>::Block&, - typename Types<algorithm>::Block& plaintext) { +template < + Algorithm algorithm, + Mode mode, + typename std::enable_if<!ModeRequiresInitVector<mode>::value>::type* = nullptr> +void decrypt_block( + const typename Types<algorithm>::Block& ciphertext, + const typename Types<algorithm>::RoundKeys& round_keys, + typename Types<algorithm>::Block&, + typename Types<algorithm>::Block& plaintext +) { decrypt_block<algorithm, mode>(ciphertext, round_keys, plaintext); } template <Algorithm algorithm, Mode mode> struct EncryptWrapper { - EncryptWrapper(const typename Types<algorithm>::Key& key, - const typename Types<algorithm>::Block& iv) + EncryptWrapper( + const typename Types<algorithm>::Key& key, + const typename Types<algorithm>::Block& iv + ) : iv{iv} { expand_key<algorithm>(key, encryption_keys); } - void encrypt_block(const typename Types<algorithm>::Block& plaintext, - typename Types<algorithm>::Block& ciphertext) { + void encrypt_block( + const typename Types<algorithm>::Block& plaintext, + typename Types<algorithm>::Block& ciphertext + ) { aes::encrypt_block<algorithm, mode>(plaintext, encryption_keys, iv, ciphertext); } @@ -113,8 +139,10 @@ struct EncryptWrapper { template <Algorithm algorithm, Mode mode> struct DecryptWrapper { - DecryptWrapper(const typename Types<algorithm>::Key& key, - const typename Types<algorithm>::Block& iv) + DecryptWrapper( + const typename Types<algorithm>::Key& key, + const typename Types<algorithm>::Block& iv + ) : iv{iv} { typename Types<algorithm>::RoundKeys encryption_keys; expand_key<algorithm>(key, encryption_keys); @@ -126,8 +154,10 @@ struct DecryptWrapper { } } - void decrypt_block(const typename Types<algorithm>::Block& ciphertext, - typename Types<algorithm>::Block& plaintext) { + void decrypt_block( + const typename Types<algorithm>::Block& ciphertext, + typename Types<algorithm>::Block& plaintext + ) { aes::decrypt_block<algorithm, mode>(ciphertext, decryption_keys, iv, plaintext); } diff --git a/aesxx/include/aesxx/box.hpp b/aesxx/include/aesxx/box.hpp index fb42525..72e3be2 100644 --- a/aesxx/include/aesxx/box.hpp +++ b/aesxx/include/aesxx/box.hpp @@ -64,17 +64,20 @@ public: std::size_t dest_size = 0; aes_box_encrypt_buffer( - &impl, src_buf, src_size, nullptr, &dest_size, aes::ErrorDetailsThrowsInDestructor{}); + &impl, src_buf, src_size, nullptr, &dest_size, aes::ErrorDetailsThrowsInDestructor{} + ); std::vector<unsigned char> dest_buf; dest_buf.resize(dest_size); - aes_box_encrypt_buffer(&impl, - src_buf, - src_size, - dest_buf.data(), - &dest_size, - aes::ErrorDetailsThrowsInDestructor{}); + aes_box_encrypt_buffer( + &impl, + src_buf, + src_size, + dest_buf.data(), + &dest_size, + aes::ErrorDetailsThrowsInDestructor{} + ); dest_buf.resize(dest_size); return dest_buf; @@ -84,17 +87,20 @@ public: std::size_t dest_size = 0; aes_box_decrypt_buffer( - &impl, src_buf, src_size, nullptr, &dest_size, aes::ErrorDetailsThrowsInDestructor{}); + &impl, src_buf, src_size, nullptr, &dest_size, aes::ErrorDetailsThrowsInDestructor{} + ); std::vector<unsigned char> dest_buf; dest_buf.resize(dest_size); - aes_box_decrypt_buffer(&impl, - src_buf, - src_size, - dest_buf.data(), - &dest_size, - aes::ErrorDetailsThrowsInDestructor{}); + aes_box_decrypt_buffer( + &impl, + src_buf, + src_size, + dest_buf.data(), + &dest_size, + aes::ErrorDetailsThrowsInDestructor{} + ); dest_buf.resize(dest_size); return dest_buf; diff --git a/aesxx/include/aesxx/debug.hpp b/aesxx/include/aesxx/debug.hpp index 019603d..845986e 100644 --- a/aesxx/include/aesxx/debug.hpp +++ b/aesxx/include/aesxx/debug.hpp @@ -53,9 +53,11 @@ private: return format_module(symbol_name, offset); } - static std::string format_symbol(std::string_view module_name, - std::string_view symbol_name, - const void* offset = nullptr) { + static std::string format_symbol( + std::string_view module_name, + std::string_view symbol_name, + const void* offset = nullptr + ) { return format_symbol(std::format("{}!{}", module_name, symbol_name), offset); } @@ -99,22 +101,26 @@ private: DWORD64 symbol_offset; const auto symbol_resolved = SymFromAddr( - GetCurrentProcess(), reinterpret_cast<DWORD64>(addr), &symbol_offset, symbol_info); + GetCurrentProcess(), reinterpret_cast<DWORD64>(addr), &symbol_offset, symbol_info + ); if (symbol_resolved) { const auto module_resolved = SymGetModuleInfo64(GetCurrentProcess(), symbol_info->ModBase, &module_info); if (module_resolved) { - return format_symbol(module_info.ModuleName, - symbol_info->Name, - reinterpret_cast<const void*>(symbol_offset)); + return format_symbol( + module_info.ModuleName, + symbol_info->Name, + reinterpret_cast<const void*>(symbol_offset) + ); } else { return format_symbol(symbol_info->Name, addr); } } else { const auto module_resolved = SymGetModuleInfo64( - GetCurrentProcess(), reinterpret_cast<DWORD64>(addr), &module_info); + GetCurrentProcess(), reinterpret_cast<DWORD64>(addr), &module_info + ); if (module_resolved) { const auto module_offset = diff --git a/aesxx/include/aesxx/error.hpp b/aesxx/include/aesxx/error.hpp index 2dde936..eeef7c6 100644 --- a/aesxx/include/aesxx/error.hpp +++ b/aesxx/include/aesxx/error.hpp @@ -34,7 +34,8 @@ public: std::for_each( call_stack, call_stack + call_stack_len, [&formatter, &callback](const void* addr) { callback(addr, formatter.format_address(addr)); - }); + } + ); } private: diff --git a/aesxx/include/aesxx/mode.hpp b/aesxx/include/aesxx/mode.hpp index 999db3a..e4391a4 100644 --- a/aesxx/include/aesxx/mode.hpp +++ b/aesxx/include/aesxx/mode.hpp @@ -41,7 +41,8 @@ inline bool mode_uses_encryption_keys_only(Mode mode) { inline void encrypt_block<AES_##prefix, AES_ECB>( \ const typename Types<AES_##prefix>::Block& plaintext, \ const typename Types<AES_##prefix>::RoundKeys& encryption_keys, \ - typename Types<AES_##prefix>::Block& ciphertext) { \ + typename Types<AES_##prefix>::Block& ciphertext \ + ) { \ ciphertext = aes_##prefix##_encrypt_block_ECB(plaintext, &encryption_keys); \ } @@ -50,7 +51,8 @@ inline bool mode_uses_encryption_keys_only(Mode mode) { inline void decrypt_block<AES_##prefix, AES_ECB>( \ const typename Types<AES_##prefix>::Block& ciphertext, \ const typename Types<AES_##prefix>::RoundKeys& decryption_keys, \ - typename Types<AES_##prefix>::Block& plaintext) { \ + typename Types<AES_##prefix>::Block& plaintext \ + ) { \ plaintext = aes_##prefix##_decrypt_block_ECB(ciphertext, &decryption_keys); \ } @@ -60,7 +62,8 @@ inline bool mode_uses_encryption_keys_only(Mode mode) { const typename Types<AES_##prefix>::Block& plaintext, \ const typename Types<AES_##prefix>::RoundKeys& encryption_keys, \ typename Types<AES_##prefix>::Block& iv, \ - typename Types<AES_##prefix>::Block& ciphertext) { \ + typename Types<AES_##prefix>::Block& ciphertext \ + ) { \ ciphertext = aes_##prefix##_encrypt_block_CBC(plaintext, &encryption_keys, iv, &iv); \ } @@ -70,7 +73,8 @@ inline bool mode_uses_encryption_keys_only(Mode mode) { const typename Types<AES_##prefix>::Block& ciphertext, \ const typename Types<AES_##prefix>::RoundKeys& decryption_keys, \ typename Types<AES_##prefix>::Block& iv, \ - typename Types<AES_##prefix>::Block& plaintext) { \ + typename Types<AES_##prefix>::Block& plaintext \ + ) { \ plaintext = aes_##prefix##_decrypt_block_CBC(ciphertext, &decryption_keys, iv, &iv); \ } @@ -80,7 +84,8 @@ inline bool mode_uses_encryption_keys_only(Mode mode) { const typename Types<AES_##prefix>::Block& plaintext, \ const typename Types<AES_##prefix>::RoundKeys& encryption_keys, \ typename Types<AES_##prefix>::Block& iv, \ - typename Types<AES_##prefix>::Block& ciphertext) { \ + typename Types<AES_##prefix>::Block& ciphertext \ + ) { \ ciphertext = aes_##prefix##_encrypt_block_CFB(plaintext, &encryption_keys, iv, &iv); \ } @@ -90,7 +95,8 @@ inline bool mode_uses_encryption_keys_only(Mode mode) { const typename Types<AES_##prefix>::Block& ciphertext, \ const typename Types<AES_##prefix>::RoundKeys& encryption_keys, \ typename Types<AES_##prefix>::Block& iv, \ - typename Types<AES_##prefix>::Block& plaintext) { \ + typename Types<AES_##prefix>::Block& plaintext \ + ) { \ plaintext = aes_##prefix##_decrypt_block_CFB(ciphertext, &encryption_keys, iv, &iv); \ } @@ -100,7 +106,8 @@ inline bool mode_uses_encryption_keys_only(Mode mode) { const typename Types<AES_##prefix>::Block& plaintext, \ const typename Types<AES_##prefix>::RoundKeys& encryption_keys, \ typename Types<AES_##prefix>::Block& iv, \ - typename Types<AES_##prefix>::Block& ciphertext) { \ + typename Types<AES_##prefix>::Block& ciphertext \ + ) { \ ciphertext = aes_##prefix##_encrypt_block_OFB(plaintext, &encryption_keys, iv, &iv); \ } @@ -110,7 +117,8 @@ inline bool mode_uses_encryption_keys_only(Mode mode) { const typename Types<AES_##prefix>::Block& ciphertext, \ const typename Types<AES_##prefix>::RoundKeys& encryption_keys, \ typename Types<AES_##prefix>::Block& iv, \ - typename Types<AES_##prefix>::Block& plaintext) { \ + typename Types<AES_##prefix>::Block& plaintext \ + ) { \ plaintext = aes_##prefix##_decrypt_block_OFB(ciphertext, &encryption_keys, iv, &iv); \ } @@ -120,7 +128,8 @@ inline bool mode_uses_encryption_keys_only(Mode mode) { const typename Types<AES_##prefix>::Block& plaintext, \ const typename Types<AES_##prefix>::RoundKeys& encryption_keys, \ typename Types<AES_##prefix>::Block& iv, \ - typename Types<AES_##prefix>::Block& ciphertext) { \ + typename Types<AES_##prefix>::Block& ciphertext \ + ) { \ ciphertext = aes_##prefix##_encrypt_block_CTR(plaintext, &encryption_keys, iv, &iv); \ } @@ -130,7 +139,8 @@ inline bool mode_uses_encryption_keys_only(Mode mode) { const typename Types<AES_##prefix>::Block& ciphertext, \ const typename Types<AES_##prefix>::RoundKeys& encryption_keys, \ typename Types<AES_##prefix>::Block& iv, \ - typename Types<AES_##prefix>::Block& plaintext) { \ + typename Types<AES_##prefix>::Block& plaintext \ + ) { \ plaintext = aes_##prefix##_decrypt_block_CTR(ciphertext, &encryption_keys, iv, &iv); \ } |
