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

Diff for /src/usr.bin/ssh/ssh.c between version 1.130 and 1.131

version 1.130, 2001/07/25 14:35:18 version 1.131, 2001/07/27 14:50:45
Line 1129 
Line 1129 
 {  {
         char *filename;          char *filename;
         Key *public;          Key *public;
         int i;          int i = 0;
   
         for (i = 0; i < options.num_identity_files; i++) {  
                 filename = tilde_expand_filename(options.identity_files[i],  
                     original_real_uid);  
                 public = key_load_public(filename, NULL);  
                 debug("identity file %s type %d", filename,  
                     public ? public->type : -1);  
                 xfree(options.identity_files[i]);  
                 options.identity_files[i] = filename;  
                 options.identity_keys[i] = public;  
         }  
 #ifdef SMARTCARD  #ifdef SMARTCARD
         if (sc_reader_num != -1 &&          if (sc_reader_num != -1 &&
             options.num_identity_files + 1 < SSH_MAX_IDENTITY_FILES &&              options.num_identity_files + 1 < SSH_MAX_IDENTITY_FILES &&
             (public = sc_get_key(sc_reader_num)) != NULL ) {              (public = sc_get_key(sc_reader_num)) != NULL ) {
                 Key *new;                  Key *new;
   
                   if (options.num_identity_files + 2 > SSH_MAX_IDENTITY_FILES)
                           options.num_identity_files = SSH_MAX_IDENTITY_FILES - 2;
                   memmove(&options.identity_files[2], &options.identity_files[0],
                       sizeof(char *) * options.num_identity_files);
                   options.num_identity_files += 2;
                   i = 2;
   
                 /* XXX ssh1 vs ssh2 */                  /* XXX ssh1 vs ssh2 */
                 new = key_new(KEY_RSA);                  new = key_new(KEY_RSA);
                 new->flags = KEY_FLAG_EXT;                  new->flags = KEY_FLAG_EXT;
                 BN_copy(new->rsa->n, public->rsa->n);                  BN_copy(new->rsa->n, public->rsa->n);
                 BN_copy(new->rsa->e, public->rsa->e);                  BN_copy(new->rsa->e, public->rsa->e);
                 RSA_set_method(new->rsa, sc_get_engine());                  RSA_set_method(new->rsa, sc_get_engine());
                 i = options.num_identity_files++;                  options.identity_keys[0] = new;
                 options.identity_keys[i] = new;                  options.identity_files[0] = xstrdup("smartcard rsa key");;
                 options.identity_files[i] = xstrdup("smartcard rsa key");;  
   
                 new = key_new(KEY_RSA1);                  new = key_new(KEY_RSA1);
                 new->flags = KEY_FLAG_EXT;                  new->flags = KEY_FLAG_EXT;
                 BN_copy(new->rsa->n, public->rsa->n);                  BN_copy(new->rsa->n, public->rsa->n);
                 BN_copy(new->rsa->e, public->rsa->e);                  BN_copy(new->rsa->e, public->rsa->e);
                 RSA_set_method(new->rsa, sc_get_engine());                  RSA_set_method(new->rsa, sc_get_engine());
                 i = options.num_identity_files++;                  options.identity_keys[1] = new;
                 options.identity_keys[i] = new;                  options.identity_files[1] = xstrdup("smartcard rsa1 key");
                 options.identity_files[i] = xstrdup("smartcard rsa1 key");;  
   
                 key_free(public);                  key_free(public);
         }          }
 #endif  #endif
           for (; i < options.num_identity_files; i++) {
                   filename = tilde_expand_filename(options.identity_files[i],
                       original_real_uid);
                   public = key_load_public(filename, NULL);
                   debug("identity file %s type %d", filename,
                       public ? public->type : -1);
                   xfree(options.identity_files[i]);
                   options.identity_files[i] = filename;
                   options.identity_keys[i] = public;
           }
 }  }

Legend:
Removed from v.1.130  
changed lines
  Added in v.1.131