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>
15 #include <afs/cellconfig.h>
16 #include <afs/afsutil.h>
26 #include "AFS_component_version_number.c"
29 main(int argc
, char **argv
)
31 struct ktc_token token
;
32 struct ktc_principal sname
;
34 struct afsconf_dir
*dir
;
37 char cellName
[MAXKTCNAMELEN
];
42 * The following signal action for AIX is necessary so that in case of a
43 * crash (i.e. core is generated) we can include the user's data section
44 * in the core dump. Unfortunately, by default, only a partial core is
45 * generated which, in many cases, isn't too useful.
49 sigemptyset(&nsa
.sa_mask
);
50 nsa
.sa_handler
= SIG_DFL
;
51 nsa
.sa_flags
= SA_FULLDUMP
;
52 sigaction(SIGSEGV
, &nsa
, NULL
);
55 printf("kseal: usage is 'kseal <username> <server key>\n");
59 /* lookup configuration info */
60 dir
= afsconf_Open(AFSDIR_CLIENT_ETC_DIRPATH
);
62 printf("kseal: can't open config dir (%s)\n",
63 AFSDIR_CLIENT_ETC_DIRPATH
);
66 code
= afsconf_GetLocalCell(dir
, cellName
, sizeof(cellName
));
68 printf("kseal: failed to get local cell name, code %d\n", code
);
72 /* setup key for sealing */
73 string_to_key(argv
[2], skey
);
76 memcpy(session
, &now
, 4); /* but this is only a test pgm */
77 memcpy(session
+ 4, &now
, 4);
79 tkt_MakeTicket(token
.ticket
, &token
.ticketLen
, skey
, argv
[1], "",
80 cellName
, now
- 300, now
+ 25 * 3600, session
,
81 /* host */ 0, "afs", "");
83 printf("kseal: could not seal ticket, code %d!\n", code
);
87 /* now send the ticket to the ticket cache */
88 strcpy(sname
.name
, "afs");
89 strcpy(sname
.instance
, "");
90 strcpy(sname
.cell
, cellName
);
92 token
.endTime
= 0x7fffffff;
93 memcpy(&token
.sessionKey
, session
, 8);
95 code
= ktc_SetToken(&sname
, &token
, NULL
, 0);
97 printf("kseal: could not install newly-sealed ticket, code %d\n",