1 int kerb5_password_validate(const char *user, const char *pass) {
4 krb5_principal server, me;
7 krb5_deltat lifetime = 0;
14 if (krb5_init_context(&kcontext))
17 memset((char *)&my_creds, 0, sizeof(my_creds));
18 if(krb5_parse_name(kcontext, user, &me))
22 if (krb5_build_principal_ext(kcontext, &server,
23 krb5_princ_realm(kcontext, me)->length,
24 krb5_princ_realm(kcontext, me)->data,
25 tgtname.length, tgtname.data,
26 krb5_princ_realm(kcontext, me)->length,
27 krb5_princ_realm(kcontext, me)->data,
31 my_creds.server = server;
32 if (krb5_timeofday(kcontext, &now))
34 my_creds.times.starttime = 0;
35 my_creds.times.endtime = now + lifetime;
36 my_creds.times.renew_till = 0;
38 ret = krb5_get_in_tkt_with_password(kcontext, 0, 0, NULL, 0,
39 pass, NULL, &my_creds, 0);
44 krb5_free_cred_contents(kcontext, &my_creds);