summaryrefslogtreecommitdiff
path: root/bcprov/src/main/java/org/bouncycastle/crypto/agreement/ECDHBasicAgreement.java
diff options
context:
space:
mode:
Diffstat (limited to 'bcprov/src/main/java/org/bouncycastle/crypto/agreement/ECDHBasicAgreement.java')
-rw-r--r--bcprov/src/main/java/org/bouncycastle/crypto/agreement/ECDHBasicAgreement.java5
1 files changed, 5 insertions, 0 deletions
diff --git a/bcprov/src/main/java/org/bouncycastle/crypto/agreement/ECDHBasicAgreement.java b/bcprov/src/main/java/org/bouncycastle/crypto/agreement/ECDHBasicAgreement.java
index 5aa2f2bb..45ff0d36 100644
--- a/bcprov/src/main/java/org/bouncycastle/crypto/agreement/ECDHBasicAgreement.java
+++ b/bcprov/src/main/java/org/bouncycastle/crypto/agreement/ECDHBasicAgreement.java
@@ -59,6 +59,11 @@ public class ECDHBasicAgreement
// Explicitly construct a public key using the private key's curve.
ECPoint pubPoint = myCurve.createPoint(peerPoint.getXCoord().toBigInteger(),
peerPoint.getYCoord().toBigInteger());
+ ECPublicKeyParameters pub = (ECPublicKeyParameters)pubKey;
+ if (!pub.getParameters().equals(key.getParameters()))
+ {
+ throw new IllegalStateException("ECDH public key has wrong domain parameters");
+ }
ECPoint P = pubPoint.multiply(key.getD()).normalize();
// END android-changed