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

Diff for /src/usr.bin/ssh/kex.c between version 1.106 and 1.107

version 1.106, 2015/04/17 13:25:52 version 1.107, 2015/07/29 04:43:06
Line 427 
Line 427 
         free(kex->session_id);          free(kex->session_id);
         free(kex->client_version_string);          free(kex->client_version_string);
         free(kex->server_version_string);          free(kex->server_version_string);
           free(kex->failed_choice);
         free(kex);          free(kex);
 }  }
   
Line 605 
Line 606 
                 nmac  = ctos ? PROPOSAL_MAC_ALGS_CTOS  : PROPOSAL_MAC_ALGS_STOC;                  nmac  = ctos ? PROPOSAL_MAC_ALGS_CTOS  : PROPOSAL_MAC_ALGS_STOC;
                 ncomp = ctos ? PROPOSAL_COMP_ALGS_CTOS : PROPOSAL_COMP_ALGS_STOC;                  ncomp = ctos ? PROPOSAL_COMP_ALGS_CTOS : PROPOSAL_COMP_ALGS_STOC;
                 if ((r = choose_enc(&newkeys->enc, cprop[nenc],                  if ((r = choose_enc(&newkeys->enc, cprop[nenc],
                     sprop[nenc])) != 0)                      sprop[nenc])) != 0) {
                           kex->failed_choice = peer[nenc];
                           peer[nenc] = NULL;
                         goto out;                          goto out;
                   }
                 authlen = cipher_authlen(newkeys->enc.cipher);                  authlen = cipher_authlen(newkeys->enc.cipher);
                 /* ignore mac for authenticated encryption */                  /* ignore mac for authenticated encryption */
                 if (authlen == 0 &&                  if (authlen == 0 &&
                     (r = choose_mac(ssh, &newkeys->mac, cprop[nmac],                      (r = choose_mac(ssh, &newkeys->mac, cprop[nmac],
                     sprop[nmac])) != 0)                      sprop[nmac])) != 0) {
                           kex->failed_choice = peer[nmac];
                           peer[nmac] = NULL;
                         goto out;                          goto out;
                   }
                 if ((r = choose_comp(&newkeys->comp, cprop[ncomp],                  if ((r = choose_comp(&newkeys->comp, cprop[ncomp],
                     sprop[ncomp])) != 0)                      sprop[ncomp])) != 0) {
                           kex->failed_choice = peer[ncomp];
                           peer[ncomp] = NULL;
                         goto out;                          goto out;
                   }
                 debug("kex: %s %s %s %s",                  debug("kex: %s %s %s %s",
                     ctos ? "client->server" : "server->client",                      ctos ? "client->server" : "server->client",
                     newkeys->enc.name,                      newkeys->enc.name,
Line 623 
Line 633 
                     newkeys->comp.name);                      newkeys->comp.name);
         }          }
         if ((r = choose_kex(kex, cprop[PROPOSAL_KEX_ALGS],          if ((r = choose_kex(kex, cprop[PROPOSAL_KEX_ALGS],
             sprop[PROPOSAL_KEX_ALGS])) != 0 ||              sprop[PROPOSAL_KEX_ALGS])) != 0) {
             (r = choose_hostkeyalg(kex, cprop[PROPOSAL_SERVER_HOST_KEY_ALGS],                  kex->failed_choice = peer[PROPOSAL_KEX_ALGS];
             sprop[PROPOSAL_SERVER_HOST_KEY_ALGS])) != 0)                  peer[PROPOSAL_KEX_ALGS] = NULL;
                 goto out;                  goto out;
           }
           if ((r = choose_hostkeyalg(kex, cprop[PROPOSAL_SERVER_HOST_KEY_ALGS],
               sprop[PROPOSAL_SERVER_HOST_KEY_ALGS])) != 0) {
                   kex->failed_choice = cprop[PROPOSAL_SERVER_HOST_KEY_ALGS];
                   cprop[PROPOSAL_SERVER_HOST_KEY_ALGS] = NULL;
                   goto out;
           }
         need = dh_need = 0;          need = dh_need = 0;
         for (mode = 0; mode < MODE_MAX; mode++) {          for (mode = 0; mode < MODE_MAX; mode++) {
                 newkeys = kex->newkeys[mode];                  newkeys = kex->newkeys[mode];

Legend:
Removed from v.1.106  
changed lines
  Added in v.1.107