public static Hasher Create(TlsHashAlgorithm hashAlgorithm) { switch (hashAlgorithm) { #if NET45 || NET451 case TlsHashAlgorithm.MD5: return(new HashAlgorithmHasher(new MD5CryptoServiceProvider())); case TlsHashAlgorithm.SHA1: return(new HashAlgorithmHasher(new SHA1CryptoServiceProvider())); case TlsHashAlgorithm.SHA256: return(new HashAlgorithmHasher(new SHA256CryptoServiceProvider())); case TlsHashAlgorithm.SHA384: return(new HashAlgorithmHasher(new SHA384CryptoServiceProvider())); case TlsHashAlgorithm.SHA512: return(new HashAlgorithmHasher(new SHA512CryptoServiceProvider())); case TlsHashAlgorithm.MD5SHA1: return(new HashAlgorithmHasher(new MD5SHA1())); default: throw new NotSupportedException(); #else case TlsHashAlgorithm.MD5: return(new IncrementalHashHasher(HashAlgorithmName.MD5)); case TlsHashAlgorithm.SHA1: return(new IncrementalHashHasher(HashAlgorithmName.SHA1)); case TlsHashAlgorithm.SHA256: return(new IncrementalHashHasher(HashAlgorithmName.SHA256)); case TlsHashAlgorithm.SHA384: return(new IncrementalHashHasher(HashAlgorithmName.SHA384)); case TlsHashAlgorithm.SHA512: return(new IncrementalHashHasher(HashAlgorithmName.SHA512)); case TlsHashAlgorithm.MD5SHA1: return(new MD5SHA1IncrementalHasher()); default: throw new NotSupportedException(); #endif } }
public static HashAlgorithmName GetHashAlgorithmName(TlsHashAlgorithm hashAlgorithm) { switch (hashAlgorithm) { case TlsHashAlgorithm.MD5: return(HashAlgorithmName.MD5); case TlsHashAlgorithm.SHA1: return(HashAlgorithmName.SHA1); case TlsHashAlgorithm.SHA256: return(HashAlgorithmName.SHA256); case TlsHashAlgorithm.SHA384: return(HashAlgorithmName.SHA384); case TlsHashAlgorithm.SHA512: return(HashAlgorithmName.SHA512); default: throw new NotSupportedException(); } }
public static int GetHashLen(TlsHashAlgorithm hashAlgorithm) { switch (hashAlgorithm) { case TlsHashAlgorithm.SHA1: return(160); case TlsHashAlgorithm.SHA256: return(256); case TlsHashAlgorithm.SHA384: return(384); case TlsHashAlgorithm.SHA512: return(512); default: throw new NotSupportedException(); } }