Trait PackedTransformationFactory

Source
pub trait PackedTransformationFactory<OP>: PackedBinaryField{
    type PackedTransformation<Data: AsRef<[OP::Scalar]> + Sync>: Transformation<Self, OP>;

    // Required method
    fn make_packed_transformation<Data: AsRef<[OP::Scalar]> + Sync>(
        transformation: FieldLinearTransformation<OP::Scalar, Data>,
    ) -> Self::PackedTransformation<Data>;
}
Expand description

This crates represents a type that creates a packed transformation from Self to a packed field based on the scalar field transformation.

Required Associated Types§

Required Methods§

Source

fn make_packed_transformation<Data: AsRef<[OP::Scalar]> + Sync>( transformation: FieldLinearTransformation<OP::Scalar, Data>, ) -> Self::PackedTransformation<Data>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl PackedTransformationFactory<ByteSlicedAES2x16x8b> for ByteSlicedAES2x16x8b

Source§

impl PackedTransformationFactory<ByteSlicedAES2x32x8b> for ByteSlicedAES2x32x8b

Source§

type PackedTransformation<Data: AsRef<[AESTowerField8b]> + Sync> = TransformationWrapper8b<<ScaledPackedField<PackedPrimitiveType<M128, AESTowerField8b>, 2> as PackedTransformationFactory<ScaledPackedField<PackedPrimitiveType<M128, AESTowerField8b>, 2>>>::PackedTransformation<Data>>

Source§

impl PackedTransformationFactory<ByteSlicedAES2x64x8b> for ByteSlicedAES2x64x8b

Source§

type PackedTransformation<Data: AsRef<[AESTowerField8b]> + Sync> = TransformationWrapper8b<<ScaledPackedField<ScaledPackedField<PackedPrimitiveType<M128, AESTowerField8b>, 2>, 2> as PackedTransformationFactory<ScaledPackedField<ScaledPackedField<PackedPrimitiveType<M128, AESTowerField8b>, 2>, 2>>>::PackedTransformation<Data>>

Source§

impl PackedTransformationFactory<ByteSlicedAES4x16x8b> for ByteSlicedAES4x16x8b

Source§

impl PackedTransformationFactory<ByteSlicedAES4x32x8b> for ByteSlicedAES4x32x8b

Source§

type PackedTransformation<Data: AsRef<[AESTowerField8b]> + Sync> = TransformationWrapper8b<<ScaledPackedField<PackedPrimitiveType<M128, AESTowerField8b>, 2> as PackedTransformationFactory<ScaledPackedField<PackedPrimitiveType<M128, AESTowerField8b>, 2>>>::PackedTransformation<Data>>

Source§

impl PackedTransformationFactory<ByteSlicedAES4x64x8b> for ByteSlicedAES4x64x8b

Source§

type PackedTransformation<Data: AsRef<[AESTowerField8b]> + Sync> = TransformationWrapper8b<<ScaledPackedField<ScaledPackedField<PackedPrimitiveType<M128, AESTowerField8b>, 2>, 2> as PackedTransformationFactory<ScaledPackedField<ScaledPackedField<PackedPrimitiveType<M128, AESTowerField8b>, 2>, 2>>>::PackedTransformation<Data>>

Source§

impl PackedTransformationFactory<ByteSlicedAES8x16x8b> for ByteSlicedAES8x16x8b

Source§

impl PackedTransformationFactory<ByteSlicedAES8x32x8b> for ByteSlicedAES8x32x8b

Source§

type PackedTransformation<Data: AsRef<[AESTowerField8b]> + Sync> = TransformationWrapper8b<<ScaledPackedField<PackedPrimitiveType<M128, AESTowerField8b>, 2> as PackedTransformationFactory<ScaledPackedField<PackedPrimitiveType<M128, AESTowerField8b>, 2>>>::PackedTransformation<Data>>

Source§

impl PackedTransformationFactory<ByteSlicedAES8x64x8b> for ByteSlicedAES8x64x8b

Source§

