Lines Matching defs:context

72 /* Create the per-krb5_context context. This means loading the modules
83 krb5_preauth_context *context = NULL;
92 /* load the plugins for the current context */
128 context = malloc(sizeof(*context));
129 if (context == NULL) {
133 context->modules = malloc(sizeof(context->modules[0]) * n_modules);
134 if (context->modules == NULL) {
136 free(context);
139 memset(context->modules, 0, sizeof(context->modules[0]) * n_modules);
140 context->n_modules = n_modules;
160 context->modules[k].pa_type = pa_type;
161 context->modules[k].enctypes = table->enctype_list;
162 context->modules[k].plugin_context = plugin_context;
165 context->modules[k].client_fini = table->fini;
167 context->modules[k].client_fini = NULL;
168 context->modules[k].ftable = table;
169 context->modules[k].name = table->name;
170 context->modules[k].flags = (*table->flags)(kcontext, pa_type);
171 context->modules[k].use_count = 0;
172 context->modules[k].client_process = table->process;
173 context->modules[k].client_tryagain = table->tryagain;
175 context->modules[k].client_supply_gic_opts = table->gic_opts;
177 context->modules[k].client_supply_gic_opts = NULL;
178 context->modules[k].request_context = NULL;
188 context->modules[k].client_req_init = table->request_init;
189 context->modules[k].client_req_fini = table->request_fini;
190 rcpp = &context->modules[k].request_context;
192 context->modules[k].client_req_init = NULL;
193 context->modules[k].client_req_fini = NULL;
195 context->modules[k].request_context_pp = rcpp;
198 context->modules[k].name,
199 context->modules[k].pa_type,
200 context->modules[k].flags);
209 kcontext->preauth_context = context;
216 krb5_clear_preauth_context_use_counts(krb5_context context)
219 if (context->preauth_context != NULL) {
220 for (i = 0; i < context->preauth_context->n_modules; i++) {
221 context->preauth_context->modules[i].use_count = 0;
231 krb5_preauth_supply_preauth_data(krb5_context context,
241 if (context->preauth_context == NULL)
242 krb5_init_preauth_context(context);
243 if (context->preauth_context == NULL) {
245 krb5int_set_error(&context->err, retval,
247 "Unable to initialize preauth context");
255 for (i = 0; i < context->preauth_context->n_modules; i++) {
256 if (context->preauth_context->modules[i].client_supply_gic_opts == NULL)
258 pctx = context->preauth_context->modules[i].plugin_context;
259 retval = (*context->preauth_context->modules[i].client_supply_gic_opts)
260 (context, pctx,
263 emsg = krb5_get_error_message(context, retval);
264 krb5int_set_error(&context->err, retval, "Preauth plugin %s: %s",
265 context->preauth_context->modules[i].name, emsg);
273 * plugin-specific context which may have been created, and then
274 * freeing the context itself. */
276 krb5_free_preauth_context(krb5_context context)
280 if (context->preauth_context != NULL) {
281 for (i = 0; i < context->preauth_context->n_modules; i++) {
282 pctx = context->preauth_context->modules[i].plugin_context;
283 if (context->preauth_context->modules[i].client_fini != NULL) {
284 (*context->preauth_context->modules[i].client_fini)(context, pctx);
286 memset(&context->preauth_context->modules[i], 0,
287 sizeof(context->preauth_context->modules[i]));
289 if (context->preauth_context->modules != NULL) {
290 free(context->preauth_context->modules);
291 context->preauth_context->modules = NULL;
293 free(context->preauth_context);
294 context->preauth_context = NULL;
298 /* Initialize the per-AS-REQ context. This means calling the client_req_init
299 * function to give the plugin a chance to allocate a per-request context. */
301 krb5_preauth_request_context_init(krb5_context context)
306 /* Limit this to only one attempt per context? */
307 if (context->preauth_context == NULL)
308 krb5_init_preauth_context(context);
309 if (context->preauth_context != NULL) {
310 for (i = 0; i < context->preauth_context->n_modules; i++) {
311 pctx = context->preauth_context->modules[i].plugin_context;
312 if (context->preauth_context->modules[i].client_req_init != NULL) {
313 rctx = context->preauth_context->modules[i].request_context_pp;
314 (*context->preauth_context->modules[i].client_req_init) (context, pctx, rctx);
320 /* Free the per-AS-REQ context. This means clearing any request-specific
321 * context which the plugin may have created. */
323 krb5_preauth_request_context_fini(krb5_context context)
327 if (context->preauth_context != NULL) {
328 for (i = 0; i < context->preauth_context->n_modules; i++) {
329 pctx = context->preauth_context->modules[i].plugin_context;
330 rctx = context->preauth_context->modules[i].request_context;
332 if (context->preauth_context->modules[i].client_req_fini != NULL) {
333 (*context->preauth_context->modules[i].client_req_fini)(context, pctx, rctx);
335 context->preauth_context->modules[i].request_context = NULL;
589 krb5_error_code pa_salt(krb5_context context,
604 krb5_free_data_contents(context, salt);
605 krb5int_copy_data_contents(context, &tmp, salt);
616 krb5_error_code pa_enc_timestamp(krb5_context context,
647 if ((ret = ((*gak_fct)(context, request->client,
656 if ((ret = krb5_us_timeofday(context, &pa_enc.patimestamp, &pa_enc.pausec)))
667 ret = krb5_encrypt_helper(context, as_key,
677 krb5_free_data(context, tmp);
692 krb5_free_data(context, tmp);
760 krb5_error_code pa_sam(krb5_context context,
819 if ((ret = (gak_fct)(context, request->client, *etype, prompter,
848 krb5int_set_prompt_types(context, &prompt_type);
849 if ((ret = ((*prompter)(context, prompter_data, name,
852 krb5int_set_prompt_types(context, 0);
855 krb5int_set_prompt_types(context, 0);
859 if ((ret = krb5_us_timeofday(context,
878 krb5_free_keyblock_contents(context, as_key);
885 if ((ret = krb5_principal2salt(context, request->client,
898 ret = krb5_c_string_to_key(context, ENCTYPE_DES_CBC_MD5,
917 krb5_free_keyblock_contents(context, as_key);
923 if (ret = krb5_principal2salt(context, request->client,
942 ret = krb5_c_string_to_key(context, ENCTYPE_DES_CBC_MD5,
979 if ((ret = krb5_c_encrypt_length(context, as_key->enctype,
981 krb5_free_data(context, scratch);
993 krb5_free_data(context, scratch);
997 if ((ret = krb5_c_encrypt(context, as_key, 0, 0,
1004 krb5_free_data(context, scratch);
1031 krb5_error_code pa_sam_2(krb5_context context,
1076 krb5_free_sam_challenge_2(context, sc2);
1077 krb5_free_sam_challenge_2_body(context, sc2b);
1082 krb5_free_sam_challenge_2(context, sc2);
1083 krb5_free_sam_challenge_2_body(context, sc2b);
1088 krb5_free_sam_challenge_2(context, sc2);
1089 krb5_free_sam_challenge_2_body(context, sc2b);
1105 retval = (gak_fct)(context, request->client,
1109 krb5_free_sam_challenge_2(context, sc2);
1110 krb5_free_sam_challenge_2_body(context, sc2b);
1137 krb5int_set_prompt_types(context, &prompt_type);
1139 if ((retval = ((*prompter)(context, prompter_data, name,
1141 krb5_free_sam_challenge_2(context, sc2);
1142 krb5_free_sam_challenge_2_body(context, sc2b);
1143 krb5int_set_prompt_types(context, 0);
1147 krb5int_set_prompt_types(context, (krb5_prompt_type *)NULL);
1152 krb5_principal2salt(context, request->client, &defsalt))) {
1153 krb5_free_sam_challenge_2(context, sc2);
1154 krb5_free_sam_challenge_2_body(context, sc2b);
1167 krb5_free_keyblock_contents(context, as_key);
1172 retval = krb5_c_string_to_key(context, sc2b->sam_etype,
1176 krb5_free_sam_challenge_2(context, sc2);
1177 krb5_free_sam_challenge_2_body(context, sc2b);
1186 retval = krb5_c_string_to_key(context, sc2b->sam_etype,
1190 krb5_free_sam_challenge_2(context, sc2);
1191 krb5_free_sam_challenge_2_body(context, sc2b);
1198 retval = krb5int_c_combine_keys(context, as_key, &tmp_kb, as_key);
1201 krb5_free_sam_challenge_2(context, sc2);
1202 krb5_free_sam_challenge_2_body(context, sc2b);
1206 krb5_free_keyblock_contents(context, &tmp_kb);
1216 krb5_free_keyblock_contents(context, as_key);
1221 retval = krb5_c_string_to_key(context, sc2b->sam_etype,
1228 krb5_free_sam_challenge_2(context, sc2);
1229 krb5_free_sam_challenge_2_body(context, sc2b);
1240 retval = krb5_c_verify_checksum(context, as_key,
1245 krb5_free_data(context, scratch);
1246 krb5_free_sam_challenge_2(context, sc2);
1247 krb5_free_sam_challenge_2_body(context, sc2b);
1263 krb5_free_sam_challenge_2(context, sc2);
1264 krb5_free_sam_challenge_2_body(context, sc2b);
1287 krb5_free_sam_challenge_2(context, sc2);
1288 krb5_free_sam_challenge_2_body(context, sc2b);
1302 retval = krb5_c_encrypt_length(context, as_key->enctype, scratch->length,
1305 krb5_free_sam_challenge_2(context, sc2);
1306 krb5_free_sam_challenge_2_body(context, sc2b);
1315 krb5_free_sam_challenge_2(context, sc2);
1316 krb5_free_sam_challenge_2_body(context, sc2b);
1320 retval = krb5_c_encrypt(context, as_key, KRB5_KEYUSAGE_PA_SAM_RESPONSE,
1323 krb5_free_sam_challenge_2(context, sc2);
1324 krb5_free_sam_challenge_2_body(context, sc2b);
1325 krb5_free_data(context, scratch);
1326 krb5_free_data_contents(context, &sr2.sam_enc_nonce_or_sad.ciphertext);
1329 krb5_free_data(context, scratch);
1334 krb5_free_sam_challenge_2(context, sc2);
1335 krb5_free_sam_challenge_2_body(context, sc2b);
1336 krb5_free_data_contents(context, &sr2.sam_enc_nonce_or_sad.ciphertext);
1345 krb5_free_data(context, scratch);
1415 krb5_preauth_context *context;
1424 context = kcontext->preauth_context;
1425 if (context == NULL) {
1431 for (j = 0; j < context->n_modules; j++) {
1432 module = &context->modules[j];
1469 krb5_do_preauth(krb5_context context,
1537 krb5_free_etype_info( context, etype_info);
1552 krb5_free_etype_info( context, etype_info);
1557 krb5_free_etype_info(context, etype_info);
1598 krb5_free_data_contents(context, salt);
1602 if ((ret = krb5int_copy_data_contents( context, &scratch, salt)) != 0)
1605 krb5_free_data_contents(context, s2kparams);
1606 if ((ret = krb5int_copy_data_contents(context,
1640 if ((ret = ((*pa_types[j].fct)(context, request,
1660 krb5_init_preauth_context(context);
1661 if (context->preauth_context != NULL) {
1667 ret = krb5_run_preauth_plugins(context,
1699 krb5_free_etype_info(context, etype_info);
1707 krb5_free_pa_data(context, out_pa_list);
1710 krb5_free_etype_info(context, etype_info);