aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorbernhl <15350042+bernhl@users.noreply.github.com>2019-03-18 03:03:16 +0100
committerAlex Gaynor <alex.gaynor@gmail.com>2019-03-17 22:03:16 -0400
commita453d8709763badde325568c13961bb6745f333c (patch)
tree12c6e36e781169adcff91a1d3ced55fa94e99cda /src
parentb73ed5a6a3067c832413a6b4c987667a9d545153 (diff)
downloadcryptography-a453d8709763badde325568c13961bb6745f333c.tar.gz
cryptography-a453d8709763badde325568c13961bb6745f333c.tar.bz2
cryptography-a453d8709763badde325568c13961bb6745f333c.zip
add OpenSSH serialization for ed25519 keys (#4808) (#4811)
* add OpenSSH serialization for ed25519 keys (#4808) * address review comments
Diffstat (limited to 'src')
-rw-r--r--src/cryptography/hazmat/backends/openssl/backend.py7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/cryptography/hazmat/backends/openssl/backend.py b/src/cryptography/hazmat/backends/openssl/backend.py
index 15eff837..779d2ee1 100644
--- a/src/cryptography/hazmat/backends/openssl/backend.py
+++ b/src/cryptography/hazmat/backends/openssl/backend.py
@@ -1885,6 +1885,13 @@ class Backend(object):
ssh._ssh_write_mpint(parameter_numbers.g) +
ssh._ssh_write_mpint(public_numbers.y)
)
+ elif isinstance(key, ed25519.Ed25519PublicKey):
+ raw_bytes = key.public_bytes(serialization.Encoding.Raw,
+ serialization.PublicFormat.Raw)
+ return b"ssh-ed25519 " + base64.b64encode(
+ ssh._ssh_write_string(b"ssh-ed25519") +
+ ssh._ssh_write_string(raw_bytes)
+ )
else:
assert isinstance(key, ec.EllipticCurvePublicKey)
public_numbers = key.public_numbers()