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

Diff for /src/usr.bin/ssh/authfd.c between version 1.58.2.2 and 1.59

version 1.58.2.2, 2004/03/04 18:18:15 version 1.59, 2003/04/08 20:21:28
Line 114 
Line 114 
 static int  static int
 ssh_request_reply(AuthenticationConnection *auth, Buffer *request, Buffer *reply)  ssh_request_reply(AuthenticationConnection *auth, Buffer *request, Buffer *reply)
 {  {
         int l;          int l, len;
         u_int len;  
         char buf[1024];          char buf[1024];
   
         /* Get the length of the message, and format it in the buffer. */          /* Get the length of the message, and format it in the buffer. */
Line 123 
Line 122 
         PUT_32BIT(buf, len);          PUT_32BIT(buf, len);
   
         /* Send the length and then the packet to the agent. */          /* Send the length and then the packet to the agent. */
         if (atomicio(vwrite, auth->fd, buf, 4) != 4 ||          if (atomicio(write, auth->fd, buf, 4) != 4 ||
             atomicio(vwrite, auth->fd, buffer_ptr(request),              atomicio(write, auth->fd, buffer_ptr(request),
             buffer_len(request)) != buffer_len(request)) {              buffer_len(request)) != buffer_len(request)) {
                 error("Error writing to authentication socket.");                  error("Error writing to authentication socket.");
                 return 0;                  return 0;
Line 148 
Line 147 
         /* Extract the length, and check it for sanity. */          /* Extract the length, and check it for sanity. */
         len = GET_32BIT(buf);          len = GET_32BIT(buf);
         if (len > 256 * 1024)          if (len > 256 * 1024)
                 fatal("Authentication response too long: %u", len);                  fatal("Authentication response too long: %d", len);
   
         /* Read the rest of the response in to the buffer. */          /* Read the rest of the response in to the buffer. */
         buffer_clear(reply);          buffer_clear(reply);
Line 293 
Line 292 
   
         /* Get the number of entries in the response and check it for sanity. */          /* Get the number of entries in the response and check it for sanity. */
         auth->howmany = buffer_get_int(&auth->identities);          auth->howmany = buffer_get_int(&auth->identities);
         if ((u_int)auth->howmany > 1024)          if (auth->howmany > 1024)
                 fatal("Too many identities in authentication reply: %d",                  fatal("Too many identities in authentication reply: %d",
                     auth->howmany);                      auth->howmany);
   
Line 590 
Line 589 
 }  }
   
 int  int
 ssh_update_card(AuthenticationConnection *auth, int add,  ssh_update_card(AuthenticationConnection *auth, int add, const char *reader_id, const char *pin)
     const char *reader_id, const char *pin, u_int life, u_int confirm)  
 {  {
         Buffer msg;          Buffer msg;
         int type, constrained = (life || confirm);          int type;
   
         if (add) {  
                 type = constrained ?  
                     SSH_AGENTC_ADD_SMARTCARD_KEY_CONSTRAINED :  
                     SSH_AGENTC_ADD_SMARTCARD_KEY;  
         } else  
                 type = SSH_AGENTC_REMOVE_SMARTCARD_KEY;  
   
         buffer_init(&msg);          buffer_init(&msg);
         buffer_put_char(&msg, type);          buffer_put_char(&msg, add ? SSH_AGENTC_ADD_SMARTCARD_KEY :
               SSH_AGENTC_REMOVE_SMARTCARD_KEY);
         buffer_put_cstring(&msg, reader_id);          buffer_put_cstring(&msg, reader_id);
         buffer_put_cstring(&msg, pin);          buffer_put_cstring(&msg, pin);
   
         if (constrained) {  
                 if (life != 0) {  
                         buffer_put_char(&msg, SSH_AGENT_CONSTRAIN_LIFETIME);  
                         buffer_put_int(&msg, life);  
                 }  
                 if (confirm != 0)  
                         buffer_put_char(&msg, SSH_AGENT_CONSTRAIN_CONFIRM);  
         }  
   
         if (ssh_request_reply(auth, &msg, &msg) == 0) {          if (ssh_request_reply(auth, &msg, &msg) == 0) {
                 buffer_free(&msg);                  buffer_free(&msg);
                 return 0;                  return 0;

Legend:
Removed from v.1.58.2.2  
changed lines
  Added in v.1.59