| package aQute.libg.cryptography; |
| |
| import java.io.*; |
| import java.security.*; |
| |
| public class SHA1 extends Digest { |
| public final static String ALGORITHM = "SHA1"; |
| |
| public static Digester<SHA1> getDigester(OutputStream... out) throws NoSuchAlgorithmException { |
| MessageDigest md = MessageDigest.getInstance(ALGORITHM); |
| return new Digester<SHA1>(md, out) { |
| @Override |
| public SHA1 digest() throws Exception { |
| return new SHA1(md.digest()); |
| } |
| |
| @Override |
| public SHA1 digest(byte[] bytes) { |
| return new SHA1(bytes); |
| } |
| |
| @Override |
| public String getAlgorithm() { |
| return ALGORITHM; |
| } |
| }; |
| } |
| |
| public SHA1(byte[] b) { |
| super(b, 20); |
| } |
| |
| @Override |
| public String getAlgorithm() { |
| return ALGORITHM; |
| } |
| |
| public static SHA1 digest(byte [] data) throws Exception { |
| return getDigester().from(data); |
| } |
| |
| public static SHA1 digest(File f) throws NoSuchAlgorithmException, Exception { |
| return getDigester().from(f); |
| } |
| public static SHA1 digest(InputStream f) throws NoSuchAlgorithmException, Exception { |
| return getDigester().from(f); |
| } |
| } |