home *** CD-ROM | disk | FTP | other *** search
- package java.security;
-
- import java.io.ByteArrayOutputStream;
- import java.io.PrintStream;
-
- public abstract class MessageDigest {
- private static boolean debug;
- private byte[] digestBits;
- private String algorithm;
-
- protected MessageDigest(String var1) {
- this.algorithm = var1;
- }
-
- public static MessageDigest getInstance(String var0) throws NoSuchAlgorithmException {
- try {
- return (MessageDigest)Security.getImpl(var0, "MessageDigest", (String)null);
- } catch (NoSuchProviderException var1) {
- throw new InternalError("please send a bug report via " + System.getProperty("java.vendor.url.bug"));
- }
- }
-
- public static MessageDigest getInstance(String var0, String var1) throws NoSuchAlgorithmException, NoSuchProviderException {
- return (MessageDigest)Security.getImpl(var0, "MessageDigest", var1);
- }
-
- public void update(byte var1) {
- this.engineUpdate(var1);
- }
-
- public void update(byte[] var1, int var2, int var3) {
- this.engineUpdate(var1, var2, var3);
- }
-
- public void update(byte[] var1) {
- this.engineUpdate(var1, 0, var1.length);
- }
-
- public byte[] digest() {
- this.digestBits = this.engineDigest();
- return this.digestBits;
- }
-
- public byte[] digest(byte[] var1) {
- this.update(var1);
- return this.digest();
- }
-
- private static void hexDigit(PrintStream var0, byte var1) {
- char var2 = (char)(var1 >> 4 & 15);
- if (var2 > '\t') {
- var2 = (char)(var2 - 10 + 97);
- } else {
- var2 = (char)(var2 + 48);
- }
-
- var0.write(var2);
- var2 = (char)(var1 & 15);
- if (var2 > '\t') {
- var2 = (char)(var2 - 10 + 97);
- } else {
- var2 = (char)(var2 + 48);
- }
-
- var0.write(var2);
- }
-
- public String toString() {
- ByteArrayOutputStream var1 = new ByteArrayOutputStream();
- PrintStream var2 = new PrintStream(var1);
- var2.print(this.getClass().getName() + " Message Digest ");
- if (this.digestBits != null) {
- var2.print("<");
-
- for(int var3 = 0; var3 < this.digestBits.length; ++var3) {
- hexDigit(var2, this.digestBits[var3]);
- }
-
- var2.print(">");
- } else {
- var2.print("<incomplete>");
- }
-
- var2.println();
- return var1.toString();
- }
-
- public static boolean isEqual(byte[] var0, byte[] var1) {
- if (var0.length != var1.length) {
- return false;
- } else {
- for(int var2 = 0; var2 < var0.length; ++var2) {
- if (var0[var2] != var1[var2]) {
- return false;
- }
- }
-
- return true;
- }
- }
-
- public void reset() {
- this.engineReset();
- this.digestBits = null;
- }
-
- public final String getAlgorithm() {
- return this.algorithm;
- }
-
- protected abstract void engineUpdate(byte var1);
-
- protected abstract void engineUpdate(byte[] var1, int var2, int var3);
-
- protected abstract byte[] engineDigest();
-
- protected abstract void engineReset();
-
- public Object clone() throws CloneNotSupportedException {
- if (this instanceof Cloneable) {
- return super.clone();
- } else {
- throw new CloneNotSupportedException();
- }
- }
-
- private void debug(String var1) {
- if (debug) {
- System.err.println(var1);
- }
-
- }
- }
-