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

Diff for /src/usr.bin/ssh/ssh-add.c between version 1.72.2.2 and 1.73

version 1.72.2.2, 2006/10/06 03:19:33 version 1.73, 2005/09/13 23:40:07
Line 1 
Line 1 
 /* $OpenBSD$ */  
 /*  /*
  * Author: Tatu Ylonen <ylo@cs.hut.fi>   * Author: Tatu Ylonen <ylo@cs.hut.fi>
  * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland   * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
Line 35 
Line 34 
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.   * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */   */
   
 #include <sys/types.h>  #include "includes.h"
 #include <sys/stat.h>  RCSID("$OpenBSD$");
 #include <sys/param.h>  
   
 #include <openssl/evp.h>  #include <openssl/evp.h>
   
 #include <fcntl.h>  
 #include <pwd.h>  
 #include <stdio.h>  
 #include <stdlib.h>  
 #include <string.h>  
 #include <unistd.h>  
   
 #include "xmalloc.h"  
 #include "ssh.h"  #include "ssh.h"
 #include "rsa.h"  #include "rsa.h"
 #include "log.h"  #include "log.h"
   #include "xmalloc.h"
 #include "key.h"  #include "key.h"
 #include "buffer.h"  
 #include "authfd.h"  #include "authfd.h"
 #include "authfile.h"  #include "authfile.h"
 #include "pathnames.h"  #include "pathnames.h"
Line 134 
Line 124 
 static int  static int
 add_file(AuthenticationConnection *ac, const char *filename)  add_file(AuthenticationConnection *ac, const char *filename)
 {  {
           struct stat st;
         Key *private;          Key *private;
         char *comment = NULL;          char *comment = NULL;
         char msg[1024];          char msg[1024];
         int fd, perms_ok, ret = -1;          int ret = -1;
   
         if ((fd = open(filename, O_RDONLY)) < 0) {          if (stat(filename, &st) < 0) {
                 perror(filename);                  perror(filename);
                 return -1;                  return -1;
         }          }
   
         /*  
          * Since we'll try to load a keyfile multiple times, permission errors  
          * will occur multiple times, so check perms first and bail if wrong.  
          */  
         perms_ok = key_perm_ok(fd, filename);  
         close(fd);  
         if (!perms_ok)  
                 return -1;  
   
         /* At first, try empty passphrase */          /* At first, try empty passphrase */
         private = key_load_private(filename, "", &comment);          private = key_load_private(filename, "", &comment);
         if (comment == NULL)          if (comment == NULL)
Line 306 
Line 287 
 static void  static void
 usage(void)  usage(void)
 {  {
         fprintf(stderr, "Usage: %s [options] [file ...]\n", __progname);          fprintf(stderr, "Usage: %s [options]\n", __progname);
         fprintf(stderr, "Options:\n");          fprintf(stderr, "Options:\n");
         fprintf(stderr, "  -l          List fingerprints of all identities.\n");          fprintf(stderr, "  -l          List fingerprints of all identities.\n");
         fprintf(stderr, "  -L          List public key parameters of all identities.\n");          fprintf(stderr, "  -L          List public key parameters of all identities.\n");
Line 339 
Line 320 
         /* At first, get a connection to the authentication agent. */          /* At first, get a connection to the authentication agent. */
         ac = ssh_get_authentication_connection();          ac = ssh_get_authentication_connection();
         if (ac == NULL) {          if (ac == NULL) {
                 fprintf(stderr,                  fprintf(stderr, "Could not open a connection to your authentication agent.\n");
                     "Could not open a connection to your authentication agent.\n");  
                 exit(2);                  exit(2);
         }          }
         while ((ch = getopt(argc, argv, "lLcdDxXe:s:t:")) != -1) {          while ((ch = getopt(argc, argv, "lLcdDxXe:s:t:")) != -1) {
Line 350 
Line 330 
                         if (list_identities(ac, ch == 'l' ? 1 : 0) == -1)                          if (list_identities(ac, ch == 'l' ? 1 : 0) == -1)
                                 ret = 1;                                  ret = 1;
                         goto done;                          goto done;
                           break;
                 case 'x':                  case 'x':
                 case 'X':                  case 'X':
                         if (lock_agent(ac, ch == 'x' ? 1 : 0) == -1)                          if (lock_agent(ac, ch == 'x' ? 1 : 0) == -1)
                                 ret = 1;                                  ret = 1;
                         goto done;                          goto done;
                           break;
                 case 'c':                  case 'c':
                         confirm = 1;                          confirm = 1;
                         break;                          break;
Line 365 
Line 347 
                         if (delete_all(ac) == -1)                          if (delete_all(ac) == -1)
                                 ret = 1;                                  ret = 1;
                         goto done;                          goto done;
                           break;
                 case 's':                  case 's':
                         sc_reader_id = optarg;                          sc_reader_id = optarg;
                         break;                          break;

Legend:
Removed from v.1.72.2.2  
changed lines
  Added in v.1.73