aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPaul Kehrer <paul.l.kehrer@gmail.com>2015-10-29 16:33:38 +0900
committerPaul Kehrer <paul.l.kehrer@gmail.com>2015-10-29 16:33:38 +0900
commita0cb27c6dcd09761f8a93cba106539ecb6135f9f (patch)
treef5010d2c256f4d8adebf4dd25b8ddc2158b74bab /src
parent81d4a35b08ba37cf51977a722114b802b5141593 (diff)
parente24534590de84ce9e4ae21f73eefec94396f0da4 (diff)
downloadcryptography-a0cb27c6dcd09761f8a93cba106539ecb6135f9f.tar.gz
cryptography-a0cb27c6dcd09761f8a93cba106539ecb6135f9f.tar.bz2
cryptography-a0cb27c6dcd09761f8a93cba106539ecb6135f9f.zip
Merge pull request #2455 from alex/different-curves
Error cleanly if the public and private keys to an ECDH key exchange …
Diffstat (limited to 'src')
-rw-r--r--src/cryptography/hazmat/backends/openssl/ec.py5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/cryptography/hazmat/backends/openssl/ec.py b/src/cryptography/hazmat/backends/openssl/ec.py
index cfd559ae..aa4a7a35 100644
--- a/src/cryptography/hazmat/backends/openssl/ec.py
+++ b/src/cryptography/hazmat/backends/openssl/ec.py
@@ -182,6 +182,11 @@ class _EllipticCurvePrivateKey(object):
_Reasons.UNSUPPORTED_EXCHANGE_ALGORITHM
)
+ if peer_public_key.curve.name != self.curve.name:
+ raise ValueError(
+ "peer_public_key and self are not on the same curve"
+ )
+
group = self._backend._lib.EC_KEY_get0_group(self._ec_key)
z_len = (self._backend._lib.EC_GROUP_get_degree(group) + 7) // 8
self._backend.openssl_assert(z_len > 0)