/[inetutils]/inetutils/libinetutils/krcmd.c
ViewVC logotype

Diff of /inetutils/libinetutils/krcmd.c

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

revision 1.3 by alainm, Thu Jul 6 04:21:07 2000 UTC revision 1.4 by gray, Tue Oct 11 11:18:10 2005 UTC
# Line 28  Line 28 
28   */   */
29    
30  #ifndef lint  #ifndef lint
31  static char sccsid[] = "@(#)krcmd.c     8.1 (Berkeley) 6/6/93";  static char     sccsid[] = "@(#)krcmd.c 8.1 (Berkeley) 6/6/93";
32  #endif /* not lint */  #endif /* not lint */
33    
34  /*  /*
# Line 44  static char sccsid[] = "@(#)krcmd.c    8.1 Line 44  static char sccsid[] = "@(#)krcmd.c    8.1
44  #include <config.h>  #include <config.h>
45  #endif  #endif
46    
47  #ifdef KERBEROS  #if defined(KERBEROS) || defined(SHISHI)
48  #include <sys/types.h>  #include <sys/types.h>
49  #ifdef ENCRYPTION  #ifdef ENCRYPTION
50  #include <sys/socket.h>  #include <sys/socket.h>
# Line 52  static char sccsid[] = "@(#)krcmd.c    8.1 Line 52  static char sccsid[] = "@(#)krcmd.c    8.1
52    
53  #include <netinet/in.h>  #include <netinet/in.h>
54    
55    #ifdef KERBEROS
56  #include <kerberosIV/des.h>  #include <kerberosIV/des.h>
57  #include <kerberosIV/krb.h>  #include <kerberosIV/krb.h>
58    #elif defined(SHISHI)
59    #include <shishi.h>
60    #include "shishi_def.h"
61    #endif
62    
63  #include <stdio.h>  #include <stdio.h>
64    
65  #define SERVICE_NAME    "rcmd"  #define SERVICE_NAME    "rcmd"
66    
67  int     kcmd __P((int *, char **, u_short, char *, char *, char *, int *,  #if defined(SHISHI)
68              KTEXT, char *, char *, CREDENTIALS *, Key_schedule, MSG_DAT *,  int kcmd        __P ((Shishi **, int *, char **, u_short, char *, char **,
69              struct sockaddr_in *, struct sockaddr_in *, long));                        char *, int *, char *, char *, Shishi_key **,
70                          struct sockaddr_in *, struct sockaddr_in *, long));
71    #else
72    int kcmd        __P ((int *, char **, u_short, char *, char *, char *, int *,
73                          KTEXT, char *, char *, CREDENTIALS *, Key_schedule,
74                          MSG_DAT *,
75                          struct sockaddr_in *, struct sockaddr_in *, long));
76    #endif
77    
78  /*  /*
79   * krcmd: simplified version of Athena's "kcmd"   * krcmd: simplified version of Athena's "kcmd"
# Line 69  int    kcmd __P((int *, char **, u_short, c Line 81  int    kcmd __P((int *, char **, u_short, c
81   *      if fd2p is non-NULL, another socket is filled in for it   *      if fd2p is non-NULL, another socket is filled in for it
82   */   */
83    
84    #if defined(SHISHI)
85    int
86    krcmd (Shishi ** h, char **ahost, u_short rport, char **remuser, char *cmd,
87           int *fd2p, char *realm)
88    {
89      int             sock = -1, err = 0;
90      long            authopts = 0L;
91    
92      err = kcmd (h, &sock, ahost, rport, NULL,     /* locuser not used */
93                  remuser, cmd, fd2p, SERVICE_NAME, realm,
94                  NULL,     /* key schedule not used */
95                  NULL,     /* local addr not used */
96                  NULL,     /* foreign addr not used */
97                  authopts);
98    
99      if (err > SHISHI_OK)
100        {
101          fprintf (stderr, "krcmd: %s\n", "error");
102          return (-1);
103        }
104      if (err < 0)
105        return (-1);
106      return (sock);
107    }
108    
109    #elif defined(KERBEROS)
110  int  int
111  krcmd(ahost, rport, remuser, cmd, fd2p, realm)  krcmd (char **ahost, u_short rport, char *remuser, char *cmd, int *fd2p,
112          char    **ahost;         char *realm)
         u_short rport;  
         char    *remuser, *cmd;  
         int     *fd2p;  
         char    *realm;  
