Changeset bd24203 in mod_gnutls


Ignore:
Timestamp:
Apr 2, 2015, 7:51:48 PM (4 years ago)
Author:
Thomas Klute <thomas2.klute@…>
Branches:
debian/master, debian/stretch-backports, jessie-backports, master, upstream
Children:
809c422
Parents:
36db6c9
Message:

Explicitly build trust list for proxy connections

This change provides direct access to the trust list, which is required
for loading a CRL later.

Files:
2 edited

Legend:

Unmodified
Added
Removed
  • include/mod_gnutls.h.in

    r36db6c9 rbd24203  
    108108    /* x509 credentials for proxy connections */
    109109    gnutls_certificate_credentials_t proxy_x509_creds;
     110    /* trust list for proxy_x509_creds */
     111    gnutls_x509_trust_list_t proxy_x509_tl;
    110112    const char* proxy_x509_key_file;
    111113    const char* proxy_x509_cert_file;
  • src/gnutls_hooks.c

    r36db6c9 rbd24203  
    17531753    int ret = APR_SUCCESS;
    17541754    int err = GNUTLS_E_SUCCESS;
     1755
     1756    /* load certificate and key for client auth, if configured */
    17551757    if (sc->proxy_x509_key_file && sc->proxy_x509_cert_file)
    17561758    {
     
    17871789    if (sc->proxy_x509_ca_file)
    17881790    {
    1789         /* returns number of loaded certificates */
    1790         err = gnutls_certificate_set_x509_trust_file(sc->proxy_x509_creds,
    1791                                                      sc->proxy_x509_ca_file,
    1792                                                      GNUTLS_X509_FMT_PEM);
     1791        /* initialize the trust list */
     1792        err = gnutls_x509_trust_list_init(&sc->proxy_x509_tl, 0);
     1793        if (err != GNUTLS_E_SUCCESS)
     1794        {
     1795            ap_log_error(APLOG_MARK, APLOG_ERR, 0, s,
     1796                         "%s: gnutls_x509_trust_list_init failed: %s (%d)",
     1797                         __func__, gnutls_strerror(err), err);
     1798            ret = APR_EGENERAL;
     1799        }
     1800
     1801        /* returns number of loaded elements */
     1802        err = gnutls_x509_trust_list_add_trust_file(sc->proxy_x509_tl,
     1803                                                    sc->proxy_x509_ca_file,
     1804                                                    NULL /* crl_file */,
     1805                                                    GNUTLS_X509_FMT_PEM,
     1806                                                    0 /* tl_flags */,
     1807                                                    0 /* tl_vflags */);
    17931808        if (err > 0)
    17941809            ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, s,
    1795                          "%s: proxy CA trust list: %d certificates loaded",
     1810                         "%s: proxy CA trust list: %d structures loaded",
    17961811                         __func__, err);
    17971812        else if (err == 0)
     
    18031818                         "%s: error loading proxy CA trust list: %s (%d)",
    18041819                         __func__, gnutls_strerror(err), err);
     1820
     1821        /* attach trust list to credentials */
     1822        gnutls_certificate_set_trust_list(sc->proxy_x509_creds,
     1823                                          sc->proxy_x509_tl, 0);
    18051824    }
    18061825    else
    18071826        ap_log_error(APLOG_MARK, APLOG_WARNING, 0, s,
    1808                      "%s: no CA trust list for proxy connections missing, "
     1827                     "%s: no CA trust list for proxy connections, "
    18091828                     "TLS connections will fail!", __func__);
    18101829
Note: See TracChangeset for help on using the changeset viewer.