Index: head/security/py-paramiko/Makefile =================================================================== --- head/security/py-paramiko/Makefile (revision 502963) +++ head/security/py-paramiko/Makefile (revision 502964) @@ -1,32 +1,33 @@ # Created by: Ulf Lilleengen # $FreeBSD$ PORTNAME= paramiko PORTVERSION= 2.4.2 +PORTREVISION= 1 CATEGORIES= security python MASTER_SITES= CHEESESHOP PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= sbz@FreeBSD.org COMMENT= Python SSH2 protocol library LICENSE= GPLv2 LICENSE_FILE= ${WRKSRC}/LICENSE RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}bcrypt>=3.1.3:security/py-bcrypt@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}cryptography>=1.5:security/py-cryptography@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pyasn1>=0.1.7:devel/py-pyasn1@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pynacl>=1.0.1:security/py-pynacl@${PY_FLAVOR} TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pytest>=0:devel/py-pytest@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}mock>=0:devel/py-mock@${PY_FLAVOR} USES= python USE_PYTHON= autoplist distutils CONFLICTS_INSTALL= py??-paramiko1-* NO_ARCH= yes do-test: @(cd ${WRKSRC} && ${PYTHON_CMD} -m unittest discover .) .include Index: head/security/py-paramiko/files/patch-PR1369.diff =================================================================== --- head/security/py-paramiko/files/patch-PR1369.diff (nonexistent) +++ head/security/py-paramiko/files/patch-PR1369.diff (revision 502964) @@ -0,0 +1,115 @@ +Index: paramiko/ecdsakey.py +=================================================================== +--- paramiko/ecdsakey.py ++++ paramiko/ecdsakey.py +@@ -160,12 +160,12 @@ class ECDSAKey(PKey): + + pointinfo = msg.get_binary() + try: +- numbers = ec.EllipticCurvePublicNumbers.from_encoded_point( ++ key = ec.EllipticCurvePublicKey.from_encoded_point( + self.ecdsa_curve.curve_class(), pointinfo + ) ++ self.verifying_key = key + except ValueError: + raise SSHException("Invalid public key") +- self.verifying_key = numbers.public_key(backend=default_backend()) + + @classmethod + def supported_key_format_identifiers(cls): +Index: paramiko/kex_ecdh_nist.py +=================================================================== +--- paramiko/kex_ecdh_nist.py ++++ paramiko/kex_ecdh_nist.py +@@ -9,6 +9,7 @@ from paramiko.py3compat import byte_chr, long + from paramiko.ssh_exception import SSHException + from cryptography.hazmat.backends import default_backend + from cryptography.hazmat.primitives.asymmetric import ec ++from cryptography.hazmat.primitives import serialization + from binascii import hexlify + + _MSG_KEXECDH_INIT, _MSG_KEXECDH_REPLY = range(30, 32) +@@ -36,7 +37,12 @@ class KexNistp256: + m = Message() + m.add_byte(c_MSG_KEXECDH_INIT) + # SEC1: V2.0 2.3.3 Elliptic-Curve-Point-to-Octet-String Conversion +- m.add_string(self.Q_C.public_numbers().encode_point()) ++ m.add_string( ++ self.Q_C.public_bytes( ++ serialization.Encoding.X962, ++ serialization.PublicFormat.UncompressedPoint, ++ ) ++ ) + self.transport._send_message(m) + self.transport._expect_packet(_MSG_KEXECDH_REPLY) + +@@ -58,11 +64,11 @@ class KexNistp256: + + def _parse_kexecdh_init(self, m): + Q_C_bytes = m.get_string() +- self.Q_C = ec.EllipticCurvePublicNumbers.from_encoded_point( ++ self.Q_C = ec.EllipticCurvePublicKey.from_encoded_point( + self.curve, Q_C_bytes + ) + K_S = self.transport.get_server_key().asbytes() +- K = self.P.exchange(ec.ECDH(), self.Q_C.public_key(default_backend())) ++ K = self.P.exchange(ec.ECDH(), self.Q_C) + K = long(hexlify(K), 16) + # compute exchange hash + hm = Message() +@@ -75,7 +81,12 @@ class KexNistp256: + hm.add_string(K_S) + hm.add_string(Q_C_bytes) + # SEC1: V2.0 2.3.3 Elliptic-Curve-Point-to-Octet-String Conversion +- hm.add_string(self.Q_S.public_numbers().encode_point()) ++ hm.add_string( ++ self.Q_S.public_bytes( ++ serialization.Encoding.X962, ++ serialization.PublicFormat.UncompressedPoint, ++ ) ++ ) + hm.add_mpint(long(K)) + H = self.hash_algo(hm.asbytes()).digest() + self.transport._set_K_H(K, H) +@@ -84,7 +95,12 @@ class KexNistp256: + m = Message() + m.add_byte(c_MSG_KEXECDH_REPLY) + m.add_string(K_S) +- m.add_string(self.Q_S.public_numbers().encode_point()) ++ m.add_string( ++ self.Q_S.public_bytes( ++ serialization.Encoding.X962, ++ serialization.PublicFormat.UncompressedPoint, ++ ) ++ ) + m.add_string(sig) + self.transport._send_message(m) + self.transport._activate_outbound() +@@ -92,11 +108,11 @@ class KexNistp256: + def _parse_kexecdh_reply(self, m): + K_S = m.get_string() + Q_S_bytes = m.get_string() +- self.Q_S = ec.EllipticCurvePublicNumbers.from_encoded_point( ++ self.Q_S = ec.EllipticCurvePublicKey.from_encoded_point( + self.curve, Q_S_bytes + ) + sig = m.get_binary() +- K = self.P.exchange(ec.ECDH(), self.Q_S.public_key(default_backend())) ++ K = self.P.exchange(ec.ECDH(), self.Q_S) + K = long(hexlify(K), 16) + # compute exchange hash and verify signature + hm = Message() +@@ -108,7 +124,12 @@ class KexNistp256: + ) + hm.add_string(K_S) + # SEC1: V2.0 2.3.3 Elliptic-Curve-Point-to-Octet-String Conversion +- hm.add_string(self.Q_C.public_numbers().encode_point()) ++ hm.add_string( ++ self.Q_C.public_bytes( ++ serialization.Encoding.X962, ++ serialization.PublicFormat.UncompressedPoint, ++ ) ++ ) + hm.add_string(Q_S_bytes) + hm.add_mpint(K) + self.transport._set_K_H(K, self.hash_algo(hm.asbytes()).digest()) Property changes on: head/security/py-paramiko/files/patch-PR1369.diff ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property