On Wed, Apr 16, 2014 at 01:48:10PM -0700, Loganaden Velvindron wrote:
> Hi All,
>
> I made the diff against portable OpenSSH some time ago.
>
> Here's the diff for native OpenSSH.
>
> Feedback welcomed.
Waiting for standards body to do the right thing doesn't work. Lesson
learned the hard way.
>
>
> 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 */
>