type PackedTransformation<Data: AsRef<[AESTowerField8b]> + Sync> = TransformationWrapper8b<<ScaledPackedField<ScaledPackedField<PackedPrimitiveType<M128, AESTowerField8b>, 2>, 2> as PackedTransformationFactory<ScaledPackedField<ScaledPackedField<PackedPrimitiveType<M128, AESTowerField8b>, 2>, 2>>>::PackedTransformation<Data>>

Source§

impl PackedTransformationFactory<ByteSlicedAES16x8b> for ByteSlicedAES16x8b

Source§

type PackedTransformation<Data: AsRef<[<ByteSlicedAES16x8b as PackedField>::Scalar]> + Sync> = TransformationWrapperNxN<<PackedPrimitiveType<M128, AESTowerField8b> as PackedTransformationFactory<PackedPrimitiveType<M128, AESTowerField8b>>>::PackedTransformation<[AESTowerField8b; 8]>, {<$tower_level as TowerLevel>::WIDTH}>

Source§

impl PackedTransformationFactory<ByteSlicedAES16x16b> for ByteSlicedAES16x16b

Source§

type PackedTransformation<Data: AsRef<[<ByteSlicedAES16x16b as PackedField>::Scalar]> + Sync> = TransformationWrapperNxN<<PackedPrimitiveType<M128, AESTowerField8b> as PackedTransformationFactory<PackedPrimitiveType<M128, AESTowerField8b>>>::PackedTransformation<[AESTowerField8b; 8]>, {<$tower_level as TowerLevel>::WIDTH}>

Source§

impl PackedTransformationFactory<ByteSlicedAES16x16x8b> for ByteSlicedAES16x16x8b

Source§

impl PackedTransformationFactory<ByteSlicedAES16x32b> for ByteSlicedAES16x32b

Source§

type PackedTransformation<Data: AsRef<[<ByteSlicedAES16x32b as PackedField>::Scalar]> + Sync> = TransformationWrapperNxN<<PackedPrimitiveType<M128, AESTowerField8b> as PackedTransformationFactory<PackedPrimitiveType<M128, AESTowerField8b>>>::PackedTransformation<[AESTowerField8b; 8]>, {<$tower_level as TowerLevel>::WIDTH}>

Source§

impl PackedTransformationFactory<ByteSlicedAES16x32x8b> for ByteSlicedAES16x32x8b

Source§

type PackedTransformation<Data: AsRef<[AESTowerField8b]> + Sync> = TransformationWrapper8b<<ScaledPackedField<PackedPrimitiveType<M128, AESTowerField8b>, 2> as PackedTransformationFactory<ScaledPackedField<PackedPrimitiveType<M128, AESTowerField8b>, 2>>>::PackedTransformation<Data>>

Source§

impl PackedTransformationFactory<ByteSlicedAES16x64b> for ByteSlicedAES16x64b

Source§

type PackedTransformation<Data: AsRef<[<ByteSlicedAES16x64b as PackedField>::Scalar]> + Sync> = TransformationWrapperNxN<<PackedPrimitiveType<M128, AESTowerField8b> as PackedTransformationFactory<PackedPrimitiveType<M128, AESTowerField8b>>>::PackedTransformation<[AESTowerField8b; 8]>, {<$tower_level as TowerLevel>::WIDTH}>

Source§

impl PackedTransformationFactory<ByteSlicedAES16x64x8b> for ByteSlicedAES16x64x8b

Source§

type PackedTransformation<Data: AsRef<[AESTowerField8b]> + Sync> = TransformationWrapper8b<<ScaledPackedField<ScaledPackedField<PackedPrimitiveType<M128, AESTowerField8b>, 2>, 2> as PackedTransformationFactory<ScaledPackedField<ScaledPackedField<PackedPrimitiveType<M128, AESTowerField8b>, 2>, 2>>>::PackedTransformation<Data>>

Source§

impl PackedTransformationFactory<ByteSlicedAES16x128b> for ByteSlicedAES16x128b

Source§

