public static IHashAlgorithim GetAlgorithimInterface(this Enumerations.ChecksumAlgorithim val) { switch (val) { case Enumerations.ChecksumAlgorithim.None: return(new Empty()); case Enumerations.ChecksumAlgorithim.MD5: return(new MD5()); case Enumerations.ChecksumAlgorithim.SHA1: return(new SHA1()); case Enumerations.ChecksumAlgorithim.SHA256: return(new SHA256()); case Enumerations.ChecksumAlgorithim.SHA384: return(new SHA384()); case Enumerations.ChecksumAlgorithim.SHA512: return(new SHA512()); default: throw new Exception($"Unhandled {nameof(Enumerations.ChecksumAlgorithim)}: {val}"); } }
private static IHashAlgorithim GetAlgorithim(string flag) { if (string.IsNullOrWhiteSpace(flag)) { throw new ArgumentException($"The checksum algorithim flag is empty/null."); } Enumerations.ChecksumAlgorithim algorithim = Enumerations.ChecksumAlgorithim.None; if (flag.Equals(m_Algorithim_Md5, StringComparison.OrdinalIgnoreCase)) { Log("Algorithim is MD5."); algorithim = Enumerations.ChecksumAlgorithim.MD5; } else if (flag.Equals(m_Algorithim_Sha_1, StringComparison.OrdinalIgnoreCase)) { Log("Algorithim is SHA-1."); algorithim = Enumerations.ChecksumAlgorithim.SHA1; } else if (flag.Equals(m_Algorithim_Sha_256, StringComparison.OrdinalIgnoreCase)) { Log("Algorithim is SHA-256."); algorithim = Enumerations.ChecksumAlgorithim.SHA256; } else if (flag.Equals(m_Algorithim_Sha_384, StringComparison.OrdinalIgnoreCase)) { Log("Algorithim is SHA384."); algorithim = Enumerations.ChecksumAlgorithim.SHA384; } else if (flag.Equals(m_Algorithim_Sha_512, StringComparison.OrdinalIgnoreCase)) { Log("Algorithim is SHA-512."); algorithim = Enumerations.ChecksumAlgorithim.SHA512; } else { throw new ArgumentException($"The checksum algorithim flag is unhandled: \"{flag}\"."); } return(HashAlgorithimFactory.Get(algorithim)); }
public static IHashAlgorithim Get(Enumerations.ChecksumAlgorithim algorithim) { IHashAlgorithim hashAlgoithim = new Empty(); switch (algorithim) { case Enumerations.ChecksumAlgorithim.None: // Do nothing. Keep the case so that we know it's being // handled and it's not a mistake. break; case Enumerations.ChecksumAlgorithim.MD5: hashAlgoithim = new MD5(); break; case Enumerations.ChecksumAlgorithim.SHA1: hashAlgoithim = new SHA1(); break; case Enumerations.ChecksumAlgorithim.SHA256: hashAlgoithim = new SHA256(); break; case Enumerations.ChecksumAlgorithim.SHA384: hashAlgoithim = new SHA384(); break; case Enumerations.ChecksumAlgorithim.SHA512: hashAlgoithim = new SHA512(); break; default: throw new ArgumentException($"Unhandled {nameof(Enumerations.ChecksumAlgorithim)}: {algorithim}"); } return(hashAlgoithim); }