package es.uji.security.crypto;
import java.io.ByteArrayOutputStream;
import java.security.MessageDigest;
import java.security.MessageDigestSpi;
import java.security.NoSuchAlgorithmException;
import java.security.Provider;
/**
* Message digest security provider interface for our security provider.
*
* @author PSN
*/
public class SHA1Digest extends MessageDigestSpi
{
private ByteArrayOutputStream _buffer;
private MessageDigest _md;
public SHA1Digest() throws NoSuchAlgorithmException
{
super();
_md = MessageDigest.getInstance("SHA1");
engineReset();
}
public SHA1Digest(Provider provider, String algorithm) throws NoSuchAlgorithmException
{
super();
_md = MessageDigest.getInstance("SHA1");
engineReset();
}
public void engineReset()
{
_buffer = new ByteArrayOutputStream();
}
public void engineUpdate(byte b)
{
_buffer.write(b);
}
public void engineUpdate(byte[] b, int ofs, int len)
{
_buffer.write(b, ofs, len);
}
public byte[] engineDigest()
{
byte[] data = _buffer.toByteArray();
_md.update(data);
byte[] digest = _md.digest();
engineReset();
_md.reset();
return digest;
}
}