/[shishi]/inetutils/rsh/rsh.c
ViewVC logotype

Diff of /inetutils/rsh/rsh.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.5 by npo, Fri Sep 19 19:45:30 2003 UTC revision 1.6 by npo, Wed Sep 24 15:17:58 2003 UTC
# Line 422  main (int argc, char **argv) Line 422  main (int argc, char **argv)
422            int i;            int i;
423            char * term;            char * term;
424                        
425            term = xmalloc (strlen(args)+4);            term = (char *)xmalloc (strlen(args)+4);
426            strcpy (term, "-x ");            strcpy (term, "-x ");
427            strcat (term, args);            strcat (term, args);
428                        
# Line 441  main (int argc, char **argv) Line 441  main (int argc, char **argv)
441                for (i=0; i<4; i++)                for (i=0; i<4; i++)
442                  {                  {
443                    ivtab[i]->ivlen = keylen;                    ivtab[i]->ivlen = keylen;
444                
445                    switch (keytype)                    switch (keytype)
446                      {                      {
447                      case SHISHI_DES_CBC_CRC:                      case SHISHI_DES_CBC_CRC:
# Line 452  main (int argc, char **argv) Line 452  main (int argc, char **argv)
452                        ivtab[i]->keyusage = SHISHI_KEYUSAGE_KCMD_DES;                        ivtab[i]->keyusage = SHISHI_KEYUSAGE_KCMD_DES;
453                        ivtab[i]->iv = malloc (ivtab[i]->ivlen);                        ivtab[i]->iv = malloc (ivtab[i]->ivlen);
454                        memset (ivtab[i]->iv, 2*i + 1*(i<2) - 4*(i>=2), ivtab[i]->ivlen);                        memset (ivtab[i]->iv, 2*i + 1*(i<2) - 4*(i>=2), ivtab[i]->ivlen);
455                          ivtab[i]->ctx = shishi_crypto (h, enckey, ivtab[i]->keyusage, shishi_key_type (enckey),
456                                                         ivtab[i]->iv, ivtab[i]->ivlen);
457                          break;
458                        case SHISHI_ARCFOUR_HMAC:
459                        case SHISHI_ARCFOUR_HMAC_EXP:
460                          ivtab[i]->keyusage = SHISHI_KEYUSAGE_KCMD_DES + 2 + 4*i;
461                          ivtab[i]->ctx = shishi_crypto (h, enckey, ivtab[i]->keyusage, shishi_key_type (enckey),
462                                                         NULL, 0);
463                        break;                        break;
464                      default :                        default :  
465                        ivtab[i]->keyusage = SHISHI_KEYUSAGE_KCMD_DES + 2 + 4*i;                        ivtab[i]->keyusage = SHISHI_KEYUSAGE_KCMD_DES + 2 + 4*i;
466                        ivtab[i]->iv = malloc (ivtab[i]->ivlen);                        ivtab[i]->iv = malloc (ivtab[i]->ivlen);
467                        memset (ivtab[i]->iv, 0, ivtab[i]->ivlen);                        memset (ivtab[i]->iv, 0, ivtab[i]->ivlen);
468                      }                                      ivtab[i]->ctx = shishi_crypto (h, enckey, ivtab[i]->keyusage, shishi_key_type (enckey),
469                                                         ivtab[i]->iv, ivtab[i]->ivlen);
470                        }
471                  }                  }
472              }              }
473            free (term);            free (term);
# Line 554  main (int argc, char **argv) Line 564  main (int argc, char **argv)
564    
565    talk (nflag, &osigs, pid, rem);    talk (nflag, &osigs, pid, rem);
566    
567    
568    #ifdef SHISHI
569      if (use_kerberos)
570        {
571          int i;
572          
573          shishi_done (h);
574    #ifdef ENCRYPTION
575          if (doencrypt)
576            {
577              shishi_key_done (enckey);
578              for (i = 0; i < 4; i++)
579                {
580                  shishi_crypto_close (ivtab[i]->ctx);
581                  free (ivtab[i]->iv);
582                }    
583            }
584    #endif
585        }
586    #endif
587    
588    if (!nflag)    if (!nflag)
589      kill (pid, SIGKILL);      kill (pid, SIGKILL);
590    return 0;    return 0;

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.6

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26