binius_field/arch/portable/
packed_aes_128.rs1use super::{
4 packed::PackedPrimitiveType,
5 packed_arithmetic::{alphas, impl_tower_constants},
6 packed_macros::impl_broadcast,
7};
8use crate::{
9 aes_field::AESTowerField8b,
10 arch::portable::packed_macros::{portable_macros::*, *},
11 arithmetic_traits::{
12 impl_invert_with, impl_mul_alpha_with, impl_mul_with, impl_square_with,
13 impl_transformation_with_strategy,
14 },
15};
16
17define_packed_binary_fields!(
18 underlier: u128,
19 packed_fields: [
20 packed_field {
21 name: PackedAESBinaryField16x8b,
22 scalar: AESTowerField8b,
23 alpha_idx: _,
24 mul: (PairwiseTableStrategy),
25 square: (PairwiseTableStrategy),
26 invert: (PairwiseTableStrategy),
27 mul_alpha: (PairwiseTableStrategy),
28 transform: (PackedStrategy),
29 },
30 packed_field {
31 name: PackedAESBinaryField8x16b,
32 scalar: AESTowerField16b,
33 alpha_idx: 4,
34 mul: (PairwiseRecursiveStrategy),
35 square: (PairwiseRecursiveStrategy),
36 invert: (PairwiseRecursiveStrategy),
37 mul_alpha: (PackedStrategy),
38 transform: (PackedStrategy),
39 },
40 packed_field {
41 name: PackedAESBinaryField4x32b,
42 scalar: AESTowerField32b,
43 alpha_idx: 5,
44 mul: (PairwiseRecursiveStrategy),
45 square: (PackedStrategy),
46 invert: (PairwiseRecursiveStrategy),
47 mul_alpha: (PackedStrategy),
48 transform: (PackedStrategy),
49 },
50 packed_field {
51 name: PackedAESBinaryField2x64b,
52 scalar: AESTowerField64b,
53 alpha_idx: 6,
54 mul: (PairwiseRecursiveStrategy),
55 square: (PackedStrategy),
56 invert: (PairwiseRecursiveStrategy),
57 mul_alpha: (PairwiseRecursiveStrategy),
58 transform: (PairwiseStrategy),
59 },
60 packed_field {
61 name: PackedAESBinaryField1x128b,
62 scalar: AESTowerField128b,
63 alpha_idx: _,
64 mul: (PairwiseRecursiveStrategy),
65 square: (PairwiseRecursiveStrategy),
66 invert: (PairwiseRecursiveStrategy),
67 mul_alpha: (PairwiseRecursiveStrategy),
68 transform: (PairwiseStrategy),
69 },
70 ]
71);
72
73impl_tower_constants!(AESTowerField8b, u128, 0x00d300d300d300d300d300d300d300d3);