private JHHashAlgorithm(int bitLen) { this._bitLen = bitLen; this._jh = JH.Create(bitLen); this._finalHash = null; this._stream = new MemoryStream(); }
/// <summary> /// Creates a new instance of JH hasher configured for the result bit length specified /// </summary> /// <param name="bitLen">Bits for result: 224, 256, 384 or 512</param> /// <returns>Hasher instance</returns> public static JH Create(int bitLen) { if ((bitLen != 224) && (bitLen != 256) && (bitLen != 384) && (bitLen != 512)) { throw new ArgumentException(); } var result = new JH(); result.Config(bitLen); return(result); }
public static ICryptoHash Create(CryptoHashName hash) { switch (hash) { case CryptoHashName.Sha256: return(Sha2.Create(256)); case CryptoHashName.Sha224: return(Sha2.Create(224)); case CryptoHashName.Sha512: return(Sha2.Create(512)); case CryptoHashName.Sha384: return(Sha2.Create(384)); case CryptoHashName.Blake256: return(Blake.Create(256)); case CryptoHashName.Blake224: return(Blake.Create(224)); case CryptoHashName.Blake512: return(Blake.Create(512)); case CryptoHashName.Blake384: return(Blake.Create(384)); case CryptoHashName.Groestl256: return(Groestl.Create(256)); case CryptoHashName.Groestl224: return(Groestl.Create(224)); case CryptoHashName.Groestl512: return(Groestl.Create(512)); case CryptoHashName.Groestl384: return(Groestl.Create(384)); case CryptoHashName.JH256: return(JH.Create(256)); case CryptoHashName.JH224: return(JH.Create(224)); case CryptoHashName.JH512: return(JH.Create(512)); case CryptoHashName.JH384: return(JH.Create(384)); case CryptoHashName.Skein256: return(Skein.Create(256)); case CryptoHashName.Skein224: return(Skein.Create(224)); case CryptoHashName.Skein512: return(Skein.Create(512)); case CryptoHashName.Skein384: return(Skein.Create(384)); case CryptoHashName.QmhHuk256: return(QmhHuk.Create(256)); case CryptoHashName.QmhHuk224: return(QmhHuk.Create(224)); case CryptoHashName.QmhHuk512: return(QmhHuk.Create(512)); case CryptoHashName.QmhHuk384: return(QmhHuk.Create(384)); default: throw new ArgumentException(); } }