version 1.151, 2006/03/25 13:17:02 |
version 1.152, 2006/04/25 08:02:27 |
|
|
{ |
{ |
Key *private; |
Key *private; |
char prompt[300], *passphrase; |
char prompt[300], *passphrase; |
int quit, i; |
int perm_ok, quit, i; |
struct stat st; |
struct stat st; |
|
|
if (stat(filename, &st) < 0) { |
if (stat(filename, &st) < 0) { |
debug3("no such identity: %s", filename); |
debug3("no such identity: %s", filename); |
return NULL; |
return NULL; |
} |
} |
private = key_load_private_type(KEY_UNSPEC, filename, "", NULL); |
private = key_load_private_type(KEY_UNSPEC, filename, "", NULL, &perm_ok); |
|
if (!perm_ok) |
|
return NULL; |
if (private == NULL) { |
if (private == NULL) { |
if (options.batch_mode) |
if (options.batch_mode) |
return NULL; |
return NULL; |
|
|
for (i = 0; i < options.number_of_password_prompts; i++) { |
for (i = 0; i < options.number_of_password_prompts; i++) { |
passphrase = read_passphrase(prompt, 0); |
passphrase = read_passphrase(prompt, 0); |
if (strcmp(passphrase, "") != 0) { |
if (strcmp(passphrase, "") != 0) { |
private = key_load_private_type(KEY_UNSPEC, filename, |
private = key_load_private_type(KEY_UNSPEC, |
passphrase, NULL); |
filename, passphrase, NULL, NULL); |
quit = 0; |
quit = 0; |
} else { |
} else { |
debug2("no passphrase given, try next key"); |
debug2("no passphrase given, try next key"); |