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.
6 using System
.Runtime
.CompilerServices
;
7 using System
.Runtime
.Intrinsics
;
9 namespace System
.Runtime
.Intrinsics
.Arm
.Arm64
12 /// This class provides access to the Arm64 SHA256 Crypto intrinsics
14 /// Arm64 CPU indicate support for this feature by setting
15 /// ID_AA64ISAR0_EL1.SHA2 is 1 or better
18 public static class Sha256
20 public static bool IsSupported { get { return false; }
}
23 /// Performs SHA256 hash update (part 1).
24 /// vsha256hq_u32 (uint32x4_t hash_abcd, uint32x4_t hash_efgh, uint32x4_t wk)
26 public static Vector128
<uint> HashLower(Vector128
<uint> hash_abcd
, Vector128
<uint> hash_efgh
, Vector128
<uint> wk
) { throw new PlatformNotSupportedException(); }
29 /// Performs SHA256 hash update (part 2).
30 /// vsha256h2q_u32 (uint32x4_t hash_efgh, uint32x4_t hash_abcd, uint32x4_t wk)
32 public static Vector128
<uint> HashUpper(Vector128
<uint> hash_efgh
, Vector128
<uint> hash_abcd
, Vector128
<uint> wk
) { throw new PlatformNotSupportedException(); }
35 /// Performs SHA256 schedule update 0
36 /// vsha256su0q_u32 (uint32x4_t w0_3, uint32x4_t w4_7)
38 public static Vector128
<uint> SchedulePart1(Vector128
<uint> w0_3
, Vector128
<uint> w4_7
) { throw new PlatformNotSupportedException(); }
41 /// Performs SHA256 schedule update 1
42 /// vsha256su1q_u32 (uint32x4_t w0_3, uint32x4_t w8_11, uint32x4_t w12_15)
44 public static Vector128
<uint> SchedulePart2(Vector128
<uint> w0_3
, Vector128
<uint> w8_11
, Vector128
<uint> w12_15
) { throw new PlatformNotSupportedException(); }