home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / java / security / MessageDigest.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  3.9 KB  |  213 lines

  1. package java.security;
  2.  
  3. import java.io.ByteArrayOutputStream;
  4. import java.io.PrintStream;
  5. import java.nio.ByteBuffer;
  6.  
  7. public abstract class MessageDigest extends MessageDigestSpi {
  8.    private String algorithm;
  9.    private static final int INITIAL = 0;
  10.    private static final int IN_PROGRESS = 1;
  11.    private int state = 0;
  12.    private Provider provider;
  13.  
  14.    protected MessageDigest(String var1) {
  15.       this.algorithm = var1;
  16.    }
  17.  
  18.    public static MessageDigest getInstance(String var0) throws NoSuchAlgorithmException {
  19.       try {
  20.          Object[] var1 = Security.getImpl(var0, "MessageDigest", (String)null);
  21.          if (var1[0] instanceof MessageDigest) {
  22.             MessageDigest var4 = (MessageDigest)var1[0];
  23.             var4.provider = (Provider)var1[1];
  24.             return var4;
  25.          } else {
  26.             Delegate var2 = new Delegate((MessageDigestSpi)var1[0], var0);
  27.             var2.provider = (Provider)var1[1];
  28.             return var2;
  29.          }
  30.       } catch (NoSuchProviderException var3) {
  31.          throw new NoSuchAlgorithmException(var0 + " not found");
  32.       }
  33.    }
  34.  
  35.    public static MessageDigest getInstance(String var0, String var1) throws NoSuchAlgorithmException, NoSuchProviderException {
  36.       if (var1 != null && var1.length() != 0) {
  37.          Object[] var2 = Security.getImpl(var0, "MessageDigest", var1);
  38.          if (var2[0] instanceof MessageDigest) {
  39.             MessageDigest var4 = (MessageDigest)var2[0];
  40.             var4.provider = (Provider)var2[1];
  41.             return var4;
  42.          } else {
  43.             Delegate var3 = new Delegate((MessageDigestSpi)var2[0], var0);
  44.             var3.provider = (Provider)var2[1];
  45.             return var3;
  46.          }
  47.       } else {
  48.          throw new IllegalArgumentException("missing provider");
  49.       }
  50.    }
  51.  
  52.    public static MessageDigest getInstance(String var0, Provider var1) throws NoSuchAlgorithmException {
  53.       if (var1 == null) {
  54.          throw new IllegalArgumentException("missing provider");
  55.       } else {
  56.          Object[] var2 = Security.getImpl(var0, "MessageDigest", var1);
  57.          if (var2[0] instanceof MessageDigest) {
  58.             MessageDigest var4 = (MessageDigest)var2[0];
  59.             var4.provider = (Provider)var2[1];
  60.             return var4;
  61.          } else {
  62.             Delegate var3 = new Delegate((MessageDigestSpi)var2[0], var0);
  63.             var3.provider = (Provider)var2[1];
  64.             return var3;
  65.          }
  66.       }
  67.    }
  68.  
  69.    public final Provider getProvider() {
  70.       return this.provider;
  71.    }
  72.  
  73.    public void update(byte var1) {
  74.       this.engineUpdate(var1);
  75.       this.state = 1;
  76.    }
  77.  
  78.    public void update(byte[] var1, int var2, int var3) {
  79.       if (var1 == null) {
  80.          throw new IllegalArgumentException("No input buffer given");
  81.       } else if (var1.length - var2 < var3) {
  82.          throw new IllegalArgumentException("Input buffer too short");
  83.       } else {
  84.          this.engineUpdate(var1, var2, var3);
  85.          this.state = 1;
  86.       }
  87.    }
  88.  
  89.    public void update(byte[] var1) {
  90.       this.engineUpdate(var1, 0, var1.length);
  91.       this.state = 1;
  92.    }
  93.  
  94.    public final void update(ByteBuffer var1) {
  95.       if (var1 == null) {
  96.          throw new NullPointerException();
  97.       } else {
  98.          this.engineUpdate(var1);
  99.          this.state = 1;
  100.       }
  101.    }
  102.  
  103.    public byte[] digest() {
  104.       byte[] var1 = this.engineDigest();
  105.       this.state = 0;
  106.       return var1;
  107.    }
  108.  
  109.    public int digest(byte[] var1, int var2, int var3) throws DigestException {
  110.       if (var1 == null) {
  111.          throw new IllegalArgumentException("No output buffer given");
  112.       } else if (var1.length - var2 < var3) {
  113.          throw new IllegalArgumentException("Output buffer too small for specified offset and length");
  114.       } else {
  115.          int var4 = this.engineDigest(var1, var2, var3);
  116.          this.state = 0;
  117.          return var4;
  118.       }
  119.    }
  120.  
  121.    public byte[] digest(byte[] var1) {
  122.       this.update(var1);
  123.       return this.digest();
  124.    }
  125.  
  126.    public String toString() {
  127.       ByteArrayOutputStream var1 = new ByteArrayOutputStream();
  128.       PrintStream var2 = new PrintStream(var1);
  129.       var2.print(this.algorithm + " Message Digest from " + this.provider.getName() + ", ");
  130.       switch (this.state) {
  131.          case 0:
  132.             var2.print("<initialized>");
  133.             break;
  134.          case 1:
  135.             var2.print("<in progress>");
  136.       }
  137.  
  138.       var2.println();
  139.       return var1.toString();
  140.    }
  141.  
  142.    public static boolean isEqual(byte[] var0, byte[] var1) {
  143.       if (var0.length != var1.length) {
  144.          return false;
  145.       } else {
  146.          for(int var2 = 0; var2 < var0.length; ++var2) {
  147.             if (var0[var2] != var1[var2]) {
  148.                return false;
  149.             }
  150.          }
  151.  
  152.          return true;
  153.       }
  154.    }
  155.  
  156.    public void reset() {
  157.       this.engineReset();
  158.       this.state = 0;
  159.    }
  160.  
  161.    public final String getAlgorithm() {
  162.       return this.algorithm;
  163.    }
  164.  
  165.    public final int getDigestLength() {
  166.       int var1 = this.engineGetDigestLength();
  167.       if (var1 == 0) {
  168.          try {
  169.             MessageDigest var2 = (MessageDigest)this.clone();
  170.             byte[] var3 = var2.digest();
  171.             return var3.length;
  172.          } catch (CloneNotSupportedException var4) {
  173.             return var1;
  174.          }
  175.       } else {
  176.          return var1;
  177.       }
  178.    }
  179.  
  180.    public Object clone() throws CloneNotSupportedException {
  181.       if (this instanceof Cloneable) {
  182.          return super.clone();
  183.       } else {
  184.          throw new CloneNotSupportedException();
  185.       }
  186.    }
  187.  
  188.    // $FF: synthetic method
  189.    static String access$000(MessageDigest var0) {
  190.       return var0.algorithm;
  191.    }
  192.  
  193.    // $FF: synthetic method
  194.    static Provider access$102(MessageDigest var0, Provider var1) {
  195.       return var0.provider = var1;
  196.    }
  197.  
  198.    // $FF: synthetic method
  199.    static Provider access$100(MessageDigest var0) {
  200.       return var0.provider;
  201.    }
  202.  
  203.    // $FF: synthetic method
  204.    static int access$202(MessageDigest var0, int var1) {
  205.       return var0.state = var1;
  206.    }
  207.  
  208.    // $FF: synthetic method
  209.    static int access$200(MessageDigest var0) {
  210.       return var0.state;
  211.    }
  212. }
  213.