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 #pragma warning disable IDE0060 // unused parameters
6 using System
.Runtime
.CompilerServices
;
8 namespace System
.Runtime
.Intrinsics
.Arm
.Arm64
11 /// This class provides access to the Arm64 SHA1 Crypto intrinsics
13 /// Arm64 CPU indicate support for this feature by setting
14 /// ID_AA64ISAR0_EL1.SHA1 is 1 or better
17 public static class Sha1
19 public static bool IsSupported { [Intrinsic] get => false; }
22 /// Performs SHA1 hash update choose form.
23 /// vsha1cq_u32 (uint32x4_t hash_abcd, uint32_t hash_e, uint32x4_t wk)
25 public static Vector128
<uint> HashChoose(Vector128
<uint> hash_abcd
, uint hash_e
, Vector128
<uint> wk
) { throw new PlatformNotSupportedException(); }
28 /// Performs SHA1 hash update majority form.
29 /// vsha1mq_u32 (uint32x4_t hash_abcd, uint32_t hash_e, uint32x4_t wk)
31 public static Vector128
<uint> HashMajority(Vector128
<uint> hash_abcd
, uint hash_e
, Vector128
<uint> wk
) { throw new PlatformNotSupportedException(); }
34 /// Performs SHA1 hash update parity form.
35 /// vsha1pq_u32 (uint32x4_t hash_abcd, uint32_t hash_e, uint32x4_t wk)
37 public static Vector128
<uint> HashParity(Vector128
<uint> hash_abcd
, uint hash_e
, Vector128
<uint> wk
) { throw new PlatformNotSupportedException(); }
40 /// Performs SHA1 fixed rotate
41 /// vsha1h_u32 (uint32_t hash_e)
43 public static uint FixedRotate(uint hash_e
) { throw new PlatformNotSupportedException(); }
46 /// Performs SHA1 schedule update 0
47 /// vsha1su0q_u32 (uint32x4_t w0_3, uint32x4_t w4_7, uint32x4_t w8_11)
49 public static Vector128
<uint> SchedulePart1(Vector128
<uint> w0_3
, Vector128
<uint> w4_7
, Vector128
<uint> w8_11
) { throw new PlatformNotSupportedException(); }
52 /// Performs SHA1 schedule update 1
53 /// vsha1su1q_u32 (uint32x4_t tw0_3, uint32x4_t w12_15)
55 public static Vector128
<uint> SchedulePart2(Vector128
<uint> tw0_3
, Vector128
<uint> w12_15
) { throw new PlatformNotSupportedException(); }