diff options
author | Kenny Root <kroot@google.com> | 2012-10-12 01:14:53 -0700 |
---|---|---|
committer | Kenny Root <kroot@google.com> | 2012-10-12 01:14:53 -0700 |
commit | a3c0f0ad00cf632535c7a3c637995bfb8f94aa0f (patch) | |
tree | f2bcfd77e0cb390b6db47f75d8bcf040f13e81c6 | |
parent | 62a9bf7570dd751d4f36ca8ca6bb0ded7b7a262f (diff) | |
parent | 9912a9c85825650db59395651b30bc1b0279a3fd (diff) | |
download | bouncycastle-a3c0f0ad00cf632535c7a3c637995bfb8f94aa0f.tar.gz |
resolved conflicts for merge of 9912a9c8 to master
Change-Id: I62758df6d292b5ed1c6e5c5aa6584acea2a7039d
3 files changed, 91 insertions, 7 deletions
diff --git a/bcprov/src/main/java/org/bouncycastle/jcajce/provider/asymmetric/ec/ECUtil.java b/bcprov/src/main/java/org/bouncycastle/jcajce/provider/asymmetric/ec/ECUtil.java index 80ff2af6..2c44d2aa 100644 --- a/bcprov/src/main/java/org/bouncycastle/jcajce/provider/asymmetric/ec/ECUtil.java +++ b/bcprov/src/main/java/org/bouncycastle/jcajce/provider/asymmetric/ec/ECUtil.java @@ -154,6 +154,16 @@ public class ECUtil k.getD(), new ECDomainParameters(s.getCurve(), s.getG(), s.getN(), s.getH(), s.getSeed())); } +// BEGIN android-added + else if (key instanceof java.security.interfaces.ECPrivateKey) + { + java.security.interfaces.ECPrivateKey privKey = (java.security.interfaces.ECPrivateKey)key; + ECParameterSpec s = EC5Util.convertSpec(privKey.getParams(), false); + return new ECPrivateKeyParameters( + privKey.getS(), + new ECDomainParameters(s.getCurve(), s.getG(), s.getN(), s.getH(), s.getSeed())); + } +// END android-added throw new InvalidKeyException("can't identify EC private key."); } diff --git a/bcprov/src/main/java/org/bouncycastle/jcajce/provider/asymmetric/ec/SignatureSpi.java b/bcprov/src/main/java/org/bouncycastle/jcajce/provider/asymmetric/ec/SignatureSpi.java index a92b7da0..f5fbc3b7 100644 --- a/bcprov/src/main/java/org/bouncycastle/jcajce/provider/asymmetric/ec/SignatureSpi.java +++ b/bcprov/src/main/java/org/bouncycastle/jcajce/provider/asymmetric/ec/SignatureSpi.java @@ -5,6 +5,9 @@ import java.math.BigInteger; import java.security.InvalidKeyException; import java.security.PrivateKey; import java.security.PublicKey; +// BEGIN android-added +import java.security.interfaces.ECPrivateKey; +// END android-added import java.security.interfaces.ECPublicKey; import org.bouncycastle.asn1.ASN1EncodableVector; @@ -95,7 +98,25 @@ public class SignatureSpi } else { +// BEGIN android-added + try + { + if (privateKey instanceof ECPrivateKey) + { + param = ECUtil.generatePrivateKeyParameter(privateKey); + } + else + { + throw new InvalidKeyException("can't recognise key type in ECDSA based signer"); + } + } + catch (Exception e) + { +// END android-added throw new InvalidKeyException("can't recognise key type in ECDSA based signer"); +// BEGIN android-added + } +// END android-added } digest.reset(); diff --git a/patches/bcprov.patch b/patches/bcprov.patch index c9e11897..b4f2f8e9 100644 --- a/patches/bcprov.patch +++ b/patches/bcprov.patch @@ -2045,7 +2045,24 @@ diff -Naur bcprov-jdk15on-147.orig/org/bouncycastle/jcajce/provider/asymmetric/e import org.bouncycastle.asn1.x9.X962NamedCurves; import org.bouncycastle.asn1.x9.X9ECParameters; import org.bouncycastle.crypto.params.AsymmetricKeyParameter; -@@ -166,14 +170,16 @@ +@@ -150,6 +154,16 @@ + k.getD(), + new ECDomainParameters(s.getCurve(), s.getG(), s.getN(), s.getH(), s.getSeed())); + } ++// BEGIN android-added ++ else if (key instanceof java.security.interfaces.ECPrivateKey) ++ { ++ java.security.interfaces.ECPrivateKey privKey = (java.security.interfaces.ECPrivateKey)key; ++ ECParameterSpec s = EC5Util.convertSpec(privKey.getParams(), false); ++ return new ECPrivateKeyParameters( ++ privKey.getS(), ++ new ECDomainParameters(s.getCurve(), s.getG(), s.getN(), s.getH(), s.getSeed())); ++ } ++// END android-added + + throw new InvalidKeyException("can't identify EC private key."); + } +@@ -166,14 +180,16 @@ { oid = NISTNamedCurves.getOID(name); } @@ -2589,7 +2606,17 @@ diff -Naur bcprov-jdk15on-147.orig/org/bouncycastle/jcajce/provider/asymmetric/e diff -Naur bcprov-jdk15on-147.orig/org/bouncycastle/jcajce/provider/asymmetric/ec/SignatureSpi.java bcprov-jdk15on-147/org/bouncycastle/jcajce/provider/asymmetric/ec/SignatureSpi.java --- bcprov-jdk15on-147.orig/org/bouncycastle/jcajce/provider/asymmetric/ec/SignatureSpi.java 2012-03-22 15:11:48.000000000 +0000 +++ bcprov-jdk15on-147/org/bouncycastle/jcajce/provider/asymmetric/ec/SignatureSpi.java 2012-09-28 17:07:55.000000000 +0000 -@@ -18,15 +18,22 @@ +@@ -5,6 +5,9 @@ + import java.security.InvalidKeyException; + import java.security.PrivateKey; + import java.security.PublicKey; ++// BEGIN android-added ++import java.security.interfaces.ECPrivateKey; ++// END android-added + import java.security.interfaces.ECPublicKey; + + import org.bouncycastle.asn1.ASN1EncodableVector; +@@ -18,15 +21,22 @@ import org.bouncycastle.crypto.DSA; import org.bouncycastle.crypto.Digest; import org.bouncycastle.crypto.digests.NullDigest; @@ -2619,7 +2646,33 @@ diff -Naur bcprov-jdk15on-147.orig/org/bouncycastle/jcajce/provider/asymmetric/e import org.bouncycastle.jcajce.provider.asymmetric.util.DSABase; import org.bouncycastle.jcajce.provider.asymmetric.util.DSAEncoder; import org.bouncycastle.jce.interfaces.ECKey; -@@ -108,7 +115,9 @@ +@@ -88,7 +98,25 @@ + } + else + { ++// BEGIN android-added ++ try ++ { ++ if (privateKey instanceof ECPrivateKey) ++ { ++ param = ECUtil.generatePrivateKeyParameter(privateKey); ++ } ++ else ++ { ++ throw new InvalidKeyException("can't recognise key type in ECDSA based signer"); ++ } ++ } ++ catch (Exception e) ++ { ++// END android-added + throw new InvalidKeyException("can't recognise key type in ECDSA based signer"); ++// BEGIN android-added ++ } ++// END android-added + } + + digest.reset(); +@@ -108,7 +136,9 @@ { public ecDSA() { @@ -2630,7 +2683,7 @@ diff -Naur bcprov-jdk15on-147.orig/org/bouncycastle/jcajce/provider/asymmetric/e } } -@@ -121,21 +130,25 @@ +@@ -121,21 +151,25 @@ } } @@ -2665,7 +2718,7 @@ diff -Naur bcprov-jdk15on-147.orig/org/bouncycastle/jcajce/provider/asymmetric/e } } -@@ -144,7 +157,9 @@ +@@ -144,7 +178,9 @@ { public ecDSA384() { @@ -2676,7 +2729,7 @@ diff -Naur bcprov-jdk15on-147.orig/org/bouncycastle/jcajce/provider/asymmetric/e } } -@@ -153,90 +168,94 @@ +@@ -153,90 +189,94 @@ { public ecDSA512() { @@ -2855,7 +2908,7 @@ diff -Naur bcprov-jdk15on-147.orig/org/bouncycastle/jcajce/provider/asymmetric/e private static class StdDSAEncoder implements DSAEncoder -@@ -330,4 +349,4 @@ +@@ -330,4 +370,4 @@ return sig; } } |