summaryrefslogtreecommitdiff
path: root/paramiko/ed25519key.py
diff options
context:
space:
mode:
authorJeff Forcier <jeff@bitprophet.org>2019-06-21 16:34:03 -0400
committerJeff Forcier <jeff@bitprophet.org>2019-06-21 16:34:03 -0400
commit26ae0c9b452b4fa395aa89a010e855cbe10780e6 (patch)
treea21df7dbb695e9c0269c69e7844a8425491d8be1 /paramiko/ed25519key.py
parentb79a2150d90502c16cc3c9436dc558ae1023713e (diff)
parentc45fa9f85c5dd0e697a2660b079e9915462d7c90 (diff)
downloadparamiko-26ae0c9b452b4fa395aa89a010e855cbe10780e6.tar.gz
Merge branch '2.2' into 2.3
Diffstat (limited to 'paramiko/ed25519key.py')
-rw-r--r--paramiko/ed25519key.py8
1 files changed, 5 insertions, 3 deletions
diff --git a/paramiko/ed25519key.py b/paramiko/ed25519key.py
index 68ada224..6e0d3ccf 100644
--- a/paramiko/ed25519key.py
+++ b/paramiko/ed25519key.py
@@ -37,10 +37,12 @@ def unpad(data):
# really ought to be made constant time (possibly by upstreaming this logic
# into pyca/cryptography).
padding_length = six.indexbytes(data, -1)
- if padding_length > 16:
+ if 0x20 <= padding_length < 0x7f:
+ return data # no padding, last byte part comment (printable ascii)
+ if padding_length > 15:
raise SSHException("Invalid key")
- for i in range(1, padding_length + 1):
- if six.indexbytes(data, -i) != (padding_length - i + 1):
+ for i in range(padding_length):
+ if six.indexbytes(data, i - padding_length) != i + 1:
raise SSHException("Invalid key")
return data[:-padding_length]