xref: /original-bsd/old/athena/ksrvtgt/ksrvtgt.c (revision 28ec459a)
1ddf6a1acSkfall /*
2ddf6a1acSkfall  * $Source: /mit/kerberos/src/kuser/RCS/ksrvtgt.c,v $
3ddf6a1acSkfall  * $Author: steiner $
4ddf6a1acSkfall  *
5ddf6a1acSkfall  * Copyright 1988 by the Massachusetts Institute of Technology.
6ddf6a1acSkfall  *
7ddf6a1acSkfall  * For copying and distribution information, please see the file
8ddf6a1acSkfall  * <mit-copyright.h>.
9ddf6a1acSkfall  *
10ddf6a1acSkfall  * Get a ticket-granting-ticket given a service key file (srvtab)
11ddf6a1acSkfall  * The lifetime is the shortest allowed [1 five-minute interval]
12ddf6a1acSkfall  *
13ddf6a1acSkfall  */
14ddf6a1acSkfall 
15ddf6a1acSkfall #include <stdio.h>
16*28ec459aSkfall #include <kerberos/krb.h>
17*28ec459aSkfall #include <kerberos/conf.h>
18ddf6a1acSkfall 
19ddf6a1acSkfall const char rcsid[] =
20ddf6a1acSkfall     "$Header: ksrvtgt.c,v 4.2 89/01/13 18:05:19 steiner Exp $";
21ddf6a1acSkfall 
22*28ec459aSkfall char	realmbuf[REALM_SZ];
23*28ec459aSkfall static	char *realm = NULL;
24*28ec459aSkfall static	char *srvtab = NULL;
25*28ec459aSkfall static	char srvtabfile[] = KEYFILE;
26ddf6a1acSkfall 
main(argc,argv)27ddf6a1acSkfall main(argc,argv)
28ddf6a1acSkfall 	int argc;
29ddf6a1acSkfall 	char **argv;
30ddf6a1acSkfall {
31ddf6a1acSkfall 	register int code;
32ddf6a1acSkfall 	if (argc < 3 || argc > 5) {
33ddf6a1acSkfall 		fprintf(stderr, "Usage: %s name instance [[realm] srvtab]\n",
34ddf6a1acSkfall 		argv[0]);
35ddf6a1acSkfall 		exit(1);
36ddf6a1acSkfall 	}
37ddf6a1acSkfall 	if (argc == 5) {
38ddf6a1acSkfall 		realm = argv[3];
39ddf6a1acSkfall 		srvtab = argv[4];
40ddf6a1acSkfall 	}
41ddf6a1acSkfall 	else if (argc == 4)
42ddf6a1acSkfall 		srvtab = argv[3];
43*28ec459aSkfall 
44*28ec459aSkfall 	if(realm == NULL) {
45*28ec459aSkfall 		if(krb_get_lrealm(realmbuf, 1) != KSUCCESS) {
46*28ec459aSkfall 			fprintf(stderr, "Couldn't get local relm info.\n");
47*28ec459aSkfall 			exit(1);
48*28ec459aSkfall 		}
49*28ec459aSkfall 		realm = realmbuf;
50*28ec459aSkfall 	}
51*28ec459aSkfall 
52*28ec459aSkfall 	if(srvtab == NULL)
53*28ec459aSkfall 		srvtab = srvtabfile;
54*28ec459aSkfall 
55ddf6a1acSkfall 	code = krb_get_svc_in_tkt(argv[1], argv[2], realm,
56ddf6a1acSkfall 			      "krbtgt", realm, 1, srvtab);
57*28ec459aSkfall 	if (code != KSUCCESS)
58ddf6a1acSkfall 		fprintf(stderr, "%s\n", krb_err_txt[code]);
59ddf6a1acSkfall 	exit(code);
60ddf6a1acSkfall }
61