KRB5_GET_IN_TKT(3)       BSD Library Functions Manual       KRB5_GET_IN_TKT(3)

[1mNAME[0m
     [1mkrb5_get_in_tkt[22m, [1mkrb5_get_in_cred[22m, [1mkrb5_get_in_tkt_with_password[22m,
     [1mkrb5_get_in_tkt_with_keytab[22m, [1mkrb5_get_in_tkt_with_skey[22m,
     [1mkrb5_free_kdc_rep[22m, [1mkrb5_password_key_proc [22m-- deprecated initial authenti-
     cation functions

[1mLIBRARY[0m
     Kerberos 5 Library (libkrb5, -lkrb5)

[1mSYNOPSIS[0m
     [1m#include <krb5.h>[0m

     [4mkrb5_error_code[0m
     [1mkrb5_get_in_tkt[22m([4mkrb5_context[24m [4mcontext[24m, [4mkrb5_flags[24m [4moptions[24m,
         [4mconst[24m [4mkrb5_addresses[24m [4m*addrs[24m, [4mconst[24m [4mkrb5_enctype[24m [4m*etypes[24m,
         [4mconst[24m [4mkrb5_preauthtype[24m [4m*ptypes[24m, [4mkrb5_key_proc[24m [4mkey_proc[24m,
         [4mkrb5_const_pointer[24m [4mkeyseed[24m, [4mkrb5_decrypt_proc[24m [4mdecrypt_proc[24m,
         [4mkrb5_const_pointer[24m [4mdecryptarg[24m, [4mkrb5_creds[24m [4m*creds[24m, [4mkrb5_ccache[24m [4mccache[24m,
         [4mkrb5_kdc_rep[24m [4m*ret_as_reply[24m);

     [4mkrb5_error_code[0m
     [1mkrb5_get_in_cred[22m([4mkrb5_context[24m [4mcontext[24m, [4mkrb5_flags[24m [4moptions[24m,
         [4mconst[24m [4mkrb5_addresses[24m [4m*addrs[24m, [4mconst[24m [4mkrb5_enctype[24m [4m*etypes[24m,
         [4mconst[24m [4mkrb5_preauthtype[24m [4m*ptypes[24m, [4mconst[24m [4mkrb5_preauthdata[24m [4m*preauth[24m,
         [4mkrb5_key_proc[24m [4mkey_proc[24m, [4mkrb5_const_pointer[24m [4mkeyseed[24m,
         [4mkrb5_decrypt_proc[24m [4mdecrypt_proc[24m, [4mkrb5_const_pointer[24m [4mdecryptarg[24m,
         [4mkrb5_creds[24m [4m*creds[24m, [4mkrb5_kdc_rep[24m [4m*ret_as_reply[24m);

     [4mkrb5_error_code[0m
     [1mkrb5_get_in_tkt_with_password[22m([4mkrb5_context[24m [4mcontext[24m, [4mkrb5_flags[24m [4moptions[24m,
         [4mkrb5_addresses[24m [4m*addrs[24m, [4mconst[24m [4mkrb5_enctype[24m [4m*etypes[24m,
         [4mconst[24m [4mkrb5_preauthtype[24m [4m*pre_auth_types[24m, [4mconst[24m [4mchar[24m [4m*password[24m,
         [4mkrb5_ccache[24m [4mccache[24m, [4mkrb5_creds[24m [4m*creds[24m, [4mkrb5_kdc_rep[24m [4m*ret_as_reply[24m);

     [4mkrb5_error_code[0m
     [1mkrb5_get_in_tkt_with_keytab[22m([4mkrb5_context[24m [4mcontext[24m, [4mkrb5_flags[24m [4moptions[24m,
         [4mkrb5_addresses[24m [4m*addrs[24m, [4mconst[24m [4mkrb5_enctype[24m [4m*etypes[24m,
         [4mconst[24m [4mkrb5_preauthtype[24m [4m*pre_auth_types[24m, [4mkrb5_keytab[24m [4mkeytab[24m,
         [4mkrb5_ccache[24m [4mccache[24m, [4mkrb5_creds[24m [4m*creds[24m, [4mkrb5_kdc_rep[24m [4m*ret_as_reply[24m);

     [4mkrb5_error_code[0m
     [1mkrb5_get_in_tkt_with_skey[22m([4mkrb5_context[24m [4mcontext[24m, [4mkrb5_flags[24m [4moptions[24m,
         [4mkrb5_addresses[24m [4m*addrs[24m, [4mconst[24m [4mkrb5_enctype[24m [4m*etypes[24m,
         [4mconst[24m [4mkrb5_preauthtype[24m [4m*pre_auth_types[24m, [4mconst[24m [4mkrb5_keyblock[24m [4m*key[24m,
         [4mkrb5_ccache[24m [4mccache[24m, [4mkrb5_creds[24m [4m*creds[24m, [4mkrb5_kdc_rep[24m [4m*ret_as_reply[24m);

     [4mkrb5_error_code[0m
     [1mkrb5_free_kdc_rep[22m([4mkrb5_context[24m [4mcontext[24m, [4mkrb5_kdc_rep[24m [4m*rep[24m);

     [4mkrb5_error_code[0m
     [1mkrb5_password_key_proc[22m([4mkrb5_context[24m [4mcontext[24m, [4mkrb5_enctype[24m [4mtype[24m,
         [4mkrb5_salt[24m [4msalt[24m, [4mkrb5_const_pointer[24m [4mkeyseed[24m, [4mkrb5_keyblock[24m [4m**key[24m);

[1mDESCRIPTION[0m
     [4mAll[24m [4mthe[24m [4mfunctions[24m [4min[24m [4mthis[24m [4mmanual[24m [4mpage[24m [4mare[24m [4mdeprecated[24m [4min[24m [4mthe[24m [4mMIT[24m [4mimplemen-[0m
     [4mtation,[24m [4mand[24m [4mwill[24m [4msoon[24m [4mbe[24m [4mdeprecated[24m [4min[24m [4mHeimdal[24m [4mtoo,[24m [4mdon't[24m [4muse[24m [4mthem.[0m

     Getting initial credential ticket for a principal.  [1mkrb5_get_in_cred [22mis
     the function all other krb5_get_in function uses to fetch tickets.  The
     other krb5_get_in function are more specialized and therefor somewhat
     easier to use.

     If your need is only to verify a user and password, consider using
     krb5_verify_user(3) instead, it have a much simpler interface.

     [1mkrb5_get_in_tkt [22mand [1mkrb5_get_in_cred [22mfetches initial credential, queries
     after key using the [4mkey_proc[24m argument.  The differences between the two
     function is that [1mkrb5_get_in_tkt [22mstores the credential in a krb5_creds
     while [1mkrb5_get_in_cred [22mstores the credential in a krb5_ccache.

     [1mkrb5_get_in_tkt_with_password[22m, [1mkrb5_get_in_tkt_with_keytab[22m, and
     [1mkrb5_get_in_tkt_with_skey [22mdoes the same work as [1mkrb5_get_in_cred [22mbut are
     more specialized.

     [1mkrb5_get_in_tkt_with_password [22muses the clients password to authenticate.
     If the password argument is NULL the user user queried with the default
     password query function.

     [1mkrb5_get_in_tkt_with_keytab [22msearches the given keytab for a service entry
     for the client principal.  If the keytab is NULL the default keytab is
     used.

     [1mkrb5_get_in_tkt_with_skey [22muses a key to get the initial credential.

     There are some common arguments to the krb5_get_in functions, these are:

     [4moptions[24m are the KDC_OPT flags.

     [4metypes[24m is a NULL terminated array of encryption types that the client ap-
     proves.

     [4maddrs[24m a list of the addresses that the initial ticket.  If it is NULL the
     list will be generated by the library.

     [4mpre_auth_types[24m a NULL terminated array of pre-authentication types.  If
     [4mpre_auth_types[24m is NULL the function will try without pre-authentication
     and return those pre-authentication that the KDC returned.

     [4mret_as_reply[24m will (if not NULL) be filled in with the response of the KDC
     and should be free with [1mkrb5_free_kdc_rep[22m().

     [4mkey_proc[24m is a pointer to a function that should return a key salted ap-
     propriately.  Using NULL will use the default password query function.

     [4mdecrypt_proc[24m Using NULL will use the default decryption function.

     [4mdecryptarg[24m will be passed to the decryption function [4mdecrypt_proc[24m.

     [4mcreds[24m creds should be filled in with the template for a credential that
     should be requested.  The client and server elements of the creds struc-
     ture must be filled in.  Upon return of the function it will be contain
     the content of the requested credential ([4mkrb5_get_in_cred[24m), or it will be
     freed with krb5_free_creds(3) (all the other krb5_get_in functions).

     [4mccache[24m will store the credential in the credential cache [4mccache[24m.  The
     credential cache will not be initialized, thats up the the caller.

     [1mkrb5_password_key_proc [22mis a library function that is suitable using as
     the [4mkrb5_key_proc[24m argument to [1mkrb5_get_in_cred [22mor [1mkrb5_get_in_tkt[22m.
     [4mkeyseed[24m should be a pointer to a NUL terminated string or NULL.
     [1mkrb5_password_key_proc [22mwill query the user for the pass on the console if
     the password isn't given as the argument [4mkeyseed[24m.

     [1mkrb5_free_kdc_rep[22m() frees the content of [4mrep[24m.

[1mSEE ALSO[0m
     krb5(3), krb5_verify_user(3), krb5.conf(5), kerberos(8)

HEIMDAL                          May 31, 2003                          HEIMDAL
