Ignore:
Timestamp:
Nov 27, 2012, 4:43:17 PM (13 years ago)
Author:
Silvan Scherrer
Message:

Samba Server: updated trunk to 3.6.0

Location:
trunk/server
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/server

  • trunk/server/source4/heimdal/kdc/kx509.c

    r414 r745  
    144144                  krb5_data *certificate)
    145145{
    146     hx509_context hxctx = NULL;
    147146    hx509_ca_tbs tbs = NULL;
    148147    hx509_env env = NULL;
     
    156155    }
    157156
    158     ret = hx509_context_init(&hxctx);
    159     if (ret)
    160         goto out;
    161 
    162     ret = hx509_env_add(hxctx, &env, "principal-name",
     157    ret = hx509_env_add(context->hx509ctx, &env, "principal-name",
    163158                        krb5_principal_get_comp_string(context, principal, 0));
    164159    if (ret)
     
    169164        hx509_query *q;
    170165
    171         ret = hx509_certs_init(hxctx, config->kx509_ca, 0,
     166        ret = hx509_certs_init(context->hx509ctx, config->kx509_ca, 0,
    172167                               NULL, &certs);
    173168        if (ret) {
     
    176171            goto out;
    177172        }
    178         ret = hx509_query_alloc(hxctx, &q);
     173        ret = hx509_query_alloc(context->hx509ctx, &q);
    179174        if (ret) {
    180175            hx509_certs_free(&certs);
     
    185180        hx509_query_match_option(q, HX509_QUERY_OPTION_KU_KEYCERTSIGN);
    186181
    187         ret = hx509_certs_find(hxctx, certs, q, &signer);
    188         hx509_query_free(hxctx, q);
     182        ret = hx509_certs_find(context->hx509ctx, certs, q, &signer);
     183        hx509_query_free(context->hx509ctx, q);
    189184        hx509_certs_free(&certs);
    190185        if (ret) {
     
    195190    }
    196191
    197     ret = hx509_ca_tbs_init(hxctx, &tbs);
     192    ret = hx509_ca_tbs_init(context->hx509ctx, &tbs);
    198193    if (ret)
    199194        goto out;
     
    215210        spki.algorithm.parameters = &any;
    216211
    217         ret = hx509_ca_tbs_set_spki(hxctx, tbs, &spki);
     212        ret = hx509_ca_tbs_set_spki(context->hx509ctx, tbs, &spki);
    218213        der_free_oid(&spki.algorithm.algorithm);
    219214        if (ret)
     
    225220        hx509_cert template;
    226221
    227         ret = hx509_certs_init(hxctx, config->kx509_template, 0,
     222        ret = hx509_certs_init(context->hx509ctx, config->kx509_template, 0,
    228223                               NULL, &certs);
    229224        if (ret) {
     
    232227            goto out;
    233228        }
    234         ret = hx509_get_one_cert(hxctx, certs, &template);
     229        ret = hx509_get_one_cert(context->hx509ctx, certs, &template);
    235230        hx509_certs_free(&certs);
    236231        if (ret) {
     
    239234            goto out;
    240235        }
    241         ret = hx509_ca_tbs_set_template(hxctx, tbs,
     236        ret = hx509_ca_tbs_set_template(context->hx509ctx, tbs,
    242237                                        HX509_CA_TEMPLATE_SUBJECT|
    243238                                        HX509_CA_TEMPLATE_KU|
     
    249244    }
    250245
    251     hx509_ca_tbs_set_notAfter(hxctx, tbs, endtime);
    252 
    253     hx509_ca_tbs_subject_expand(hxctx, tbs, env);
     246    hx509_ca_tbs_set_notAfter(context->hx509ctx, tbs, endtime);
     247
     248    hx509_ca_tbs_subject_expand(context->hx509ctx, tbs, env);
    254249    hx509_env_free(&env);
    255250
    256     ret = hx509_ca_sign(hxctx, tbs, signer, &cert);
     251    ret = hx509_ca_sign(context->hx509ctx, tbs, signer, &cert);
    257252    hx509_cert_free(signer);
    258253    if (ret)
     
    261256    hx509_ca_tbs_free(&tbs);
    262257
    263     ret = hx509_cert_binary(hxctx, cert, certificate);
     258    ret = hx509_cert_binary(context->hx509ctx, cert, certificate);
    264259    hx509_cert_free(cert);
    265260    if (ret)
    266261        goto out;
    267262               
    268     hx509_context_free(&hxctx);
    269 
    270263    return 0;
    271264out:
     
    276269    if (signer)
    277270        hx509_cert_free(signer);
    278     if (hxctx)
    279         hx509_context_free(&hxctx);
    280271    krb5_set_error_message(context, ret, "cert creation failed");
    281272    return ret;
     
    355346        krb5_free_principal(context, principal);
    356347        if (ret != TRUE) {
     348            char *expected, *used;
     349
     350            ret = krb5_unparse_name(context, sprincipal, &expected);
     351            if (ret)
     352                goto out;
     353            ret = krb5_unparse_name(context, principal, &used);
     354            if (ret) {
     355                krb5_xfree(expected);
     356                goto out;
     357            }
     358           
    357359            ret = KRB5KDC_ERR_SERVER_NOMATCH;
    358360            krb5_set_error_message(context, ret,
    359                                    "User %s used wrong Kx509 service principal",
    360                                    cname);
     361                                   "User %s used wrong Kx509 service "
     362                                   "principal, expected: %s, used %s",
     363                                   cname, expected, used);
     364            krb5_xfree(expected);
     365            krb5_xfree(used);
    361366            goto out;
    362367        }
Note: See TracChangeset for help on using the changeset viewer.