]> oss.titaniummirror.com Git - msp430-gcc.git/blobdiff - libjava/java/security/MessageDigest.java
Imported gcc-4.4.3
[msp430-gcc.git] / libjava / java / security / MessageDigest.java
diff --git a/libjava/java/security/MessageDigest.java b/libjava/java/security/MessageDigest.java
deleted file mode 100644 (file)
index 006555d..0000000
+++ /dev/null
@@ -1,327 +0,0 @@
-/* MessageDigest.java --- The message digest interface.
-   Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING.  If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library.  Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module.  An independent module is a module which is not derived from
-or based on this library.  If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so.  If you do not wish to do so, delete this
-exception statement from your version. */
-
-package java.security;
-
-public abstract class MessageDigest extends MessageDigestSpi
-{
-  private String algorithm;
-  private Provider provider;
-  private byte[] lastDigest;
-
-  /**
-     Creates a MessageDigest representing the specified
-     algorithm.
-
-     @param algorithm the name of digest algorithm to choose
-   */
-  protected MessageDigest(String algorithm)
-  {
-    this.algorithm = algorithm;
-    provider = null;
-  }
-
-  /** 
-     Gets an instance of the MessageDigest class representing
-     the specified digest. If the algorithm is not found then, 
-     it throws NoSuchAlgorithmException.
-
-     @param algorithm the name of digest algorithm to choose
-     @return a MessageDigest representing the desired algorithm
-
-     @exception NoSuchAlgorithmException if the algorithm is not implemented by providers
-   */
-  public static MessageDigest getInstance(String algorithm)
-    throws NoSuchAlgorithmException
-  {
-    Provider[] p = Security.getProviders();
-    String name = "MessageDigest." + algorithm;
-
-    for (int i = 0; i < p.length; i++)
-      {
-       String classname = p[i].getProperty(name);
-       if (classname != null)
-         return getInstance(classname, algorithm, p[i]);
-      }
-
-    throw new NoSuchAlgorithmException(algorithm);
-  }
-
-  /** 
-     Gets an instance of the MessageDigest class representing
-     the specified digest from the specified provider. If the 
-     algorithm is not found then, it throws NoSuchAlgorithmException.
-     If the provider is not found, then it throws
-     NoSuchProviderException.
-
-     @param algorithm the name of digest algorithm to choose
-     @param provider the name of the provider to find the algorithm in
-     @return a MessageDigest representing the desired algorithm
-
-     @exception NoSuchAlgorithmException if the algorithm is not implemented by the provider
-     @exception NoSuchProviderException if the provider is not found
-   */
-
-  public static MessageDigest getInstance(String algorithm, String provider)
-    throws NoSuchAlgorithmException, NoSuchProviderException
-  {
-    Provider p = Security.getProvider(provider);
-
-    if (p == null)
-      throw new NoSuchProviderException(provider);
-
-    return getInstance(p.getProperty("MessageDigest." + algorithm),
-                      algorithm, p);
-  }
-
-  private static MessageDigest getInstance(String classname,
-                                          String algorithm,
-                                          Provider provider)
-    throws NoSuchAlgorithmException
-  {
-    if (classname == null)
-      throw new NoSuchAlgorithmException(algorithm);
-
-    try
-      {
-       MessageDigest m =
-         (MessageDigest) Class.forName(classname).newInstance();
-       m.algorithm = algorithm;
-       m.provider = provider;
-       return m;
-      }
-    catch (ClassNotFoundException cnfe)
-      {
-       throw new NoSuchAlgorithmException(algorithm + ": Class not found.");
-      }
-    catch (InstantiationException ie)
-      {
-       throw new NoSuchAlgorithmException(algorithm
-                                          + ": Class instantiation failed.");
-      }
-    catch (IllegalAccessException iae)
-      {
-       throw new NoSuchAlgorithmException(algorithm + ": Illegal Access");
-      }
-  }
-
-
-  /**
-     Gets the provider that the MessageDigest is from.
-
-     @return the provider the this MessageDigest
-   */
-  public final Provider getProvider()
-  {
-    return provider;
-  }
-
-  /**
-     Updates the digest with the byte.
-
-     @param input byte to update the digest with
-   */
-  public void update(byte input)
-  {
-    engineUpdate(input);
-  }
-
-  /**
-     Updates the digest with the bytes from the array from the
-     specified offset to the specified length.
-
-     @param input bytes to update the digest with
-     @param offset the offset to start at
-     @param len length of the data to update with
-   */
-  public void update(byte[]input, int offset, int len)
-  {
-    engineUpdate(input, 0, input.length);
-  }
-
-  /**
-     Updates the digest with the bytes from the array.
-
-     @param input bytes to update the digest with
-   */
-  public void update(byte[]input)
-  {
-    engineUpdate(input, 0, input.length);
-  }
-
-  /**
-     Computes the digest of the stored data.
-
-     @return a byte array representing the message digest
-   */
-  public byte[] digest()
-  {
-    return lastDigest = engineDigest();
-  }
-
-  /**
-     Computes the final digest of the stored bytes and returns
-     them. 
-
-     @param buf An array of bytes to store the digest
-     @param offset An offset to start storing the digest at
-     @param len The length of the buffer
-     @return Returns the length of the buffer
-   */
-  public int digest(byte[]buf, int offset, int len) throws DigestException
-  {
-    return engineDigest(buf, offset, len);
-  }
-
-  /**
-     Computes a final update using the input array of bytes,
-     then computes a final digest and returns it. It calls 
-     update(input) and then digest();
-
-     @param buf An array of bytes to perform final update with
-     @return a byte array representing the message digest
-   */
-  public byte[] digest(byte[]input)
-  {
-    update(input);
-    return digest();
-  }
-
-  /**
-     Returns a representation of the MessageDigest as a String.
-
-     @return a string representing the message digest
-   */
-  public String toString()
-  {
-    return (getClass()).getName()
-      + " Message Digest <" + digestToString() + ">";
-  }
-
-  /**
-     Does a simple byte comparison of the two digests.
-
-     @param digesta first digest to compare
-     @param digestb second digest to compare
-     @return true if they are equal, false otherwise
-   */
-  public static boolean isEqual(byte[]digesta, byte[]digestb)
-  {
-    if (digesta.length != digestb.length)
-      return false;
-
-    for (int i = digesta.length - 1; i >= 0; --i)
-      if (digesta[i] != digestb[i])
-       return false;
-
-    return true;
-  }
-
-
-  /**
-     Resets the message digest.
-   */
-  public void reset()
-  {
-    engineReset();
-  }
-
-  /** 
-     Gets the name of the algorithm currently used.
-     The names of algorithms are usually SHA-1 or MD5.
-
-     @return name of algorithm.
-   */
-  public final String getAlgorithm()
-  {
-    return algorithm;
-  }
-
-  /**
-     Gets the length of the message digest.
-     The default is zero which means that this message digest
-     does not implement this function.
-
-     @return length of the message digest
-   */
-  public final int getDigestLength()
-  {
-    return engineGetDigestLength();
-  }
-
-  /**
-     Returns a clone of this class if supported.
-     If it does not then it throws CloneNotSupportedException.
-     The cloning of this class depends on whether the subclass
-     MessageDigestSpi implements Cloneable which contains the
-     actual implementation of the appropriate algorithm.
-
-     @return clone of this class
-
-     @exception CloneNotSupportedException this class does not support cloning
-   */
-  public Object clone() throws CloneNotSupportedException
-  {
-    if (this instanceof Cloneable)
-      return super.clone();
-    else
-      throw new CloneNotSupportedException();
-  }
-
-  private String digestToString()
-  {
-    byte[] digest = lastDigest;
-
-    if (digest == null)
-      return "incomplete";
-
-    StringBuffer buf = new StringBuffer();
-    int len = digest.length;
-    for (int i = 0; i < len; ++i)
-      {
-       byte b = digest[i];
-       byte high = (byte) ((b & 0xff) >>> 4);
-       byte low = (byte) (b & 0xf);
-
-       buf.append(high > 9 ? ('a' - 10) + high : '0' + high);
-       buf.append(low > 9 ? ('a' - 10) + low : '0' + low);
-      }
-
-    return buf.toString();
-  }
-
-}