summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--usr.bin/ssh/ssh-keygen.15
-rw-r--r--usr.bin/ssh/ssh-keygen.c19
2 files changed, 13 insertions, 11 deletions
diff --git a/usr.bin/ssh/ssh-keygen.1 b/usr.bin/ssh/ssh-keygen.1
index 613bc95d72a..371fc5fe471 100644
--- a/usr.bin/ssh/ssh-keygen.1
+++ b/usr.bin/ssh/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/usr.bin/ssh/ssh-keygen.c b/usr.bin/ssh/ssh-keygen.c
index 60d9edb4022..c2d0f9ad965 100644
--- a/usr.bin/ssh/ssh-keygen.c
+++ b/usr.bin/ssh/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 <openssl/evp.h>
#include <openssl/pem.h>
@@ -132,7 +132,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;
@@ -143,20 +143,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);
}