ARM64 Aes Crypto intrinsics implementation
[platform/upstream/coreclr.git] / src / mscorlib / src / System / Runtime / Intrinsics / Arm / Arm64 / Aes.PlatformNotSupported.cs
1 using System.Runtime.CompilerServices;
2 using System.Runtime.Intrinsics;
3
4 namespace System.Runtime.Intrinsics.Arm.Arm64
5 {
6     /// <summary>
7     /// This class provides access to the Arm64 AES Crypto intrinsics
8     ///
9     /// Arm64 CPU indicate support for this feature by setting
10     /// ID_AA64ISAR0_EL1.AES is 1 or better
11     /// </summary>
12     [CLSCompliant(false)]
13     public static class Aes
14     {
15         public static bool IsSupported {  get { return false; } }
16         // <summary>
17         /// Performs AES single round decryption
18         /// vaesdq_u8 (uint8x16_t data, uint8x16_t key)
19         ///</summary>
20         public static Vector128<byte> Decrypt(Vector128<byte> value, Vector128<byte> roundKey) { throw new PlatformNotSupportedException(); }
21
22         // <summary>
23         /// Performs AES single round encryption
24         /// vaeseq_u8 (uint8x16_t data, uint8x16_t key)
25         ///</summary>
26         public static Vector128<byte> Encrypt(Vector128<byte> value, Vector128<byte> roundKey) { throw new PlatformNotSupportedException(); }
27
28         // <summary>
29         /// Performs AES  Mix Columns
30         /// vaesmcq_u8 (uint8x16_t data)
31         ///</summary>
32         public static Vector128<byte> MixColumns(Vector128<byte> value) { throw new PlatformNotSupportedException(); }
33
34         // <summary>
35         /// Performs AES inverse mix columns
36         /// vaesimcq_u8  (uint8x16_t data)
37         ///</summary>
38         public static Vector128<byte> InverseMixColumns(Vector128<byte> value) { throw new PlatformNotSupportedException(); }
39     }
40 }