type PackedTransformation<Data: AsRef<[<ByteSlicedAES16x128b as PackedField>::Scalar]> + Sync> = TransformationWrapperNxN<<PackedPrimitiveType<M128, AESTowerField8b> as PackedTransformationFactory<PackedPrimitiveType<M128, AESTowerField8b>>>::PackedTransformation<[AESTowerField8b; 8]>, {<$tower_level as TowerLevel>::WIDTH}>

Source§

impl PackedTransformationFactory<ByteSlicedAES32x8b> for ByteSlicedAES32x8b

Source§

type PackedTransformation<Data: AsRef<[<ByteSlicedAES32x8b as PackedField>::Scalar]> + Sync> = TransformationWrapperNxN<<ScaledPackedField<PackedPrimitiveType<M128, AESTowerField8b>, 2> as PackedTransformationFactory<ScaledPackedField<PackedPrimitiveType<M128, AESTowerField8b>, 2>>>::PackedTransformation<[AESTowerField8b; 8]>, {<$tower_level as TowerLevel>::WIDTH}>

Source§

impl PackedTransformationFactory<ByteSlicedAES32x16b> for ByteSlicedAES32x16b

Source§

type PackedTransformation<Data: AsRef<[<ByteSlicedAES32x16b as PackedField>::Scalar]> + Sync> = TransformationWrapperNxN<<ScaledPackedField<PackedPrimitiveType<M128, AESTowerField8b>, 2> as PackedTransformationFactory<ScaledPackedField<PackedPrimitiveType<M128, AESTowerField8b>, 2>>>::PackedTransformation<[AESTowerField8b; 8]>, {<$tower_level as TowerLevel>::WIDTH}>

Source§

impl PackedTransformationFactory<ByteSlicedAES32x32b> for ByteSlicedAES32x32b

Source§

type PackedTransformation<Data: AsRef<[<ByteSlicedAES32x32b as PackedField>::Scalar]> + Sync> = TransformationWrapperNxN<<ScaledPackedField<PackedPrimitiveType<M128, AESTowerField8b>, 2> as PackedTransformationFactory<ScaledPackedField<PackedPrimitiveType<M128, AESTowerField8b>, 2>>>::PackedTransformation<[AESTowerField8b; 8]>, {<$tower_level as TowerLevel>::WIDTH}>

Source§

impl PackedTransformationFactory<ByteSlicedAES32x64b> for ByteSlicedAES32x64b

Source§

type PackedTransformation<Data: AsRef<[<ByteSlicedAES32x64b as PackedField>::Scalar]> + Sync> = TransformationWrapperNxN<<ScaledPackedField<PackedPrimitiveType<M128, AESTowerField8b>, 2> as PackedTransformationFactory<ScaledPackedField<PackedPrimitiveType<M128, AESTowerField8b>, 2>>>::PackedTransformation<[AESTowerField8b; 8]>, {<$tower_level as TowerLevel>::WIDTH}>

Source§

impl PackedTransformationFactory<ByteSlicedAES32x128b> for ByteSlicedAES32x128b

Source§

type PackedTransformation<Data: AsRef<[<ByteSlicedAES32x128b as PackedField>::Scalar]> + Sync> = TransformationWrapperNxN<<ScaledPackedField<PackedPrimitiveType<M128, AESTowerField8b>, 2> as PackedTransformationFactory<ScaledPackedField<PackedPrimitiveType<M128, AESTowerField8b>, 2>>>::PackedTransformation<[AESTowerField8b; 8]>, {<$tower_level as TowerLevel>::WIDTH}>

Source§

impl PackedTransformationFactory<ByteSlicedAES64x8b> for ByteSlicedAES64x8b

Source§

type PackedTransformation<Data: AsRef<[<ByteSlicedAES64x8b as PackedField>::Scalar]> + Sync> = TransformationWrapperNxN<<ScaledPackedField<ScaledPackedField<PackedPrimitiveType<M128, AESTowerField8b>, 2>, 2> as PackedTransformationFactory<ScaledPackedField<ScaledPackedField<PackedPrimitiveType<M128, AESTowerField8b>, 2>, 2>>>::PackedTransformation<[AESTowerField8b; 8]>, {<$tower_level as TowerLevel>::WIDTH}>

