Changeset 7921dc7 in mod_gnutls for src/gnutls_config.c


Ignore:
Timestamp:
Apr 22, 2018, 1:04:41 PM (2 years ago)
Author:
Fiona Klute <fiona.klute@…>
Branches:
debian/master, master, proxy-ticket
Children:
0470e44
Parents:
2246a84
git-author:
Fiona Klute <fiona.klute@…> (04/18/18 04:38:36)
git-committer:
Fiona Klute <fiona.klute@…> (04/22/18 13:04:41)
Message:

Remove OpenPGP authentication

OpenPGP authentication was removed from GnuTLS a while ago, follow suit.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/gnutls_config.c

    r2246a84 r7921dc7  
    142142    }
    143143
    144     if (sc->cert_pgp)
    145     {
    146         gnutls_pcert_deinit(&sc->cert_pgp[0]);
    147         sc->cert_pgp = NULL;
    148         gnutls_openpgp_crt_deinit(sc->cert_crt_pgp[0]);
    149         sc->cert_crt_pgp = NULL;
    150     }
    151 
    152     if (sc->privkey_pgp)
    153     {
    154         gnutls_privkey_deinit(sc->privkey_pgp);
    155         sc->privkey_pgp = NULL;
    156 #if GNUTLS_VERSION_NUMBER < 0x030312
    157         gnutls_openpgp_privkey_deinit(sc->privkey_pgp_internal);
    158         sc->privkey_pgp_internal = NULL;
    159 #endif
    160     }
    161 
    162     if (sc->pgp_list)
    163     {
    164         gnutls_openpgp_keyring_deinit(sc->pgp_list);
    165         sc->pgp_list = NULL;
    166     }
    167 
    168144    if (sc->priorities)
    169145    {
     
    453429    }
    454430
    455     if (sc->pgp_cert_file && sc->cert_pgp == NULL)
    456     {
    457         sc->cert_pgp = apr_pcalloc(pconf, sizeof(sc->cert_pgp[0]));
    458         sc->cert_crt_pgp = apr_pcalloc(pconf, sizeof(sc->cert_crt_pgp[0]));
    459 
    460         if (load_datum_from_file(spool, sc->pgp_cert_file, &data) != 0) {
    461             ap_log_error(APLOG_MARK, APLOG_STARTUP, 0, s,
    462                          "GnuTLS: Error Reading " "Certificate '%s'",
    463                          sc->pgp_cert_file);
    464             ret = -1;
    465             goto cleanup;
    466         }
    467 
    468         ret = gnutls_openpgp_crt_init(&sc->cert_crt_pgp[0]);
    469         if (ret < 0) {
    470             ap_log_error(APLOG_MARK, APLOG_STARTUP, 0, s,
    471                          "GnuTLS: Failed to Init "
    472                          "PGP Certificate: (%d) %s", ret,
    473                          gnutls_strerror(ret));
    474             ret = -1;
    475             goto cleanup;
    476         }
    477 
    478         ret = gnutls_openpgp_crt_import(sc->cert_crt_pgp[0], &data,
    479                                         GNUTLS_OPENPGP_FMT_BASE64);
    480         if (ret < 0) {
    481             ap_log_error(APLOG_MARK, APLOG_STARTUP, 0, s,
    482                          "GnuTLS: Failed to Import "
    483                          "PGP Certificate: (%d) %s", ret,
    484                          gnutls_strerror(ret));
    485             ret = -1;
    486             goto cleanup;
    487         }
    488 
    489         ret = gnutls_pcert_import_openpgp(sc->cert_pgp,
    490                                           sc->cert_crt_pgp[0], 0);
    491         if (ret < 0) {
    492             ap_log_error(APLOG_MARK, APLOG_STARTUP, 0, s,
    493                          "GnuTLS: Failed to Import "
    494                          "PGP pCertificate: (%d) %s", ret,
    495                          gnutls_strerror(ret));
    496             ret = -1;
    497             goto cleanup;
    498         }
    499     }
    500 
    501     /* Load the PGP key file */
    502     if (sc->pgp_key_file && sc->privkey_pgp == NULL)
    503     {
    504         if (load_datum_from_file(spool, sc->pgp_key_file, &data) != 0) {
    505             ap_log_error(APLOG_MARK, APLOG_STARTUP, 0, s,
    506                          "GnuTLS: Error Reading " "Private Key '%s'",
    507                          sc->pgp_key_file);
    508             ret = -1;
    509             goto cleanup;
    510         }
    511 
    512         ret = gnutls_privkey_init(&sc->privkey_pgp);
    513         if (ret < 0) {
    514             ap_log_error(APLOG_MARK, APLOG_STARTUP, 0, s,
    515                          "GnuTLS: Failed to initialize"
    516                          ": (%d) %s", ret, gnutls_strerror(ret));
    517             ret = -1;
    518             goto cleanup;
    519         }
    520 
    521 #if GNUTLS_VERSION_NUMBER < 0x030312
    522         /* GnuTLS versions before 3.3.12 contain a bug in
    523          * gnutls_privkey_import_openpgp_raw which frees data that is
    524          * accessed when the key is used, leading to segfault. Loading
    525          * the key into a gnutls_openpgp_privkey_t and then assigning
    526          * it to the gnutls_privkey_t works around the bug, hence this
    527          * chain of gnutls_openpgp_privkey_init,
    528          * gnutls_openpgp_privkey_import and
    529          * gnutls_privkey_import_openpgp. */
    530         ret = gnutls_openpgp_privkey_init(&sc->privkey_pgp_internal);
    531         if (ret != 0) {
    532             ap_log_error(APLOG_MARK, APLOG_STARTUP, 0, s,
    533                          "GnuTLS: Failed to initialize "
    534                          "PGP Private Key '%s': (%d) %s",
    535                          sc->pgp_key_file, ret, gnutls_strerror(ret));
    536             ret = -1;
    537             goto cleanup;
    538         }
    539 
    540         ret = gnutls_openpgp_privkey_import(sc->privkey_pgp_internal, &data,
    541                                             GNUTLS_OPENPGP_FMT_BASE64, NULL, 0);
    542         if (ret != 0) {
    543             ap_log_error(APLOG_MARK, APLOG_STARTUP, 0, s,
    544                          "GnuTLS: Failed to Import "
    545                          "PGP Private Key '%s': (%d) %s",
    546                          sc->pgp_key_file, ret, gnutls_strerror(ret));
    547             ret = -1;
    548             goto cleanup;
    549         }
    550 
    551         ret = gnutls_privkey_import_openpgp(sc->privkey_pgp,
    552                                             sc->privkey_pgp_internal, 0);
    553         if (ret != 0)
    554         {
    555             ap_log_error(APLOG_MARK, APLOG_STARTUP, 0, s,
    556                          "GnuTLS: Failed to assign PGP Private Key '%s' "
    557                          "to gnutls_privkey_t structure: (%d) %s",
    558                          sc->pgp_key_file, ret, gnutls_strerror(ret));
    559             ret = -1;
    560             goto cleanup;
    561         }
    562 #else
    563         ret = gnutls_privkey_import_openpgp_raw(sc->privkey_pgp, &data,
    564                                                 GNUTLS_OPENPGP_FMT_BASE64,
    565                                                 NULL, NULL);
    566         if (ret != 0)
    567         {
    568             ap_log_error(APLOG_MARK, APLOG_STARTUP, 0, s,
    569                          "GnuTLS: Failed to Import "
    570                          "PGP Private Key '%s': (%d) %s",
    571                          sc->pgp_key_file, ret, gnutls_strerror(ret));
    572             ret = -1;
    573             goto cleanup;
    574         }
    575 #endif
    576     }
    577 
    578     /* Load the keyring file */
    579     if (sc->pgp_ring_file && sc->pgp_list == NULL)
    580     {
    581         if (load_datum_from_file(spool, sc->pgp_ring_file, &data) != 0) {
    582             ap_log_error(APLOG_MARK, APLOG_STARTUP, 0, s,
    583                          "GnuTLS: Error Reading " "Keyring File '%s'",
    584                          sc->pgp_ring_file);
    585             ret = -1;
    586             goto cleanup;
    587         }
    588 
    589         ret = gnutls_openpgp_keyring_init(&sc->pgp_list);
    590         if (ret < 0) {
    591             ap_log_error(APLOG_MARK, APLOG_STARTUP, 0, s,
    592                          "GnuTLS: Failed to initialize"
    593                          "keyring: (%d) %s", ret, gnutls_strerror(ret));
    594             ret = -1;
    595             goto cleanup;
    596         }
    597 
    598         ret = gnutls_openpgp_keyring_import(sc->pgp_list, &data,
    599                                             GNUTLS_OPENPGP_FMT_BASE64);
    600         if (ret < 0) {
    601             ap_log_error(APLOG_MARK, APLOG_STARTUP, 0, s,
    602                          "GnuTLS: Failed to load "
    603                          "Keyring File '%s': (%d) %s", sc->pgp_ring_file,
    604                          ret, gnutls_strerror(ret));
    605             ret = -1;
    606             goto cleanup;
    607         }
    608     }
    609 
    610431    if (sc->priorities_str && sc->priorities == NULL)
    611432    {
     
    711532
    712533    sc->x509_key_file = apr_pstrdup(parms->pool, arg);
    713 
    714     return NULL;
    715 }
    716 
    717 const char *mgs_set_pgpcert_file(cmd_parms * parms, void *dummy __attribute__((unused)),
    718         const char *arg)
    719 {
    720     mgs_srvconf_rec *sc =
    721         (mgs_srvconf_rec *) ap_get_module_config(parms->server->
    722                                                  module_config,
    723                                                  &gnutls_module);
    724 
    725     sc->pgp_cert_file = ap_server_root_relative(parms->pool, arg);
    726 
    727     return NULL;
    728 }
    729 
    730 const char *mgs_set_pgpkey_file(cmd_parms * parms, void *dummy __attribute__((unused)),
    731         const char *arg) {
    732     mgs_srvconf_rec *sc =
    733         (mgs_srvconf_rec *) ap_get_module_config(parms->server->
    734                                                  module_config,
    735                                                  &gnutls_module);
    736 
    737     sc->pgp_key_file = ap_server_root_relative(parms->pool, arg);
    738534
    739535    return NULL;
     
    923719
    924720    sc->x509_ca_file = ap_server_root_relative(parms->pool, arg);
    925 
    926     return NULL;
    927 }
    928 
    929 const char *mgs_set_keyring_file(cmd_parms * parms, void *dummy __attribute__((unused)),
    930         const char *arg) {
    931     mgs_srvconf_rec *sc =
    932         (mgs_srvconf_rec *) ap_get_module_config(parms->server->
    933                                                  module_config,
    934                                                  &gnutls_module);
    935 
    936     sc->pgp_ring_file = ap_server_root_relative(parms->pool, arg);
    937721
    938722    return NULL;
     
    1074858    sc->pin = NULL;
    1075859
    1076     sc->cert_pgp = NULL;
    1077     sc->cert_crt_pgp = NULL;
    1078     sc->privkey_pgp = NULL;
    1079 #if GNUTLS_VERSION_NUMBER < 0x030312
    1080     sc->privkey_pgp_internal = NULL;
    1081 #endif
    1082     sc->pgp_list = NULL;
    1083 
    1084860    sc->priorities_str = NULL;
    1085861    sc->cache_timeout = MGS_TIMEOUT_UNSET;
     
    1162938    gnutls_srvconf_merge(p11_modules, NULL);
    1163939    gnutls_srvconf_merge(pin, NULL);
    1164     gnutls_srvconf_merge(pgp_cert_file, NULL);
    1165     gnutls_srvconf_merge(pgp_key_file, NULL);
    1166     gnutls_srvconf_merge(pgp_ring_file, NULL);
    1167940    gnutls_srvconf_merge(dh_file, NULL);
    1168941    gnutls_srvconf_merge(priorities_str, NULL);
     
    1186959    gnutls_srvconf_assign(ca_list);
    1187960    gnutls_srvconf_assign(ca_list_size);
    1188     gnutls_srvconf_assign(cert_pgp);
    1189     gnutls_srvconf_assign(cert_crt_pgp);
    1190     gnutls_srvconf_assign(pgp_list);
    1191961    gnutls_srvconf_assign(certs);
    1192962    gnutls_srvconf_assign(anon_creds);
Note: See TracChangeset for help on using the changeset viewer.