Lines Matching refs:context

57 set_etypes (krb5_context context,
64 etypes_str = krb5_config_get_strings(context, NULL, "libdefaults",
72 krb5_set_error_message (context, ENOMEM, N_("malloc: out of memory", ""));
77 if(krb5_string_to_enctype(context, etypes_str[j], &e) != 0)
79 if (krb5_enctype_valid(context, e) != 0)
91 * read variables from the configuration file and set in `context'
95 init_context_from_config_file(krb5_context context)
102 INIT_FIELD(context, time, max_skew, 5 * 60, "clockskew");
103 INIT_FIELD(context, time, kdc_timeout, 3, "kdc_timeout");
104 INIT_FIELD(context, int, max_retries, 3, "max_retries");
106 INIT_FIELD(context, string, http_proxy, NULL, "http_proxy");
108 ret = krb5_config_get_bool_default(context, NULL, FALSE,
112 krb5_enctype_enable(context, ETYPE_DES_CBC_CRC);
113 krb5_enctype_enable(context, ETYPE_DES_CBC_MD4);
114 krb5_enctype_enable(context, ETYPE_DES_CBC_MD5);
115 krb5_enctype_enable(context, ETYPE_DES_CBC_NONE);
116 krb5_enctype_enable(context, ETYPE_DES_CFB64_NONE);
117 krb5_enctype_enable(context, ETYPE_DES_PCBC_NONE);
120 ret = set_etypes (context, "default_etypes", &tmptypes);
123 free(context->etypes);
124 context->etypes = tmptypes;
126 ret = set_etypes (context, "default_etypes_des", &tmptypes);
129 free(context->etypes_des);
130 context->etypes_des = tmptypes;
132 ret = set_etypes (context, "default_as_etypes", &tmptypes);
135 free(context->as_etypes);
136 context->as_etypes = tmptypes;
138 ret = set_etypes (context, "default_tgs_etypes", &tmptypes);
141 free(context->tgs_etypes);
142 context->tgs_etypes = tmptypes;
144 ret = set_etypes (context, "permitted_enctypes", &tmptypes);
147 free(context->permitted_enctypes);
148 context->permitted_enctypes = tmptypes;
155 context->default_keytab = tmp;
157 INIT_FIELD(context, string, default_keytab,
160 INIT_FIELD(context, string, default_keytab_modify,
163 INIT_FIELD(context, string, time_fmt,
166 INIT_FIELD(context, string, date_fmt,
169 INIT_FIELD(context, bool, log_utc,
175 tmp = krb5_config_get_string(context, NULL, "libdefaults",
178 roken_gethostby_setup(context->http_proxy, tmp);
179 krb5_free_host_realm (context, context->default_realms);
180 context->default_realms = NULL;
186 krb5_set_extra_addresses(context, NULL);
187 adr = krb5_config_get_strings(context, NULL,
193 ret = krb5_parse_address(context, *a, &addresses);
195 krb5_add_extra_addresses(context, &addresses);
196 krb5_free_addresses(context, &addresses);
201 krb5_set_ignore_addresses(context, NULL);
202 adr = krb5_config_get_strings(context, NULL,
208 ret = krb5_parse_address(context, *a, &addresses);
210 krb5_add_ignore_addresses(context, &addresses);
211 krb5_free_addresses(context, &addresses);
217 INIT_FIELD(context, bool, scan_interfaces, TRUE, "scan_interfaces");
218 INIT_FIELD(context, int, fcache_vno, 0, "fcache_version");
220 INIT_FIELD(context, bool, srv_lookup, TRUE, "srv_lookup");
221 INIT_FIELD(context, bool, srv_lookup, context->srv_lookup, "dns_lookup_kdc");
222 INIT_FIELD(context, int, large_msg_size, 1400, "large_message_size");
223 INIT_FLAG(context, flags, KRB5_CTX_F_DNS_CANONICALIZE_HOSTNAME, TRUE, "dns_canonicalize_hostname");
224 INIT_FLAG(context, flags, KRB5_CTX_F_CHECK_PAC, TRUE, "check_pac");
225 context->default_cc_name = NULL;
226 context->default_cc_name_set = 0;
228 s = krb5_config_get_strings(context, NULL, "logging", "krb5", NULL);
231 krb5_initlog(context, "libkrb5", &context->debug_dest);
233 krb5_addlog_dest(context, context->debug_dest, *p);
237 tmp = krb5_config_get_string(context, NULL, "libdefaults",
243 context->flags |= KRB5_CTX_F_RD_REQ_IGNORE;
250 cc_ops_register(krb5_context context)
252 context->cc_ops = NULL;
253 context->num_cc_ops = 0;
256 krb5_cc_register(context, &krb5_acc_ops, TRUE);
258 krb5_cc_register(context, &krb5_fcc_ops, TRUE);
259 krb5_cc_register(context, &krb5_mcc_ops, TRUE);
261 krb5_cc_register(context, &krb5_scc_ops, TRUE);
265 krb5_cc_register(context, &krb5_akcm_ops, TRUE);
267 krb5_cc_register(context, &krb5_kcm_ops, TRUE);
269 _krb5_load_ccache_plugins(context);
274 cc_ops_copy(krb5_context context, const krb5_context src_context)
278 context->cc_ops = NULL;
279 context->num_cc_ops = 0;
286 krb5_set_error_message(context, KRB5_CC_NOMEM,
293 context->cc_ops = cc_ops;
294 context->num_cc_ops = src_context->num_cc_ops;
300 kt_ops_register(krb5_context context)
302 context->num_kt_types = 0;
303 context->kt_types = NULL;
305 krb5_kt_register (context, &krb5_fkt_ops);
306 krb5_kt_register (context, &krb5_wrfkt_ops);
307 krb5_kt_register (context, &krb5_javakt_ops);
308 krb5_kt_register (context, &krb5_mkt_ops);
310 krb5_kt_register (context, &krb5_akf_ops);
312 krb5_kt_register (context, &krb5_any_ops);
317 kt_ops_copy(krb5_context context, const krb5_context src_context)
319 context->num_kt_types = 0;
320 context->kt_types = NULL;
325 context->kt_types = malloc(sizeof(context->kt_types[0]) * src_context->num_kt_types);
326 if (context->kt_types == NULL) {
327 krb5_set_error_message(context, ENOMEM,
332 context->num_kt_types = src_context->num_kt_types;
333 memcpy(context->kt_types, src_context->kt_types,
334 sizeof(context->kt_types[0]) * src_context->num_kt_types);
351 krb5_context context = ctx;
353 _krb5_load_plugins(context, "krb5", sysplugin_dirs);
360 * Initializes the context structure and reads the configuration file
364 * @param context pointer to returned context
375 krb5_init_context(krb5_context *context)
382 *context = NULL;
425 *context = p;
432 krb5_get_permitted_enctypes(krb5_context context,
435 return krb5_get_default_in_tkt_etypes(context, KRB5_PDU_NONE, etypes);
443 copy_etypes (krb5_context context,
455 krb5_set_error_message(context, ENOMEM,
464 * Make a copy for the Kerberos 5 context, the new krb5_context shoud
467 * @param context the Kerberos context to copy
477 krb5_copy_context(krb5_context context, krb5_context *out)
486 krb5_set_error_message(context, ENOMEM, N_("malloc: out of memory", ""));
492 krb5_set_error_message(context, ENOMEM, N_("malloc: out of memory", ""));
499 if (context->default_cc_name)
500 p->default_cc_name = strdup(context->default_cc_name);
501 if (context->default_cc_name_env)
502 p->default_cc_name_env = strdup(context->default_cc_name_env);
504 if (context->etypes) {
505 ret = copy_etypes(context, context->etypes, &p->etypes);
509 if (context->etypes_des) {
510 ret = copy_etypes(context, context->etypes_des, &p->etypes_des);
515 if (context->default_realms) {
516 ret = krb5_copy_host_realm(context,
517 context->default_realms, &p->default_realms);
522 ret = _krb5_config_copy(context, context->cf, &p->cf);
529 cc_ops_copy(p, context);
530 kt_ops_copy(p, context);
533 if(context->warn_dest != NULL)
535 if(context->debug_dest != NULL)
539 ret = krb5_set_extra_addresses(p, context->extra_addresses);
542 ret = krb5_set_extra_addresses(p, context->ignore_addresses);
546 ret = _krb5_copy_send_to_kdc_func(p, context);
564 * @param context context to be freed.
570 krb5_free_context(krb5_context context)
572 if (context->default_cc_name)
573 free(context->default_cc_name);
574 if (context->default_cc_name_env)
575 free(context->default_cc_name_env);
576 free(context->etypes);
577 free(context->etypes_des);
578 krb5_free_host_realm (context, context->default_realms);
579 krb5_config_file_free (context, context->cf);
580 free_error_table (context->et_list);
581 free(rk_UNCONST(context->cc_ops));
582 free(context->kt_types);
583 krb5_clear_error_message(context);
584 if(context->warn_dest != NULL)
585 krb5_closelog(context, context->warn_dest);
586 if(context->debug_dest != NULL)
587 krb5_closelog(context, context->debug_dest);
588 krb5_set_extra_addresses(context, NULL);
589 krb5_set_ignore_addresses(context, NULL);
590 krb5_set_send_to_kdc_func(context, NULL, NULL);
593 if (context->hx509ctx)
594 hx509_context_free(&context->hx509ctx);
597 HEIMDAL_MUTEX_destroy(context->mutex);
598 free(context->mutex);
599 if (context->flags & KRB5_CTX_F_SOCKETS_INITIALIZED) {
603 memset(context, 0, sizeof(*context));
604 free(context);
608 * Reinit the context from a new set of filenames.
610 * @param context context to add configuration too.
620 krb5_set_config_files(krb5_context context, char **filenames)
625 ret = krb5_config_parse_file_multi(context, *filenames, &tmp);
627 krb5_config_file_free(context, tmp);
640 _krb5_load_config_from_registry(context, &tmp);
643 krb5_config_file_free(context, context->cf);
644 context->cf = tmp;
645 ret = init_context_from_config_file(context);
879 krb5_kerberos_enctypes(krb5_context context)
900 copy_enctypes(krb5_context context,
912 return krb5_enomem(context);
914 if (krb5_enctype_valid(context, in[n]) != 0)
921 krb5_set_error_message (context, KRB5_PROG_ETYPE_NOSUPP,
935 default_etypes(krb5_context context, krb5_enctype **etype)
937 const krb5_enctype *p = krb5_kerberos_enctypes(context);
938 return copy_enctypes(context, p, etype);
945 * @param context Kerberos 5 context.
955 krb5_set_default_in_tkt_etypes(krb5_context context,
962 ret = copy_enctypes(context, etypes, &p);
966 if(context->etypes)
967 free(context->etypes);
968 context->etypes = p;
976 * @param context Kerberos 5 context.
987 krb5_get_default_in_tkt_etypes(krb5_context context,
999 if (pdu_type == KRB5_PDU_AS_REQUEST && context->as_etypes != NULL)
1000 enctypes = context->as_etypes;
1001 else if (pdu_type == KRB5_PDU_TGS_REQUEST && context->tgs_etypes != NULL)
1002 enctypes = context->tgs_etypes;
1003 else if (context->etypes != NULL)
1004 enctypes = context->etypes;
1007 ret = copy_enctypes(context, enctypes, &p);
1011 ret = default_etypes(context, &p);
1022 * @param context kerberos context to add the ets too
1028 krb5_init_ets(krb5_context context)
1030 if(context->et_list == NULL){
1031 krb5_add_et_list(context, initialize_krb5_error_table_r);
1032 krb5_add_et_list(context, initialize_asn1_error_table_r);
1033 krb5_add_et_list(context, initialize_heim_error_table_r);
1035 krb5_add_et_list(context, initialize_k524_error_table_r);
1045 krb5_add_et_list(context, initialize_hx_error_table_r);
1056 * @param context Kerberos 5 context.
1063 krb5_set_use_admin_kdc (krb5_context context, krb5_boolean flag)
1065 context->use_admin_kdc = flag;
1071 * @param context Kerberos 5 context.
1073 * @return boolean flag to telling the context will use admin KDC as the default KDC.
1079 krb5_get_use_admin_kdc (krb5_context context)
1081 return context->use_admin_kdc;
1088 * @param context Kerberos 5 context.
1098 krb5_add_extra_addresses(krb5_context context, krb5_addresses *addresses)
1101 if(context->extra_addresses)
1102 return krb5_append_addresses(context,
1103 context->extra_addresses, addresses);
1105 return krb5_set_extra_addresses(context, addresses);
1112 * @param context Kerberos 5 context.
1122 krb5_set_extra_addresses(krb5_context context, const krb5_addresses *addresses)
1124 if(context->extra_addresses)
1125 krb5_free_addresses(context, context->extra_addresses);
1128 if(context->extra_addresses != NULL) {
1129 free(context->extra_addresses);
1130 context->extra_addresses = NULL;
1134 if(context->extra_addresses == NULL) {
1135 context->extra_addresses = malloc(sizeof(*context->extra_addresses));
1136 if(context->extra_addresses == NULL) {
1137 krb5_set_error_message (context, ENOMEM, N_("malloc: out of memory", ""));
1141 return krb5_copy_addresses(context, addresses, context->extra_addresses);
1148 * @param context Kerberos 5 context.
1158 krb5_get_extra_addresses(krb5_context context, krb5_addresses *addresses)
1160 if(context->extra_addresses == NULL) {
1164 return krb5_copy_addresses(context,context->extra_addresses, addresses);
1171 * @param context Kerberos 5 context.
1181 krb5_add_ignore_addresses(krb5_context context, krb5_addresses *addresses)
1184 if(context->ignore_addresses)
1185 return krb5_append_addresses(context,
1186 context->ignore_addresses, addresses);
1188 return krb5_set_ignore_addresses(context, addresses);
1195 * @param context Kerberos 5 context.
1205 krb5_set_ignore_addresses(krb5_context context, const krb5_addresses *addresses)
1207 if(context->ignore_addresses)
1208 krb5_free_addresses(context, context->ignore_addresses);
1210 if(context->ignore_addresses != NULL) {
1211 free(context->ignore_addresses);
1212 context->ignore_addresses = NULL;
1216 if(context->ignore_addresses == NULL) {
1217 context->ignore_addresses = malloc(sizeof(*context->ignore_addresses));
1218 if(context->ignore_addresses == NULL) {
1219 krb5_set_error_message (context, ENOMEM, N_("malloc: out of memory", ""));
1223 return krb5_copy_addresses(context, addresses, context->ignore_addresses);
1230 * @param context Kerberos 5 context.
1240 krb5_get_ignore_addresses(krb5_context context, krb5_addresses *addresses)
1242 if(context->ignore_addresses == NULL) {
1246 return krb5_copy_addresses(context, context->ignore_addresses, addresses);
1252 * @param context Kerberos 5 context.
1262 krb5_set_fcache_version(krb5_context context, int version)
1264 context->fcache_vno = version;
1271 * @param context Kerberos 5 context.
1281 krb5_get_fcache_version(krb5_context context, int *version)
1283 *version = context->fcache_vno;
1309 * @param context Kerberos 5 context.
1316 krb5_set_dns_canonicalize_hostname (krb5_context context, krb5_boolean flag)
1319 context->flags |= KRB5_CTX_F_DNS_CANONICALIZE_HOSTNAME;
1321 context->flags &= ~KRB5_CTX_F_DNS_CANONICALIZE_HOSTNAME;
1327 * @param context Kerberos 5 context.
1335 krb5_get_dns_canonicalize_hostname (krb5_context context)
1337 return (context->flags & KRB5_CTX_F_DNS_CANONICALIZE_HOSTNAME) ? 1 : 0;
1343 * @param context Kerberos 5 context.
1353 krb5_get_kdc_sec_offset (krb5_context context, int32_t *sec, int32_t *usec)
1356 *sec = context->kdc_sec_offset;
1358 *usec = context->kdc_usec_offset;
1365 * @param context Kerberos 5 context.
1375 krb5_set_kdc_sec_offset (krb5_context context, int32_t sec, int32_t usec)
1377 context->kdc_sec_offset = sec;
1379 context->kdc_usec_offset = usec;
1386 * @param context Kerberos 5 context.
1394 krb5_get_max_time_skew (krb5_context context)
1396 return context->max_skew;
1402 * @param context Kerberos 5 context.
1409 krb5_set_max_time_skew (krb5_context context, time_t t)
1411 context->max_skew = t;
1417 * @param context Kerberos 5 context.
1430 _krb5_init_etype(krb5_context context,
1439 ret = krb5_get_default_in_tkt_etypes(context, pdu_type, val);
1441 ret = copy_enctypes(context, etypes, val);
1461 _krb5_homedir_access(krb5_context context)
1471 if (context && (context->flags & KRB5_CTX_F_HOMEDIR_ACCESS) == 0)
1483 * with context set to NULL, the global state is configured otherwise
1491 * @param context a Kerberos 5 context or NULL
1499 krb5_set_home_dir_access(krb5_context context, krb5_boolean allow)
1502 if (context) {
1503 old = (context->flags & KRB5_CTX_F_HOMEDIR_ACCESS) ? TRUE : FALSE;
1505 context->flags |= KRB5_CTX_F_HOMEDIR_ACCESS;
1507 context->flags &= ~KRB5_CTX_F_HOMEDIR_ACCESS;