Home | History | Annotate | Download | only in openssh

Lines Matching refs:authctxt

60 	Authctxt *authctxt = (Authctxt *)context;
63 if (authctxt->krb5_ctx == NULL) {
64 problem = krb5_init_context(&authctxt->krb5_ctx);
72 auth_krb5_password(Authctxt *authctxt, const char *password)
84 platform_client = platform_krb5_get_principal_name(authctxt->pw->pw_name);
85 client = platform_client ? platform_client : authctxt->pw->pw_name;
87 temporarily_use_uid(authctxt->pw);
89 problem = krb5_init(authctxt);
93 problem = krb5_parse_name(authctxt->krb5_ctx, client,
94 &authctxt->krb5_user);
99 problem = krb5_cc_gen_new(authctxt->krb5_ctx, &krb5_mcc_ops, &ccache);
103 problem = krb5_cc_initialize(authctxt->krb5_ctx, ccache,
104 authctxt->krb5_user);
110 problem = krb5_verify_user(authctxt->krb5_ctx, authctxt->krb5_user,
113 temporarily_use_uid(authctxt->pw);
118 problem = krb5_cc_gen_new(authctxt->krb5_ctx, &krb5_fcc_ops,
119 &authctxt->krb5_fwd_ccache);
123 problem = krb5_cc_copy_cache(authctxt->krb5_ctx, ccache,
124 authctxt->krb5_fwd_ccache);
125 krb5_cc_destroy(authctxt->krb5_ctx, ccache);
131 problem = krb5_get_init_creds_password(authctxt->krb5_ctx, &creds,
132 authctxt->krb5_user, (char *)password, NULL, NULL, 0, NULL, NULL);
136 problem = krb5_sname_to_principal(authctxt->krb5_ctx, NULL, NULL,
142 problem = krb5_verify_init_creds(authctxt->krb5_ctx, &creds, server,
144 krb5_free_principal(authctxt->krb5_ctx, server);
145 temporarily_use_uid(authctxt->pw);
149 if (!krb5_kuserok(authctxt->krb5_ctx, authctxt->krb5_user, client)) {
154 problem = ssh_krb5_cc_gen(authctxt->krb5_ctx, &authctxt->krb5_fwd_ccache);
158 problem = krb5_cc_initialize(authctxt->krb5_ctx, authctxt->krb5_fwd_ccache,
159 authctxt->krb5_user);
163 problem= krb5_cc_store_cred(authctxt->krb5_ctx, authctxt->krb5_fwd_ccache,
169 authctxt->krb5_ticket_file = (char *)krb5_cc_get_name(authctxt->krb5_ctx, authctxt->krb5_fwd_ccache);
171 len = strlen(authctxt->krb5_ticket_file) + 6;
172 authctxt->krb5_ccname = xmalloc(len);
173 snprintf(authctxt->krb5_ccname, len, "FILE:%s",
174 authctxt->krb5_ticket_file);
178 do_pam_putenv("KRB5CCNAME", authctxt->krb5_ccname);
189 krb5_cc_destroy(authctxt->krb5_ctx, ccache);
191 if (authctxt->krb5_ctx != NULL && problem!=-1)
193 krb5_get_err_text(authctxt->krb5_ctx, problem));
198 krb5_cleanup_proc(authctxt);
205 return (authctxt->valid ? 1 : 0);
209 krb5_cleanup_proc(Authctxt *authctxt)
212 if (authctxt->krb5_fwd_ccache) {
213 krb5_cc_destroy(authctxt->krb5_ctx, authctxt->krb5_fwd_ccache);
214 authctxt->krb5_fwd_ccache = NULL;
216 if (authctxt->krb5_user) {
217 krb5_free_principal(authctxt->krb5_ctx, authctxt->krb5_user);
218 authctxt->krb5_user = NULL;
220 if (authctxt->krb5_ctx) {
221 krb5_free_context(authctxt->krb5_ctx);
222 authctxt->krb5_ctx = NULL;