summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrian Carlstrom <bdc@google.com>2013-06-04 03:52:54 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2013-06-04 03:52:54 +0000
commitff9f947b1f1db149cf394e8184d6db4d66d1e319 (patch)
tree2595fa417fa3df69f939695550222a856c53e058
parentdbfdf24c935c831243836be693b722db8f4fe0d4 (diff)
parent580c719a4c5ff483af625fcffab41678e091971d (diff)
downloadandroid_external_bouncycastle-ff9f947b1f1db149cf394e8184d6db4d66d1e319.tar.gz
android_external_bouncycastle-ff9f947b1f1db149cf394e8184d6db4d66d1e319.tar.bz2
android_external_bouncycastle-ff9f947b1f1db149cf394e8184d6db4d66d1e319.zip
Merge changes I8c8f1572,Idc2bbd24
* changes: Track changes to JSSE Allow CipherTest to run on RI
-rw-r--r--Android.mk5
-rw-r--r--bcprov/src/main/java/org/bouncycastle/crypto/digests/AndroidDigestFactory.java7
-rw-r--r--patches/bcprov.patch11
3 files changed, 18 insertions, 5 deletions
diff --git a/Android.mk b/Android.mk
index de82f05..56c4b4f 100644
--- a/Android.mk
+++ b/Android.mk
@@ -15,12 +15,15 @@
#
LOCAL_PATH := $(call my-dir)
+# used for bouncycastle-hostdex where we want everything for testing
all_bcprov_src_files := $(call all-java-files-under,bcprov/src/main/java)
+# used for bouncycastle for target where we want to be sure to use OpenSSLDigest
android_bcprov_src_files := $(filter-out \
bcprov/src/main/java/org/bouncycastle/crypto/digests/AndroidDigestFactoryBouncyCastle.java, \
$(all_bcprov_src_files))
+# used for bouncycastle-host where we can't use OpenSSLDigest
ri_bcprov_src_files := $(filter-out \
bcprov/src/main/java/org/bouncycastle/crypto/digests/AndroidDigestFactoryOpenSSL.java \
bcprov/src/main/java/org/bouncycastle/crypto/digests/OpenSSLDigest.java, \
@@ -92,7 +95,7 @@ ifeq ($(WITH_HOST_DALVIK),true)
include $(CLEAR_VARS)
LOCAL_MODULE := bouncycastle-hostdex
LOCAL_MODULE_TAGS := optional
- LOCAL_SRC_FILES := $(android_bcprov_src_files)
+ LOCAL_SRC_FILES := $(all_bcprov_src_files)
LOCAL_JAVACFLAGS := -encoding UTF-8
LOCAL_BUILD_HOST_DEX := true
LOCAL_MODULE_TAGS := optional
diff --git a/bcprov/src/main/java/org/bouncycastle/crypto/digests/AndroidDigestFactory.java b/bcprov/src/main/java/org/bouncycastle/crypto/digests/AndroidDigestFactory.java
index 1a82a46..b7bac28 100644
--- a/bcprov/src/main/java/org/bouncycastle/crypto/digests/AndroidDigestFactory.java
+++ b/bcprov/src/main/java/org/bouncycastle/crypto/digests/AndroidDigestFactory.java
@@ -33,14 +33,19 @@ public final class AndroidDigestFactory {
Class factoryImplementationClass;
try {
factoryImplementationClass = Class.forName(OpenSSLFactoryClassName);
+ // Double check for NativeCrypto in case we are running on RI for testing
+ Class.forName("com.android.org.conscrypt.NativeCrypto");
} catch (ClassNotFoundException e1) {
try {
factoryImplementationClass = Class.forName(BouncyCastleFactoryClassName);
} catch (ClassNotFoundException e2) {
- throw new AssertionError("Failed to find AndroidDigestFactoryInterface "
+ AssertionError e = new AssertionError("Failed to load "
+ + "AndroidDigestFactoryInterface "
+ "implementation. Looked for "
+ OpenSSLFactoryClassName + " and "
+ BouncyCastleFactoryClassName);
+ e.initCause(e1);
+ throw e;
}
}
if (!AndroidDigestFactoryInterface.class.isAssignableFrom(factoryImplementationClass)) {
diff --git a/patches/bcprov.patch b/patches/bcprov.patch
index 744a5a4..e6e7f40 100644
--- a/patches/bcprov.patch
+++ b/patches/bcprov.patch
@@ -313,8 +313,8 @@ diff -Naur bcprov-jdk15on-149.orig/org/bouncycastle/asn1/x509/X509NameTokenizer.
}
diff -Naur bcprov-jdk15on-149.orig/org/bouncycastle/crypto/digests/AndroidDigestFactory.java bcprov-jdk15on-149/org/bouncycastle/crypto/digests/AndroidDigestFactory.java
--- bcprov-jdk15on-149.orig/org/bouncycastle/crypto/digests/AndroidDigestFactory.java 1970-01-01 00:00:00.000000000 +0000
-+++ bcprov-jdk15on-149/org/bouncycastle/crypto/digests/AndroidDigestFactory.java 2012-09-17 23:04:47.000000000 +0000
-@@ -0,0 +1,78 @@
++++ bcprov-jdk15on-149/org/bouncycastle/crypto/digests/AndroidDigestFactory.java 2013-05-01 01:48:41.000000000 +0000
+@@ -0,0 +1,83 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
@@ -350,14 +350,19 @@ diff -Naur bcprov-jdk15on-149.orig/org/bouncycastle/crypto/digests/AndroidDigest
+ Class factoryImplementationClass;
+ try {
+ factoryImplementationClass = Class.forName(OpenSSLFactoryClassName);
++ // Double check for NativeCrypto in case we are running on RI for testing
++ Class.forName("com.android.org.conscrypt.NativeCrypto");
+ } catch (ClassNotFoundException e1) {
+ try {
+ factoryImplementationClass = Class.forName(BouncyCastleFactoryClassName);
+ } catch (ClassNotFoundException e2) {
-+ throw new AssertionError("Failed to find AndroidDigestFactoryInterface "
++ AssertionError e = new AssertionError("Failed to load "
++ + "AndroidDigestFactoryInterface "
+ + "implementation. Looked for "
+ + OpenSSLFactoryClassName + " and "
+ + BouncyCastleFactoryClassName);
++ e.initCause(e1);
++ throw e;
+ }
+ }
+ if (!AndroidDigestFactoryInterface.class.isAssignableFrom(factoryImplementationClass)) {