- markus@cvs.openbsd.org 2001/05/25 14:37:32
     [ssh-keygen.c]
     use -P for -e and -y, too.
diff --git a/ssh-keygen.c b/ssh-keygen.c
index 166ec62..d1b2a58 100644
--- a/ssh-keygen.c
+++ b/ssh-keygen.c
@@ -12,7 +12,7 @@
  */
 
 #include "includes.h"
-RCSID("$OpenBSD: ssh-keygen.c,v 1.60 2001/04/23 22:14:13 markus Exp $");
+RCSID("$OpenBSD: ssh-keygen.c,v 1.61 2001/05/25 14:37:32 markus Exp $");
 
 #include <openssl/evp.h>
 #include <openssl/pem.h>
@@ -113,14 +113,17 @@
 }
 
 Key *
-try_load_pem_key(char *filename)
+load_identity(char *filename)
 {
 	char *pass;
 	Key *prv;
 
 	prv = key_load_private(filename, "", NULL);
 	if (prv == NULL) {
-		pass = read_passphrase("Enter passphrase: ", 1);
+		if (identity_passphrase)
+			pass = xstrdup(identity_passphrase);
+		else
+			pass = read_passphrase("Enter passphrase: ", 1);
 		prv = key_load_private(filename, pass, NULL);
 		memset(pass, 0, strlen(pass));
 		xfree(pass);
@@ -148,7 +151,7 @@
 		exit(1);
 	}
 	if ((k = key_load_public(identity_file, NULL)) == NULL) {
-		if ((k = try_load_pem_key(identity_file)) == NULL) {
+		if ((k = load_identity(identity_file)) == NULL) {
 			fprintf(stderr, "load failed\n");
 			exit(1);
 		}
@@ -348,7 +351,7 @@
 		perror(identity_file);
 		exit(1);
 	}
-	prv = try_load_pem_key(identity_file);
+	prv = load_identity(identity_file);
 	if (prv == NULL) {
 		fprintf(stderr, "load failed\n");
 		exit(1);