diff options
author | Kenny Root <kroot@google.com> | 2014-05-07 17:26:23 -0700 |
---|---|---|
committer | Kenny Root <kroot@google.com> | 2014-05-07 17:28:24 -0700 |
commit | 16fbd3bddeabacaa6b64a84b547708a84a6ddf98 (patch) | |
tree | 040435778fa89ac66006dc0e2358ac218f7d3c90 | |
parent | 5109ec0544f566b5a2e5298a03b1ecd1d6538cca (diff) | |
download | android_external_bouncycastle-16fbd3bddeabacaa6b64a84b547708a84a6ddf98.tar.gz android_external_bouncycastle-16fbd3bddeabacaa6b64a84b547708a84a6ddf98.tar.bz2 android_external_bouncycastle-16fbd3bddeabacaa6b64a84b547708a84a6ddf98.zip |
Add OID for Diffie-Hellman keys
Without this, decoding X.509 certificates doesn't get a valid DH public
key since this OID is not registered by any other provider.
Change-Id: I82a5e4cfc3b63c3928299523725d24b838ca939c
-rw-r--r-- | bcprov/src/main/java/org/bouncycastle/jcajce/provider/asymmetric/DH.java | 11 | ||||
-rw-r--r-- | patches/bcprov.patch | 30 |
2 files changed, 39 insertions, 2 deletions
diff --git a/bcprov/src/main/java/org/bouncycastle/jcajce/provider/asymmetric/DH.java b/bcprov/src/main/java/org/bouncycastle/jcajce/provider/asymmetric/DH.java index 28a1a6a..bfedc81 100644 --- a/bcprov/src/main/java/org/bouncycastle/jcajce/provider/asymmetric/DH.java +++ b/bcprov/src/main/java/org/bouncycastle/jcajce/provider/asymmetric/DH.java @@ -1,7 +1,14 @@ package org.bouncycastle.jcajce.provider.asymmetric; +// BEGIN android-added +import org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers; +import org.bouncycastle.jcajce.provider.asymmetric.dh.KeyFactorySpi; +// END android-added import org.bouncycastle.jcajce.provider.config.ConfigurableProvider; import org.bouncycastle.jcajce.provider.util.AsymmetricAlgorithmProvider; +// BEGIN android-added +import org.bouncycastle.jcajce.provider.util.AsymmetricKeyInfoConverter; +// END android-added public class DH { @@ -24,6 +31,10 @@ public class DH provider.addAlgorithm("KeyFactory.DH", PREFIX + "KeyFactorySpi"); provider.addAlgorithm("Alg.Alias.KeyFactory.DIFFIEHELLMAN", "DH"); + // BEGIN android-added + AsymmetricKeyInfoConverter keyFact = new KeyFactorySpi(); + registerOid(provider, PKCSObjectIdentifiers.dhKeyAgreement, "DH", keyFact); + // END android-added provider.addAlgorithm("AlgorithmParameters.DH", PREFIX + "AlgorithmParametersSpi"); provider.addAlgorithm("Alg.Alias.AlgorithmParameters.DIFFIEHELLMAN", "DH"); diff --git a/patches/bcprov.patch b/patches/bcprov.patch index 4640d50..0880f97 100644 --- a/patches/bcprov.patch +++ b/patches/bcprov.patch @@ -1083,8 +1083,34 @@ diff -Naur bcprov-jdk15on-150.orig/org/bouncycastle/crypto/util/PublicKeyFactory { diff -Naur bcprov-jdk15on-150.orig/org/bouncycastle/jcajce/provider/asymmetric/DH.java bcprov-jdk15on-150/org/bouncycastle/jcajce/provider/asymmetric/DH.java --- bcprov-jdk15on-150.orig/org/bouncycastle/jcajce/provider/asymmetric/DH.java 2013-12-03 20:18:20.000000000 +0000 -+++ bcprov-jdk15on-150/org/bouncycastle/jcajce/provider/asymmetric/DH.java 2013-05-25 02:14:15.000000000 +0000 -@@ -32,10 +32,12 @@ ++++ bcprov-jdk15on-150/org/bouncycastle/jcajce/provider/asymmetric/DH.java 2014-05-08 00:26:23.000000000 +0000 +@@ -1,7 +1,14 @@ + package org.bouncycastle.jcajce.provider.asymmetric; + ++// BEGIN android-added ++import org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers; ++import org.bouncycastle.jcajce.provider.asymmetric.dh.KeyFactorySpi; ++// END android-added + import org.bouncycastle.jcajce.provider.config.ConfigurableProvider; + import org.bouncycastle.jcajce.provider.util.AsymmetricAlgorithmProvider; ++// BEGIN android-added ++import org.bouncycastle.jcajce.provider.util.AsymmetricKeyInfoConverter; ++// END android-added + + public class DH + { +@@ -24,6 +31,10 @@ + + provider.addAlgorithm("KeyFactory.DH", PREFIX + "KeyFactorySpi"); + provider.addAlgorithm("Alg.Alias.KeyFactory.DIFFIEHELLMAN", "DH"); ++ // BEGIN android-added ++ AsymmetricKeyInfoConverter keyFact = new KeyFactorySpi(); ++ registerOid(provider, PKCSObjectIdentifiers.dhKeyAgreement, "DH", keyFact); ++ // END android-added + + provider.addAlgorithm("AlgorithmParameters.DH", PREFIX + "AlgorithmParametersSpi"); + provider.addAlgorithm("Alg.Alias.AlgorithmParameters.DIFFIEHELLMAN", "DH"); +@@ -32,10 +43,12 @@ provider.addAlgorithm("AlgorithmParameterGenerator.DH", PREFIX + "AlgorithmParameterGeneratorSpi"); |