From owner-svn-ports-all@freebsd.org Tue Oct 27 22:09:44 2020 Return-Path: Delivered-To: svn-ports-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 99E1B45BC21; Tue, 27 Oct 2020 22:09:44 +0000 (UTC) (envelope-from feld@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4CLQqD3WWyz4H1R; Tue, 27 Oct 2020 22:09:44 +0000 (UTC) (envelope-from feld@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5BF5912549; Tue, 27 Oct 2020 22:09:44 +0000 (UTC) (envelope-from feld@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 09RM9iI1087177; Tue, 27 Oct 2020 22:09:44 GMT (envelope-from feld@FreeBSD.org) Received: (from feld@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 09RM9h6F087175; Tue, 27 Oct 2020 22:09:43 GMT (envelope-from feld@FreeBSD.org) Message-Id: <202010272209.09RM9h6F087175@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: feld set sender to feld@FreeBSD.org using -f From: Mark Felder Date: Tue, 27 Oct 2020 22:09:43 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-branches@freebsd.org Subject: svn commit: r553503 - in branches/2020Q4/security/titus: . files X-SVN-Group: ports-branches X-SVN-Commit-Author: feld X-SVN-Commit-Paths: in branches/2020Q4/security/titus: . files X-SVN-Commit-Revision: 553503 X-SVN-Commit-Repository: ports MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-all@freebsd.org X-Mailman-Version: 2.1.33 Precedence: list List-Id: SVN commit messages for the ports tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 Oct 2020 22:09:44 -0000 Author: feld Date: Tue Oct 27 22:09:43 2020 New Revision: 553503 URL: https://svnweb.freebsd.org/changeset/ports/553503 Log: MFH: r553502 security/titus: Support OpenSSL 1.1.0+ Backported patch fixes builds on FreeBSD 12 and 13 Approved by: ports-secteam (blanket) Added: branches/2020Q4/security/titus/files/patch-dh.cpp - copied unchanged from r553502, head/security/titus/files/patch-dh.cpp branches/2020Q4/security/titus/files/patch-rsa__client.cpp - copied unchanged from r553502, head/security/titus/files/patch-rsa__client.cpp Modified: branches/2020Q4/security/titus/Makefile Directory Properties: branches/2020Q4/ (props changed) Modified: branches/2020Q4/security/titus/Makefile ============================================================================== --- branches/2020Q4/security/titus/Makefile Tue Oct 27 22:08:35 2020 (r553502) +++ branches/2020Q4/security/titus/Makefile Tue Oct 27 22:09:43 2020 (r553503) @@ -3,7 +3,7 @@ PORTNAME= titus PORTVERSION= 0.3 -PORTREVISION= 5 +PORTREVISION= 6 CATEGORIES= security MAINTAINER= feld@FreeBSD.org @@ -25,11 +25,6 @@ CFLAGS+= -I${OPENSSLINC} LDFLAGS+= -L${OPENSSLLIB} .include - -.if ${SSL_DEFAULT} == base -BROKEN_FreeBSD_12= member access into incomplete type 'dh_st' -BROKEN_FreeBSD_13= member access into incomplete type 'dh_st' -.endif post-patch: ${REINPLACE_CMD} 's|/var/lib/titus/empty|/var/empty|' ${WRKSRC}/titus.conf.example Copied: branches/2020Q4/security/titus/files/patch-dh.cpp (from r553502, head/security/titus/files/patch-dh.cpp) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ branches/2020Q4/security/titus/files/patch-dh.cpp Tue Oct 27 22:09:43 2020 (r553503, copy of r553502, head/security/titus/files/patch-dh.cpp) @@ -0,0 +1,15 @@ +--- dh.cpp.orig 2015-11-28 22:51:00 UTC ++++ dh.cpp +@@ -148,11 +148,7 @@ openssl_unique_ptr make_dh (const unsigned char* p + throw Openssl_error(ERR_get_error()); + } + +- if ((dh->p = BN_bin2bn(prime, prime_len, NULL)) == NULL) { +- throw Openssl_error(ERR_get_error()); +- } +- +- if ((dh->g = BN_bin2bn(generator, generator_len, NULL)) == NULL) { ++ if (!DH_set0_pqg(dh.get(), BN_bin2bn(prime, prime_len, NULL), NULL, BN_bin2bn(generator, generator_len, NULL))) { + throw Openssl_error(ERR_get_error()); + } + Copied: branches/2020Q4/security/titus/files/patch-rsa__client.cpp (from r553502, head/security/titus/files/patch-rsa__client.cpp) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ branches/2020Q4/security/titus/files/patch-rsa__client.cpp Tue Oct 27 22:09:43 2020 (r553503, copy of r553502, head/security/titus/files/patch-rsa__client.cpp) @@ -0,0 +1,50 @@ +--- rsa_client.cpp.orig 2015-11-28 22:51:00 UTC ++++ rsa_client.cpp +@@ -85,7 +85,7 @@ int Rsa_client::rsa_private_encrypt (int flen, const u + int Rsa_client::rsa_finish (RSA* rsa) + { + delete reinterpret_cast(RSA_get_app_data(rsa)); +- if (const auto default_finish = RSA_get_default_method()->finish) { ++ if (const auto default_finish = RSA_meth_get_finish(RSA_get_default_method())) { + return (*default_finish)(rsa); + } else { + return 1; +@@ -94,14 +94,14 @@ int Rsa_client::rsa_finish (RSA* rsa) + + const RSA_METHOD* Rsa_client::get_rsa_method () + { +- static RSA_METHOD ops; +- if (!ops.rsa_priv_enc) { +- ops = *RSA_get_default_method(); +- ops.rsa_priv_enc = rsa_private_encrypt; +- ops.rsa_priv_dec = rsa_private_decrypt; +- ops.finish = rsa_finish; ++ static RSA_METHOD* ops = NULL; ++ if (ops == NULL) { ++ ops = RSA_meth_dup(RSA_get_default_method()); ++ RSA_meth_set_priv_enc(ops, rsa_private_encrypt); ++ RSA_meth_set_priv_dec(ops, rsa_private_decrypt); ++ RSA_meth_set_finish(ops, rsa_finish); + } +- return &ops; ++ return ops; + } + + openssl_unique_ptr Rsa_client::load_private_key (uintptr_t key_id, RSA* public_rsa) +@@ -111,12 +111,10 @@ openssl_unique_ptr Rsa_client::load_private_ + throw Openssl_error(ERR_get_error()); + } + +- rsa->n = BN_dup(public_rsa->n); +- if (!rsa->n) { +- throw Openssl_error(ERR_get_error()); +- } +- rsa->e = BN_dup(public_rsa->e); +- if (!rsa->e) { ++ const BIGNUM* n; ++ const BIGNUM* e; ++ RSA_get0_key(public_rsa, &n, &e, NULL); ++ if (!RSA_set0_key(rsa.get(), BN_dup(n), BN_dup(e), NULL)) { + throw Openssl_error(ERR_get_error()); + } +