Nullable: System.Runtime.Intrinsics
[mono-project.git] / netcore / System.Private.CoreLib / shared / System / Runtime / Intrinsics / Arm / Arm64 / Sha256.PlatformNotSupported.cs
blobf56cfa4597d90793668b3a2785cfd89de59e4e7e
1 // Licensed to the .NET Foundation under one or more agreements.
2 // The .NET Foundation licenses this file to you under the MIT license.
3 // See the LICENSE file in the project root for more information.
5 #nullable enable
6 using System.Runtime.CompilerServices;
7 using System.Runtime.Intrinsics;
9 namespace System.Runtime.Intrinsics.Arm.Arm64
11 /// <summary>
12 /// This class provides access to the Arm64 SHA256 Crypto intrinsics
13 ///
14 /// Arm64 CPU indicate support for this feature by setting
15 /// ID_AA64ISAR0_EL1.SHA2 is 1 or better
16 /// </summary>
17 [CLSCompliant(false)]
18 public static class Sha256
20 public static bool IsSupported { get { return false; } }
22 /// <summary>
23 /// Performs SHA256 hash update (part 1).
24 /// vsha256hq_u32 (uint32x4_t hash_abcd, uint32x4_t hash_efgh, uint32x4_t wk)
25 /// </summary>
26 public static Vector128<uint> HashLower(Vector128<uint> hash_abcd, Vector128<uint> hash_efgh, Vector128<uint> wk) { throw new PlatformNotSupportedException(); }
28 /// <summary>
29 /// Performs SHA256 hash update (part 2).
30 /// vsha256h2q_u32 (uint32x4_t hash_efgh, uint32x4_t hash_abcd, uint32x4_t wk)
31 /// </summary>
32 public static Vector128<uint> HashUpper(Vector128<uint> hash_efgh, Vector128<uint> hash_abcd, Vector128<uint> wk) { throw new PlatformNotSupportedException(); }
34 /// <summary>
35 /// Performs SHA256 schedule update 0
36 /// vsha256su0q_u32 (uint32x4_t w0_3, uint32x4_t w4_7)
37 /// </summary>
38 public static Vector128<uint> SchedulePart1(Vector128<uint> w0_3, Vector128<uint> w4_7) { throw new PlatformNotSupportedException(); }
40 /// <summary>
41 /// Performs SHA256 schedule update 1
42 /// vsha256su1q_u32 (uint32x4_t w0_3, uint32x4_t w8_11, uint32x4_t w12_15)
43 /// </summary>
44 public static Vector128<uint> SchedulePart2(Vector128<uint> w0_3, Vector128<uint> w8_11, Vector128<uint> w12_15) { throw new PlatformNotSupportedException(); }