public virtual ITestResult Perform() { IDigest digest = new RipeMD256Digest(); byte[] resBuf = new byte[digest.GetDigestSize()]; for (int i = 0; i < messages.Length; i++) { byte[] m = Encoding.ASCII.GetBytes(messages[i]); digest.BlockUpdate(m, 0, m.Length); digest.DoFinal(resBuf, 0); if (!Arrays.AreEqual(resBuf, Hex.Decode(digests[i]))) { return(new SimpleTestResult(false, Name + ": Vector " + i + " failed" + " expected: " + digests[i] + SimpleTest.NewLine + " got : " + Hex.ToHexString(resBuf))); } } // // test 2 // byte[] m2 = Encoding.ASCII.GetBytes(messages[messages.Length - 1]); digest.BlockUpdate(m2, 0, m2.Length / 2); // clone the IDigest IDigest d = new RipeMD256Digest((RipeMD256Digest)digest); digest.BlockUpdate(m2, m2.Length / 2, m2.Length - m2.Length / 2); digest.DoFinal(resBuf, 0); if (!Arrays.AreEqual(resBuf, Hex.Decode(digests[digests.Length - 1]))) { return(new SimpleTestResult(false, "RipeMD256 failing clone test" + SimpleTest.NewLine + " expected: " + digests[digests.Length - 1] + SimpleTest.NewLine + " got : " + Hex.ToHexString(resBuf))); } d.BlockUpdate(m2, m2.Length / 2, m2.Length - m2.Length / 2); d.DoFinal(resBuf, 0); if (!Arrays.AreEqual(resBuf, Hex.Decode(digests[digests.Length - 1]))) { return(new SimpleTestResult(false, "RipeMD256 failing clone test - part 2" + SimpleTest.NewLine + " expected: " + digests[digests.Length - 1] + SimpleTest.NewLine + " got : " + Hex.ToHexString(resBuf))); } for (int i = 0; i < 1000000; i++) { digest.Update((byte)'a'); } digest.DoFinal(resBuf, 0); if (!Arrays.AreEqual(resBuf, Hex.Decode(MillionADigest))) { return(new SimpleTestResult(false, Name + ": Million a's failed")); } return(new SimpleTestResult(true, Name + ": Okay")); }
public static byte[] Hash256(byte[] bytes) { var digest = new RipeMD256Digest(); var output = new byte[digest.GetDigestSize()]; digest.BlockUpdate(bytes, 0, bytes.Length); digest.DoFinal(output, 0); return(output); }
public static byte[] Hash256(byte[] message) { var digest = new RipeMD256Digest(); var output = new byte[digest.GetDigestSize()]; byte[] msg = message ?? new byte[0]; digest.BlockUpdate(msg, 0, msg.Length); digest.DoFinal(output, 0); return(output); }
private void CopyIn(RipeMD256Digest t) { CopyIn((GeneralDigest)t); H0 = t.H0; H1 = t.H1; H2 = t.H2; H3 = t.H3; H4 = t.H4; H5 = t.H5; H6 = t.H6; H7 = t.H7; Array.Copy(t.X, 0, X, 0, t.X.Length); xOff = t.xOff; }
public static byte[] RIPEMD256(byte[] bytes) { if (!RIPEMD256Hashers.TryPop(out var hasher)) { hasher = new RipeMD256Digest(); } try { var result = new byte[hasher.GetDigestSize()]; hasher.BlockUpdate(bytes, 0, bytes.Length); hasher.DoFinal(result, 0); hasher.Reset(); return(result); } finally { RIPEMD256Hashers.Push(hasher); } }
public RipeMD256Digest(RipeMD256Digest t) : base(t) { CopyIn(t); }
public override void Reset(IMemoable other) { RipeMD256Digest t = (RipeMD256Digest)other; CopyIn(t); }
public static IDigest GetDigest(string algorithm) { string text = Platform.ToUpperInvariant(algorithm); string text2 = (string)DigestUtilities.algorithms[text]; if (text2 == null) { text2 = text; } try { switch ((DigestUtilities.DigestAlgorithm)Enums.GetEnumValue(typeof(DigestUtilities.DigestAlgorithm), text2)) { case DigestUtilities.DigestAlgorithm.GOST3411: { IDigest result = new Gost3411Digest(); return(result); } case DigestUtilities.DigestAlgorithm.MD2: { IDigest result = new MD2Digest(); return(result); } case DigestUtilities.DigestAlgorithm.MD4: { IDigest result = new MD4Digest(); return(result); } case DigestUtilities.DigestAlgorithm.MD5: { IDigest result = new MD5Digest(); return(result); } case DigestUtilities.DigestAlgorithm.RIPEMD128: { IDigest result = new RipeMD128Digest(); return(result); } case DigestUtilities.DigestAlgorithm.RIPEMD160: { IDigest result = new RipeMD160Digest(); return(result); } case DigestUtilities.DigestAlgorithm.RIPEMD256: { IDigest result = new RipeMD256Digest(); return(result); } case DigestUtilities.DigestAlgorithm.RIPEMD320: { IDigest result = new RipeMD320Digest(); return(result); } case DigestUtilities.DigestAlgorithm.SHA_1: { IDigest result = new Sha1Digest(); return(result); } case DigestUtilities.DigestAlgorithm.SHA_224: { IDigest result = new Sha224Digest(); return(result); } case DigestUtilities.DigestAlgorithm.SHA_256: { IDigest result = new Sha256Digest(); return(result); } case DigestUtilities.DigestAlgorithm.SHA_384: { IDigest result = new Sha384Digest(); return(result); } case DigestUtilities.DigestAlgorithm.SHA_512: { IDigest result = new Sha512Digest(); return(result); } case DigestUtilities.DigestAlgorithm.SHA_512_224: { IDigest result = new Sha512tDigest(224); return(result); } case DigestUtilities.DigestAlgorithm.SHA_512_256: { IDigest result = new Sha512tDigest(256); return(result); } case DigestUtilities.DigestAlgorithm.SHA3_224: { IDigest result = new Sha3Digest(224); return(result); } case DigestUtilities.DigestAlgorithm.SHA3_256: { IDigest result = new Sha3Digest(256); return(result); } case DigestUtilities.DigestAlgorithm.SHA3_384: { IDigest result = new Sha3Digest(384); return(result); } case DigestUtilities.DigestAlgorithm.SHA3_512: { IDigest result = new Sha3Digest(512); return(result); } case DigestUtilities.DigestAlgorithm.TIGER: { IDigest result = new TigerDigest(); return(result); } case DigestUtilities.DigestAlgorithm.WHIRLPOOL: { IDigest result = new WhirlpoolDigest(); return(result); } } } catch (ArgumentException) { } throw new SecurityUtilityException("Digest " + text2 + " not recognised."); }