summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-01-11 02:10:41 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-01-11 02:10:41 +0000
commita62a91f3a19865a4c37d62cb434b407488d7c5c9 (patch)
treec03d3e6877f195b33c8f03634cbf19b591c10d43
parent82717d350753b663d844210b7f39e33c69b3c475 (diff)
parentcd21e3530672a30de73c05210bbbf90dc0f43351 (diff)
downloadbouncycastle-a62a91f3a19865a4c37d62cb434b407488d7c5c9.tar.gz
Snap for 9475114 from cd21e3530672a30de73c05210bbbf90dc0f43351 to udc-release
Change-Id: Id6690a59f779a9bb2a6f92ff560d5db47053e0f8
-rw-r--r--bcprov/src/main/java/org/bouncycastle/jcajce/util/BCJcaJceHelper.java30
-rw-r--r--repackaged/bcprov/src/main/java/com/android/org/bouncycastle/jcajce/util/BCJcaJceHelper.java30
-rw-r--r--repackaged_platform/bcprov/src/main/java/com/android/internal/org/bouncycastle/jcajce/util/BCJcaJceHelper.java30
3 files changed, 69 insertions, 21 deletions
diff --git a/bcprov/src/main/java/org/bouncycastle/jcajce/util/BCJcaJceHelper.java b/bcprov/src/main/java/org/bouncycastle/jcajce/util/BCJcaJceHelper.java
index 9a41d31c..13205ec2 100644
--- a/bcprov/src/main/java/org/bouncycastle/jcajce/util/BCJcaJceHelper.java
+++ b/bcprov/src/main/java/org/bouncycastle/jcajce/util/BCJcaJceHelper.java
@@ -48,13 +48,21 @@ public class BCJcaJceHelper
//
// If code is using a BCJcajceHelper to ensure it gets its implementation from BC, then
// also search in the privately provided algorithms if not found in the main set.
+ //
+ // If any error occurs while searching the private Provider, typically a
+ // NoSuchAlgorithmException being thrown, then the original NoSuchAlgorithmException
+ // from the BC Provider is thrown for consistency.
@Override
public Cipher createCipher(String algorithm)
throws NoSuchAlgorithmException, NoSuchPaddingException {
try {
return super.createCipher(algorithm);
- } catch (NoSuchAlgorithmException e) {
- return Cipher.getInstance(algorithm, getPrivateProvider());
+ } catch (NoSuchAlgorithmException originalException) {
+ try {
+ return Cipher.getInstance(algorithm, getPrivateProvider());
+ } catch (Throwable throwable) {
+ throw originalException;
+ }
}
}
@@ -63,8 +71,12 @@ public class BCJcaJceHelper
throws NoSuchAlgorithmException {
try {
return super.createSecretKeyFactory(algorithm);
- } catch (NoSuchAlgorithmException e) {
- return SecretKeyFactory.getInstance(algorithm, getPrivateProvider());
+ } catch (NoSuchAlgorithmException originalException) {
+ try {
+ return SecretKeyFactory.getInstance(algorithm, getPrivateProvider());
+ } catch (Throwable throwable) {
+ throw originalException;
+ }
}
}
@@ -72,8 +84,12 @@ public class BCJcaJceHelper
public Mac createMac(String algorithm) throws NoSuchAlgorithmException {
try {
return super.createMac(algorithm);
- } catch (NoSuchAlgorithmException e) {
- return Mac.getInstance(algorithm, getPrivateProvider());
+ } catch (NoSuchAlgorithmException originalException) {
+ try {
+ return Mac.getInstance(algorithm, getPrivateProvider());
+ } catch (Throwable throwable) {
+ throw originalException;
+ }
}
}
@@ -81,7 +97,7 @@ public class BCJcaJceHelper
if (provider instanceof BouncyCastleProvider) {
return ((BouncyCastleProvider) provider).getPrivateProvider();
}
- throw new IllegalStateException(); // XXX
+ throw new IllegalStateException("Internal error in BCJcaJceHelper");
}
// END Android-added: Look up algorithms in private provider if not found in main Provider.
}
diff --git a/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/jcajce/util/BCJcaJceHelper.java b/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/jcajce/util/BCJcaJceHelper.java
index b444878f..69ab946c 100644
--- a/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/jcajce/util/BCJcaJceHelper.java
+++ b/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/jcajce/util/BCJcaJceHelper.java
@@ -50,13 +50,21 @@ public class BCJcaJceHelper
//
// If code is using a BCJcajceHelper to ensure it gets its implementation from BC, then
// also search in the privately provided algorithms if not found in the main set.
+ //
+ // If any error occurs while searching the private Provider, typically a
+ // NoSuchAlgorithmException being thrown, then the original NoSuchAlgorithmException
+ // from the BC Provider is thrown for consistency.
@Override
public Cipher createCipher(String algorithm)
throws NoSuchAlgorithmException, NoSuchPaddingException {
try {
return super.createCipher(algorithm);
- } catch (NoSuchAlgorithmException e) {
- return Cipher.getInstance(algorithm, getPrivateProvider());
+ } catch (NoSuchAlgorithmException originalException) {
+ try {
+ return Cipher.getInstance(algorithm, getPrivateProvider());
+ } catch (Throwable throwable) {
+ throw originalException;
+ }
}
}
@@ -65,8 +73,12 @@ public class BCJcaJceHelper
throws NoSuchAlgorithmException {
try {
return super.createSecretKeyFactory(algorithm);
- } catch (NoSuchAlgorithmException e) {
- return SecretKeyFactory.getInstance(algorithm, getPrivateProvider());
+ } catch (NoSuchAlgorithmException originalException) {
+ try {
+ return SecretKeyFactory.getInstance(algorithm, getPrivateProvider());
+ } catch (Throwable throwable) {
+ throw originalException;
+ }
}
}
@@ -74,8 +86,12 @@ public class BCJcaJceHelper
public Mac createMac(String algorithm) throws NoSuchAlgorithmException {
try {
return super.createMac(algorithm);
- } catch (NoSuchAlgorithmException e) {
- return Mac.getInstance(algorithm, getPrivateProvider());
+ } catch (NoSuchAlgorithmException originalException) {
+ try {
+ return Mac.getInstance(algorithm, getPrivateProvider());
+ } catch (Throwable throwable) {
+ throw originalException;
+ }
}
}
@@ -83,7 +99,7 @@ public class BCJcaJceHelper
if (provider instanceof BouncyCastleProvider) {
return ((BouncyCastleProvider) provider).getPrivateProvider();
}
- throw new IllegalStateException(); // XXX
+ throw new IllegalStateException("Internal error in BCJcaJceHelper");
}
// END Android-added: Look up algorithms in private provider if not found in main Provider.
}
diff --git a/repackaged_platform/bcprov/src/main/java/com/android/internal/org/bouncycastle/jcajce/util/BCJcaJceHelper.java b/repackaged_platform/bcprov/src/main/java/com/android/internal/org/bouncycastle/jcajce/util/BCJcaJceHelper.java
index 7b7c6cb3..507d225c 100644
--- a/repackaged_platform/bcprov/src/main/java/com/android/internal/org/bouncycastle/jcajce/util/BCJcaJceHelper.java
+++ b/repackaged_platform/bcprov/src/main/java/com/android/internal/org/bouncycastle/jcajce/util/BCJcaJceHelper.java
@@ -50,13 +50,21 @@ public class BCJcaJceHelper
//
// If code is using a BCJcajceHelper to ensure it gets its implementation from BC, then
// also search in the privately provided algorithms if not found in the main set.
+ //
+ // If any error occurs while searching the private Provider, typically a
+ // NoSuchAlgorithmException being thrown, then the original NoSuchAlgorithmException
+ // from the BC Provider is thrown for consistency.
@Override
public Cipher createCipher(String algorithm)
throws NoSuchAlgorithmException, NoSuchPaddingException {
try {
return super.createCipher(algorithm);
- } catch (NoSuchAlgorithmException e) {
- return Cipher.getInstance(algorithm, getPrivateProvider());
+ } catch (NoSuchAlgorithmException originalException) {
+ try {
+ return Cipher.getInstance(algorithm, getPrivateProvider());
+ } catch (Throwable throwable) {
+ throw originalException;
+ }
}
}
@@ -65,8 +73,12 @@ public class BCJcaJceHelper
throws NoSuchAlgorithmException {
try {
return super.createSecretKeyFactory(algorithm);
- } catch (NoSuchAlgorithmException e) {
- return SecretKeyFactory.getInstance(algorithm, getPrivateProvider());
+ } catch (NoSuchAlgorithmException originalException) {
+ try {
+ return SecretKeyFactory.getInstance(algorithm, getPrivateProvider());
+ } catch (Throwable throwable) {
+ throw originalException;
+ }
}
}
@@ -74,8 +86,12 @@ public class BCJcaJceHelper
public Mac createMac(String algorithm) throws NoSuchAlgorithmException {
try {
return super.createMac(algorithm);
- } catch (NoSuchAlgorithmException e) {
- return Mac.getInstance(algorithm, getPrivateProvider());
+ } catch (NoSuchAlgorithmException originalException) {
+ try {
+ return Mac.getInstance(algorithm, getPrivateProvider());
+ } catch (Throwable throwable) {
+ throw originalException;
+ }
}
}
@@ -83,7 +99,7 @@ public class BCJcaJceHelper
if (provider instanceof BouncyCastleProvider) {
return ((BouncyCastleProvider) provider).getPrivateProvider();
}
- throw new IllegalStateException(); // XXX
+ throw new IllegalStateException("Internal error in BCJcaJceHelper");
}
// END Android-added: Look up algorithms in private provider if not found in main Provider.
}