--- ircd-hybrid/trunk/src/conf_parser.y 2014/06/29 11:48:50 4094 +++ ircd-hybrid/trunk/src/conf_parser.y 2014/07/01 16:47:15 4114 @@ -297,6 +297,7 @@ reset_block_state(void) %token SSL_CONNECTION_REQUIRED %token SSL_DH_ELLIPTIC_CURVE %token SSL_DH_PARAM_FILE +%token SSL_MESSAGE_DIGEST_ALGORITHM %token STATS_E_DISABLED %token STATS_I_OPER_ONLY %token STATS_K_OPER_ONLY @@ -471,6 +472,7 @@ serverinfo_item: serverinfo_name serverinfo_ssl_client_method | serverinfo_ssl_server_method | serverinfo_ssl_cipher_list | + serverinfo_ssl_message_digest_algorithm | error ';' ; @@ -643,6 +645,19 @@ serverinfo_ssl_cipher_list: T_SSL_CIPHER #endif }; +serverinfo_ssl_message_digest_algorithm: SSL_MESSAGE_DIGEST_ALGORITHM '=' QSTRING ';' +{ +#ifdef HAVE_LIBCRYPTO + if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx) + { + if ((ServerInfo.message_digest_algorithm = EVP_get_digestbyname(yylval.string)) == NULL) + conf_error_report("Ignoring serverinfo::ssl_message_digest_algorithm -- unknown message digest algorithm"); + else + ServerInfo.message_digest_algorithm = EVP_sha256(); + } +#endif +} + serverinfo_ssl_dh_elliptic_curve: SSL_DH_ELLIPTIC_CURVE '=' QSTRING ';' { #ifdef HAVE_LIBCRYPTO