|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1989 The Regents of the University of California. ! 3: * All rights reserved. ! 4: * ! 5: * Redistribution and use in source and binary forms are permitted ! 6: * provided that: (1) source distributions retain this entire copyright ! 7: * notice and comment, and (2) distributions including binaries display ! 8: * the following acknowledgement: ``This product includes software ! 9: * developed by the University of California, Berkeley and its contributors'' ! 10: * in the documentation or other materials provided with the distribution ! 11: * and in all advertising materials mentioning features or use of this ! 12: * software. Neither the name of the University nor the names of its ! 13: * contributors may be used to endorse or promote products derived ! 14: * from this software without specific prior written permission. ! 15: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR ! 16: * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED ! 17: * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ! 18: */ ! 19: ! 20: #ifndef lint ! 21: static char sccsid[] = "@(#)krcmd.c 1.5 (Berkeley) 6/1/90"; ! 22: #endif /* not lint */ ! 23: ! 24: /* ! 25: * $Source: /mit/kerberos/ucb/mit/kcmd/RCS/krcmd.c,v $ ! 26: * $Header: /mit/kerberos/ucb/mit/kcmd/RCS/krcmd.c,v 5.1 ! 27: * 89/07/25 15:38:44 kfall Exp Locker: kfall $ ! 28: * static char *rcsid_kcmd_c = ! 29: * "$Header: /mit/kerberos/ucb/mit/kcmd/RCS/krcmd.c,v 5.1 89/07/25 15:38:44 ! 30: * kfall Exp Locker: kfall $"; ! 31: */ ! 32: ! 33: #include <sys/types.h> ! 34: #include <stdio.h> ! 35: #include <kerberosIV/des.h> ! 36: #include <kerberosIV/krb.h> ! 37: ! 38: #define SERVICE_NAME "rcmd" ! 39: ! 40: /* ! 41: * krcmd: simplified version of Athena's "kcmd" ! 42: * returns a socket attached to the destination, -1 or krb error on error ! 43: * if fd2p is non-NULL, another socket is filled in for it ! 44: */ ! 45: ! 46: int ! 47: krcmd(ahost, rport, remuser, cmd, fd2p, realm) ! 48: char **ahost; ! 49: u_short rport; ! 50: char *remuser, *cmd; ! 51: int *fd2p; ! 52: char *realm; ! 53: { ! 54: int sock = -1, err = 0; ! 55: KTEXT_ST ticket; ! 56: long authopts = 0L; ! 57: ! 58: err = kcmd( ! 59: &sock, ! 60: ahost, ! 61: rport, ! 62: NULL, /* locuser not used */ ! 63: remuser, ! 64: cmd, ! 65: fd2p, ! 66: &ticket, ! 67: SERVICE_NAME, ! 68: realm, ! 69: (CREDENTIALS *) NULL, /* credentials not used */ ! 70: (bit_64 *) NULL, /* key schedule not used */ ! 71: (MSG_DAT *) NULL, /* MSG_DAT not used */ ! 72: (struct sockaddr_in *) NULL, /* local addr not used */ ! 73: (struct sockaddr_in *) NULL, /* foreign addr not used */ ! 74: authopts ! 75: ); ! 76: ! 77: if (err > KSUCCESS && err < MAX_KRB_ERRORS) { ! 78: fprintf(stderr, "krcmd: %s\n", krb_err_txt[err]); ! 79: return(-1); ! 80: } ! 81: if (err < 0) ! 82: return(-1); ! 83: return(sock); ! 84: } ! 85: ! 86: #include <sys/socket.h> ! 87: #include <netinet/in.h> ! 88: ! 89: int ! 90: krcmd_mutual(ahost, rport, remuser, cmd, fd2p, realm, cred, sched) ! 91: char **ahost; ! 92: u_short rport; ! 93: char *remuser, *cmd; ! 94: int *fd2p; ! 95: char *realm; ! 96: CREDENTIALS *cred; ! 97: Key_schedule sched; ! 98: { ! 99: int sock, err; ! 100: KTEXT_ST ticket; ! 101: MSG_DAT msg_dat; ! 102: struct sockaddr_in laddr, faddr; ! 103: long authopts = KOPT_DO_MUTUAL; ! 104: ! 105: err = kcmd( ! 106: &sock, ! 107: ahost, ! 108: rport, ! 109: NULL, /* locuser not used */ ! 110: remuser, ! 111: cmd, ! 112: fd2p, ! 113: &ticket, ! 114: SERVICE_NAME, ! 115: realm, ! 116: cred, /* filled in */ ! 117: sched, /* filled in */ ! 118: &msg_dat, /* filled in */ ! 119: &laddr, /* filled in */ ! 120: &faddr, /* filled in */ ! 121: authopts ! 122: ); ! 123: ! 124: if (err > KSUCCESS && err < MAX_KRB_ERRORS) { ! 125: fprintf(stderr, "krcmd_mutual: %s\n", krb_err_txt[err]); ! 126: return(-1); ! 127: } ! 128: ! 129: if (err < 0) ! 130: return (-1); ! 131: return(sock); ! 132: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.