kex_group14.py 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. # Copyright (C) 2013 Torsten Landschoff <torsten@debian.org>
  2. #
  3. # This file is part of paramiko.
  4. #
  5. # Paramiko is free software; you can redistribute it and/or modify it under the
  6. # terms of the GNU Lesser General Public License as published by the Free
  7. # Software Foundation; either version 2.1 of the License, or (at your option)
  8. # any later version.
  9. #
  10. # Paramiko is distributed in the hope that it will be useful, but WITHOUT ANY
  11. # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
  12. # A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
  13. # details.
  14. #
  15. # You should have received a copy of the GNU Lesser General Public License
  16. # along with Paramiko; if not, write to the Free Software Foundation, Inc.,
  17. # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  18. """
  19. Standard SSH key exchange ("kex" if you wanna sound cool). Diffie-Hellman of
  20. 2048 bit key halves, using a known "p" prime and "g" generator.
  21. """
  22. from paramiko.kex_group1 import KexGroup1
  23. from hashlib import sha1, sha256
  24. class KexGroup14(KexGroup1):
  25. # http://tools.ietf.org/html/rfc3526#section-3
  26. P = 0xFFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AACAA68FFFFFFFFFFFFFFFF # noqa
  27. G = 2
  28. name = "diffie-hellman-group14-sha1"
  29. hash_algo = sha1
  30. class KexGroup14SHA256(KexGroup14):
  31. name = "diffie-hellman-group14-sha256"
  32. hash_algo = sha256