[BACK]Return to sshconnect2.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / ssh

Diff for /src/usr.bin/ssh/sshconnect2.c between version 1.55 and 1.56

version 1.55, 2001/03/23 11:04:07 version 1.56, 2001/03/26 08:07:09
Line 901 
Line 901 
 {  {
         Key *private;          Key *private;
         char prompt[300], *passphrase;          char prompt[300], *passphrase;
         int success = 0, quit, i;          int 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_new(KEY_UNSPEC);          private = key_load_private_type(KEY_UNSPEC, filename, "", NULL);
         if (!load_private_key(filename, "", private, NULL)) {          if (private == NULL) {
                 if (options.batch_mode) {                  if (options.batch_mode)
                         key_free(private);  
                         return NULL;                          return NULL;
                 }  
                 snprintf(prompt, sizeof prompt,                  snprintf(prompt, sizeof prompt,
                      "Enter passphrase for key '%.100s': ", filename);                       "Enter passphrase for key '%.100s': ", filename);
                 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) {
                                 success = load_private_key(filename,                                  private = key_load_private_type(KEY_UNSPEC, filename,
                                     passphrase, private, NULL);                                      passphrase, NULL);
                                 quit = 0;                                  quit = 0;
                         } else {                          } else {
                                 debug2("no passphrase given, try next key");                                  debug2("no passphrase given, try next key");
Line 928 
Line 926 
                         }                          }
                         memset(passphrase, 0, strlen(passphrase));                          memset(passphrase, 0, strlen(passphrase));
                         xfree(passphrase);                          xfree(passphrase);
                         if (success || quit)                          if (private != NULL || quit)
                                 break;                                  break;
                         debug2("bad passphrase given, try again...");                          debug2("bad passphrase given, try again...");
                 }  
                 if (!success) {  
                         key_free(private);  
                         return NULL;  
                 }                  }
         }          }
         return private;          return private;

Legend:
Removed from v.1.55  
changed lines
  Added in v.1.56