From bfaa4c83a7f28ce0c946e9cf8f77522255e632fe Mon Sep 17 00:00:00 2001 From: van Hauser Date: Sun, 4 Jan 2015 21:52:34 +0100 Subject: [PATCH] rsa keylength fix --- CHANGES | 1 + hydra-mod.c | 12 +++++++----- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/CHANGES b/CHANGES index 24f524c..385e4ee 100644 --- a/CHANGES +++ b/CHANGES @@ -6,6 +6,7 @@ Release 8.2-pre * Better library finding in ./configure for SVN + support for Darwin Homebrew * Fixed http-form module crash that only occurs on *BSD/OSX systems. Thanks to zdk for reporting! * Fixed for SSL connection to support TLSv1.2 etc. +* Support for different RSA keylengths, thanks to fann95 for the patch * ... your patch? diff --git a/hydra-mod.c b/hydra-mod.c index f02db00..b2a25db 100644 --- a/hydra-mod.c +++ b/hydra-mod.c @@ -439,15 +439,17 @@ int internal__hydra_connect(char *host, int port, int protocol, int type) { #ifdef LIBOPENSSL RSA *ssl_temp_rsa_cb(SSL * ssl, int export, int keylength) { - if (rsa == NULL) { + if(rsa->n && RSA_size(rsa)!=(keylength/8)){ + RSA_free(rsa); + } + if (rsa->n == 0) { #ifdef NO_RSA_LEGACY - RSA *private = RSA_new(); + RSA *rsa = RSA_new(); BIGNUM *f4 = BN_new(); - BN_set_word(f4, RSA_F4); - RSA_generate_key_ex(rsa, 1024, f4, NULL); + RSA_generate_key_ex(rsa, keylength, f4, NULL); #else - rsa = RSA_generate_key(1024, RSA_F4, NULL, NULL); + rsa = RSA_generate_key(keylength, RSA_F4, NULL, NULL); #endif } return rsa;