From 46c264f2ae6e74c1ea218dd3a8717695c5c8d680 Mon Sep 17 00:00:00 2001 From: Ben Lindstrom Date: Tue, 24 Apr 2001 16:56:58 +0000 Subject: [PATCH] - markus@cvs.openbsd.org 2001/04/23 21:57:07 [ssh-keygen.1 ssh-keygen.c] allow public key for -e, too --- ChangeLog | 8 +++++++- ssh-keygen.1 | 5 +++-- ssh-keygen.c | 19 ++++++++++--------- 3 files changed, 20 insertions(+), 12 deletions(-) diff --git a/ChangeLog b/ChangeLog index ed51225f3..c5570c8d6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +20010425 + - OpenBSD CVS Sync + - markus@cvs.openbsd.org 2001/04/23 21:57:07 + [ssh-keygen.1 ssh-keygen.c] + allow public key for -e, too + 20010424 - OpenBSD CVS Sync - markus@cvs.openbsd.org 2001/04/22 23:58:36 @@ -5236,4 +5242,4 @@ - Wrote replacements for strlcpy and mkdtemp - Released 1.0pre1 -$Id: ChangeLog,v 1.1165 2001/04/24 00:03:58 mouring Exp $ +$Id: ChangeLog,v 1.1166 2001/04/24 16:56:58 mouring Exp $ diff --git a/ssh-keygen.1 b/ssh-keygen.1 index 613bc95d7..371fc5fe4 100644 --- a/ssh-keygen.1 +++ b/ssh-keygen.1 @@ -1,4 +1,4 @@ -.\" $OpenBSD: ssh-keygen.1,v 1.39 2001/04/22 23:58:36 markus Exp $ +.\" $OpenBSD: ssh-keygen.1,v 1.40 2001/04/23 21:57:07 markus Exp $ .\" .\" -*- nroff -*- .\" @@ -145,7 +145,8 @@ Requests changing the comment in the private and public key files. The program will prompt for the file containing the private keys, for passphrase if the key has one, and for the new comment. .It Fl e -This option will read a private OpenSSH key file and print the key in a +This option will read a private or public OpenSSH key file and +print the key in a .Sq SECSH Public Key File Format to stdout. This option allows exporting keys for use by several commercial diff --git a/ssh-keygen.c b/ssh-keygen.c index 5549376fd..8daa52833 100644 --- a/ssh-keygen.c +++ b/ssh-keygen.c @@ -12,7 +12,7 @@ */ #include "includes.h" -RCSID("$OpenBSD: ssh-keygen.c,v 1.58 2001/04/22 13:41:02 markus Exp $"); +RCSID("$OpenBSD: ssh-keygen.c,v 1.59 2001/04/23 21:57:07 markus Exp $"); #include #include @@ -136,7 +136,7 @@ try_load_pem_key(char *filename) void do_convert_to_ssh2(struct passwd *pw) { - Key *prv; + Key *k; int len; u_char *blob; struct stat st; @@ -147,20 +147,21 @@ do_convert_to_ssh2(struct passwd *pw) perror(identity_file); exit(1); } - prv = try_load_pem_key(identity_file); - if (prv == NULL) { - fprintf(stderr, "load failed\n"); - exit(1); + if ((k = key_load_public(identity_file, NULL)) == NULL) { + if ((k = try_load_pem_key(identity_file)) == NULL) { + fprintf(stderr, "load failed\n"); + exit(1); + } } - key_to_blob(prv, &blob, &len); + key_to_blob(k, &blob, &len); fprintf(stdout, "%s\n", SSH_COM_PUBLIC_BEGIN); fprintf(stdout, "Comment: \"%d-bit %s, converted from OpenSSH by %s@%s\"\n", - key_size(prv), key_type(prv), + key_size(k), key_type(k), pw->pw_name, hostname); dump_base64(stdout, blob, len); fprintf(stdout, "%s\n", SSH_COM_PUBLIC_END); - key_free(prv); + key_free(k); xfree(blob); exit(0); }