113  {  {
114          int             sock = -1, err = 0;    int             sock = -1, err = 0;
115          KTEXT_ST        ticket;    KTEXT_ST        ticket;
116          long            authopts = 0L;    long            authopts = 0L;
117    
118          err = kcmd(    err = kcmd (&sock, ahost, rport, NULL,        /* locuser not used */
119                  &sock,                remuser, cmd, fd2p, &ticket, SERVICE_NAME, realm,
120                  ahost,                NULL,     /* credentials not used */
121                  rport,                (bit_64 *) NULL,  /* key schedule not used */
122                  NULL,   /* locuser not used */                (MSG_DAT *) NULL, /* MSG_DAT not used */
123                  remuser,                (struct sockaddr_in *) NULL,      /* local addr not used */
124                  cmd,                (struct sockaddr_in *) NULL,      /* foreign addr not used */
125                  fd2p,                authopts);
126                  &ticket,  
127                  SERVICE_NAME,    if (err > KSUCCESS && err < MAX_KRB_ERRORS)
128                  realm,      {
129                  (CREDENTIALS *)  NULL,          /* credentials not used */        fprintf (stderr, "krcmd: %s\n", krb_err_txt[err]);
130                  (bit_64 *) NULL,                /* key schedule not used */        return (-1);
131                  (MSG_DAT *) NULL,               /* MSG_DAT not used */      }
132                  (struct sockaddr_in *) NULL,    /* local addr not used */    if (err < 0)
133                  (struct sockaddr_in *) NULL,    /* foreign addr not used */      return (-1);
134                  authopts    return (sock);
         );  
   
         if (err > KSUCCESS && err < MAX_KRB_ERRORS) {  
                 fprintf(stderr, "krcmd: %s\n", krb_err_txt[err]);  
                 return(-1);  
         }  
         if (err < 0)  
                 return(-1);  
         return(sock);  
135  }  }
136    #endif
137    
138  #ifdef ENCRYPTION  #ifdef ENCRYPTION
139    
140    #if defined(SHISHI)
141    int
142    krcmd_mutual (Shishi ** h, char **ahost, u_short rport, char **remuser,
143                  char *cmd, int *fd2p, char *realm, Shishi_key ** key)
144    {
145      int             sock = -1, err = 0;
146      struct sockaddr_in laddr, faddr;
147      long            authopts = SHISHI_APOPTIONS_MUTUAL_REQUIRED;
148    
149      err = kcmd (h, &sock, ahost, rport, NULL,     /* locuser not used */
150                  remuser, cmd, fd2p, SERVICE_NAME, realm,
151                  key,              /* filled in */
152                  &laddr,           /* filled in */
153                  &faddr,           /* filled in */
154                  authopts);
155    
156      if (err > SHISHI_OK)
157        {
158          fprintf (stderr, "krcmd_mutual: %s\n", "error");
159          return (-1);
160        }
161    
162      if (err < 0)
163        return (-1);
164      return (sock);
165    }
166    
167    #elif defined(KERBEROS)
168  int  int
169  krcmd_mutual(ahost, rport, remuser, cmd, fd2p, realm, cred, sched)  krcmd_mutual (char **ahost, u_short rport, char *remuser, char *cmd,
170          char            **ahost;                int *fd2p, char *realm, CREDENTIALS * cred, Key_schedule sched)
         u_short         rport;  
         char            *remuser, *cmd;  
         int             *fd2p;  
         char            *realm;  
         CREDENTIALS     *cred;  
         Key_schedule    sched;  
171  {  {
172          int             sock, err;    int             sock, err;
173          KTEXT_ST        ticket;    KTEXT_ST        ticket;
174          MSG_DAT         msg_dat;    MSG_DAT         msg_dat;
175          struct sockaddr_in      laddr, faddr;    struct sockaddr_in laddr, faddr;
176          long authopts = KOPT_DO_MUTUAL;    long            authopts = KOPT_DO_MUTUAL;
177    
178          err = kcmd(    err = kcmd (&sock, ahost, rport, NULL,        /* locuser not used */
179                  &sock,                remuser, cmd, fd2p, &ticket, SERVICE_NAME, realm,
180                  ahost,                cred,             /* filled in */
181                  rport,                sched,            /* filled in */
182                  NULL,   /* locuser not used */                &msg_dat,         /* filled in */
183                  remuser,                &laddr,           /* filled in */
184                  cmd,                &faddr,           /* filled in */
185                  fd2p,                authopts);
186                  &ticket,  
187                  SERVICE_NAME,    if (err > KSUCCESS && err < MAX_KRB_ERRORS)
188                  realm,      {
189                  cred,           /* filled in */        fprintf (stderr, "krcmd_mutual: %s\n", krb_err_txt[err]);
190                  sched,          /* filled in */        return (-1);
191                  &msg_dat,       /* filled in */      }
192                  &laddr,         /* filled in */  
193                  &faddr,         /* filled in */    if (err < 0)
194                  authopts      return (-1);
195          );    return (sock);
   
         if (err > KSUCCESS && err < MAX_KRB_ERRORS) {  
                 fprintf(stderr, "krcmd_mutual: %s\n", krb_err_txt[err]);  
                 return(-1);  
         }  
   
         if (err < 0)  
                 return (-1);  
         return(sock);  
196  }  }
197  #endif /* CRYPT */  #endif /* CRYPT */
198  #endif /* KERBEROS */  #endif /* KERBEROS */
199    #endif /* KERBEROS */

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4

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