|
native 0.0.1
Vectors, masks and wide register packs for C++26
|
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 |