summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--luni/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLProvider.java11
-rw-r--r--luni/src/test/java/libcore/java/security/SignatureTest.java19
-rw-r--r--support/src/test/java/libcore/java/security/StandardNames.java4
3 files changed, 24 insertions, 10 deletions
diff --git a/luni/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLProvider.java b/luni/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLProvider.java
index fd9be17..d4aa57f 100644
--- a/luni/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLProvider.java
+++ b/luni/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLProvider.java
@@ -73,12 +73,11 @@ public final class OpenSSLProvider extends Provider {
// put("KeyFactory.DSA", OpenSSLDSAKeyFactory.class.getName());
// Signatures
- put("Signature.MD5WithRSAEncryption", OpenSSLSignature.MD5RSA.class.getName());
- put("Alg.Alias.Signature.MD5WithRSA", "MD5WithRSAEncryption");
- put("Alg.Alias.Signature.MD5/RSA", "MD5WithRSAEncryption");
- put("Alg.Alias.Signature.1.2.840.113549.1.1.4", "MD5WithRSAEncryption");
- put("Alg.Alias.Signature.1.2.840.113549.2.5with1.2.840.113549.1.1.1",
- "MD5WithRSAEncryption");
+ put("Signature.MD5WithRSA", OpenSSLSignature.MD5RSA.class.getName());
+ put("Alg.Alias.Signature.MD5WithRSAEncryption", "MD5WithRSA");
+ put("Alg.Alias.Signature.MD5/RSA", "MD5WithRSA");
+ put("Alg.Alias.Signature.1.2.840.113549.1.1.4", "MD5WithRSA");
+ put("Alg.Alias.Signature.1.2.840.113549.2.5with1.2.840.113549.1.1.1", "MD5WithRSA");
put("Signature.SHA1WithRSA", OpenSSLSignature.SHA1RSA.class.getName());
put("Alg.Alias.Signature.SHA1WithRSA", "SHA1WithRSA");
diff --git a/luni/src/test/java/libcore/java/security/SignatureTest.java b/luni/src/test/java/libcore/java/security/SignatureTest.java
index 92b5513..63daa88 100644
--- a/luni/src/test/java/libcore/java/security/SignatureTest.java
+++ b/luni/src/test/java/libcore/java/security/SignatureTest.java
@@ -1253,4 +1253,23 @@ public class SignatureTest extends TestCase {
sig.update(Vector2Data);
assertTrue("Signature must verify correctly", sig.verify(SHA1withDSA_Vector2Signature));
}
+
+ // NetscapeCertRequest looks up Signature algorithms by OID from
+ // BC but BC version 1.47 had registration bugs and MD5withRSA was
+ // overlooked. http://b/7453821
+ public void testGetInstanceFromOID() throws Exception {
+ assertBouncyCastleSignatureFromOID("1.2.840.113549.1.1.4"); // MD5withRSA
+ assertBouncyCastleSignatureFromOID("1.2.840.113549.1.1.5"); // SHA1withRSA
+ assertBouncyCastleSignatureFromOID("1.3.14.3.2.29"); // SHA1withRSA
+ assertBouncyCastleSignatureFromOID("1.2.840.113549.1.1.11"); // SHA256withRSA
+ assertBouncyCastleSignatureFromOID("1.2.840.113549.1.1.12"); // SHA384withRSA
+ assertBouncyCastleSignatureFromOID("1.2.840.113549.1.1.13"); // SHA512withRSA
+ assertBouncyCastleSignatureFromOID("1.2.840.10040.4.3"); // SHA1withDSA
+ }
+
+ private void assertBouncyCastleSignatureFromOID(String oid) throws Exception {
+ Signature signature = Signature.getInstance(oid, "BC");
+ assertNotNull(oid, signature);
+ assertEquals(oid, signature.getAlgorithm());
+ }
}
diff --git a/support/src/test/java/libcore/java/security/StandardNames.java b/support/src/test/java/libcore/java/security/StandardNames.java
index 4211a10..be880d3 100644
--- a/support/src/test/java/libcore/java/security/StandardNames.java
+++ b/support/src/test/java/libcore/java/security/StandardNames.java
@@ -348,10 +348,6 @@ public final class StandardNames extends Assert {
unprovide("MessageDigest", "SHA");
provide("MessageDigest", "SHA-1");
- // different names: added "Encryption" suffix
- unprovide("Signature", "MD5withRSA");
- provide("Signature", "MD5WithRSAEncryption");
-
// Added to support Android KeyStore operations
provide("Signature", "NONEwithRSA");
provide("Cipher", "RSA/ECB/NOPADDING");