예제 #1
0
int
main(int argc, char **argv)
{
    KLLoginOptions options;
    KLPrincipal princ;
    KLStatus ret;
    KLBoolean foundV5;
    KLIdleCallback idlecall;
    KLRefCon refcon;

    if (argc != 2)
	errx(1, "argc != 2");

    printf("test NULL argument\n");
    ret = KLCreatePrincipalFromString(NULL, kerberosVersion_V5, &princ);
    if (ret == 0)
	errx(1, "KLCreatePrincipalFromString: %d", ret);

    printf("create principal\n");
    ret = KLCreatePrincipalFromString(argv[1],
				      kerberosVersion_V5, &princ);
    if (ret)
	errx(1, "KLCreatePrincipalFromString: %d", ret);

    printf("acquire cred\n");

    KLCreateLoginOptions(&options);
    KLLoginOptionsSetRenewableLifetime(options, 3600 * 24 * 7);

    ret = KLAcquireInitialTickets(princ, options, NULL, NULL);
    if (ret)
	errx(1, "KLAcquireTicketsWithPassword: %d", ret);

    KLDisposeLoginOptions(options);

    printf("get valid tickets\n");
    ret = KLCacheHasValidTickets(princ, kerberosVersion_V5, &foundV5, NULL, NULL);
    if (ret)
	errx(1, "KLCacheHasValidTickets failed");
    else if (!foundV5)
	errx(1, "found no valid tickets");

    printf("renew tickets\n");
    ret = KLRenewInitialTickets(princ, NULL, NULL, NULL);
    if (ret)
	errx(1, "KLRenewInitialTickets: %d", ret);
    KLDisposePrincipal(princ);

    printf("test callbacks\n");
    ret = KLGetIdleCallback(&idlecall, &refcon);
    if (ret != klNoErr)
	errx(1, "KLGetIdleCallback: %d", ret);

    ret = KLSetIdleCallback(NULL, refcon);
    if (ret != klNoErr)
	errx(1, "KLSetIdleCallback: %d", ret);


    return 0;
}
예제 #2
0
void TestApplicationOptions (void)
{
    KLSetIdleCallback (MyKerberosLoginIdleCallback, 101);
}