All Downloads are FREE. Search and download functionalities are using the official Maven repository.

aQute.libg.cryptography.SHA1 Maven / Gradle / Ivy

There is a newer version: 7.0.0
Show newest version
package aQute.libg.cryptography;

import java.io.File;
import java.io.InputStream;
import java.io.OutputStream;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

import aQute.lib.exceptions.Exceptions;

public class SHA1 extends Digest {
	public final static String ALGORITHM = "SHA-1";

	public static Digester getDigester(OutputStream... out) {
		try {
			MessageDigest md = MessageDigest.getInstance(ALGORITHM);
			return new Digester(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;
				}
			};
		} catch (NoSuchAlgorithmException e) {
			throw Exceptions.duck(e);
		}
	}

	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);
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy