Use local copy of latest bndlib code for pre-release testing purposes
git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1347815 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/bundleplugin/src/main/java/aQute/libg/cryptography/Digest.java b/bundleplugin/src/main/java/aQute/libg/cryptography/Digest.java
new file mode 100644
index 0000000..90e7b1a
--- /dev/null
+++ b/bundleplugin/src/main/java/aQute/libg/cryptography/Digest.java
@@ -0,0 +1,44 @@
+package aQute.libg.cryptography;
+
+import java.util.*;
+
+import aQute.lib.hex.*;
+
+public abstract class Digest {
+ final byte[] digest;
+
+ protected Digest(byte[] checksum, int width) {
+ this.digest = checksum;
+ if (digest.length != width)
+ throw new IllegalArgumentException("Invalid width for digest: " + digest.length
+ + " expected " + width);
+ }
+
+
+ public byte[] digest() {
+ return digest;
+ }
+
+ @Override public String toString() {
+ return String.format("%s(d=%s)", getAlgorithm(), Hex.toHexString(digest));
+ }
+
+ public abstract String getAlgorithm();
+
+
+ public boolean equals(Object other) {
+ if ( !(other instanceof Digest))
+ return false;
+
+ Digest d = (Digest) other;
+ return Arrays.equals(d.digest, digest);
+ }
+
+ public int hashCode() {
+ return Arrays.hashCode(digest);
+ }
+
+ public byte[] toByteArray() {
+ return digest();
+ }
+}