Source§

impl PackedTransformationFactory<ByteSlicedAES64x16b> for ByteSlicedAES64x16b

Source§

type PackedTransformation<Data: AsRef<[<ByteSlicedAES64x16b as PackedField>::Scalar]> + Sync> = TransformationWrapperNxN<<ScaledPackedField<ScaledPackedField<PackedPrimitiveType<M128, AESTowerField8b>, 2>, 2> as PackedTransformationFactory<ScaledPackedField<ScaledPackedField<PackedPrimitiveType<M128, AESTowerField8b>, 2>, 2>>>::PackedTransformation<[AESTowerField8b; 8]>, {<$tower_level as TowerLevel>::WIDTH}>

Source§

impl PackedTransformationFactory<ByteSlicedAES64x32b> for ByteSlicedAES64x32b

Source§

type PackedTransformation<Data: AsRef<[<ByteSlicedAES64x32b as PackedField>::Scalar]> + Sync> = TransformationWrapperNxN<<ScaledPackedField<ScaledPackedField<PackedPrimitiveType<M128, AESTowerField8b>, 2>, 2> as PackedTransformationFactory<ScaledPackedField<ScaledPackedField<PackedPrimitiveType<M128, AESTowerField8b>, 2>, 2>>>::PackedTransformation<[AESTowerField8b; 8]>, {<$tower_level as TowerLevel>::WIDTH}>

Source§

impl PackedTransformationFactory<ByteSlicedAES64x64b> for ByteSlicedAES64x64b

Source§

type PackedTransformation<Data: AsRef<[<ByteSlicedAES64x64b as PackedField>::Scalar]> + Sync> = TransformationWrapperNxN<<ScaledPackedField<ScaledPackedField<PackedPrimitiveType<M128, AESTowerField8b>, 2>, 2> as PackedTransformationFactory<ScaledPackedField<ScaledPackedField<PackedPrimitiveType<M128, AESTowerField8b>, 2>, 2>>>::PackedTransformation<[AESTowerField8b; 8]>, {<$tower_level as TowerLevel>::WIDTH}>

Source§

impl PackedTransformationFactory<ByteSlicedAES64x128b> for ByteSlicedAES64x128b

Source§

type PackedTransformation<Data: AsRef<[<ByteSlicedAES64x128b as PackedField>::Scalar]> + Sync> = TransformationWrapperNxN<<ScaledPackedField<ScaledPackedField<PackedPrimitiveType<M128, AESTowerField8b>, 2>, 2> as PackedTransformationFactory<ScaledPackedField<ScaledPackedField<PackedPrimitiveType<M128, AESTowerField8b>, 2>, 2>>>::PackedTransformation<[AESTowerField8b; 8]>, {<$tower_level as TowerLevel>::WIDTH}>

Source§

impl<OP> PackedTransformationFactory<OP> for PackedAESBinaryField1x8b

Source§

impl<OP> PackedTransformationFactory<OP> for PackedAESBinaryField1x16b

Source§

impl<OP> PackedTransformationFactory<OP> for PackedAESBinaryField1x32b

Source§

impl<OP> PackedTransformationFactory<OP> for PackedAESBinaryField1x64b

Source§

impl<OP> PackedTransformationFactory<OP> for PackedAESBinaryField1x128b

Source§

impl<OP> PackedTransformationFactory<OP> for PackedAESBinaryField2x8b

Source§

impl<OP> PackedTransformationFactory<OP> for PackedAESBinaryField2x16b

Source§

impl<OP> PackedTransformationFactory<OP> for PackedAESBinaryField2x32b

Source§

impl<OP> PackedTransformationFactory<OP> for PackedAESBinaryField2x64b

Source§

impl<OP> PackedTransformationFactory<OP> for PackedAESBinaryField4x8b

Source§

impl<OP> PackedTransformationFactory<OP> for PackedAESBinaryField4x16b

Source§

impl<OP> PackedTransformationFactory<OP> for PackedAESBinaryField4x32b

Source§

impl<OP> PackedTransformationFactory<OP> for PackedAESBinaryField8x8b

Source§

impl<OP> PackedTransformationFactory<OP> for PackedAESBinaryField8x16b

Source§

impl<OP> PackedTransformationFactory<OP> for PackedAESBinaryField16x8b

Source§

impl<OP> PackedTransformationFactory<OP> for PackedBinaryField1x1b

Source§

impl<OP> PackedTransformationFactory<OP> for PackedBinaryField1x2b

Source§

impl<OP> PackedTransformationFactory<OP> for PackedBinaryField1x4b

Source§

impl<OP> PackedTransformationFactory<OP> for PackedBinaryField1x8b

Source§

impl<OP> PackedTransformationFactory<OP> for PackedBinaryField1x16b

Source§

impl<OP> PackedTransformationFactory<OP> for PackedBinaryField1x32b

Source§

impl<OP> PackedTransformationFactory<OP> for PackedBinaryField1x64b

Source§

impl<OP> PackedTransformationFactory<OP> for PackedBinaryField1x128b

Source§

impl<OP> PackedTransformationFactory<OP> for PackedBinaryField2x1b

Source§

impl<OP> PackedTransformationFactory<OP> for PackedBinaryField2x2b

Source§

impl<OP> PackedTransformationFactory<OP> for PackedBinaryField2x4b

Source§

impl<OP> PackedTransformationFactory<OP> for PackedBinaryField2x8b

Source§

impl<OP> PackedTransformationFactory<OP> for PackedBinaryField2x16b

Source§

impl<OP> PackedTransformationFactory<OP> for PackedBinaryField2x32b

Source§

impl<OP> PackedTransformationFactory<OP> for PackedBinaryField2x64b

Source§

impl<OP> PackedTransformationFactory<OP> for PackedBinaryField4x1b

Source§

impl<OP> PackedTransformationFactory<OP> for PackedBinaryField4x2b

Source§

impl<OP> PackedTransformationFactory<OP> for PackedBinaryField4x4b

Source§

impl<OP> PackedTransformationFactory<OP> for PackedBinaryField4x8b

Source§

impl<OP> PackedTransformationFactory<OP> for PackedBinaryField4x16b

Source§

impl<OP> PackedTransformationFactory<OP> for PackedBinaryField4x32b

Source§

impl<OP> PackedTransformationFactory<OP> for PackedBinaryField8x1b

Source§

impl<OP> PackedTransformationFactory<OP> for PackedBinaryField8x2b

Source§

impl<OP> PackedTransformationFactory<OP> for PackedBinaryField8x4b

Source§

impl<OP> PackedTransformationFactory<OP> for PackedBinaryField8x8b

Source§

impl<OP> PackedTransformationFactory<OP> for PackedBinaryField8x16b

Source§

impl<OP> PackedTransformationFactory<OP> for PackedBinaryField16x1b

Source§

impl<OP> PackedTransformationFactory<OP> for PackedBinaryField16x2b

Source§

impl<OP> PackedTransformationFactory<OP> for PackedBinaryField16x4b

Source§

impl<OP> PackedTransformationFactory<OP> for PackedBinaryField16x8b

Source§

impl<OP> PackedTransformationFactory<OP> for PackedBinaryField32x1b

Source§

impl<OP> PackedTransformationFactory<OP> for PackedBinaryField32x2b

Source§

impl<OP> PackedTransformationFactory<OP> for PackedBinaryField32x4b

Source§

impl<OP> PackedTransformationFactory<OP> for PackedBinaryField64x1b

Source§

impl<OP> PackedTransformationFactory<OP> for PackedBinaryField64x2b

Source§

impl<OP> PackedTransformationFactory<OP> for PackedBinaryField128x1b

Source§

impl<OP> PackedTransformationFactory<OP> for PackedBinaryPolyval1x128b