Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 28 Jul 2020 06:29:13 +0000 (UTC)
From:      Alexey Dokuchaev <danfe@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r543578 - in head/sysutils/rsyncrypto: . files
Message-ID:  <202007280629.06S6TDpQ070032@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: danfe
Date: Tue Jul 28 06:29:12 2020
New Revision: 543578
URL: https://svnweb.freebsd.org/changeset/ports/543578

Log:
  Allow to build against pre-1.1.0 versions of OpenSSL which are still
  used in FreeBSD 11.x and would be supported until September 30, 2021.
  
  PR:	248168

Added:
  head/sysutils/rsyncrypto/files/
  head/sysutils/rsyncrypto/files/patch-crypto.cpp   (contents, props changed)
Modified:
  head/sysutils/rsyncrypto/Makefile

Modified: head/sysutils/rsyncrypto/Makefile
==============================================================================
--- head/sysutils/rsyncrypto/Makefile	Tue Jul 28 06:22:37 2020	(r543577)
+++ head/sysutils/rsyncrypto/Makefile	Tue Jul 28 06:29:12 2020	(r543578)
@@ -25,6 +25,10 @@ PORTDOCS=	AUTHORS ChangeLog NEWS README
 
 OPTIONS_DEFINE=	DOCS
 
+post-patch:
+# Inhibit the check for RSA_get0_factors() to support older OpenSSL versions
+	@${REINPLACE_CMD} -e '/RSA_get0_factors/,+49d' ${WRKSRC}/configure
+
 post-install-DOCS-on:
 	@${MKDIR} ${STAGEDIR}${DOCSDIR}
 	${INSTALL_DATA} ${PORTDOCS:S,^,${WRKSRC}/,} ${STAGEDIR}${DOCSDIR}

Added: head/sysutils/rsyncrypto/files/patch-crypto.cpp
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sysutils/rsyncrypto/files/patch-crypto.cpp	Tue Jul 28 06:29:12 2020	(r543578)
@@ -0,0 +1,16 @@
+--- crypto.cpp.orig	2016-11-11 20:23:00 UTC
++++ crypto.cpp
+@@ -155,9 +155,13 @@ std::unique_ptr<key> decrypt_header( file_t fromfd, RS
+     unsigned char *buff=filemap.get_uc()+sizeof(HEADER_ENCRYPTION_VERSION);
+     auto_array<unsigned char> decrypted(new unsigned char[headsize]);
+ 
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
++    if( (prv->p==nullptr || prv->q==nullptr) ) {
++#else
+     const BIGNUM *p, *q;
+     RSA_get0_factors(prv, &p, &q);
+     if( (p==nullptr || q==nullptr) ) {
++#endif
+         // This is not a private key!
+         throw rscerror("Neither AES session key nor RSA private key present - cannot decrypt using only public key");
+     }



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202007280629.06S6TDpQ070032>