net-mail/sendEmail: fix runtime w/ newer OpenSSL; verify TLS certs

* Crank up TLSv1 -> TLSv3 to support newer OpenSSL (bug #954329, similar to
  previous bug #698322)

* Verify TLS certs (https://bugs.debian.org/1041517)

Bug: https://bugs.debian.org/1041517
Bug: https://bugs.gentoo.org/698322
Closes: https://bugs.gentoo.org/954329
Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
Sam James 2025-05-11 01:16:16 +01:00
parent 9e3066af4d
commit dfa22a8d91
No known key found for this signature in database
GPG Key ID: 738409F520DF9190
3 changed files with 61 additions and 0 deletions

View File

@ -0,0 +1,12 @@
https://bugs.gentoo.org/954329 (previously https://bugs.gentoo.org/698322)
--- a/sendEmail
+++ b/sendEmail
@@ -1903,7 +1903,7 @@
if ($conf{'tls_server'} == 1 and $conf{'tls_client'} == 1 and $opt{'tls'} =~ /^(yes|auto)$/) {
printmsg("DEBUG => Starting TLS", 2);
if (SMTPchat('STARTTLS')) { quit($conf{'error'}, 1); }
- if (! IO::Socket::SSL->start_SSL($SERVER, SSL_version => 'TLSv1', SSL_verify_mode => 0x00)) {
+ if (! IO::Socket::SSL->start_SSL($SERVER, SSL_version => 'TLSv1_3', SSL_verify_mode => 0x00)) {
quit("ERROR => TLS setup failed: " . IO::Socket::SSL::errstr(), 1);
}
printmsg("DEBUG => TLS: Using cipher: ". $SERVER->get_cipher(), 3);

View File

@ -0,0 +1,16 @@
https://sources.debian.org/patches/sendemail/1.56-5.2/fix_tls_hostname_verification.patch/
https://bugs.debian.org/1041517
--- a/sendEmail
+++ b/sendEmail
@@ -1903,7 +1903,10 @@ else {
if ($conf{'tls_server'} == 1 and $conf{'tls_client'} == 1 and $opt{'tls'} =~ /^(yes|auto)$/) {
printmsg("DEBUG => Starting TLS", 2);
if (SMTPchat('STARTTLS')) { quit($conf{'error'}, 1); }
- if (! IO::Socket::SSL->start_SSL($SERVER, SSL_version => 'TLSv1_3', SSL_verify_mode => 0x00)) {
+ if (! IO::Socket::SSL->start_SSL($SERVER,
+ SSL_version => 'TLSv1_3',
+ SSL_verifycn_scheme => 'smtp',
+ SSL_verifycn_name => $conf{'server'})) {
quit("ERROR => TLS setup failed: " . IO::Socket::SSL::errstr(), 1);
}
printmsg("DEBUG => TLS: Using cipher: ". $SERVER->get_cipher(), 3);

View File

@ -0,0 +1,33 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
MY_P="${PN}-v${PV}"
DESCRIPTION="Command line based, SMTP email agent"
HOMEPAGE="http://caspian.dotconf.net/menu/Software/SendEmail/"
SRC_URI="http://caspian.dotconf.net/menu/Software/SendEmail/${MY_P}.tar.gz"
S="${WORKDIR}/${MY_P}"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~ppc ~x86"
IUSE="ssl"
RDEPEND="
dev-lang/perl
ssl? ( dev-perl/IO-Socket-SSL )
"
PATCHES=(
"${FILESDIR}"/${PV}-overzealous-version-check.patch
"${FILESDIR}"/${PV}-overzealous-verify-mode-check.patch
"${FILESDIR}"/${PV}-openssl-1.1.patch
"${FILESDIR}"/${PV}-openssl-3.patch
"${FILESDIR}"/${PV}-verify-mode.patch
)
src_install() {
dobin sendEmail
dodoc CHANGELOG README TODO
}