Signet Forge 0.1.0
C++20 Parquet library with AI-native extensions
DEMO
Loading...
Searching...
No Matches
aes_core.hpp File Reference

AES-256 block cipher implementation (FIPS-197). More...

#include <cstddef>
#include <cstdint>
#include <cstring>

Go to the source code of this file.

Classes

class  signet::forge::crypto::Aes256
 AES-256 block cipher (FIPS-197). More...
 

Namespaces

namespace  signet
 
namespace  signet::forge
 
namespace  signet::forge::crypto
 
namespace  signet::forge::crypto::detail
 
namespace  signet::forge::crypto::detail::aes
 

Functions

constexpr uint8_t signet::forge::crypto::detail::aes::xtime (uint8_t a)
 Multiply by x (i.e., by 2) in GF(2^8).
 
constexpr uint8_t signet::forge::crypto::detail::aes::gf_mul (uint8_t a, uint8_t b)
 Multiply two elements in GF(2^8) using the Russian peasant algorithm.
 
void signet::forge::crypto::detail::aes::sub_word (uint8_t word[4])
 Apply S-box to each byte of a 4-byte word.
 
void signet::forge::crypto::detail::aes::rot_word (uint8_t word[4])
 Rotate a 4-byte word left by one byte: [a,b,c,d] -> [b,c,d,a].
 
void signet::forge::crypto::detail::aes::secure_zero (void *ptr, size_t len)
 Securely zero memory that held key material (CWE-244, NIST SP 800-38D ยง8.3).
 
bool signet::forge::crypto::detail::aes::has_hardware_aes () noexcept
 Check if CPU supports AES-NI (x86) or ARMv8-CE AES (ARM).
 

Detailed Description

AES-256 block cipher implementation (FIPS-197).

Definition in file aes_core.hpp.