Changes in src/gnutls_config.c [8df5b25:9d9b093] in mod_gnutls


Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/gnutls_config.c

    r8df5b25 r9d9b093  
    11/**
    22 *  Copyright 2004-2005 Paul Querna
     3 *  Copyright 2007 Nikos Mavrogiannopoulos
    34 *
    45 *  Licensed under the Apache License, Version 2.0 (the "License");
     
    203204}
    204205
     206const char *mgs_set_pgpcert_file(cmd_parms * parms, void *dummy,
     207                              const char *arg)
     208{
     209    int ret;
     210    gnutls_datum_t data;
     211    const char *file;
     212    apr_pool_t *spool;
     213    mgs_srvconf_rec *sc =
     214        (mgs_srvconf_rec *) ap_get_module_config(parms->server->
     215                                                 module_config,
     216                                                 &gnutls_module);
     217    apr_pool_create(&spool, parms->pool);
     218
     219    file = ap_server_root_relative(spool, arg);
     220
     221    if (load_datum_from_file(spool, file, &data) != 0) {
     222        return apr_psprintf(parms->pool, "GnuTLS: Error Reading "
     223                            "Certificate '%s'", file);
     224    }
     225
     226    ret = gnutls_openpgp_crt_init( &sc->cert_pgp);
     227    if (ret < 0) {
     228        return apr_psprintf(parms->pool, "GnuTLS: Failed to Init "
     229                            "PGP Certificate: (%d) %s", ret,
     230                            gnutls_strerror(ret));
     231    }
     232     
     233    ret =
     234        gnutls_openpgp_crt_import(sc->cert_pgp, &data, GNUTLS_OPENPGP_FMT_BASE64);
     235    if (ret < 0) {
     236        return apr_psprintf(parms->pool, "GnuTLS: Failed to Import "
     237                            "PGP Certificate '%s': (%d) %s", file, ret,
     238                            gnutls_strerror(ret));
     239    }
     240
     241    apr_pool_destroy(spool);
     242    return NULL;
     243}
     244
     245const char *mgs_set_pgpkey_file(cmd_parms * parms, void *dummy,
     246                             const char *arg)
     247{
     248    int ret;
     249    gnutls_datum_t data;
     250    const char *file;
     251    apr_pool_t *spool;
     252    mgs_srvconf_rec *sc =
     253        (mgs_srvconf_rec *) ap_get_module_config(parms->server->
     254                                                 module_config,
     255                                                 &gnutls_module);
     256    apr_pool_create(&spool, parms->pool);
     257
     258    file = ap_server_root_relative(spool, arg);
     259
     260    if (load_datum_from_file(spool, file, &data) != 0) {
     261        return apr_psprintf(parms->pool, "GnuTLS: Error Reading "
     262                            "Private Key '%s'", file);
     263    }
     264
     265    ret = gnutls_openpgp_privkey_init(&sc->privkey_pgp);
     266    if (ret < 0) {
     267        return apr_psprintf(parms->pool, "GnuTLS: Failed to initialize"
     268                            ": (%d) %s", ret, gnutls_strerror(ret));
     269    }
     270
     271    ret =
     272        gnutls_openpgp_privkey_import(sc->privkey_pgp, &data,
     273                                   GNUTLS_OPENPGP_FMT_BASE64, NULL, 0);
     274    if (ret != 0) {
     275        return apr_psprintf(parms->pool, "GnuTLS: Failed to Import "
     276                            "PGP Private Key '%s': (%d) %s", file, ret,
     277                            gnutls_strerror(ret));
     278    }
     279    apr_pool_destroy(spool);
     280    return NULL;
     281}
     282
     283
    205284#ifdef ENABLE_SRP
    206285
     
    355434}
    356435
     436const char *mgs_set_keyring_file(cmd_parms * parms, void *dummy,
     437                                   const char *arg)
     438{
     439    int rv;
     440    const char *file;
     441    apr_pool_t *spool;
     442    gnutls_datum_t data;
     443
     444    mgs_srvconf_rec *sc =
     445        (mgs_srvconf_rec *) ap_get_module_config(parms->server->
     446                                                 module_config,
     447                                                 &gnutls_module);
     448    apr_pool_create(&spool, parms->pool);
     449
     450    file = ap_server_root_relative(spool, arg);
     451
     452    if (load_datum_from_file(spool, file, &data) != 0) {
     453        return apr_psprintf(parms->pool, "GnuTLS: Error Reading "
     454                            "Keyring File '%s'", file);
     455    }
     456
     457    rv = gnutls_openpgp_keyring_init(&sc->pgp_list);
     458    if (rv < 0) {
     459        return apr_psprintf(parms->pool, "GnuTLS: Failed to initialize"
     460                            "keyring: (%d) %s", rv, gnutls_strerror(rv));
     461    }
     462
     463    rv = gnutls_openpgp_keyring_import(sc->pgp_list, &data, GNUTLS_OPENPGP_FMT_BASE64);
     464    if (rv < 0) {
     465        return apr_psprintf(parms->pool, "GnuTLS: Failed to load "
     466                            "Keyring File '%s': (%d) %s", file, rv,
     467                            gnutls_strerror(rv));
     468    }
     469
     470    apr_pool_destroy(spool);
     471    return NULL;
     472}
     473
    357474const char *mgs_set_enabled(cmd_parms * parms, void *dummy,
    358475                            const char *arg)
Note: See TracChangeset for help on using the changeset viewer.