native 0.0.1
Vectors, masks and wide register packs for C++26
Loading...
Searching...
No Matches
native.x86.aes Module Reference

Exported Modules

module  native.x86.features
module  native.simd

Functions

template<isa< x86 > Arch>
requires (Arch.has(x86_feature::aes))
constexpr simd< std::uint8_t, 16, Arch > native::aesenc (simd< std::uint8_t, 16, Arch > state, simd< std::uint8_t, 16, Arch > round_key) noexcept
 Apply ShiftRows, SubBytes, MixColumns and then AddRoundKey.
template<isa< x86 > Arch>
requires (!Arch.has(x86_feature::aes) && requires { sizeof(simd<std::uint8_t, 16, Arch>); })
consteval simd< std::uint8_t, 16, Arch > native::aesenc (simd< std::uint8_t, 16, Arch > state, simd< std::uint8_t, 16, Arch > round_key) noexcept
 Evaluate constant operands without the AES instruction feature.
template<isa< x86 > Arch>
requires (Arch.has(x86_feature::aes))
constexpr simd< std::uint8_t, 16, Arch > native::aesenclast (simd< std::uint8_t, 16, Arch > state, simd< std::uint8_t, 16, Arch > round_key) noexcept
 Apply ShiftRows, SubBytes and then AddRoundKey for the final encryption round.
template<isa< x86 > Arch>
requires (!Arch.has(x86_feature::aes) && requires { sizeof(simd<std::uint8_t, 16, Arch>); })
consteval simd< std::uint8_t, 16, Arch > native::aesenclast (simd< std::uint8_t, 16, Arch > state, simd< std::uint8_t, 16, Arch > round_key) noexcept
 Evaluate constant operands without the AES instruction feature.
template<isa< x86 > Arch>
requires (Arch.has(x86_feature::aes))
constexpr simd< std::uint8_t, 16, Arch > native::aesdec (simd< std::uint8_t, 16, Arch > state, simd< std::uint8_t, 16, Arch > round_key) noexcept
 Apply inverse ShiftRows, inverse SubBytes, inverse MixColumns and then AddRoundKey.
template<isa< x86 > Arch>
requires (!Arch.has(x86_feature::aes) && requires { sizeof(simd<std::uint8_t, 16, Arch>); })
consteval simd< std::uint8_t, 16, Arch > native::aesdec (simd< std::uint8_t, 16, Arch > state, simd< std::uint8_t, 16, Arch > round_key) noexcept
 Evaluate constant operands without the AES instruction feature.
template<isa< x86 > Arch>
requires (Arch.has(x86_feature::aes))
constexpr simd< std::uint8_t, 16, Arch > native::aesdeclast (simd< std::uint8_t, 16, Arch > state, simd< std::uint8_t, 16, Arch > round_key) noexcept
 Apply inverse ShiftRows, inverse SubBytes and then AddRoundKey for the final decryption round.
template<isa< x86 > Arch>
requires (!Arch.has(x86_feature::aes) && requires { sizeof(simd<std::uint8_t, 16, Arch>); })
consteval simd< std::uint8_t, 16, Arch > native::aesdeclast (simd< std::uint8_t, 16, Arch > state, simd< std::uint8_t, 16, Arch > round_key) noexcept
 Evaluate constant operands without the AES instruction feature.
template<isa< x86 > Arch>
requires (Arch.has(x86_feature::aes))
constexpr simd< std::uint8_t, 16, Arch > native::aesimc (simd< std::uint8_t, 16, Arch > state) noexcept
 Apply inverse MixColumns to the four state columns.
template<isa< x86 > Arch>
requires (!Arch.has(x86_feature::aes) && requires { sizeof(simd<std::uint8_t, 16, Arch>); })
consteval simd< std::uint8_t, 16, Arch > native::aesimc (simd< std::uint8_t, 16, Arch > state) noexcept
 Evaluate constant operands without the AES instruction feature.
template<isa< x86 > Arch, unsigned Imm8>
requires (Arch.has(x86_feature::aes) && Imm8 <= 255)
constexpr simd< std::uint8_t, 16, Arch > native::aeskeygenassist (simd< std::uint8_t, 16, Arch > state) noexcept
template<isa< x86 > Arch, unsigned Imm8>
requires (!Arch.has(x86_feature::aes) && Imm8 <= 255 && requires { sizeof(simd<std::uint8_t, 16, Arch>); })
consteval simd< std::uint8_t, 16, Arch > native::aeskeygenassist (simd< std::uint8_t, 16, Arch > state) noexcept
 Evaluate constant operands without the AES instruction feature.
template<isa< x86 > Arch, class... Args>
void native::aesenc (Args...)=delete
 Reject mixed tags, wrong element types and implicit register conversions.
template<isa< x86 > Arch, class... Args>
void native::aesenclast (Args...)=delete
 Reject mixed tags, wrong element types and implicit register conversions.
template<isa< x86 > Arch, class... Args>
void native::aesdec (Args...)=delete
 Reject mixed tags, wrong element types and implicit register conversions.
template<isa< x86 > Arch, class... Args>
void native::aesdeclast (Args...)=delete
 Reject mixed tags, wrong element types and implicit register conversions.
template<isa< x86 > Arch, class... Args>
void native::aesimc (Args...)=delete
 Reject mixed tags, wrong element types and implicit register conversions.
template<isa< x86 > Arch, unsigned Imm8, class... Args>
void native::aeskeygenassist (Args...)=delete
 Reject mixed tags, wrong element types and implicit register conversions.

Files

file  src/native.x86.aes.ccm