aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/aesxx/include
diff options
context:
space:
mode:
authorEgor Tensin <egor@tensin.name>2026-06-13 19:06:16 +0200
committerEgor Tensin <egor@tensin.name>2026-06-13 19:06:16 +0200
commit1b2505ac21ce8dd09a34aff86455a8a3677094a0 (patch)
tree61124c0c28bb884842ac931f11a6c203a034fe7e /aesxx/include
parentworkflows/ci: add linting for Python test scripts (diff)
downloadaes-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.hpp18
-rw-r--r--aesxx/include/aesxx/api.hpp134
-rw-r--r--aesxx/include/aesxx/box.hpp34
-rw-r--r--aesxx/include/aesxx/debug.hpp22
-rw-r--r--aesxx/include/aesxx/error.hpp3
-rw-r--r--aesxx/include/aesxx/mode.hpp30
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); \
}