test-KLAcquireInitialTickets.c [plain text]
#include <stdio.h>
#include <err.h>
#include <Kerberos/Kerberos.h>
#include <Kerberos/KerberosLogin.h>
#include <Kerberos/KerberosLoginPrivate.h>
#include <err.h>
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
static KLStatus
AcquireTGT(char *inusername)
{
KLStatus status;
KLPromptMechanism prompt;
char *credCacheName = NULL;
KLPrincipal klprincipal = NULL;
prompt = __KLPromptMechanism ();
__KLSetPromptMechanism (klPromptMechanism_GUI);
if (inusername && inusername[0]) {
status = KLCreatePrincipalFromString(inusername, kerberosVersion_V5, &klprincipal);
if (status == klNoErr) {
status = KLAcquireInitialTickets(klprincipal, NULL, NULL, &credCacheName);
if (status == klNoErr)
status = KLSetSystemDefaultCache(klprincipal);
}
}
else {
status = KLAcquireInitialTickets(NULL, NULL, NULL, &credCacheName);
}
if(klprincipal != NULL)
KLDisposePrincipal(klprincipal);
if(credCacheName != NULL)
KLDisposeString(credCacheName);
__KLSetPromptMechanism (prompt);
return status;
}
int
main(int argc, char **argv)
{
if (argc != 2)
errx(1, "argc != 2");
AcquireTGT(argv[1]);
}
#pragma clang diagnostic pop