summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Forcier <jeff@bitprophet.org>2017-08-28 20:55:25 -0700
committerJeff Forcier <jeff@bitprophet.org>2017-08-28 20:55:25 -0700
commitfe06342df3daf405aa4d88e4ceebd8a757e7a7c6 (patch)
tree58bd3917e06c415596d1e67cb5887becc601ae04
parentb9f7b6058906ac7f80b815570731d967b299ba8d (diff)
downloadparamiko-fe06342df3daf405aa4d88e4ceebd8a757e7a7c6.tar.gz
Implement DSS certs
-rw-r--r--paramiko/dsskey.py9
-rw-r--r--paramiko/transport.py1
2 files changed, 6 insertions, 4 deletions
diff --git a/paramiko/dsskey.py b/paramiko/dsskey.py
index b3197f62..f9c02153 100644
--- a/paramiko/dsskey.py
+++ b/paramiko/dsskey.py
@@ -61,10 +61,11 @@ class DSSKey(PKey):
if vals is not None:
self.p, self.q, self.g, self.y = vals
else:
- if msg is None:
- raise SSHException('Key object may not be empty')
- if msg.get_text() != 'ssh-dss':
- raise SSHException('Invalid key')
+ self._check_type_and_load_cert(
+ msg=msg,
+ key_type='ssh-dss',
+ cert_type='ssh-dss-cert-v01@openssh.com',
+ )
self.p = msg.get_mpint()
self.q = msg.get_mpint()
self.g = msg.get_mpint()
diff --git a/paramiko/transport.py b/paramiko/transport.py
index 0dc2e28a..d97bee80 100644
--- a/paramiko/transport.py
+++ b/paramiko/transport.py
@@ -206,6 +206,7 @@ class Transport(threading.Thread, ClosingContextManager):
'ssh-rsa': RSAKey,
'ssh-rsa-cert-v01@openssh.com': RSAKey,
'ssh-dss': DSSKey,
+ 'ssh-dss-cert-v01@openssh.com': DSSKey,
'ecdsa-sha2-nistp256': ECDSAKey,
'ecdsa-sha2-nistp384': ECDSAKey,
'ecdsa-sha2-nistp521': ECDSAKey,