ports/ftp/bbftp-server/files/patch-bbftpd__crypt.c
Alexey Dokuchaev b37a13c322 - Use a better way to deal with deprecated ERR_load_crypto_strings()
function by #includ'ing <openssl/err.h> header which already takes
  the proper care of it
- Move away from using another deprecated RSA_generate_key() function
- Apply the same hack as for the client port so it dynamically links
  against libcrypto.so, rather than statically against libcrypto.a
2021-02-01 02:30:39 +00:00

29 lines
990 B
C

--- bbftpd_crypt.c.orig 2004-06-30 17:38:50 UTC
+++ bbftpd_crypt.c
@@ -73,19 +73,25 @@ void sendcrypt()
unsigned char pubexponent[NBITSINKEY] ;
int lenkey ;
int lenexpo ;
+ BIGNUM *e = BN_new();
/*
** Ask for the private and public Key
*/
- if ( (myrsa = RSA_generate_key(NBITSINKEY,3,NULL,NULL)) == NULL) {
+ if (e == NULL || (BN_set_word(e,3) && RSA_generate_key_ex(myrsa,NBITSINKEY,e,NULL)) == 0) {
syslog(BBFTPD_ERR,"%s",ERR_error_string(ERR_get_error(),NULL) ) ;
exit(1) ;
}
/*
** Now extract the public key in order to send it
*/
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
lenkey = BN_bn2mpi(myrsa->n,pubkey) ;
lenexpo = BN_bn2mpi(myrsa->e,pubexponent) ;
+#else
+ lenkey = BN_bn2mpi(RSA_get0_n(myrsa),pubkey) ;
+ lenexpo = BN_bn2mpi(RSA_get0_e(myrsa),pubexponent) ;
+#endif
mess = (struct message *) buf ;
mess->code = MSG_CRYPT ;
#ifndef WORDS_BIGENDIAN