1 package org.bouncycastle.crypto; 2 3 /** 4 * interface that a message digest conforms to. 5 */ 6 public interface Digest 7 { 8 /** 9 * return the algorithm name 10 * 11 * @return the algorithm name 12 */ getAlgorithmName()13 public String getAlgorithmName(); 14 15 /** 16 * return the size, in bytes, of the digest produced by this message digest. 17 * 18 * @return the size, in bytes, of the digest produced by this message digest. 19 */ getDigestSize()20 public int getDigestSize(); 21 22 /** 23 * update the message digest with a single byte. 24 * 25 * @param in the input byte to be entered. 26 */ update(byte in)27 public void update(byte in); 28 29 /** 30 * update the message digest with a block of bytes. 31 * 32 * @param in the byte array containing the data. 33 * @param inOff the offset into the byte array where the data starts. 34 * @param len the length of the data. 35 */ update(byte[] in, int inOff, int len)36 public void update(byte[] in, int inOff, int len); 37 38 /** 39 * close the digest, producing the final digest value. The doFinal 40 * call leaves the digest reset. 41 * 42 * @param out the array the digest is to be copied into. 43 * @param outOff the offset into the out array the digest is to start at. 44 */ doFinal(byte[] out, int outOff)45 public int doFinal(byte[] out, int outOff); 46 47 /** 48 * reset the digest back to it's initial state. 49 */ reset()50 public void reset(); 51 } 52