using System.Runtime.CompilerServices; using System.Runtime.Intrinsics; namespace System.Runtime.Intrinsics.Arm.Arm64 { /// /// This class provides access to the Arm64 SHA256 Crypto intrinsics /// /// Arm64 CPU indicate support for this feature by setting /// ID_AA64ISAR0_EL1.SHA2 is 1 or better /// [CLSCompliant(false)] public static class Sha256 { public static bool IsSupported { get { return false; } } // /// Performs SHA256 hash update (part 1). /// vsha256hq_u32 (uint32x4_t hash_abcd, uint32x4_t hash_efgh, uint32x4_t wk) /// public static Vector128 HashLower(Vector128 hash_abcd, Vector128 hash_efgh, Vector128 wk) { throw new PlatformNotSupportedException(); } // /// Performs SHA256 hash update (part 2). /// vsha256h2q_u32 (uint32x4_t hash_efgh, uint32x4_t hash_abcd, uint32x4_t wk) /// public static Vector128 HashUpper(Vector128 hash_efgh, Vector128 hash_abcd, Vector128 wk) { throw new PlatformNotSupportedException(); } // /// Performs SHA256 schedule update 0 /// vsha256su0q_u32 (uint32x4_t w0_3, uint32x4_t w4_7) /// public static Vector128 SchedulePart1(Vector128 w0_3, Vector128 w4_7) { throw new PlatformNotSupportedException(); } // /// Performs SHA256 schedule update 1 /// vsha256su1q_u32 (uint32x4_t w0_3, uint32x4_t w8_11, uint32x4_t w12_15) /// public static Vector128 SchedulePart2(Vector128 w0_3, Vector128 w8_11, Vector128 w12_15) { throw new PlatformNotSupportedException(); } } }