2 * Copyright 2000, International Business Machines Corporation and others.
5 * This software has been released under the terms of the IBM Public
6 * License. For details, see the LICENSE file in the top-level source
7 * directory or online at http://www.openafs.org/dl/license10.html
10 #include <afsconfig.h>
11 #include <afs/param.h>
14 #include <sys/types.h>
15 #include <netinet/in.h>
22 #include <afs/cellconfig.h>
23 #include <afs/afsutil.h>
30 #include "AFS_component_version_number.c"
33 main(int argc, char **argv)
35 struct ktc_token token;
36 struct ktc_principal sname;
37 register afs_int32 code;
38 struct afsconf_dir *dir;
41 char cellName[MAXKTCNAMELEN];
46 * The following signal action for AIX is necessary so that in case of a
47 * crash (i.e. core is generated) we can include the user's data section
48 * in the core dump. Unfortunately, by default, only a partial core is
49 * generated which, in many cases, isn't too useful.
53 sigemptyset(&nsa.sa_mask);
54 nsa.sa_handler = SIG_DFL;
55 nsa.sa_flags = SA_FULLDUMP;
56 sigaction(SIGSEGV, &nsa, NULL);
59 printf("kseal: usage is 'kseal <username> <server key>\n");
63 /* lookup configuration info */
64 dir = afsconf_Open(AFSDIR_CLIENT_ETC_DIRPATH);
66 printf("kseal: can't open config dir (%s)\n",
67 AFSDIR_CLIENT_ETC_DIRPATH);
70 code = afsconf_GetLocalCell(dir, cellName, sizeof(cellName));
72 printf("kseal: failed to get local cell name, code %d\n", code);
76 /* setup key for sealing */
77 string_to_key(argv[2], skey);
80 memcpy(session, &now, 4); /* but this is only a test pgm */
81 memcpy(session + 4, &now, 4);
83 tkt_MakeTicket(token.ticket, &token.ticketLen, skey, argv[1], "",
84 cellName, now - 300, now + 25 * 3600, session,
85 /* host */ 0, "afs", "");
87 printf("kseal: could not seal ticket, code %d!\n", code);
91 /* now send the ticket to the ticket cache */
92 strcpy(sname.name, "afs");
93 strcpy(sname.instance, "");
94 strcpy(sname.cell, cellName);
96 token.endTime = 0x7fffffff;
97 memcpy(&token.sessionKey, session, 8);
99 code = ktc_SetToken(&sname, &token, NULL, 0);
101 printf("kseal: could not install newly-sealed ticket, code %d\n",