<PackageReference Include="BouncyCastle.Cryptography" Version="2.5.1" />

HashAlgorithm

public abstract class HashAlgorithm
RFC 5246 7.4.1.4.1
namespace Org.BouncyCastle.Tls { public abstract class HashAlgorithm { public const short none = 0; public const short md5 = 1; public const short sha1 = 2; public const short sha224 = 3; public const short sha256 = 4; public const short sha384 = 5; public const short sha512 = 6; public const short Intrinsic = 8; public static string GetName(short hashAlgorithm) { switch (hashAlgorithm) { case 0: return "none"; case 1: return "md5"; case 2: return "sha1"; case 3: return "sha224"; case 4: return "sha256"; case 5: return "sha384"; case 6: return "sha512"; case 8: return "Intrinsic"; default: return "UNKNOWN"; } } public static int GetOutputSize(short hashAlgorithm) { switch (hashAlgorithm) { case 1: return 16; case 2: return 20; case 3: return 28; case 4: return 32; case 5: return 48; case 6: return 64; default: return -1; } } public static string GetText(short hashAlgorithm) { return GetName(hashAlgorithm) + "(" + hashAlgorithm.ToString() + ")"; } public static bool IsPrivate(short hashAlgorithm) { if (224 <= hashAlgorithm) return hashAlgorithm <= 255; return false; } public static bool IsRecognized(short hashAlgorithm) { if ((uint)(hashAlgorithm - 1) <= 5 || hashAlgorithm == 8) return true; return false; } } }