diff options
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.java | 5 |
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 |