Hi All,
I made the diff against portable OpenSSH some time ago.
Here's the diff for native OpenSSH.
Feedback welcomed.
Index: ssh-keygen.c
===================================================================
RCS file: /cvs/src/usr.bin/ssh/ssh-keygen.c,v
retrieving revision 1.243
diff -u -p -u -p -r1.243 ssh-keygen.c
--- ssh-keygen.c 15 Mar 2014 17:28:26 -0000 1.243
+++ ssh-keygen.c 16 Apr 2014 20:41:24 -0000
@@ -2479,6 +2479,8 @@ main(int argc, char **argv)
_PATH_HOST_DSA_KEY_FILE, rr_hostname);
n += do_print_resource_record(pw,
_PATH_HOST_ECDSA_KEY_FILE, rr_hostname);
+ n += do_print_resource_record(pw,
+ _PATH_HOST_ED25519_KEY_FILE, rr_hostname);
if (n == 0)
fatal("no keys found.");
Index: dns.h
===================================================================
RCS file: /cvs/src/usr.bin/ssh/dns.h,v
retrieving revision 1.12
diff -u -p -u -p -r1.12 dns.h
--- dns.h 23 May 2012 03:28:28 -0000 1.12
+++ dns.h 16 Apr 2014 20:41:24 -0000
@@ -32,7 +32,8 @@ enum sshfp_types {
SSHFP_KEY_RESERVED = 0,
SSHFP_KEY_RSA = 1,
SSHFP_KEY_DSA = 2,
- SSHFP_KEY_ECDSA = 3
+ SSHFP_KEY_ECDSA = 3,
+ SSHFP_KEY_ED25519 = 4
};
enum sshfp_hashes {
Index: dns.c
===================================================================
RCS file: /cvs/src/usr.bin/ssh/dns.c,v
retrieving revision 1.29
diff -u -p -u -p -r1.29 dns.c
--- dns.c 17 May 2013 00:13:13 -0000 1.29
+++ dns.c 16 Apr 2014 20:41:24 -0000
@@ -93,6 +93,11 @@ dns_read_key(u_int8_t *algorithm, u_int8
if (!*digest_type)
*digest_type = SSHFP_HASH_SHA256;
break;
+ case KEY_ED25519:
+ *algorithm = SSHFP_KEY_ED25519;
+ if (!*digest_type)
+ *digest_type = SSHFP_HASH_SHA256;
+ break;
default:
*algorithm = SSHFP_KEY_RESERVED; /* 0 */
*digest_type = SSHFP_HASH_RESERVED; /* 0 */