Changeset 5508683 in mod_gnutls for src/gnutls_hooks.c


Ignore:
Timestamp:
Jan 11, 2013, 12:58:10 AM (8 years ago)
Author:
Daniel Kahn Gillmor <dkg@…>
Branches:
debian/master, debian/stretch-backports, jessie-backports, upstream
Children:
17eb1a1, 9c4a744
Parents:
bbb9bb1
Message:

Imported Upstream version 0.5.8

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/gnutls_hooks.c

    rbbb9bb1 r5508683  
    487487const char *mgs_hook_http_scheme(const request_rec * r)
    488488{
    489     mgs_srvconf_rec *sc =
     489    mgs_srvconf_rec *sc;
     490   
     491    if (r == NULL)
     492        return NULL;
     493   
     494    sc =
    490495        (mgs_srvconf_rec *) ap_get_module_config(r->server->module_config,
    491496                                                 &gnutls_module);
     
    501506apr_port_t mgs_hook_default_port(const request_rec * r)
    502507{
    503     mgs_srvconf_rec *sc =
     508    mgs_srvconf_rec *sc;
     509   
     510    if (r == NULL)
     511        return 0;
     512   
     513    sc =
    504514        (mgs_srvconf_rec *) ap_get_module_config(r->server->module_config,
    505515                                                 &gnutls_module);
     
    580590#endif
    581591
     592    if (session == NULL)
     593        return NULL;
     594
    582595    _gnutls_log(debug_log_fp,   "%s: %d\n", __func__, __LINE__);
    583596    ctxt = gnutls_transport_get_ptr(session);
     
    694707{
    695708    mgs_handle_t *ctxt;
    696     mgs_srvconf_rec *sc =
     709    mgs_srvconf_rec *sc;
     710
     711    _gnutls_log(debug_log_fp,   "%s: %d\n", __func__, __LINE__);
     712   
     713    if (c == NULL)
     714        return DECLINED;
     715   
     716    sc =
    697717        (mgs_srvconf_rec *) ap_get_module_config(c->base_server->
    698718                                                 module_config,
    699719                                                 &gnutls_module);
    700720
    701     _gnutls_log(debug_log_fp,   "%s: %d\n", __func__, __LINE__);
    702721    if (!(sc && (sc->enabled == GNUTLS_ENABLED_TRUE))) {
    703722        return DECLINED;
     
    733752    int rv = OK;
    734753
     754    if (r == NULL)
     755        return DECLINED;
     756
    735757    _gnutls_log(debug_log_fp,   "%s: %d\n", __func__, __LINE__);
    736758    apr_table_t *env = r->subprocess_env;
     
    739761        ap_get_module_config(r->connection->conn_config, &gnutls_module);
    740762
    741     if (!ctxt) {
     763    if (!ctxt || ctxt->session == NULL) {
    742764        return DECLINED;
    743765    }
     
    805827    int rv;
    806828    mgs_handle_t *ctxt;
    807     mgs_dirconf_rec *dc = ap_get_module_config(r->per_dir_config,
     829    mgs_dirconf_rec *dc;
     830   
     831    if (r == NULL)
     832        return DECLINED;
     833   
     834    dc = ap_get_module_config(r->per_dir_config,
    808835                                               &gnutls_module);
    809836
     
    812839        ap_get_module_config(r->connection->conn_config, &gnutls_module);
    813840
    814     if (!ctxt) {
     841    if (!ctxt || ctxt->session == NULL) {
    815842        return DECLINED;
    816843    }
     
    875902    size_t len;
    876903    int ret, i;
     904
     905    if (r == NULL)
     906        return;
    877907
    878908    apr_table_t *env = r->subprocess_env;
     
    9841014    size_t len;
    9851015    int ret;
     1016   
     1017    if (r == NULL)
     1018        return;
    9861019
    9871020    _gnutls_log(debug_log_fp,   "%s: %d\n", __func__, __LINE__);
     
    10441077{
    10451078    const gnutls_datum_t *cert_list;
    1046     unsigned int cert_list_size, status, expired;
     1079    unsigned int cert_list_size, status;
    10471080    int rv = GNUTLS_E_NO_CERTIFICATE_FOUND, ret;
    10481081    unsigned int ch_size = 0;
     
    10511084      gnutls_openpgp_crt_t pgp;
    10521085    } cert;
    1053     apr_time_t activation_time, expiration_time, cur_time;
     1086    apr_time_t expiration_time, cur_time;
     1087
     1088    if (r == NULL || ctxt == NULL || ctxt->session == NULL)
     1089        return HTTP_FORBIDDEN;
    10541090
    10551091    _gnutls_log(debug_log_fp, "%s: %d\n", __func__, __LINE__);
     
    11171153        apr_time_ansi_put(&expiration_time,
    11181154                      gnutls_x509_crt_get_expiration_time(cert.x509[0]));
    1119         apr_time_ansi_put(&activation_time,
    1120                       gnutls_x509_crt_get_activation_time(cert.x509[0]));
    11211155
    11221156        ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r,
     
    11281162        apr_time_ansi_put(&expiration_time,
    11291163                      gnutls_openpgp_crt_get_expiration_time(cert.pgp));
    1130         apr_time_ansi_put(&activation_time,
    1131                       gnutls_openpgp_crt_get_creation_time(cert.pgp));
    11321164
    11331165        rv = gnutls_openpgp_crt_verify_ring(cert.pgp, ctxt->sc->pgp_list,
     
    11511183    /* ret = gnutls_x509_crt_check_revocation(crt, crl_list, crl_list_size); */
    11521184
    1153     expired = 0;
    11541185    cur_time = apr_time_now();
    1155     if (activation_time > cur_time) {
    1156         ap_log_rerror(APLOG_MARK, APLOG_INFO, 0, r,
    1157                       "GnuTLS: Failed to Verify Peer: "
    1158                       "Peer Certificate is not yet activated.");
    1159         expired = 1;
    1160     }
    1161 
    1162     if (gnutls_certificate_type_get( ctxt->session) != GNUTLS_CRT_OPENPGP || expiration_time != 0) {
    1163         if (expiration_time < cur_time) {
    1164             ap_log_rerror(APLOG_MARK, APLOG_INFO, 0, r,
    1165                       "GnuTLS: Failed to Verify Peer: "
    1166                       "Peer Certificate is expired.");
    1167             expired = 1;
    1168         }
    1169     }
    11701186
    11711187    if (status & GNUTLS_CERT_SIGNER_NOT_FOUND) {
     
    11771193        ap_log_rerror(APLOG_MARK, APLOG_INFO, 0, r,
    11781194                      "GnuTLS: Peer's Certificate signer is not a CA");
     1195    }
     1196
     1197    if (status & GNUTLS_CERT_INSECURE_ALGORITHM) {
     1198        ap_log_rerror(APLOG_MARK, APLOG_INFO, 0, r,
     1199                      "GnuTLS: Peer's Certificate is using insecure algorithms");
     1200    }
     1201
     1202    if (status & GNUTLS_CERT_EXPIRED || status & GNUTLS_CERT_NOT_ACTIVATED) {
     1203        ap_log_rerror(APLOG_MARK, APLOG_INFO, 0, r,
     1204                      "GnuTLS: Peer's Certificate signer is expired or not yet activated");
    11791205    }
    11801206
     
    12031229    }
    12041230
    1205     if (status == 0 && expired == 0) {
     1231    if (status == 0) {
    12061232        apr_table_setn(r->subprocess_env, "SSL_CLIENT_VERIFY", "SUCCESS");
    12071233        ret = OK;
Note: See TracChangeset for help on using the changeset viewer.