diff options
author | Ashlee Young <ashlee@onosfw.com> | 2015-10-23 10:05:40 -0700 |
---|---|---|
committer | Ashlee Young <ashlee@onosfw.com> | 2015-10-23 10:05:40 -0700 |
commit | b9421dc80af485591a9c50cc8921f912e0def11e (patch) | |
tree | 93f0935070ca2b2e661f281ac22761879f7cf893 /framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/types/selectors/modifiedselector/DigestAlgorithm.java | |
parent | 753a6c60f47f3ac4f270005b65e9d6481de8eb68 (diff) |
Removing sources to replace with download links instead.
Change-Id: Ie28789a725051aec0d1b04dd291b7690a7898668
Signed-off-by: Ashlee Young <ashlee@onosfw.com>
Diffstat (limited to 'framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/types/selectors/modifiedselector/DigestAlgorithm.java')
-rw-r--r-- | framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/types/selectors/modifiedselector/DigestAlgorithm.java | 208 |
1 files changed, 0 insertions, 208 deletions
diff --git a/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/types/selectors/modifiedselector/DigestAlgorithm.java b/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/types/selectors/modifiedselector/DigestAlgorithm.java deleted file mode 100644 index 085b4fe7..00000000 --- a/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/types/selectors/modifiedselector/DigestAlgorithm.java +++ /dev/null @@ -1,208 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -package org.apache.tools.ant.types.selectors.modifiedselector; - - -import java.io.File; -import java.io.FileInputStream; -import java.security.DigestInputStream; -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; -import java.security.NoSuchProviderException; -import java.util.Locale; - -import org.apache.tools.ant.BuildException; - - -/** - * Computes a 'hashvalue' for the content of file using - * java.security.MessageDigest. - * Use of this algorithm doesn't require any additional nested <param>s. - * Supported <param>s are: - * <table> - * <tr> - * <th>name</th><th>values</th><th>description</th><th>required</th> - * </tr> - * <tr> - * <td> algorithm.algorithm </td> - * <td> MD5 | SHA (default provider) </td> - * <td> name of the algorithm the provider should use </td> - * <td> no, defaults to MD5 </td> - * </tr> - * <tr> - * <td> algorithm.provider </td> - * <td> </td> - * <td> name of the provider to use </td> - * <td> no, defaults to <i>null</i> </td> - * </tr> - * </table> - * - * @version 2004-07-08 - * @since Ant 1.6 - */ -public class DigestAlgorithm implements Algorithm { - - private static final int BYTE_MASK = 0xFF; - private static final int BUFFER_SIZE = 8192; - - // ----- member variables ----- - - - /** - * MessageDigest algorithm to be used. - */ - private String algorithm = "MD5"; - - /** - * MessageDigest Algorithm provider - */ - private String provider = null; - - /** - * Message Digest instance - */ - private MessageDigest messageDigest = null; - - /** - * Size of the read buffer to use. - */ - private int readBufferSize = BUFFER_SIZE; - - - // ----- Algorithm-Configuration ----- - - - /** - * Specifies the algorithm to be used to compute the checksum. - * Defaults to "MD5". Other popular algorithms like "SHA" may be used as well. - * @param algorithm the digest algorithm to use - */ - public void setAlgorithm(String algorithm) { - this.algorithm = algorithm != null - ? algorithm.toUpperCase(Locale.ENGLISH) : null; - } - - - /** - * Sets the MessageDigest algorithm provider to be used - * to calculate the checksum. - * @param provider provider to use - */ - public void setProvider(String provider) { - this.provider = provider; - } - - - /** Initialize the security message digest. */ - public void initMessageDigest() { - if (messageDigest != null) { - return; - } - - if ((provider != null) && !"".equals(provider) && !"null".equals(provider)) { - try { - messageDigest = MessageDigest.getInstance(algorithm, provider); - } catch (NoSuchAlgorithmException noalgo) { - throw new BuildException(noalgo); - } catch (NoSuchProviderException noprovider) { - throw new BuildException(noprovider); - } - } else { - try { - messageDigest = MessageDigest.getInstance(algorithm); - } catch (NoSuchAlgorithmException noalgo) { - throw new BuildException(noalgo); - } - } - } - - - // ----- Logic ----- - - - /** - * This algorithm supports only MD5 and SHA. - * @return <i>true</i> if all is ok, otherwise <i>false</i>. - */ - public boolean isValid() { - return "SHA".equals(algorithm) || "MD5".equals(algorithm); - } - - - /** - * Computes a value for a file content with the specified digest algorithm. - * @param file File object for which the value should be evaluated. - * @return The value for that file - */ - // implementation adapted from ...taskdefs.Checksum, thanks to Magesh for hint - public String getValue(File file) { - initMessageDigest(); - String checksum = null; - try { - if (!file.canRead()) { - return null; - } - FileInputStream fis = null; - - byte[] buf = new byte[readBufferSize]; - try { - messageDigest.reset(); - fis = new FileInputStream(file); - DigestInputStream dis = new DigestInputStream(fis, - messageDigest); - while (dis.read(buf, 0, readBufferSize) != -1) { - // do nothing - } - dis.close(); - fis.close(); - fis = null; - byte[] fileDigest = messageDigest.digest(); - StringBuffer checksumSb = new StringBuffer(); - for (int i = 0; i < fileDigest.length; i++) { - String hexStr - = Integer.toHexString(BYTE_MASK & fileDigest[i]); - if (hexStr.length() < 2) { - checksumSb.append("0"); - } - checksumSb.append(hexStr); - } - checksum = checksumSb.toString(); - } catch (Exception e) { - return null; - } - } catch (Exception e) { - return null; - } - return checksum; - } - - - /** - * Override Object.toString(). - * @return some information about this algorithm. - */ - public String toString() { - StringBuilder buf = new StringBuilder(); - buf.append("<DigestAlgorithm:"); - buf.append("algorithm=").append(algorithm); - buf.append(";provider=").append(provider); - buf.append(">"); - return buf.toString(); - } -} |