List of usage examples for org.bouncycastle.crypto Digest getAlgorithmName
public String getAlgorithmName();
From source file:android.core.CryptoTest.java
License:Apache License
/** * Processes the two given message digests for the same data and checks * the results. Requirement is that the results must be equal, the digest * implementations must have the same properties, and the new implementation * must be faster than the old one./* w w w . j a v a 2s.c om*/ * * @param oldDigest The old digest implementation, provided by Bouncy Castle * @param newDigest The new digest implementation, provided by OpenSSL */ public void doTestMessageDigest(Digest oldDigest, Digest newDigest) { final int ITERATIONS = 10; byte[] data = new byte[1024]; byte[] oldHash = new byte[oldDigest.getDigestSize()]; byte[] newHash = new byte[newDigest.getDigestSize()]; Assert.assertEquals("Hash names must be equal", oldDigest.getAlgorithmName(), newDigest.getAlgorithmName()); Assert.assertEquals("Hash sizes must be equal", oldHash.length, newHash.length); Assert.assertEquals("Hash block sizes must be equal", ((ExtendedDigest) oldDigest).getByteLength(), ((ExtendedDigest) newDigest).getByteLength()); for (int i = 0; i < data.length; i++) { data[i] = (byte) i; } long oldTime = 0; long newTime = 0; for (int j = 0; j < ITERATIONS; j++) { long t0 = System.currentTimeMillis(); for (int i = 0; i < 4; i++) { oldDigest.update(data, 0, data.length); } int oldLength = oldDigest.doFinal(oldHash, 0); long t1 = System.currentTimeMillis(); oldTime = oldTime + (t1 - t0); long t2 = System.currentTimeMillis(); for (int i = 0; i < 4; i++) { newDigest.update(data, 0, data.length); } int newLength = newDigest.doFinal(newHash, 0); long t3 = System.currentTimeMillis(); newTime = newTime + (t3 - t2); Assert.assertEquals("Hash sizes must be equal", oldLength, newLength); for (int i = 0; i < oldLength; i++) { Assert.assertEquals("Hashes[" + i + "] must be equal", oldHash[i], newHash[i]); } } android.util.Log.d("CryptoTest", "Time for " + ITERATIONS + " x old hash processing: " + oldTime + " ms"); android.util.Log.d("CryptoTest", "Time for " + ITERATIONS + " x new hash processing: " + newTime + " ms"); // Assert.assertTrue("New hash should be faster", newTime < oldTime); }
From source file:edu.vt.middleware.crypt.digest.DigestAlgorithm.java
License:Open Source License
/** * Sets the internal object responsible for digest computation. * * @param d Used for digest computation. */// ww w . jav a2 s .c om protected void setDigest(final Digest d) { this.digest = d; this.algorithm = d.getAlgorithmName(); }