home *** CD-ROM | disk | FTP | other *** search
- package java.security;
-
- import java.io.ByteArrayOutputStream;
- import java.io.PrintStream;
-
- public abstract class MessageDigest extends MessageDigestSpi {
- private String algorithm;
- private static final int INITIAL = 0;
- private static final int IN_PROGRESS = 1;
- private int state = 0;
- private Provider provider;
-
- protected MessageDigest(String var1) {
- this.algorithm = var1;
- }
-
- public static MessageDigest getInstance(String var0) throws NoSuchAlgorithmException {
- try {
- Object[] var1 = Security.getImpl(var0, "MessageDigest", (String)null);
- if (var1[0] instanceof MessageDigest) {
- MessageDigest var4 = (MessageDigest)var1[0];
- var4.provider = (Provider)var1[1];
- return var4;
- } else {
- Delegate var2 = new Delegate((MessageDigestSpi)var1[0], var0);
- var2.provider = (Provider)var1[1];
- return var2;
- }
- } catch (NoSuchProviderException var3) {
- throw new NoSuchAlgorithmException(var0 + " not found");
- }
- }
-
- public static MessageDigest getInstance(String var0, String var1) throws NoSuchAlgorithmException, NoSuchProviderException {
- if (var1 != null && var1.length() != 0) {
- Object[] var2 = Security.getImpl(var0, "MessageDigest", var1);
- if (var2[0] instanceof MessageDigest) {
- MessageDigest var4 = (MessageDigest)var2[0];
- var4.provider = (Provider)var2[1];
- return var4;
- } else {
- Delegate var3 = new Delegate((MessageDigestSpi)var2[0], var0);
- var3.provider = (Provider)var2[1];
- return var3;
- }
- } else {
- throw new IllegalArgumentException("missing provider");
- }
- }
-
- public final Provider getProvider() {
- return this.provider;
- }
-
- public void update(byte var1) {
- ((MessageDigestSpi)this).engineUpdate(var1);
- this.state = 1;
- }
-
- public void update(byte[] var1, int var2, int var3) {
- if (var1 == null) {
- throw new IllegalArgumentException("No input buffer given");
- } else if (var1.length - var2 < var3) {
- throw new IllegalArgumentException("Input buffer too short");
- } else {
- ((MessageDigestSpi)this).engineUpdate(var1, var2, var3);
- this.state = 1;
- }
- }
-
- public void update(byte[] var1) {
- ((MessageDigestSpi)this).engineUpdate(var1, 0, var1.length);
- this.state = 1;
- }
-
- public byte[] digest() {
- byte[] var1 = ((MessageDigestSpi)this).engineDigest();
- this.state = 0;
- return var1;
- }
-
- public int digest(byte[] var1, int var2, int var3) throws DigestException {
- if (var1 == null) {
- throw new IllegalArgumentException("No output buffer given");
- } else if (var1.length - var2 < var3) {
- throw new IllegalArgumentException("Output buffer too small for specified offset and length");
- } else {
- int var4 = ((MessageDigestSpi)this).engineDigest(var1, var2, var3);
- this.state = 0;
- return var4;
- }
- }
-
- public byte[] digest(byte[] var1) {
- this.update(var1);
- return this.digest();
- }
-
- public String toString() {
- ByteArrayOutputStream var1 = new ByteArrayOutputStream();
- PrintStream var2 = new PrintStream(var1);
- var2.print(this.algorithm + " Message Digest from " + this.provider.getName() + ", ");
- switch (this.state) {
- case 0:
- var2.print("<initialized>");
- break;
- case 1:
- var2.print("<in progress>");
- }
-
- 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() {
- ((MessageDigestSpi)this).engineReset();
- this.state = 0;
- }
-
- public final String getAlgorithm() {
- return this.algorithm;
- }
-
- public final int getDigestLength() {
- int var1 = ((MessageDigestSpi)this).engineGetDigestLength();
- if (var1 == 0) {
- try {
- MessageDigest var2 = (MessageDigest)this.clone();
- byte[] var3 = var2.digest();
- return var3.length;
- } catch (CloneNotSupportedException var4) {
- return var1;
- }
- } else {
- return var1;
- }
- }
-
- public Object clone() throws CloneNotSupportedException {
- if (this instanceof Cloneable) {
- return super.clone();
- } else {
- throw new CloneNotSupportedException();
- }
- }
-
- // $FF: synthetic method
- static String access$000(MessageDigest var0) {
- return var0.algorithm;
- }
-
- // $FF: synthetic method
- static Provider access$102(MessageDigest var0, Provider var1) {
- return var0.provider = var1;
- }
-
- // $FF: synthetic method
- static Provider access$100(MessageDigest var0) {
- return var0.provider;
- }
-
- // $FF: synthetic method
- static int access$202(MessageDigest var0, int var1) {
- return var0.state = var1;
- }
-
- // $FF: synthetic method
- static int access$200(MessageDigest var0) {
- return var0.state;
- }
- }
-