freebsd-skq/eBones/krb/save_credentials.c
csgr 105186eeee Initial import of eBones.
(Including all changes for FreeBSD - importing the original eBones distribution
would be too complex at this stage, since I don't have access to Piero's 
CVS.)
(If you want to include eBones in your system, don't forget to include
MAKE_EBONES in /etc/make.conf.)
(This stuff is now also suppable from braae.ru.ac.za.)

Bones originally from MIT SIPB.
Original port to FreeBSD 1.x  by Piero Serini.
Moved to FreeBSD 2.0 by Doug Rabson and Geoff Rehmet.
Nice bug fixes from Doug Rabson.
1994-09-30 14:50:09 +00:00

54 lines
1.8 KiB
C

/*
* Copyright 1985, 1986, 1987, 1988 by the Massachusetts Institute
* of Technology.
* For copying and distribution information, please see the file
* <Copyright.MIT>.
*
* from: save_credentials.c,v 4.9 89/05/31 17:45:43 jtkohl Exp $
* $Id: save_credentials.c,v 1.2 1994/07/19 19:26:19 g89r4222 Exp $
*/
#ifndef lint
static char *rcsid =
"$Id: save_credentials.c,v 1.2 1994/07/19 19:26:19 g89r4222 Exp $";
#endif /* lint */
#include <stdio.h>
#include <krb.h>
/*
* This routine takes a ticket and associated info and calls
* tf_save_cred() to store them in the ticket cache. The peer
* routine for extracting a ticket and associated info from the
* ticket cache is krb_get_cred(). When changes are made to
* this routine, the corresponding changes should be made
* in krb_get_cred() as well.
*
* Returns KSUCCESS if all goes well, otherwise an error returned
* by the tf_init() or tf_save_cred() routines.
*/
save_credentials(service, instance, realm, session, lifetime, kvno,
ticket, issue_date)
char *service; /* Service name */
char *instance; /* Instance */
char *realm; /* Auth domain */
C_Block session; /* Session key */
int lifetime; /* Lifetime */
int kvno; /* Key version number */
KTEXT ticket; /* The ticket itself */
long issue_date; /* The issue time */
{
int tf_status; /* return values of the tf_util calls */
/* Open and lock the ticket file for writing */
if ((tf_status = tf_init(TKT_FILE, W_TKT_FIL)) != KSUCCESS)
return(tf_status);
/* Save credentials by appending to the ticket file */
tf_status = tf_save_cred(service, instance, realm, session,
lifetime, kvno, ticket, issue_date);
(void) tf_close();
return (tf_status);
}