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

Exported Modules

module  native.arm.features
module  native.simd

Functions

template<isa< arm > Arch>
requires (Arch.has(arm_feature::aes))
constexpr simd< std::uint8_t, 16, Arch > native::aese (simd< std::uint8_t, 16, Arch > state, simd< std::uint8_t, 16, Arch > round_key) noexcept
 Apply AddRoundKey, SubBytes and ShiftRows to one AES state.
template<isa< arm > Arch>
requires (!Arch.has(arm_feature::aes) && requires { sizeof(simd<std::uint8_t, 16, Arch>); })
consteval simd< std::uint8_t, 16, Arch > native::aese (simd< std::uint8_t, 16, Arch > state, simd< std::uint8_t, 16, Arch > round_key) noexcept
 Evaluate constant operands without the instruction feature.
template<isa< arm > Arch>
requires (Arch.has(arm_feature::aes))
constexpr simd< std::uint8_t, 16, Arch > native::aesd (simd< std::uint8_t, 16, Arch > state, simd< std::uint8_t, 16, Arch > round_key) noexcept
 Apply AddRoundKey, inverse ShiftRows and inverse SubBytes to one AES state.
template<isa< arm > Arch>
requires (!Arch.has(arm_feature::aes) && requires { sizeof(simd<std::uint8_t, 16, Arch>); })
consteval simd< std::uint8_t, 16, Arch > native::aesd (simd< std::uint8_t, 16, Arch > state, simd< std::uint8_t, 16, Arch > round_key) noexcept
 Evaluate constant operands without the instruction feature.
template<isa< arm > Arch>
requires (Arch.has(arm_feature::aes))
constexpr simd< std::uint8_t, 16, Arch > native::aesmc (simd< std::uint8_t, 16, Arch > state) noexcept
 Apply AES MixColumns independently to the four state columns.
template<isa< arm > Arch>
requires (!Arch.has(arm_feature::aes) && requires { sizeof(simd<std::uint8_t, 16, Arch>); })
consteval simd< std::uint8_t, 16, Arch > native::aesmc (simd< std::uint8_t, 16, Arch > state) noexcept
 Evaluate constant operands without the instruction feature.
template<isa< arm > Arch>
requires (Arch.has(arm_feature::aes))
constexpr simd< std::uint8_t, 16, Arch > native::aesimc (simd< std::uint8_t, 16, Arch > state) noexcept
 Apply inverse AES MixColumns independently to the four state columns.
template<isa< arm > Arch>
requires (!Arch.has(arm_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 instruction feature.
template<isa< arm > Arch, class... T>
void native::aese (T...)=delete
 Reject unsupported argument shapes or unavailable instruction features.
template<isa< arm > Arch, class... T>
void native::aesd (T...)=delete
 Reject unsupported argument shapes or unavailable instruction features.
template<isa< arm > Arch, class... T>
void native::aesmc (T...)=delete
 Reject unsupported argument shapes or unavailable instruction features.
template<isa< arm > Arch, class... T>
void native::aesimc (T...)=delete
 Reject unsupported argument shapes or unavailable instruction features.

Files

file  src/native.arm.aes.ccm