am 5db429c3: (-s ours) Merge "Fix non-BC EC private key usage DO NOT MERGE"
* commit '5db429c3eb447595975a7466801318288eef7eda':
Fix non-BC EC private key usage DO NOT MERGE
diff --git a/patches/android.patch b/patches/android.patch
index 7272cc4..40a24f8 100644
--- a/patches/android.patch
+++ b/patches/android.patch
@@ -9420,24 +9420,7 @@
import org.bouncycastle.asn1.x9.X962NamedCurves;
import org.bouncycastle.asn1.x9.X9ECParameters;
import org.bouncycastle.crypto.params.AsymmetricKeyParameter;
-@@ -151,6 +155,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.");
- }
-@@ -167,14 +181,16 @@
+@@ -167,14 +171,16 @@
{
oid = NISTNamedCurves.getOID(name);
}
@@ -9462,7 +9445,7 @@
}
return oid;
-@@ -192,10 +208,12 @@
+@@ -192,10 +198,12 @@
{
params = NISTNamedCurves.getByOID(oid);
}
@@ -9479,7 +9462,7 @@
}
return params;
-@@ -213,14 +231,16 @@
+@@ -213,14 +221,16 @@
{
name = NISTNamedCurves.getName(oid);
}
@@ -10034,17 +10017,7 @@
diff -Naur bcprov-jdk16-146.orig/org/bouncycastle/jce/provider/asymmetric/ec/Signature.java bcprov-jdk16-146/org/bouncycastle/jce/provider/asymmetric/ec/Signature.java
--- bcprov-jdk16-146.orig/org/bouncycastle/jce/provider/asymmetric/ec/Signature.java 2011-02-23 20:08:56.000000000 +0000
+++ bcprov-jdk16-146/org/bouncycastle/jce/provider/asymmetric/ec/Signature.java 2012-07-27 18:48:00.031478939 +0000
-@@ -6,6 +6,9 @@
- import java.security.PrivateKey;
- import java.security.PublicKey;
- import java.security.SecureRandom;
-+// BEGIN android-added
-+import java.security.interfaces.ECPrivateKey;
-+// END android-added
- import java.security.interfaces.ECPublicKey;
-
- import org.bouncycastle.asn1.ASN1Encodable;
-@@ -18,15 +21,21 @@
+@@ -18,15 +18,21 @@
import org.bouncycastle.crypto.DSA;
import org.bouncycastle.crypto.Digest;
import org.bouncycastle.crypto.digests.NullDigest;
@@ -10069,33 +10042,7 @@
import org.bouncycastle.jce.interfaces.ECKey;
import org.bouncycastle.jce.provider.DSABase;
import org.bouncycastle.jce.provider.DSAEncoder;
-@@ -89,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();
-@@ -122,14 +149,16 @@
+@@ -122,14 +128,16 @@
}
}
@@ -10120,7 +10067,7 @@
static public class ecDSA256
extends Signature
-@@ -158,86 +187,88 @@
+@@ -158,86 +166,88 @@
}
}
@@ -10289,7 +10236,7 @@
private static class StdDSAEncoder
implements DSAEncoder
-@@ -331,4 +362,4 @@
+@@ -331,4 +341,4 @@
return sig;
}
}
diff --git a/src/main/java/org/bouncycastle/jce/provider/asymmetric/ec/ECUtil.java b/src/main/java/org/bouncycastle/jce/provider/asymmetric/ec/ECUtil.java
index 6f2f28a..088dfad 100644
--- a/src/main/java/org/bouncycastle/jce/provider/asymmetric/ec/ECUtil.java
+++ b/src/main/java/org/bouncycastle/jce/provider/asymmetric/ec/ECUtil.java
@@ -155,16 +155,6 @@
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/src/main/java/org/bouncycastle/jce/provider/asymmetric/ec/Signature.java b/src/main/java/org/bouncycastle/jce/provider/asymmetric/ec/Signature.java
index c5812c4..0bb21f8 100644
--- a/src/main/java/org/bouncycastle/jce/provider/asymmetric/ec/Signature.java
+++ b/src/main/java/org/bouncycastle/jce/provider/asymmetric/ec/Signature.java
@@ -6,9 +6,6 @@
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.SecureRandom;
-// BEGIN android-added
-import java.security.interfaces.ECPrivateKey;
-// END android-added
import java.security.interfaces.ECPublicKey;
import org.bouncycastle.asn1.ASN1Encodable;
@@ -98,25 +95,7 @@
}
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();