diff options
author | Edgar Sousa <edg@edgsousa.xyz> | 2018-05-23 12:37:06 +0100 |
---|---|---|
committer | edgsousa <mythund3r> | 2018-05-23 12:37:06 +0100 |
commit | c8ab126730c5f0ad8414c3198d9d876b4b9375fd (patch) | |
tree | 8c40478972a88ae41d2fbc353b78e5f9e057420e | |
parent | 413bf37df7c9bf88d70d2b046935687c072980d4 (diff) |
Add support for DH Group14-SHA256.
Fix bug on Group1 implementation using hardcoded sha1 cipher instead of class parameter.
-rw-r--r-- | paramiko/kex_group1.py | 2 | ||||
-rw-r--r-- | paramiko/kex_group14.py | 5 | ||||
-rw-r--r-- | paramiko/transport.py | 4 |
3 files changed, 8 insertions, 3 deletions
diff --git a/paramiko/kex_group1.py b/paramiko/kex_group1.py index 1bebd375..35e30e2e 100644 --- a/paramiko/kex_group1.py +++ b/paramiko/kex_group1.py @@ -110,7 +110,7 @@ class KexGroup1(object): hm.add_mpint(self.e) hm.add_mpint(self.f) hm.add_mpint(K) - self.transport._set_K_H(K, sha1(hm.asbytes()).digest()) + self.transport._set_K_H(K, self.hash_algo(hm.asbytes()).digest()) self.transport._verify_key(host_key, sig) self.transport._activate_outbound() diff --git a/paramiko/kex_group14.py b/paramiko/kex_group14.py index 22955e34..009ccb2f 100644 --- a/paramiko/kex_group14.py +++ b/paramiko/kex_group14.py @@ -22,7 +22,7 @@ Standard SSH key exchange ("kex" if you wanna sound cool). Diffie-Hellman of """ from paramiko.kex_group1 import KexGroup1 -from hashlib import sha1 +from hashlib import sha1, sha256 class KexGroup14(KexGroup1): @@ -33,3 +33,6 @@ class KexGroup14(KexGroup1): name = 'diffie-hellman-group14-sha1' hash_algo = sha1 + +class KexGroup14_SHA256(KexGroup14): + hash_algo = sha256 diff --git a/paramiko/transport.py b/paramiko/transport.py index ddcb2912..d3836113 100644 --- a/paramiko/transport.py +++ b/paramiko/transport.py @@ -57,7 +57,7 @@ from paramiko.dsskey import DSSKey from paramiko.ed25519key import Ed25519Key from paramiko.kex_gex import KexGex, KexGexSHA256 from paramiko.kex_group1 import KexGroup1 -from paramiko.kex_group14 import KexGroup14 +from paramiko.kex_group14 import KexGroup14, KexGroup14_SHA256 from paramiko.kex_ecdh_nist import KexNistp256, KexNistp384, KexNistp521 from paramiko.kex_gss import KexGSSGex, KexGSSGroup1, KexGSSGroup14 from paramiko.message import Message @@ -135,6 +135,7 @@ class Transport(threading.Thread, ClosingContextManager): 'ecdh-sha2-nistp384', 'ecdh-sha2-nistp521', 'diffie-hellman-group-exchange-sha256', + 'diffie-hellman-group14-sha256', 'diffie-hellman-group-exchange-sha1', 'diffie-hellman-group14-sha1', 'diffie-hellman-group1-sha1', @@ -227,6 +228,7 @@ class Transport(threading.Thread, ClosingContextManager): 'diffie-hellman-group14-sha1': KexGroup14, 'diffie-hellman-group-exchange-sha1': KexGex, 'diffie-hellman-group-exchange-sha256': KexGexSHA256, + 'diffie-hellman-group14-sha256': KexGroup14_SHA256, 'gss-group1-sha1-toWM5Slw5Ew8Mqkay+al2g==': KexGSSGroup1, 'gss-group14-sha1-toWM5Slw5Ew8Mqkay+al2g==': KexGSSGroup14, 'gss-gex-sha1-toWM5Slw5Ew8Mqkay+al2g==': KexGSSGex, |