X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=src%2Fssli_gnutls.c;h=632ec57e2570980d4e4fcf751cc4ff99a5869e5d;hb=a1a0ba19a94a1bfe3c40629aa9c5f3a4b23db3ee;hp=3cbb17b3cbbfcd4215bba230106946a81f7fc3df;hpb=4b247cf9b38099d033bc4c887ac1901d16235bd6;p=umurmur.git diff --git a/src/ssli_gnutls.c b/src/ssli_gnutls.c index 3cbb17b..632ec57 100644 --- a/src/ssli_gnutls.c +++ b/src/ssli_gnutls.c @@ -31,6 +31,7 @@ #include "ssl.h" #include "conf.h" #include "log.h" +#include "memory.h" #include @@ -68,16 +69,21 @@ void SSLi_init() { unsigned const bitCount = gnutls_sec_param_to_pk_bits(GNUTLS_PK_DH, GNUTLS_SEC_PARAM_MEDIUM); + gnutls_priority_init(&cipherCache, ciphers, NULL); + initializeCertificate(); + gnutls_dh_params_init(&dhParameters); - gnutls_dh_params_generate2(dhParameters, bitCount); -#if GNUTLS_VERSION_NUMBER < 0x030300 - gnutls_global_init(); -#endif + Log_info("Generating Diffie-Hellman parameters (%i bits)", bitCount); + int error = gnutls_dh_params_generate2(dhParameters, bitCount); - gnutls_priority_init(&cipherCache, ciphers, NULL); + if(!error) { + Log_info("Successfully generated Diffie-Hellman parameters"); + } else { + Log_warn("Failed to generate Diffie-Hellman parameters: %s", gnutls_strerror(error)); + } - initializeCertificate(); + gnutls_certificate_set_dh_params(certificate, dhParameters); Log_info("Sucessfully initialized GNUTLS version %s", gnutls_check_version(NULL)); @@ -92,7 +98,8 @@ void SSLi_deinit() SSL_handle_t * SSLi_newconnection( int * fileDescriptor, bool_t * isSSLReady ) { - gnutls_session_t * session = calloc(1, sizeof(gnutls_session_t)); + gnutls_session_t * session + = Memory_safeCalloc(1, sizeof(gnutls_session_t)); gnutls_init(session, GNUTLS_SERVER); gnutls_priority_set(*session, cipherCache);