Ignore:
Timestamp:
Nov 14, 2012, 12:59:34 PM (12 years ago)
Author:
Silvan Scherrer
Message:

Samba Server: update vendor to 3.6.0

File:
1 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified vendor/current/source4/heimdal/kdc/default_config.c

    r414 r740  
    22 * Copyright (c) 1997-2007 Kungliga Tekniska Högskolan
    33 * (Royal Institute of Technology, Stockholm, Sweden).
    4  *
    54 * All rights reserved.
     5 *
     6 * Portions Copyright (c) 2009 Apple Inc. All rights reserved.
    67 *
    78 * Redistribution and use in source and binary forms, with or without
     
    3637#include <getarg.h>
    3738#include <parse_bytes.h>
    38 
    39 RCSID("$Id$");
    4039
    4140krb5_error_code
     
    216215
    217216
    218 #ifdef PKINIT
    219217    c->enable_pkinit =
    220218        krb5_config_get_bool_default(context,
     
    224222                                     "enable-pkinit",
    225223                                     NULL);
    226     if (c->enable_pkinit) {
    227         const char *user_id, *anchors, *file;
    228         char **pool_list, **revoke_list;
    229 
    230         user_id =
    231             krb5_config_get_string(context, NULL,
    232                                    "kdc", "pkinit_identity", NULL);
    233         if (user_id == NULL)
    234             krb5_errx(context, 1, "pkinit enabled but no identity");
    235 
    236         anchors = krb5_config_get_string(context, NULL,
    237                                          "kdc", "pkinit_anchors", NULL);
    238         if (anchors == NULL)
    239             krb5_errx(context, 1, "pkinit enabled but no X509 anchors");
    240 
    241         pool_list =
    242             krb5_config_get_strings(context, NULL,
    243                                     "kdc", "pkinit_pool", NULL);
    244 
    245         revoke_list =
    246             krb5_config_get_strings(context, NULL,
    247                                     "kdc", "pkinit_revoke", NULL);
    248 
    249         file = krb5_config_get_string(context, NULL,
    250                                       "kdc", "pkinit_kdc_ocsp", NULL);
    251         if (file) {
    252             c->pkinit_kdc_ocsp_file = strdup(file);
    253             if (c->pkinit_kdc_ocsp_file == NULL)
    254                 krb5_errx(context, 1, "out of memory");
    255         }
    256 
    257         file = krb5_config_get_string(context, NULL,
    258                                       "kdc", "pkinit_kdc_friendly_name", NULL);
    259         if (file) {
    260             c->pkinit_kdc_friendly_name = strdup(file);
    261             if (c->pkinit_kdc_friendly_name == NULL)
    262                 krb5_errx(context, 1, "out of memory");
    263         }
    264 
    265 
    266         _kdc_pk_initialize(context, c, user_id, anchors,
    267                            pool_list, revoke_list);
    268 
    269         krb5_config_free_strings(pool_list);
    270         krb5_config_free_strings(revoke_list);
    271 
    272         c->pkinit_princ_in_cert =
    273             krb5_config_get_bool_default(context, NULL,
    274                                          c->pkinit_princ_in_cert,
    275                                          "kdc",
    276                                          "pkinit_principal_in_certificate",
    277                                          NULL);
    278 
    279         c->pkinit_require_binding =
    280             krb5_config_get_bool_default(context, NULL,
    281                                          c->pkinit_require_binding,
    282                                          "kdc",
    283                                          "pkinit_win2k_require_binding",
    284                                          NULL);
    285     }
    286 
     224
     225
     226    c->pkinit_kdc_identity =
     227        krb5_config_get_string(context, NULL,
     228                               "kdc", "pkinit_identity", NULL);
     229    c->pkinit_kdc_anchors =
     230        krb5_config_get_string(context, NULL,
     231                               "kdc", "pkinit_anchors", NULL);
     232    c->pkinit_kdc_cert_pool =
     233        krb5_config_get_strings(context, NULL,
     234                                "kdc", "pkinit_pool", NULL);
     235    c->pkinit_kdc_revoke =
     236        krb5_config_get_strings(context, NULL,
     237                                "kdc", "pkinit_revoke", NULL);
     238    c->pkinit_kdc_ocsp_file =
     239        krb5_config_get_string(context, NULL,
     240                               "kdc", "pkinit_kdc_ocsp", NULL);
     241    c->pkinit_kdc_friendly_name =
     242        krb5_config_get_string(context, NULL,
     243                               "kdc", "pkinit_kdc_friendly_name", NULL);
     244    c->pkinit_princ_in_cert =
     245        krb5_config_get_bool_default(context, NULL,
     246                                     c->pkinit_princ_in_cert,
     247                                     "kdc",
     248                                     "pkinit_principal_in_certificate",
     249                                     NULL);
     250    c->pkinit_require_binding =
     251        krb5_config_get_bool_default(context, NULL,
     252                                     c->pkinit_require_binding,
     253                                     "kdc",
     254                                     "pkinit_win2k_require_binding",
     255                                     NULL);
    287256    c->pkinit_dh_min_bits =
    288257        krb5_config_get_int_default(context, NULL,
     
    290259                                    "kdc", "pkinit_dh_min_bits", NULL);
    291260
    292 #endif
    293 
    294261    *config = c;
    295262
    296263    return 0;
    297264}
     265
     266krb5_error_code
     267krb5_kdc_pkinit_config(krb5_context context, krb5_kdc_configuration *config)
     268{
     269#ifdef PKINIT
     270#ifdef __APPLE__
     271    config->enable_pkinit = 1;
     272
     273    if (config->pkinit_kdc_identity == NULL) {
     274        if (config->pkinit_kdc_friendly_name == NULL)
     275            config->pkinit_kdc_friendly_name =
     276                strdup("O=System Identity,CN=com.apple.kerberos.kdc");
     277        config->pkinit_kdc_identity = strdup("KEYCHAIN:");
     278    }
     279    if (config->pkinit_kdc_anchors == NULL)
     280        config->pkinit_kdc_anchors = strdup("KEYCHAIN:");
     281
     282#endif /* __APPLE__ */
     283
     284    if (config->enable_pkinit) {
     285        if (config->pkinit_kdc_identity == NULL)
     286            krb5_errx(context, 1, "pkinit enabled but no identity");
     287 
     288        if (config->pkinit_kdc_anchors == NULL)
     289            krb5_errx(context, 1, "pkinit enabled but no X509 anchors");
     290
     291        krb5_kdc_pk_initialize(context, config,
     292                               config->pkinit_kdc_identity,
     293                               config->pkinit_kdc_anchors,
     294                               config->pkinit_kdc_cert_pool,
     295                               config->pkinit_kdc_revoke);
     296
     297    }
     298
     299    return 0;
     300#endif /* PKINIT */
     301}   
Note: See TracChangeset for help on using the changeset viewer.