am 9c8fbb1: AI 148148: CTS: Encode SHA-1 hash of test packages in hex in
Merge commit '9c8fbb1ce18f51c64309173610e42f7fea675853' into donut
* commit '9c8fbb1ce18f51c64309173610e42f7fea675853':
AI 148148: CTS: Encode SHA-1 hash of test packages in hex instead of Base64
diff --git a/tools/host/src/com/android/cts/HostUtils.java b/tools/host/src/com/android/cts/HostUtils.java
index e147f2a..7450dae 100644
--- a/tools/host/src/com/android/cts/HostUtils.java
+++ b/tools/host/src/com/android/cts/HostUtils.java
@@ -274,4 +274,19 @@
return fmt.toString();
}
+
+ /**
+ * Convert the given byte array into a lowercase hex string.
+ *
+ * @param arr The array to convert.
+ * @return The hex encoded string.
+ */
+ public static String toHexString(byte[] arr) {
+ StringBuffer buf = new StringBuffer(arr.length * 2);
+ for (byte b : arr) {
+ buf.append(String.format("%02x", b & 0xFF));
+ }
+ return buf.toString();
+ }
+
}
diff --git a/tools/host/src/com/android/cts/TestPackage.java b/tools/host/src/com/android/cts/TestPackage.java
index db02681..d3f3143 100644
--- a/tools/host/src/com/android/cts/TestPackage.java
+++ b/tools/host/src/com/android/cts/TestPackage.java
@@ -16,7 +16,6 @@
package com.android.cts;
-import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.security.MessageDigest;
@@ -27,8 +26,6 @@
import java.util.List;
import java.util.TimerTask;
-import sun.misc.BASE64Encoder;
-
import com.android.cts.TestSession.TestSessionThread;
/**
@@ -63,7 +60,6 @@
protected TestSuite mCurrentTestSuite;
protected TestDevice mDevice;
- private MessageDigest mMsgDigest;
protected boolean mTestStop;
private TestSessionThread mTestThread;
@@ -89,7 +85,7 @@
final String testPkgBinaryName, final String targetNameSpace,
final String targetBinaryName, final String version,
final String androidVersion, final String jarPath, final String appNameSpace,
- final String appPackageName) throws NoSuchAlgorithmException {
+ final String appPackageName) {
mInstrumentationRunner = instrumentationRunner;
mName = testPkgBinaryName;
mTargetNameSpace = targetNameSpace;
@@ -106,7 +102,6 @@
mTestThread = null;
mIsInBatchMode = false;
mCurrentTest = null;
- mMsgDigest = MessageDigest.getInstance("SHA-1");
}
/**
@@ -732,19 +727,20 @@
* @return message digest string(base64 encoded).
*/
private String genMessageDigest(final String packagePath) throws IOException {
-
- BASE64Encoder base64Encoder = new BASE64Encoder();
+ final String algorithm = "SHA-1";
FileInputStream fin = new FileInputStream(packagePath);
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
- byte[] buffer = new byte[1024];
- int len;
- while ((len = fin.read(buffer)) != -1) {
- bos.write(buffer, 0, len);
+ try {
+ MessageDigest md = MessageDigest.getInstance(algorithm);
+ byte[] buffer = new byte[1024];
+ int len;
+ while ((len = fin.read(buffer)) != -1) {
+ md.update(buffer, 0, len);
+ }
+ fin.close();
+ return HostUtils.toHexString(md.digest());
+ } catch (NoSuchAlgorithmException e) {
+ return algorithm + " not found";
}
- fin.close();
-
- mMsgDigest.update(bos.toByteArray());
- return base64Encoder.encodeBuffer(mMsgDigest.digest());
}
/**