Changeset 3b4c0d0 in mod_gnutls for src/gnutls_config.c


Ignore:
Timestamp:
Dec 20, 2012, 11:29:16 PM (7 years ago)
Author:
Dash Shendy <neuromancer@…>
Branches:
debian/master, debian/stretch-backports, jessie-backports, master, msva, upstream
Children:
8780e34
Parents:
8c03808
Message:
  • Added Comments to Header Structures
  • Refactored the following:

mod_gnutls.h.in:

  • struct mgs_srvconf_rec{}

gnutls_config.c:

  • mgs_set_cert_file()
  • mgs_set_key_file()
  • mgs_set_priorities()
  • mgs_config_server_create()

gnutls_hooks.c

  • mgs_hook_pre_config()
  • mgs_select_virtual_server_cb()
  • cert_retrieve_fn()
  • read_crt_cn()
  • mgs_hook_post_config()
  • mgs_find_sni_server()
  • mgs_add_common_cert_vars()
  • mgs_add_common_pgpcert_vars()

Signed-off-by: Dash Shendy <neuromancer@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/gnutls_config.c

    r8c03808 r3b4c0d0  
    9696}
    9797
    98 const char *mgs_set_rsa_export_file(cmd_parms * parms, void *dummy,
    99         const char *arg) {
     98const char *mgs_set_cert_file(cmd_parms * parms, void *dummy, const char *arg) {
     99
    100100    int ret;
    101101    gnutls_datum_t data;
    102102    const char *file;
    103103    apr_pool_t *spool;
    104     mgs_srvconf_rec *sc =
    105             (mgs_srvconf_rec *) ap_get_module_config(parms->server->
    106             module_config,
    107             &gnutls_module);
    108 
     104
     105    mgs_srvconf_rec *sc = (mgs_srvconf_rec *) ap_get_module_config(parms->server->module_config, &gnutls_module);
    109106    apr_pool_create(&spool, parms->pool);
    110107
     
    112109
    113110    if (load_datum_from_file(spool, file, &data) != 0) {
    114         return apr_psprintf(parms->pool, "GnuTLS: Error Reading "
    115                 "RSA params '%s'", file);
    116     }
    117 
    118     ret = gnutls_rsa_params_init(&sc->rsa_params);
    119     if (ret < 0) {
    120         return apr_psprintf(parms->pool,
    121                 "GnuTLS: Failed to initialize"
    122                 ": (%d) %s", ret,
    123                 gnutls_strerror(ret));
    124     }
    125 
    126     ret =
    127             gnutls_rsa_params_import_pkcs1(sc->rsa_params, &data,
    128             GNUTLS_X509_FMT_PEM);
    129     if (ret != 0) {
    130         return apr_psprintf(parms->pool,
    131                 "GnuTLS: Failed to Import "
    132                 "RSA params '%s': (%d) %s", file, ret,
    133                 gnutls_strerror(ret));
    134     }
    135 
    136     apr_pool_destroy(spool);
    137     return NULL;
    138 }
    139 
    140 const char *mgs_set_cert_file(cmd_parms * parms, void *dummy,
    141         const char *arg) {
     111                apr_pool_destroy(spool);
     112        return apr_psprintf(parms->pool, "GnuTLS: Error Reading Certificate '%s'", file);
     113    }
     114
     115    sc->certs_x509_chain_num = MAX_CHAIN_SIZE;
     116    ret = gnutls_x509_crt_list_import(sc->certs_x509_chain, &sc->certs_x509_chain_num, &data, GNUTLS_X509_FMT_PEM, 0);
     117    if (ret < 0) {
     118                apr_pool_destroy(spool);
     119        return apr_psprintf(parms->pool, "GnuTLS: Failed to Import Certificate '%s': (%d) %s", file, ret, gnutls_strerror(ret));
     120    }
     121   
     122        apr_pool_destroy(spool);
     123    return NULL;
     124
     125}
     126
     127const char *mgs_set_key_file(cmd_parms * parms, void *dummy, const char *arg) {
     128
    142129    int ret;
    143130    gnutls_datum_t data;
    144131    const char *file;
    145132    apr_pool_t *spool;
    146     mgs_srvconf_rec *sc =
    147             (mgs_srvconf_rec *) ap_get_module_config(parms->server->
    148             module_config,
    149             &gnutls_module);
    150     apr_pool_create(&spool, parms->pool);
     133
     134        mgs_srvconf_rec *sc = (mgs_srvconf_rec *) ap_get_module_config(parms->server->module_config, &gnutls_module);
     135   
     136        apr_pool_create(&spool, parms->pool);
    151137
    152138    file = ap_server_root_relative(spool, arg);
    153139
    154140    if (load_datum_from_file(spool, file, &data) != 0) {
    155         return apr_psprintf(parms->pool, "GnuTLS: Error Reading "
    156                 "Certificate '%s'", file);
    157     }
    158 
    159     sc->certs_x509_num = MAX_CHAIN_SIZE;
    160     ret =
    161             gnutls_x509_crt_list_import(sc->certs_x509,
    162             &sc->certs_x509_num, &data,
    163             GNUTLS_X509_FMT_PEM, 0);
    164     if (ret < 0) {
    165         return apr_psprintf(parms->pool,
    166                 "GnuTLS: Failed to Import "
    167                 "Certificate '%s': (%d) %s", file, ret,
    168                 gnutls_strerror(ret));
     141                apr_pool_destroy(spool);
     142        return apr_psprintf(parms->pool, "GnuTLS: Error Reading Private Key '%s'", file);
     143    }
     144
     145    ret = gnutls_x509_privkey_init(&sc->privkey_x509);
     146
     147    if (ret < 0) {
     148                apr_pool_destroy(spool);
     149        return apr_psprintf(parms->pool, "GnuTLS: Failed to initialize: (%d) %s", ret, gnutls_strerror(ret));
     150    }
     151
     152    ret = gnutls_x509_privkey_import(sc->privkey_x509, &data, GNUTLS_X509_FMT_PEM);
     153
     154    if (ret < 0) {
     155        ret = gnutls_x509_privkey_import_pkcs8(sc->privkey_x509, &data, GNUTLS_X509_FMT_PEM, NULL, GNUTLS_PKCS_PLAIN);
     156        }
     157
     158    if (ret < 0) {
     159                apr_pool_destroy(spool);
     160        return apr_psprintf(parms->pool, "GnuTLS: Failed to Import Private Key '%s': (%d) %s", file, ret, gnutls_strerror(ret));
    169161    }
    170162
    171163    apr_pool_destroy(spool);
    172     return NULL;
    173 }
    174 
    175 const char *mgs_set_key_file(cmd_parms * parms, void *dummy,
    176         const char *arg) {
    177     int ret;
    178     gnutls_datum_t data;
    179     const char *file;
    180     apr_pool_t *spool;
    181     mgs_srvconf_rec *sc =
    182             (mgs_srvconf_rec *) ap_get_module_config(parms->server->
    183             module_config,
    184             &gnutls_module);
    185     apr_pool_create(&spool, parms->pool);
    186 
    187     file = ap_server_root_relative(spool, arg);
    188 
    189     if (load_datum_from_file(spool, file, &data) != 0) {
    190         return apr_psprintf(parms->pool, "GnuTLS: Error Reading "
    191                 "Private Key '%s'", file);
    192     }
    193 
    194     ret = gnutls_x509_privkey_init(&sc->privkey_x509);
    195     if (ret < 0) {
    196         return apr_psprintf(parms->pool,
    197                 "GnuTLS: Failed to initialize"
    198                 ": (%d) %s", ret,
    199                 gnutls_strerror(ret));
    200     }
    201 
    202     ret =
    203             gnutls_x509_privkey_import(sc->privkey_x509, &data,
    204             GNUTLS_X509_FMT_PEM);
    205 
    206     if (ret < 0)
    207         ret =
    208             gnutls_x509_privkey_import_pkcs8(sc->privkey_x509,
    209             &data,
    210             GNUTLS_X509_FMT_PEM,
    211             NULL,
    212             GNUTLS_PKCS_PLAIN);
    213 
    214     if (ret < 0) {
    215         return apr_psprintf(parms->pool,
    216                 "GnuTLS: Failed to Import "
    217                 "Private Key '%s': (%d) %s", file, ret,
    218                 gnutls_strerror(ret));
    219     }
    220     apr_pool_destroy(spool);
     164
    221165    return NULL;
    222166}
     
    579523}
    580524
    581 const char *mgs_set_export_certificates_enabled(cmd_parms * parms,
    582         void *dummy,
    583         const char *arg) {
    584     mgs_srvconf_rec *sc =
    585             (mgs_srvconf_rec *) ap_get_module_config(parms->server->
    586             module_config,
    587             &gnutls_module);
    588     if (!strcasecmp(arg, "On")) {
    589         sc->export_certificates_enabled = GNUTLS_ENABLED_TRUE;
    590     } else if (!strcasecmp(arg, "Off")) {
    591         sc->export_certificates_enabled = GNUTLS_ENABLED_FALSE;
    592     } else {
    593         return
    594         "GnuTLSExportCertificates must be set to 'On' or 'Off'";
    595     }
    596 
    597     return NULL;
    598 }
    599 
    600 const char *mgs_set_priorities(cmd_parms * parms, void *dummy,
    601         const char *arg) {
    602     int ret;
     525const char *mgs_set_priorities(cmd_parms * parms, void *dummy, const char *arg) {
     526
     527        int ret;
    603528    const char *err;
    604     mgs_srvconf_rec *sc =
    605             (mgs_srvconf_rec *) ap_get_module_config(parms->server->
    606             module_config,
    607             &gnutls_module);
    608 
     529
     530    mgs_srvconf_rec *sc = (mgs_srvconf_rec *)
     531                                                  ap_get_module_config(parms->server->module_config, &gnutls_module);
    609532
    610533    ret = gnutls_priority_init(&sc->priorities, arg, &err);
    611     if (ret < 0) {
    612         if (ret == GNUTLS_E_INVALID_REQUEST)
    613             return apr_psprintf(parms->pool,
    614                 "GnuTLS: Syntax error parsing priorities string at: %s",
    615                 err);
     534
     535    if (ret < 0) {
     536        if (ret == GNUTLS_E_INVALID_REQUEST) {
     537            return apr_psprintf(parms->pool,
     538                                                                "GnuTLS: Syntax error parsing priorities string at: %s", err);
     539                }
    616540        return "Error setting priorities";
    617541    }
     
    652576
    653577    sc->privkey_x509 = NULL;
    654     memset(sc->certs_x509, 0, sizeof (sc->certs_x509));
    655     sc->certs_x509_num = 0;
     578        /* Initialize all Certificate Chains */
     579        sc->certs_x509_chain = malloc(MAX_CHAIN_SIZE * sizeof (*sc->certs_x509_chain));
     580    sc->certs_x509_chain_num = 0;
    656581    sc->cache_timeout = apr_time_from_sec(300);
    657582    sc->cache_type = mgs_cache_none;
    658583    sc->cache_config = ap_server_root_relative(p, "conf/gnutls_cache");
    659     sc->tickets = 1; /* by default enable session tickets */
     584        /* By default enable session tickets */
     585    sc->tickets = GNUTLS_ENABLED_TRUE;
    660586
    661587    sc->client_verify_mode = GNUTLS_CERT_IGNORE;
Note: See TracChangeset for help on using the changeset viewer.