Lines Matching refs:context

57 set_etypes (krb5_context context,  in set_etypes()  argument
64 etypes_str = krb5_config_get_strings(context, NULL, "libdefaults", in set_etypes()
72 krb5_set_error_message (context, ENOMEM, N_("malloc: out of memory", "")); in set_etypes()
77 if(krb5_string_to_enctype(context, etypes_str[j], &e) != 0) in set_etypes()
79 if (krb5_enctype_valid(context, e) != 0) in set_etypes()
95 init_context_from_config_file(krb5_context context) in init_context_from_config_file() argument
102 INIT_FIELD(context, time, max_skew, 5 * 60, "clockskew"); in init_context_from_config_file()
103 INIT_FIELD(context, time, kdc_timeout, 3, "kdc_timeout"); in init_context_from_config_file()
104 INIT_FIELD(context, int, max_retries, 3, "max_retries"); in init_context_from_config_file()
106 INIT_FIELD(context, string, http_proxy, NULL, "http_proxy"); in init_context_from_config_file()
108 ret = krb5_config_get_bool_default(context, NULL, FALSE, in init_context_from_config_file()
112 krb5_enctype_enable(context, ETYPE_DES_CBC_CRC); in init_context_from_config_file()
113 krb5_enctype_enable(context, ETYPE_DES_CBC_MD4); in init_context_from_config_file()
114 krb5_enctype_enable(context, ETYPE_DES_CBC_MD5); in init_context_from_config_file()
115 krb5_enctype_enable(context, ETYPE_DES_CBC_NONE); in init_context_from_config_file()
116 krb5_enctype_enable(context, ETYPE_DES_CFB64_NONE); in init_context_from_config_file()
117 krb5_enctype_enable(context, ETYPE_DES_PCBC_NONE); in init_context_from_config_file()
120 ret = set_etypes (context, "default_etypes", &tmptypes); in init_context_from_config_file()
123 free(context->etypes); in init_context_from_config_file()
124 context->etypes = tmptypes; in init_context_from_config_file()
126 ret = set_etypes (context, "default_etypes_des", &tmptypes); in init_context_from_config_file()
129 free(context->etypes_des); in init_context_from_config_file()
130 context->etypes_des = tmptypes; in init_context_from_config_file()
132 ret = set_etypes (context, "default_as_etypes", &tmptypes); in init_context_from_config_file()
135 free(context->as_etypes); in init_context_from_config_file()
136 context->as_etypes = tmptypes; in init_context_from_config_file()
138 ret = set_etypes (context, "default_tgs_etypes", &tmptypes); in init_context_from_config_file()
141 free(context->tgs_etypes); in init_context_from_config_file()
142 context->tgs_etypes = tmptypes; in init_context_from_config_file()
144 ret = set_etypes (context, "permitted_enctypes", &tmptypes); in init_context_from_config_file()
147 free(context->permitted_enctypes); in init_context_from_config_file()
148 context->permitted_enctypes = tmptypes; in init_context_from_config_file()
155 context->default_keytab = tmp; in init_context_from_config_file()
157 INIT_FIELD(context, string, default_keytab, in init_context_from_config_file()
160 INIT_FIELD(context, string, default_keytab_modify, in init_context_from_config_file()
163 INIT_FIELD(context, string, time_fmt, in init_context_from_config_file()
166 INIT_FIELD(context, string, date_fmt, in init_context_from_config_file()
169 INIT_FIELD(context, bool, log_utc, in init_context_from_config_file()
175 tmp = krb5_config_get_string(context, NULL, "libdefaults", in init_context_from_config_file()
178 roken_gethostby_setup(context->http_proxy, tmp); in init_context_from_config_file()
179 krb5_free_host_realm (context, context->default_realms); in init_context_from_config_file()
180 context->default_realms = NULL; in init_context_from_config_file()
186 krb5_set_extra_addresses(context, NULL); in init_context_from_config_file()
187 adr = krb5_config_get_strings(context, NULL, in init_context_from_config_file()
193 ret = krb5_parse_address(context, *a, &addresses); in init_context_from_config_file()
195 krb5_add_extra_addresses(context, &addresses); in init_context_from_config_file()
196 krb5_free_addresses(context, &addresses); in init_context_from_config_file()
201 krb5_set_ignore_addresses(context, NULL); in init_context_from_config_file()
202 adr = krb5_config_get_strings(context, NULL, in init_context_from_config_file()
208 ret = krb5_parse_address(context, *a, &addresses); in init_context_from_config_file()
210 krb5_add_ignore_addresses(context, &addresses); in init_context_from_config_file()
211 krb5_free_addresses(context, &addresses); in init_context_from_config_file()
217 INIT_FIELD(context, bool, scan_interfaces, TRUE, "scan_interfaces"); in init_context_from_config_file()
218 INIT_FIELD(context, int, fcache_vno, 0, "fcache_version"); in init_context_from_config_file()
220 INIT_FIELD(context, bool, srv_lookup, TRUE, "srv_lookup"); in init_context_from_config_file()
221 INIT_FIELD(context, bool, srv_lookup, context->srv_lookup, "dns_lookup_kdc"); in init_context_from_config_file()
222 INIT_FIELD(context, int, large_msg_size, 1400, "large_message_size"); in init_context_from_config_file()
223 …INIT_FLAG(context, flags, KRB5_CTX_F_DNS_CANONICALIZE_HOSTNAME, TRUE, "dns_canonicalize_hostname"); in init_context_from_config_file()
224 INIT_FLAG(context, flags, KRB5_CTX_F_CHECK_PAC, TRUE, "check_pac"); in init_context_from_config_file()
225 context->default_cc_name = NULL; in init_context_from_config_file()
226 context->default_cc_name_set = 0; in init_context_from_config_file()
228 s = krb5_config_get_strings(context, NULL, "logging", "krb5", NULL); in init_context_from_config_file()
231 krb5_initlog(context, "libkrb5", &context->debug_dest); in init_context_from_config_file()
233 krb5_addlog_dest(context, context->debug_dest, *p); in init_context_from_config_file()
237 tmp = krb5_config_get_string(context, NULL, "libdefaults", in init_context_from_config_file()
243 context->flags |= KRB5_CTX_F_RD_REQ_IGNORE; in init_context_from_config_file()
250 cc_ops_register(krb5_context context) in cc_ops_register() argument
252 context->cc_ops = NULL; in cc_ops_register()
253 context->num_cc_ops = 0; in cc_ops_register()
256 krb5_cc_register(context, &krb5_acc_ops, TRUE); in cc_ops_register()
258 krb5_cc_register(context, &krb5_fcc_ops, TRUE); in cc_ops_register()
259 krb5_cc_register(context, &krb5_mcc_ops, TRUE); in cc_ops_register()
261 krb5_cc_register(context, &krb5_scc_ops, TRUE); in cc_ops_register()
265 krb5_cc_register(context, &krb5_akcm_ops, TRUE); in cc_ops_register()
267 krb5_cc_register(context, &krb5_kcm_ops, TRUE); in cc_ops_register()
269 _krb5_load_ccache_plugins(context); in cc_ops_register()
274 cc_ops_copy(krb5_context context, const krb5_context src_context) in cc_ops_copy() argument
278 context->cc_ops = NULL; in cc_ops_copy()
279 context->num_cc_ops = 0; in cc_ops_copy()
286 krb5_set_error_message(context, KRB5_CC_NOMEM, in cc_ops_copy()
293 context->cc_ops = cc_ops; in cc_ops_copy()
294 context->num_cc_ops = src_context->num_cc_ops; in cc_ops_copy()
300 kt_ops_register(krb5_context context) in kt_ops_register() argument
302 context->num_kt_types = 0; in kt_ops_register()
303 context->kt_types = NULL; in kt_ops_register()
305 krb5_kt_register (context, &krb5_fkt_ops); in kt_ops_register()
306 krb5_kt_register (context, &krb5_wrfkt_ops); in kt_ops_register()
307 krb5_kt_register (context, &krb5_javakt_ops); in kt_ops_register()
308 krb5_kt_register (context, &krb5_mkt_ops); in kt_ops_register()
310 krb5_kt_register (context, &krb5_akf_ops); in kt_ops_register()
312 krb5_kt_register (context, &krb5_any_ops); in kt_ops_register()
317 kt_ops_copy(krb5_context context, const krb5_context src_context) in kt_ops_copy() argument
319 context->num_kt_types = 0; in kt_ops_copy()
320 context->kt_types = NULL; in kt_ops_copy()
325 context->kt_types = malloc(sizeof(context->kt_types[0]) * src_context->num_kt_types); in kt_ops_copy()
326 if (context->kt_types == NULL) { in kt_ops_copy()
327 krb5_set_error_message(context, ENOMEM, in kt_ops_copy()
332 context->num_kt_types = src_context->num_kt_types; in kt_ops_copy()
333 memcpy(context->kt_types, src_context->kt_types, in kt_ops_copy()
334 sizeof(context->kt_types[0]) * src_context->num_kt_types); in kt_ops_copy()
351 krb5_context context = ctx; in init_context_once() local
353 _krb5_load_plugins(context, "krb5", sysplugin_dirs); in init_context_once()
375 krb5_init_context(krb5_context *context) in krb5_init_context() argument
382 *context = NULL; in krb5_init_context()
429 *context = p; in krb5_init_context()
436 krb5_get_permitted_enctypes(krb5_context context, in krb5_get_permitted_enctypes() argument
439 return krb5_get_default_in_tkt_etypes(context, KRB5_PDU_NONE, etypes); in krb5_get_permitted_enctypes()
447 copy_etypes (krb5_context context, in copy_etypes() argument
459 krb5_set_error_message(context, ENOMEM, in copy_etypes()
481 krb5_copy_context(krb5_context context, krb5_context *out) in krb5_copy_context() argument
490 krb5_set_error_message(context, ENOMEM, N_("malloc: out of memory", "")); in krb5_copy_context()
496 krb5_set_error_message(context, ENOMEM, N_("malloc: out of memory", "")); in krb5_copy_context()
503 if (context->default_cc_name) in krb5_copy_context()
504 p->default_cc_name = strdup(context->default_cc_name); in krb5_copy_context()
505 if (context->default_cc_name_env) in krb5_copy_context()
506 p->default_cc_name_env = strdup(context->default_cc_name_env); in krb5_copy_context()
508 if (context->etypes) { in krb5_copy_context()
509 ret = copy_etypes(context, context->etypes, &p->etypes); in krb5_copy_context()
513 if (context->etypes_des) { in krb5_copy_context()
514 ret = copy_etypes(context, context->etypes_des, &p->etypes_des); in krb5_copy_context()
519 if (context->default_realms) { in krb5_copy_context()
520 ret = krb5_copy_host_realm(context, in krb5_copy_context()
521 context->default_realms, &p->default_realms); in krb5_copy_context()
526 ret = _krb5_config_copy(context, context->cf, &p->cf); in krb5_copy_context()
533 cc_ops_copy(p, context); in krb5_copy_context()
534 kt_ops_copy(p, context); in krb5_copy_context()
537 if(context->warn_dest != NULL) in krb5_copy_context()
539 if(context->debug_dest != NULL) in krb5_copy_context()
543 ret = krb5_set_extra_addresses(p, context->extra_addresses); in krb5_copy_context()
546 ret = krb5_set_extra_addresses(p, context->ignore_addresses); in krb5_copy_context()
550 ret = _krb5_copy_send_to_kdc_func(p, context); in krb5_copy_context()
574 krb5_free_context(krb5_context context) in krb5_free_context() argument
576 if (context->default_cc_name) in krb5_free_context()
577 free(context->default_cc_name); in krb5_free_context()
578 if (context->default_cc_name_env) in krb5_free_context()
579 free(context->default_cc_name_env); in krb5_free_context()
580 free(context->etypes); in krb5_free_context()
581 free(context->etypes_des); in krb5_free_context()
582 krb5_free_host_realm (context, context->default_realms); in krb5_free_context()
583 krb5_config_file_free (context, context->cf); in krb5_free_context()
584 free_error_table (context->et_list); in krb5_free_context()
585 free(rk_UNCONST(context->cc_ops)); in krb5_free_context()
586 free(context->kt_types); in krb5_free_context()
587 krb5_clear_error_message(context); in krb5_free_context()
588 if(context->warn_dest != NULL) in krb5_free_context()
589 krb5_closelog(context, context->warn_dest); in krb5_free_context()
590 if(context->debug_dest != NULL) in krb5_free_context()
591 krb5_closelog(context, context->debug_dest); in krb5_free_context()
592 krb5_set_extra_addresses(context, NULL); in krb5_free_context()
593 krb5_set_ignore_addresses(context, NULL); in krb5_free_context()
594 krb5_set_send_to_kdc_func(context, NULL, NULL); in krb5_free_context()
597 if (context->hx509ctx) in krb5_free_context()
598 hx509_context_free(&context->hx509ctx); in krb5_free_context()
601 HEIMDAL_MUTEX_destroy(context->mutex); in krb5_free_context()
602 free(context->mutex); in krb5_free_context()
603 if (context->flags & KRB5_CTX_F_SOCKETS_INITIALIZED) { in krb5_free_context()
607 memset(context, 0, sizeof(*context)); in krb5_free_context()
608 free(context); in krb5_free_context()
624 krb5_set_config_files(krb5_context context, char **filenames) in krb5_set_config_files() argument
629 ret = krb5_config_parse_file_multi(context, *filenames, &tmp); in krb5_set_config_files()
631 krb5_config_file_free(context, tmp); in krb5_set_config_files()
644 _krb5_load_config_from_registry(context, &tmp); in krb5_set_config_files()
647 krb5_config_file_free(context, context->cf); in krb5_set_config_files()
648 context->cf = tmp; in krb5_set_config_files()
649 ret = init_context_from_config_file(context); in krb5_set_config_files()
883 krb5_kerberos_enctypes(krb5_context context) in krb5_kerberos_enctypes() argument
904 copy_enctypes(krb5_context context, in copy_enctypes() argument
916 return krb5_enomem(context); in copy_enctypes()
918 if (krb5_enctype_valid(context, in[n]) != 0) in copy_enctypes()
925 krb5_set_error_message (context, KRB5_PROG_ETYPE_NOSUPP, in copy_enctypes()
939 default_etypes(krb5_context context, krb5_enctype **etype) in default_etypes() argument
941 const krb5_enctype *p = krb5_kerberos_enctypes(context); in default_etypes()
942 return copy_enctypes(context, p, etype); in default_etypes()
959 krb5_set_default_in_tkt_etypes(krb5_context context, in krb5_set_default_in_tkt_etypes() argument
966 ret = copy_enctypes(context, etypes, &p); in krb5_set_default_in_tkt_etypes()
970 if(context->etypes) in krb5_set_default_in_tkt_etypes()
971 free(context->etypes); in krb5_set_default_in_tkt_etypes()
972 context->etypes = p; in krb5_set_default_in_tkt_etypes()
991 krb5_get_default_in_tkt_etypes(krb5_context context, in krb5_get_default_in_tkt_etypes() argument
1003 if (pdu_type == KRB5_PDU_AS_REQUEST && context->as_etypes != NULL) in krb5_get_default_in_tkt_etypes()
1004 enctypes = context->as_etypes; in krb5_get_default_in_tkt_etypes()
1005 else if (pdu_type == KRB5_PDU_TGS_REQUEST && context->tgs_etypes != NULL) in krb5_get_default_in_tkt_etypes()
1006 enctypes = context->tgs_etypes; in krb5_get_default_in_tkt_etypes()
1007 else if (context->etypes != NULL) in krb5_get_default_in_tkt_etypes()
1008 enctypes = context->etypes; in krb5_get_default_in_tkt_etypes()
1011 ret = copy_enctypes(context, enctypes, &p); in krb5_get_default_in_tkt_etypes()
1015 ret = default_etypes(context, &p); in krb5_get_default_in_tkt_etypes()
1032 krb5_init_ets(krb5_context context) in krb5_init_ets() argument
1034 if(context->et_list == NULL){ in krb5_init_ets()
1035 krb5_add_et_list(context, initialize_krb5_error_table_r); in krb5_init_ets()
1036 krb5_add_et_list(context, initialize_asn1_error_table_r); in krb5_init_ets()
1037 krb5_add_et_list(context, initialize_heim_error_table_r); in krb5_init_ets()
1039 krb5_add_et_list(context, initialize_k524_error_table_r); in krb5_init_ets()
1049 krb5_add_et_list(context, initialize_hx_error_table_r); in krb5_init_ets()
1067 krb5_set_use_admin_kdc (krb5_context context, krb5_boolean flag) in krb5_set_use_admin_kdc() argument
1069 context->use_admin_kdc = flag; in krb5_set_use_admin_kdc()
1083 krb5_get_use_admin_kdc (krb5_context context) in krb5_get_use_admin_kdc() argument
1085 return context->use_admin_kdc; in krb5_get_use_admin_kdc()
1102 krb5_add_extra_addresses(krb5_context context, krb5_addresses *addresses) in krb5_add_extra_addresses() argument
1105 if(context->extra_addresses) in krb5_add_extra_addresses()
1106 return krb5_append_addresses(context, in krb5_add_extra_addresses()
1107 context->extra_addresses, addresses); in krb5_add_extra_addresses()
1109 return krb5_set_extra_addresses(context, addresses); in krb5_add_extra_addresses()
1126 krb5_set_extra_addresses(krb5_context context, const krb5_addresses *addresses) in krb5_set_extra_addresses() argument
1128 if(context->extra_addresses) in krb5_set_extra_addresses()
1129 krb5_free_addresses(context, context->extra_addresses); in krb5_set_extra_addresses()
1132 if(context->extra_addresses != NULL) { in krb5_set_extra_addresses()
1133 free(context->extra_addresses); in krb5_set_extra_addresses()
1134 context->extra_addresses = NULL; in krb5_set_extra_addresses()
1138 if(context->extra_addresses == NULL) { in krb5_set_extra_addresses()
1139 context->extra_addresses = malloc(sizeof(*context->extra_addresses)); in krb5_set_extra_addresses()
1140 if(context->extra_addresses == NULL) { in krb5_set_extra_addresses()
1141 krb5_set_error_message (context, ENOMEM, N_("malloc: out of memory", "")); in krb5_set_extra_addresses()
1145 return krb5_copy_addresses(context, addresses, context->extra_addresses); in krb5_set_extra_addresses()
1162 krb5_get_extra_addresses(krb5_context context, krb5_addresses *addresses) in krb5_get_extra_addresses() argument
1164 if(context->extra_addresses == NULL) { in krb5_get_extra_addresses()
1168 return krb5_copy_addresses(context,context->extra_addresses, addresses); in krb5_get_extra_addresses()
1185 krb5_add_ignore_addresses(krb5_context context, krb5_addresses *addresses) in krb5_add_ignore_addresses() argument
1188 if(context->ignore_addresses) in krb5_add_ignore_addresses()
1189 return krb5_append_addresses(context, in krb5_add_ignore_addresses()
1190 context->ignore_addresses, addresses); in krb5_add_ignore_addresses()
1192 return krb5_set_ignore_addresses(context, addresses); in krb5_add_ignore_addresses()
1209 krb5_set_ignore_addresses(krb5_context context, const krb5_addresses *addresses) in krb5_set_ignore_addresses() argument
1211 if(context->ignore_addresses) in krb5_set_ignore_addresses()
1212 krb5_free_addresses(context, context->ignore_addresses); in krb5_set_ignore_addresses()
1214 if(context->ignore_addresses != NULL) { in krb5_set_ignore_addresses()
1215 free(context->ignore_addresses); in krb5_set_ignore_addresses()
1216 context->ignore_addresses = NULL; in krb5_set_ignore_addresses()
1220 if(context->ignore_addresses == NULL) { in krb5_set_ignore_addresses()
1221 context->ignore_addresses = malloc(sizeof(*context->ignore_addresses)); in krb5_set_ignore_addresses()
1222 if(context->ignore_addresses == NULL) { in krb5_set_ignore_addresses()
1223 krb5_set_error_message (context, ENOMEM, N_("malloc: out of memory", "")); in krb5_set_ignore_addresses()
1227 return krb5_copy_addresses(context, addresses, context->ignore_addresses); in krb5_set_ignore_addresses()
1244 krb5_get_ignore_addresses(krb5_context context, krb5_addresses *addresses) in krb5_get_ignore_addresses() argument
1246 if(context->ignore_addresses == NULL) { in krb5_get_ignore_addresses()
1250 return krb5_copy_addresses(context, context->ignore_addresses, addresses); in krb5_get_ignore_addresses()
1266 krb5_set_fcache_version(krb5_context context, int version) in krb5_set_fcache_version() argument
1268 context->fcache_vno = version; in krb5_set_fcache_version()
1285 krb5_get_fcache_version(krb5_context context, int *version) in krb5_get_fcache_version() argument
1287 *version = context->fcache_vno; in krb5_get_fcache_version()
1320 krb5_set_dns_canonicalize_hostname (krb5_context context, krb5_boolean flag) in krb5_set_dns_canonicalize_hostname() argument
1323 context->flags |= KRB5_CTX_F_DNS_CANONICALIZE_HOSTNAME; in krb5_set_dns_canonicalize_hostname()
1325 context->flags &= ~KRB5_CTX_F_DNS_CANONICALIZE_HOSTNAME; in krb5_set_dns_canonicalize_hostname()
1339 krb5_get_dns_canonicalize_hostname (krb5_context context) in krb5_get_dns_canonicalize_hostname() argument
1341 return (context->flags & KRB5_CTX_F_DNS_CANONICALIZE_HOSTNAME) ? 1 : 0; in krb5_get_dns_canonicalize_hostname()
1357 krb5_get_kdc_sec_offset (krb5_context context, int32_t *sec, int32_t *usec) in krb5_get_kdc_sec_offset() argument
1360 *sec = context->kdc_sec_offset; in krb5_get_kdc_sec_offset()
1362 *usec = context->kdc_usec_offset; in krb5_get_kdc_sec_offset()
1379 krb5_set_kdc_sec_offset (krb5_context context, int32_t sec, int32_t usec) in krb5_set_kdc_sec_offset() argument
1381 context->kdc_sec_offset = sec; in krb5_set_kdc_sec_offset()
1383 context->kdc_usec_offset = usec; in krb5_set_kdc_sec_offset()
1398 krb5_get_max_time_skew (krb5_context context) in krb5_get_max_time_skew() argument
1400 return context->max_skew; in krb5_get_max_time_skew()
1413 krb5_set_max_time_skew (krb5_context context, time_t t) in krb5_set_max_time_skew() argument
1415 context->max_skew = t; in krb5_set_max_time_skew()
1434 _krb5_init_etype(krb5_context context, in _krb5_init_etype() argument
1443 ret = krb5_get_default_in_tkt_etypes(context, pdu_type, val); in _krb5_init_etype()
1445 ret = copy_enctypes(context, etypes, val); in _krb5_init_etype()
1465 _krb5_homedir_access(krb5_context context) in _krb5_homedir_access() argument
1475 if (context && (context->flags & KRB5_CTX_F_HOMEDIR_ACCESS) == 0) in _krb5_homedir_access()
1503 krb5_set_home_dir_access(krb5_context context, krb5_boolean allow) in krb5_set_home_dir_access() argument
1506 if (context) { in krb5_set_home_dir_access()
1507 old = (context->flags & KRB5_CTX_F_HOMEDIR_ACCESS) ? TRUE : FALSE; in krb5_set_home_dir_access()
1509 context->flags |= KRB5_CTX_F_HOMEDIR_ACCESS; in krb5_set_home_dir_access()
1511 context->flags &= ~KRB5_CTX_F_HOMEDIR_ACCESS; in krb5_set_home_dir_access()