summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrian Carlstrom <bdc@google.com>2012-09-28 10:07:22 -0700
committerBrian Carlstrom <bdc@google.com>2013-06-03 20:24:37 -0700
commitf847b1bef228a29e674e5f8568b4537f85ec7afb (patch)
tree9891c94876bf2077205079da00e6b657950e3e0f
parentdbfdf24c935c831243836be693b722db8f4fe0d4 (diff)
downloadandroid_external_bouncycastle-f847b1bef228a29e674e5f8568b4537f85ec7afb.tar.gz
android_external_bouncycastle-f847b1bef228a29e674e5f8568b4537f85ec7afb.tar.bz2
android_external_bouncycastle-f847b1bef228a29e674e5f8568b4537f85ec7afb.zip
Allow CipherTest to run on RI
(cherry picked from commit ee1cdde4bcea1635a6af99c2ada1e155cf1b7a3b) Change-Id: Idc2bbd24722f6f2ca046f8dff197c63cf9dfa03b
-rw-r--r--Android.mk5
-rw-r--r--bcprov/src/main/java/org/bouncycastle/crypto/digests/AndroidDigestFactory.java4
-rw-r--r--patches/bcprov.patch6
3 files changed, 11 insertions, 4 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..3dc7059 100644
--- a/bcprov/src/main/java/org/bouncycastle/crypto/digests/AndroidDigestFactory.java
+++ b/bcprov/src/main/java/org/bouncycastle/crypto/digests/AndroidDigestFactory.java
@@ -33,11 +33,13 @@ 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("org.apache.harmony.xnet.provider.jsse.NativeCrypto");
} catch (ClassNotFoundException e1) {
try {
factoryImplementationClass = Class.forName(BouncyCastleFactoryClassName);
} catch (ClassNotFoundException e2) {
- throw new AssertionError("Failed to find AndroidDigestFactoryInterface "
+ throw new AssertionError("Failed to load AndroidDigestFactoryInterface "
+ "implementation. Looked for "
+ OpenSSLFactoryClassName + " and "
+ BouncyCastleFactoryClassName);
diff --git a/patches/bcprov.patch b/patches/bcprov.patch
index 744a5a4..7ea1ec9 100644
--- a/patches/bcprov.patch
+++ b/patches/bcprov.patch
@@ -314,7 +314,7 @@ 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 @@
+@@ -0,0 +1,80 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
@@ -350,11 +350,13 @@ 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("org.apache.harmony.xnet.provider.jsse.NativeCrypto");
+ } catch (ClassNotFoundException e1) {
+ try {
+ factoryImplementationClass = Class.forName(BouncyCastleFactoryClassName);
+ } catch (ClassNotFoundException e2) {
-+ throw new AssertionError("Failed to find AndroidDigestFactoryInterface "
++ throw new AssertionError("Failed to load AndroidDigestFactoryInterface "
+ + "implementation. Looked for "
+ + OpenSSLFactoryClassName + " and "
+ + BouncyCastleFactoryClassName);