git: 2fbe83698d37 - main - security/openssl: Security upgrade to 3.5.9

From: Bernard Spil <brnrd_at_FreeBSD.org>
Date: Wed, 30 Sep 2026 11:40:27 UTC
The branch main has been updated by brnrd:

URL: https://cgit.FreeBSD.org/ports/commit/?id=2fbe83698d3796594948ad674220d40b112f53f5

commit 2fbe83698d3796594948ad674220d40b112f53f5
Author:     Bernard Spil <brnrd@FreeBSD.org>
AuthorDate: 2026-09-30 11:38:10 +0000
Commit:     Bernard Spil <brnrd@FreeBSD.org>
CommitDate: 2026-09-30 11:40:24 +0000

    security/openssl: Security upgrade to 3.5.9
    
    OpenSSL 3.0 is end-of-life and has known vulnerabilities.
    Upgrade port to OpenSSL 3.5 by renaming security/openssl35
    
    Security:       0d183075-bcb5-11f1-b09d-8447094a420
    MFH:            2026Q3
---
 MOVED                                              |   2 +-
 UPDATING                                           |  18 +
 security/Makefile                                  |   1 -
 security/openssl/Makefile                          |  74 ++-
 security/openssl/distinfo                          |   6 +-
 security/openssl/files/extra-patch-ktls            | 248 +++++-----
 .../openssl/files/extra-patch-util_find-doc-nits   |   2 +-
 security/openssl/files/patch-Configure             |  11 -
 .../files/patch-crypto_async_arch_async__posix.h   |  32 --
 security/openssl/files/patch-crypto_ppccap.c       |  34 --
 .../files/patch-util_perl_OpenSSL_config.pm        |  14 -
 security/openssl/pkg-message                       |  20 +-
 security/openssl/pkg-plist                         |  12 +-
 security/openssl/version.mk                        |   2 +-
 security/openssl35/Makefile                        | 203 --------
 security/openssl35/distinfo                        |   3 -
 security/openssl35/files/extra-patch-ktls          | 540 ---------------------
 .../openssl35/files/extra-patch-util_find-doc-nits |  20 -
 .../files/patch-Configurations_10-main.conf        |  35 --
 .../files/patch-crypto_threads__pthread.c          |  13 -
 security/openssl35/pkg-descr                       |  13 -
 security/openssl35/pkg-message                     |  20 -
 security/openssl35/pkg-plist                       | 285 -----------
 security/openssl35/version.mk                      |   1 -
 24 files changed, 213 insertions(+), 1396 deletions(-)

diff --git a/MOVED b/MOVED
index ff59b78087a6..0364897a40ea 100644
--- a/MOVED
+++ b/MOVED
@@ -2473,7 +2473,6 @@ devel/rubygem-google-protobuf323|devel/rubygem-google-protobuf|2023-10-11|Remove
 audio/rem||2023-10-12|Has expired: Deprecated, replaced by libre
 net/openmpi3|net/openmpi|2023-10-12|Has expired: OpenMPI 3 is not maintained by the upstream project anymore and will be removed
 graphics/tiffgt||2023-10-14|Has expired: Upstream support stopped
-security/openssl30|security/openssl|2023-10-14|Upgrade security/openssl to 3.0
 x11-fonts/gnu-unifont-ttf|x11-fonts/gnu-unifont-otf|2023-10-16|Remove obsoleted port. Use x11-fonts/gnu-unifont-otf instead
 mail/slapd-cyrus||2023-10-20|Has expired: Last upstream release was in 2013
 net/pacemaker1|net/pacemaker2|2023-10-22|Hasn't built in a long time, last upstream release was a while ago, use pacemaker2
@@ -5637,3 +5636,4 @@ graphics/py-lerc|graphics/py-pylerc|2026-09-29|Remove obsoleted port. Use graphi
 sysutils/py-azure-cli-acr|sysutils/py-azure-cli|2026-09-29|Remove obsoleted port. Use sysutils/py-azure-cli instead
 devel/rubygem-google-api-client|devel/rubygem-google-api-core|2026-09-29|Remove obsoleted port. Use devel/rubygem-google-api-core instead
 devel/rubygem-redlock1|devel/rubygem-redlock|2026-09-29|Remove obsoleted port. Use devel/rubygem-redlock instead
+security/openssl35|security/openssl|2026-09-30|Upgrade security/openssl to 3.5
diff --git a/UPDATING b/UPDATING
index 51d97a52e982..c23fbef5423e 100644
--- a/UPDATING
+++ b/UPDATING
@@ -5,6 +5,24 @@ they are unavoidable.
 You should get into the habit of checking this file for changes each time
 you update your ports collection, before attempting any port upgrades.
 
+20260930:
+  AFFECTS: users of security/openssl and security/openssl35
+  AUTHOR: brnrd@FreeBSD.org
+
+  The openssl port was renamed to openssl30 and subsequently the
+  openssl35 port was renamed to openssl.
+
+  The shared library version of OpenSSL has been bumped.
+
+  Users of DEFAULT_VERSIONS= ssl=openssl35 must update this to
+  ssl=openssl.
+  Users of DEFAULT_VERSIONS= ssl=openssl30 should not change this unless
+  they use ports that require the deprecated  OpenSSL 3.0 version with
+  its documented vulnerabilities.
+
+  You must rebuild all ports that depend on OpenSSL if you use OpenSSL
+  from ports.
+
 20260929:
   AFFECTS: users of www/mod_wsgi
   AUTHOR: michaelo@FreeBSD.org
diff --git a/security/Makefile b/security/Makefile
index 13d52b6b8152..5ef3010c4c36 100644
--- a/security/Makefile
+++ b/security/Makefile
@@ -463,7 +463,6 @@
     SUBDIR += openssl-unsafe
     SUBDIR += openssl30
     SUBDIR += openssl34
-    SUBDIR += openssl35
     SUBDIR += openssl36
     SUBDIR += openssl40
     SUBDIR += openssl41
diff --git a/security/openssl/Makefile b/security/openssl/Makefile
index 9b0376da8ff1..9da1b3dda817 100644
--- a/security/openssl/Makefile
+++ b/security/openssl/Makefile
@@ -1,5 +1,5 @@
 PORTNAME=	openssl
-PORTVERSION=	3.0.22
+PORTVERSION=	3.5.9
 PORTEPOCH=	1
 CATEGORIES=	security devel
 MASTER_SITES=	https://github.com/openssl/openssl/releases/download/${DISTNAME}/
@@ -11,13 +11,7 @@ WWW=		https://www.openssl.org/
 LICENSE=	APACHE20
 LICENSE_FILE=	${WRKSRC}/LICENSE.txt
 
-#EXPIRATION_DATE=	2026-09-07
-
-CONFLICTS_INSTALL=	boringssl libressl libressl-devel openssl[134]*
-
-USES=		cpe perl5
-USE_PERL5=	build
-TEST_TARGET=	test
+CONFLICTS_INSTALL=	boringssl libressl libressl-devel openssl[34]?
 
 HAS_CONFIGURE=	yes
 CONFIGURE_SCRIPT=	config
@@ -25,23 +19,34 @@ CONFIGURE_ENV=	PERL="${PERL}"
 CONFIGURE_ARGS=	--openssldir=${OPENSSLDIR} \
 		--prefix=${PREFIX}
 
+USES=		cpe perl5
+USE_PERL5=	build
+TEST_TARGET=	test
+
 LDFLAGS_i386=	-Wl,-znotext
 
 MAKE_ARGS+=	WHOLE_ARCHIVE_FLAG=--whole-archive CNF_LDFLAGS="${LDFLAGS}"
 MAKE_ENV+=	LIBRPATH="${PREFIX}/lib" GREP_OPTIONS=
 
-OPTIONS_GROUP=		CIPHERS HASHES MODULES OPTIMIZE PROTOCOLS
-OPTIONS_GROUP_CIPHERS=	ARIA DES GOST IDEA SM4 RC2 RC4 RC5 WEAK-SSL-CIPHERS
+OPTIONS_GROUP=		CIPHERS COMPRESSION HASHES MODULES OPTIMIZE PQC \
+			PROTOCOLS
+OPTIONS_GROUP_CIPHERS=	ARIA DES GOST IDEA SM4 RC2 RC4 RC5 TLS-DEPRECATED-EC \
+			WEAK-SSL-CIPHERS
+OPTIONS_GROUP_COMPRESSION=	BROTLI ZLIB ZSTD
 OPTIONS_GROUP_HASHES=	MD2 MD4 MDC2 RMD160 SM2 SM3
-OPTIONS_GROUP_OPTIMIZE=	ASM SSE2 THREADS
+OPTIONS_GROUP_OPTIMIZE=	ASM SSE2 THREADS THREADPOOL
+OPTIONS_GROUP_PQC=	ML-DSA ML-KEM SLH-DSA
 OPTIONS_GROUP_MODULES=	FIPS LEGACY
 OPTIONS_DEFINE_i386=	I386
-OPTIONS_GROUP_PROTOCOLS=NEXTPROTONEG SCTP SSL3 TLS1 TLS1_1 TLS1_2
+OPTIONS_GROUP_PROTOCOLS=NEXTPROTONEG QUIC SCTP SSL3 TLS1 TLS1_1 TLS1_2
+
+OPTIONS_DEFINE=	ASYNC CT FIPS-JITTER KTLS MAN3 RFC3779 SHARED
 
-OPTIONS_DEFINE=	ASYNC CT KTLS MAN3 RFC3779 SHARED ZLIB
+OPTIONS_DEFAULT=ASM ASYNC CT DES EC FIPS GOST KTLS MAN3 MD4 ML-DSA ML-KEM \
+		NEXTPROTONEG QUIC RFC3779 RC2 RC4 RMD160 SCTP SHARED SLH-DSA \
+		SSE2 THREADPOOL THREADS TLS1 TLS1_1 TLS1_2
 
-OPTIONS_DEFAULT=ASM ASYNC CT DES EC FIPS GOST KTLS MAN3 MD4 NEXTPROTONEG \
-		RFC3779 RC2 RC4 RMD160 SCTP SHARED SSE2 THREADS TLS1 TLS1_1 TLS1_2
+OPTIONS_GROUP_OPTIMIZE_amd64=	EC
 
 .if ${MACHINE_ARCH} == "amd64"
 OPTIONS_GROUP_OPTIMIZE+=	EC
@@ -53,10 +58,12 @@ ARIA_DESC=	ARIA (South Korean standard)
 ASM_DESC=	Assembler code
 ASYNC_DESC=	Asynchronous mode
 CIPHERS_DESC=	Block Cipher Support
+COMPRESSION_DESC=	Compression Support
 CT_DESC=	Certificate Transparency Support
 DES_DESC=	(Triple) Data Encryption Standard
 EC_DESC=	Optimize NIST elliptic curves
-FIPS_DESC=	Build FIPS provider
+FIPS_DESC=	Build FIPS provider (Note: NOT yet FIPS validated)
+FIPS-JITTER_DESC=	Use JITTER seed source in FIPS provider
 GOST_DESC=	GOST (Russian standard)
 HASHES_DESC=	Hash Function Support
 I386_DESC=	i386 (instead of i486+)
@@ -67,10 +74,14 @@ MAN3_DESC=	Install API manpages (section 3, 7)
 MD2_DESC=	MD2 (obsolete) (requires LEGACY)
 MD4_DESC=	MD4 (unsafe)
 MDC2_DESC=	MDC-2 (patented, requires DES)
+ML-DSA_DESC=	ML-DSA CRYSTALS-Dilithium Digital Signature Algorithm
+ML-KEM_DESC=	ML-KEM Kyber Key Encapsulation Method
 MODULES_DESC=	Provider modules
 NEXTPROTONEG_DESC=	Next Protocol Negotiation (SPDY)
 OPTIMIZE_DESC=	Optimizations
+PQC_DESC=	Post-Quantum Cryptography
 PROTOCOLS_DESC=	Protocol Support
+QUIC_DESC=	HTTP/3
 RC2_DESC=	RC2 (unsafe)
 RC4_DESC=	RC4 (unsafe)
 RC5_DESC=	RC5 (patented)
@@ -78,37 +89,46 @@ RMD160_DESC=	RIPEMD-160
 RFC3779_DESC=	RFC3779 support (BGP)
 SCTP_DESC=	SCTP (Stream Control Transmission)
 SHARED_DESC=	Build shared libraries
+SLH-DSA_DESC=	SLH-DSA Sphinx+ Digital Signature Algorithm
 SM2_DESC=	SM2 Elliptic Curve DH (Chinese standard)
 SM3_DESC=	SM3 256bit (Chinese standard)
 SM4_DESC=	SM4 128bit (Chinese standard)
 SSE2_DESC=	Runtime SSE2 detection
 SSL3_DESC=	SSLv3 (unsafe)
+TLS-DEPRECATED-EC_DESC=	Deprecated elliptic curve groups in TLS (unsafe)
 TLS1_DESC=	TLSv1.0 (requires TLS1_1, TLS1_2)
 TLS1_1_DESC=	TLSv1.1 (requires TLS1_2)
 TLS1_2_DESC=	TLSv1.2
+THREADPOOL_DESC=Thread Pooling support
 WEAK-SSL-CIPHERS_DESC=	Weak cipher support (unsafe)
 
 # Upstream default disabled options
-.for _option in fips md2 ktls rc5 sctp ssl3 weak-ssl-ciphers zlib
+.for _option in brotli fips fips-jitter md2 ktls rc5 sctp ssl3 weak-ssl-ciphers zlib zstd
 ${_option:tu}_CONFIGURE_ON=	enable-${_option}
 .endfor
 
 # Upstream default enabled options
-.for _option in aria asm async ct des gost idea md4 mdc2 legacy \
-	nextprotoneg rc2 rc4 rfc3779 rmd160 shared sm2 sm3 sm4 sse2 \
-	threads tls1 tls1_1 tls1_2
+.for _option in aria asm async ct des gost idea md4 mdc2 ml-kem ml-dsa \
+	legacy nextprotoneg quic rc2 rc4 rfc3779 rmd160 shared slh-dsa \
+	sm2 sm3 sm4 sse2 threads tls-deprecated-ec tls1 tls1_1 tls1_2
 ${_option:tu}_CONFIGURE_OFF=	no-${_option}
 .endfor
 
+FIPS-JITTER_IMPLIES=	FIPS
 MD2_IMPLIES=	LEGACY
 MDC2_IMPLIES=	DES
 TLS1_IMPLIES=	TLS1_1
 TLS1_1_IMPLIES=	TLS1_2
 
+BROTLI_CFLAGS=		-I${PREFIX}/include
+BROTLI_CONFIGURE_ON=	enable-brotli-dynamic
+BROTLI_LIB_DEPENDS=	libbrotlicommon.so:archivers/brotli
 EC_CONFIGURE_ON=	enable-ec_nistp_64_gcc_128
 FIPS_VARS=		shlibs+=lib/ossl-modules/fips.so
 I386_CONFIGURE_ON=	386
-KTLS_EXTRA_PATCHES=	${FILESDIR}/extra-patch-ktls
+FIPS-JITTER_CFLAGS=	-I${PREFIX}/include
+FIPS-JITTER_LDFLAGS=	-L${PREFIX}/lib
+FIPS-JITTER_BUILD_DEPENDS=	${LOCALBASE}/lib/libjitterentropy.a:devel/libjitterentropy
 LEGACY_VARS=		shlibs+=lib/ossl-modules/legacy.so
 MAN3_EXTRA_PATCHES_OFF=	${FILESDIR}/extra-patch-util_find-doc-nits
 SHARED_MAKE_ENV=	SHLIBVER=${OPENSSL_SHLIBVER}
@@ -119,12 +139,16 @@ SHARED_VARS=		shlibs+="lib/libcrypto.so.${OPENSSL_SHLIBVER} \
 				lib/engines-${OPENSSL_SHLIBVER}/capi.so \
 				lib/engines-${OPENSSL_SHLIBVER}/devcrypto.so \
 				lib/engines-${OPENSSL_SHLIBVER}/padlock.so"
-SSL3_CONFIGURE_ON+=	enable-ssl3-method
+SSL3_CONFIGURE_ON=	enable-ssl3 enable-ssl3-method
+THREADPOOL_CONFIGURE_OFF=	no-thread-pool
 ZLIB_CONFIGURE_ON=	zlib-dynamic
+ZSTD_CFLAGS=		-I${PREFIX}/include
+ZSTD_CONFIGURE_ON=	enable-zstd-dynamic
+ZSTD_LIB_DEPENDS=	libzstd.so:archivers/zstd
 
 SHLIBS=			lib/engines-${OPENSSL_SHLIBVER}/loader_attic.so
 
-PORTSCOUT=		limit:^${PORTVERSION:R:S/./\./g}\.
+PORTSCOUT=		limit:^${DISTVERSION:R:S/./\./g}\.
 
 .include <bsd.port.options.mk>
 
@@ -173,7 +197,7 @@ post-install:
 	${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/openssl
 
 post-install-MAN3-on:
-	( cd ${STAGEDIR}/${PREFIX} ; ${FIND} share/man/man3 -not -type d ; \
-		${FIND} share/man/man7 -not -type d ) | ${SED} 's/$$/.gz/' >> ${TMPPLIST}
+	( cd ${STAGEDIR}/${PREFIX} ; find share/man/man3 -not -type d ; \
+		find share/man/man7 -not -type d ) | sed 's/$$/.gz/' >> ${TMPPLIST}
 
 .include <bsd.port.post.mk>
diff --git a/security/openssl/distinfo b/security/openssl/distinfo
index 4050bedd4c0b..d4581f4d8634 100644
--- a/security/openssl/distinfo
+++ b/security/openssl/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1787680996
-SHA256 (openssl-3.0.22.tar.gz) = 67ebca7e50d17383028045486653492195b83db95f8558709701bb47b5c1ef81
-SIZE (openssl-3.0.22.tar.gz) = 15330396
+TIMESTAMP = 1790763191
+SHA256 (openssl-3.5.9.tar.gz) = 603f5602e2eef00d77fbd429d34dcd5822bb301757a1bc9cdb24c670f1eb859a
+SIZE (openssl-3.5.9.tar.gz) = 53279637
diff --git a/security/openssl/files/extra-patch-ktls b/security/openssl/files/extra-patch-ktls
index 48a5dd43a972..8a46c272d95c 100644
--- a/security/openssl/files/extra-patch-ktls
+++ b/security/openssl/files/extra-patch-ktls
@@ -3,14 +3,14 @@ index 95492fd065..3c82cae26b 100644
 --- include/internal/ktls.h
 +++ include/internal/ktls.h
 @@ -40,6 +40,11 @@
- #define OPENSSL_KTLS_AES_GCM_128
- #define OPENSSL_KTLS_AES_GCM_256
- #define OPENSSL_KTLS_TLS13
-+#ifdef TLS_CHACHA20_IV_LEN
-+# ifndef OPENSSL_NO_CHACHA
-+#  define OPENSSL_KTLS_CHACHA20_POLY1305
-+# endif
-+#endif
+ #   define OPENSSL_KTLS_AES_GCM_128
+ #   define OPENSSL_KTLS_AES_GCM_256
+ #   define OPENSSL_KTLS_TLS13
++#   ifdef TLS_CHACHA20_IV_LEN
++#    ifndef OPENSSL_NO_CHACHA
++#     define OPENSSL_KTLS_CHACHA20_POLY1305
++#    endif
++#   endif
  
  typedef struct tls_enable ktls_crypto_info_t;
  
@@ -103,11 +103,11 @@ index 79d980959e..e343d382cc 100644
  /* Function to configure kernel TLS structure */
 -int ktls_configure_crypto(const SSL *s, const EVP_CIPHER *c, EVP_CIPHER_CTX *dd,
 +int ktls_configure_crypto(SSL *s, const EVP_CIPHER *c, EVP_CIPHER_CTX *dd,
-     void *rl_sequence, ktls_crypto_info_t *crypto_info,
--    unsigned char **rec_seq, unsigned char *iv,
-+    int is_tx, unsigned char *iv,
-     unsigned char *key, unsigned char *mac_key,
-     size_t mac_secret_size)
+                           void *rl_sequence, ktls_crypto_info_t *crypto_info,
+-                          unsigned char **rec_seq, unsigned char *iv,
++                          int is_tx, unsigned char *iv,
+                           unsigned char *key, unsigned char *mac_key,
+                           size_t mac_secret_size)
  {
 @@ -71,6 +136,12 @@ int ktls_configure_crypto(const SSL *s, const EVP_CIPHER *c, EVP_CIPHER_CTX *dd,
          else
@@ -124,31 +124,31 @@ index 79d980959e..e343d382cc 100644
          switch (s->s3.tmp.new_cipher->algorithm_mac) {
 @@ -101,11 +172,11 @@ int ktls_configure_crypto(const SSL *s, const EVP_CIPHER *c, EVP_CIPHER_CTX *dd,
      crypto_info->tls_vminor = (s->version & 0x000000ff);
- #ifdef TCP_RXTLS_ENABLE
+ # ifdef TCP_RXTLS_ENABLE
      memcpy(crypto_info->rec_seq, rl_sequence, sizeof(crypto_info->rec_seq));
 -    if (rec_seq != NULL)
 -        *rec_seq = crypto_info->rec_seq;
 +    if (!is_tx && !check_rx_read_ahead(s, crypto_info->rec_seq))
 +        return 0;
- #else
+ # else
 -    if (rec_seq != NULL)
 -        *rec_seq = NULL;
 +    if (!is_tx)
 +        return 0;
- #endif
+ # endif
      return 1;
  };
-@@ -154,15 +227,20 @@ int ktls_check_supported_cipher(const SSL *s, const EV
+@@ -154,15 +225,20 @@ int ktls_check_supported_cipher(const SSL *s, const EVP_CIPHER *c,
  }
  
  /* Function to configure kernel TLS structure */
 -int ktls_configure_crypto(const SSL *s, const EVP_CIPHER *c, EVP_CIPHER_CTX *dd,
 +int ktls_configure_crypto(SSL *s, const EVP_CIPHER *c, EVP_CIPHER_CTX *dd,
-     void *rl_sequence, ktls_crypto_info_t *crypto_info,
--    unsigned char **rec_seq, unsigned char *iv,
-+    int is_tx, unsigned char *iv,
-     unsigned char *key, unsigned char *mac_key,
-     size_t mac_secret_size)
+                           void *rl_sequence, ktls_crypto_info_t *crypto_info,
+-                          unsigned char **rec_seq, unsigned char *iv,
++                          int is_tx, unsigned char *iv,
+                           unsigned char *key, unsigned char *mac_key,
+                           size_t mac_secret_size)
  {
      unsigned char geniv[12];
      unsigned char *iiv = iv;
@@ -158,60 +158,60 @@ index 79d980959e..e343d382cc 100644
 +        return 0;
 +# endif
 +
-     if (s->version == TLS1_2_VERSION && EVP_CIPHER_get_mode(c) == EVP_CIPH_GCM_MODE) {
+     if (s->version == TLS1_2_VERSION &&
+         EVP_CIPHER_get_mode(c) == EVP_CIPH_GCM_MODE) {
          if (!EVP_CIPHER_CTX_get_updated_iv(dd, geniv,
-                 EVP_GCM_TLS_FIXED_IV_LEN
-@@ -186,8 +262,8 @@ int ktls_configure_crypto(const SSL *s, const EVP_CIPH
+@@ -186,8 +262,8 @@ int ktls_configure_crypto(const SSL *s, const EVP_CIPHER *c, EVP_CIPHER_CTX *dd,
          memcpy(crypto_info->gcm128.key, key, EVP_CIPHER_get_key_length(c));
          memcpy(crypto_info->gcm128.rec_seq, rl_sequence,
-             TLS_CIPHER_AES_GCM_128_REC_SEQ_SIZE);
+                TLS_CIPHER_AES_GCM_128_REC_SEQ_SIZE);
 -        if (rec_seq != NULL)
 -            *rec_seq = crypto_info->gcm128.rec_seq;
 +        if (!is_tx && !check_rx_read_ahead(s, crypto_info->gcm128.rec_seq))
 +            return 0;
          return 1;
- #endif
- #ifdef OPENSSL_KTLS_AES_GCM_256
-@@ -201,8 +277,8 @@ int ktls_configure_crypto(const SSL *s, const EVP_CIPH
+ # endif
+ # ifdef OPENSSL_KTLS_AES_GCM_256
+@@ -201,8 +277,8 @@ int ktls_configure_crypto(const SSL *s, const EVP_CIPHER *c, EVP_CIPHER_CTX *dd,
          memcpy(crypto_info->gcm256.key, key, EVP_CIPHER_get_key_length(c));
          memcpy(crypto_info->gcm256.rec_seq, rl_sequence,
-             TLS_CIPHER_AES_GCM_256_REC_SEQ_SIZE);
+                TLS_CIPHER_AES_GCM_256_REC_SEQ_SIZE);
 -        if (rec_seq != NULL)
 -            *rec_seq = crypto_info->gcm256.rec_seq;
-+        if (!is_tx && !check_rx_read_ahead(s, crypto_info->ccm128.rec_seq))
++        if (!is_tx && !check_rx_read_ahead(s, crypto_info->gcm256.rec_seq))
 +            return 0;
          return 1;
- #endif
- #ifdef OPENSSL_KTLS_AES_CCM_128
-@@ -216,8 +292,8 @@ int ktls_configure_crypto(const SSL *s, const EVP_CIPH
+ # endif
+ # ifdef OPENSSL_KTLS_AES_CCM_128
+@@ -216,8 +292,8 @@ int ktls_configure_crypto(const SSL *s, const EVP_CIPHER *c, EVP_CIPHER_CTX *dd,
          memcpy(crypto_info->ccm128.key, key, EVP_CIPHER_get_key_length(c));
          memcpy(crypto_info->ccm128.rec_seq, rl_sequence,
-             TLS_CIPHER_AES_CCM_128_REC_SEQ_SIZE);
+                TLS_CIPHER_AES_CCM_128_REC_SEQ_SIZE);
 -        if (rec_seq != NULL)
 -            *rec_seq = crypto_info->ccm128.rec_seq;
 +        if (!is_tx && !check_rx_read_ahead(s, crypto_info->ccm128.rec_seq))
 +            return 0;
          return 1;
- #endif
- #ifdef OPENSSL_KTLS_CHACHA20_POLY1305
-@@ -231,7 +309,11 @@ int ktls_configure_crypto(const SSL *s, const EVP_CIPH
-             TLS_CIPHER_CHACHA20_POLY1305_REC_SEQ_SIZE);
-         if (rec_seq != NULL)
-             *rec_seq = crypto_info->chacha20poly1305.rec_seq;
--        return 1;
+ # endif
+ # ifdef OPENSSL_KTLS_CHACHA20_POLY1305
+@@ -231,8 +307,10 @@ int ktls_configure_crypto(const SSL *s, const EVP_CIPHER *c, EVP_CIPHER_CTX *dd,
+                EVP_CIPHER_get_key_length(c));
+         memcpy(crypto_info->chacha20poly1305.rec_seq, rl_sequence,
+                TLS_CIPHER_CHACHA20_POLY1305_REC_SEQ_SIZE);
+-        if (rec_seq != NULL)
+-            *rec_seq = crypto_info->chacha20poly1305.rec_seq;
 +        if (!is_tx
 +                && !check_rx_read_ahead(s,
 +                                        crypto_info->chacha20poly1305.rec_seq))
 +            return 0;
-+        return 1;
- #endif
+         return 1;
+ # endif
      default:
-         return 0;
 diff --git ssl/record/ssl3_record.c ssl/record/ssl3_record.c
 index d8ef018741..63caac080f 100644
 --- ssl/record/ssl3_record.c
 +++ ssl/record/ssl3_record.c
-@@ -186,18 +186,23 @@ int ssl3_get_record(SSL *s)
+@@ -185,18 +185,23 @@ int ssl3_get_record(SSL *s)
      int imac_size;
      size_t num_recs = 0, max_recs, j;
      PACKET pkt, sslv2pkt;
@@ -237,7 +237,7 @@ index d8ef018741..63caac080f 100644
      do {
          thisrr = &rr[num_recs];
  
-@@ -357,7 +362,9 @@ int ssl3_get_record(SSL *s)
+@@ -361,7 +366,9 @@ int ssl3_get_record(SSL *s)
                      }
                  }
  
@@ -246,9 +246,9 @@ index d8ef018741..63caac080f 100644
 +                        && s->enc_read_ctx != NULL
 +                        && !using_ktls) {
                      if (thisrr->type != SSL3_RT_APPLICATION_DATA
-                         && (thisrr->type != SSL3_RT_CHANGE_CIPHER_SPEC
-                             || !SSL_IS_FIRST_HANDSHAKE(s))
-@@ -386,7 +393,13 @@ int ssl3_get_record(SSL *s)
+                             && (thisrr->type != SSL3_RT_CHANGE_CIPHER_SPEC
+                                 || !SSL_IS_FIRST_HANDSHAKE(s))
+@@ -391,7 +398,13 @@ int ssl3_get_record(SSL *s)
          }
  
          if (SSL_IS_TLS13(s)) {
@@ -261,9 +261,9 @@ index d8ef018741..63caac080f 100644
 +
 +            if (thisrr->length > len) {
                  SSLfatal(s, SSL_AD_RECORD_OVERFLOW,
-                     SSL_R_ENCRYPTED_LENGTH_TOO_LONG);
+                          SSL_R_ENCRYPTED_LENGTH_TOO_LONG);
                  return -1;
-@@ -404,7 +417,7 @@ int ssl3_get_record(SSL *s)
+@@ -409,7 +422,7 @@ int ssl3_get_record(SSL *s)
  #endif
  
              /* KTLS may use all of the buffer */
@@ -272,7 +272,7 @@ index d8ef018741..63caac080f 100644
                  len = SSL3_BUFFER_get_left(rbuf);
  
              if (thisrr->length > len) {
-@@ -512,11 +525,7 @@ int ssl3_get_record(SSL *s)
+@@ -518,11 +531,7 @@ int ssl3_get_record(SSL *s)
          return 1;
      }
  
@@ -285,10 +285,10 @@ index d8ef018741..63caac080f 100644
          goto skip_decryption;
  
      if (s->read_hash != NULL) {
-@@ -684,21 +693,29 @@ skip_decryption:
+@@ -677,21 +686,29 @@ int ssl3_get_record(SSL *s)
          if (SSL_IS_TLS13(s)
-             && s->enc_read_ctx != NULL
-             && thisrr->type != SSL3_RT_ALERT) {
+                 && s->enc_read_ctx != NULL
+                 && thisrr->type != SSL3_RT_ALERT) {
 -            size_t end;
 +            /*
 +             * The following logic are irrelevant in KTLS: the kernel provides
@@ -298,16 +298,17 @@ index d8ef018741..63caac080f 100644
 +             */
 +            if (!using_ktls) {
 +                size_t end;
+ 
+-            if (thisrr->length == 0
+-                    || thisrr->type != SSL3_RT_APPLICATION_DATA) {
+-                SSLfatal(s, SSL_AD_UNEXPECTED_MESSAGE, SSL_R_BAD_RECORD_TYPE);
+-                goto end;
 +                if (thisrr->length == 0
 +                        || thisrr->type != SSL3_RT_APPLICATION_DATA) {
 +                    SSLfatal(s, SSL_AD_UNEXPECTED_MESSAGE, SSL_R_BAD_RECORD_TYPE);
 +                    goto end;
 +                }
- 
--            if (thisrr->length == 0
--                || thisrr->type != SSL3_RT_APPLICATION_DATA) {
--                SSLfatal(s, SSL_AD_UNEXPECTED_MESSAGE, SSL_R_BAD_RECORD_TYPE);
--                goto end;
++
 +                /* Strip trailing padding */
 +                for (end = thisrr->length - 1; end > 0 && thisrr->data[end] == 0;
 +                     end--)
@@ -316,71 +317,69 @@ index d8ef018741..63caac080f 100644
 +                thisrr->length = end;
 +                thisrr->type = thisrr->data[end];
              }
- 
+-
 -            /* Strip trailing padding */
 -            for (end = thisrr->length - 1; end > 0 && thisrr->data[end] == 0;
--                end--)
+-                 end--)
 -                continue;
 -
 -            thisrr->length = end;
 -            thisrr->type = thisrr->data[end];
              if (thisrr->type != SSL3_RT_APPLICATION_DATA
-                 && thisrr->type != SSL3_RT_ALERT
-                 && thisrr->type != SSL3_RT_HANDSHAKE) {
-@@ -707,7 +724,7 @@ skip_decryption:
+                     && thisrr->type != SSL3_RT_ALERT
+                     && thisrr->type != SSL3_RT_HANDSHAKE) {
+@@ -700,7 +717,7 @@ int ssl3_get_record(SSL *s)
              }
              if (s->msg_callback)
                  s->msg_callback(0, s->version, SSL3_RT_INNER_CONTENT_TYPE,
--                    &thisrr->data[end], 1, s, s->msg_callback_arg);
-+                    &thisrr->type, 1, s, s->msg_callback_arg);
+-                                &thisrr->data[end], 1, s, s->msg_callback_arg);
++                                &thisrr->type, 1, s, s->msg_callback_arg);
          }
  
          /*
-@@ -730,9 +747,8 @@ skip_decryption:
+@@ -723,8 +740,7 @@ int ssl3_get_record(SSL *s)
           * Therefore we have to rely on KTLS to check the plaintext length
           * limit in the kernel.
           */
 -        if (thisrr->length > SSL3_RT_MAX_PLAIN_LENGTH
--            && (!BIO_get_ktls_recv(s->rbio) || is_ktls_left)) {
--            SSLfatal(s, SSL_AD_RECORD_OVERFLOW, SSL_R_DATA_LENGTH_TOO_LONG);
+-                && (!BIO_get_ktls_recv(s->rbio) || is_ktls_left)) {
 +        if (thisrr->length > SSL3_RT_MAX_PLAIN_LENGTH && !using_ktls) {
-+            SSLfatal(s, SSL_AD_RECORD_OVERFLOW, SSL_R_DATA_LENGTH_TOO_LONG);
+             SSLfatal(s, SSL_AD_RECORD_OVERFLOW, SSL_R_DATA_LENGTH_TOO_LONG);
              goto end;
          }
- 
 diff --git ssl/ssl_local.h ssl/ssl_local.h
 index 5471e900b8..79ced2f468 100644
 --- ssl/ssl_local.h
 +++ ssl/ssl_local.h
-@@ -2774,9 +2774,9 @@ int ktls_check_supported_cipher(const SSL *s, const EV
+@@ -2760,9 +2760,9 @@ __owur int ssl_log_secret(SSL *ssl, const char *label,
  /* ktls.c */
  int ktls_check_supported_cipher(const SSL *s, const EVP_CIPHER *c,
-     const EVP_CIPHER_CTX *dd);
+                                 const EVP_CIPHER_CTX *dd);
 -int ktls_configure_crypto(const SSL *s, const EVP_CIPHER *c, EVP_CIPHER_CTX *dd,
 +int ktls_configure_crypto(SSL *s, const EVP_CIPHER *c, EVP_CIPHER_CTX *dd,
-     void *rl_sequence, ktls_crypto_info_t *crypto_info,
--    unsigned char **rec_seq, unsigned char *iv,
-+    int is_tx, unsigned char *iv,
-     unsigned char *key, unsigned char *mac_key,
-     size_t mac_secret_size);
- #endif
+                           void *rl_sequence, ktls_crypto_info_t *crypto_info,
+-                          unsigned char **rec_seq, unsigned char *iv,
++                          int is_tx, unsigned char *iv,
+                           unsigned char *key, unsigned char *mac_key,
+                           size_t mac_secret_size);
+ #  endif
 diff --git ssl/t1_enc.c ssl/t1_enc.c
 index 237a19cd93..900ba14fbd 100644
 --- ssl/t1_enc.c
 +++ ssl/t1_enc.c
-@@ -98,41 +98,6 @@ static int tls1_generate_key_block(SSL *s, unsigned ch
+@@ -98,42 +98,6 @@ static int tls1_generate_key_block(SSL *s, unsigned char *km, size_t num)
      return ret;
  }
-
+ 
 -#ifndef OPENSSL_NO_KTLS
--/*
-- * Count the number of records that were not processed yet from record boundary.
-- *
-- * This function assumes that there are only fully formed records read in the
-- * record layer. If read_ahead is enabled, then this might be false and this
-- * function will fail.
-- */
--#ifndef OPENSSL_NO_KTLS_RX
+- /*
+-  * Count the number of records that were not processed yet from record boundary.
+-  *
+-  * This function assumes that there are only fully formed records read in the
+-  * record layer. If read_ahead is enabled, then this might be false and this
+-  * function will fail.
+-  */
+-# ifndef OPENSSL_NO_KTLS_RX
 -static int count_unprocessed_records(SSL *s)
 -{
 -    SSL3_BUFFER *rbuf = RECORD_LAYER_get_rbuf(&s->rlayer);
@@ -404,35 +403,39 @@ index 237a19cd93..900ba14fbd 100644
 -
 -    return count;
 -}
+-# endif
 -#endif
--#endif
+-
 -
  int tls_provider_set_tls_params(SSL *s, EVP_CIPHER_CTX *ctx,
-     const EVP_CIPHER *ciph,
-     const EVP_MD *md)
-@@ -199,12 +164,7 @@ int tls1_change_cipher_state(SSL *s, int which)
+                                 const EVP_CIPHER *ciph,
+                                 const EVP_MD *md)
+@@ -201,12 +165,7 @@ int tls1_change_cipher_state(SSL *s, int which)
      int reuse_dd = 0;
  #ifndef OPENSSL_NO_KTLS
      ktls_crypto_info_t crypto_info;
 -    unsigned char *rec_seq;
      void *rl_sequence;
--#ifndef OPENSSL_NO_KTLS_RX
+-# ifndef OPENSSL_NO_KTLS_RX
 -    int count_unprocessed;
 -    int bit;
--#endif
+-# endif
      BIO *bio;
  #endif
-
-@@ -478,29 +438,10 @@ int tls1_change_cipher_state(SSL *s, int which)
+ 
+@@ -473,30 +432,11 @@ int tls1_change_cipher_state(SSL *s, int which)
      else
          rl_sequence = RECORD_LAYER_get_read_sequence(&s->rlayer);
-
+ 
 -    if (!ktls_configure_crypto(s, c, dd, rl_sequence, &crypto_info, &rec_seq,
--            iv, key, ms, *mac_secret_size))
--        goto skip_ktls;
--
+-                               iv, key, ms, *mac_secret_size))
++    if (!ktls_configure_crypto(s, c, dd, rl_sequence, &crypto_info,
++                               which & SSL3_CC_WRITE, iv, key, ms,
++                               *mac_secret_size))
+         goto skip_ktls;
+ 
 -    if (which & SSL3_CC_READ) {
--#ifndef OPENSSL_NO_KTLS_RX
+-# ifndef OPENSSL_NO_KTLS_RX
 -        count_unprocessed = count_unprocessed_records(s);
 -        if (count_unprocessed < 0)
 -            goto skip_ktls;
@@ -446,17 +449,14 @@ index 237a19cd93..900ba14fbd 100644
 -            }
 -            count_unprocessed--;
 -        }
--#else
+-# else
 -        goto skip_ktls;
--#endif
+-# endif
 -    }
-+    if (!ktls_configure_crypto(s, c, dd, rl_sequence, &crypto_info,
-+            which & SSL3_CC_WRITE, iv, key, ms,
-+            *mac_secret_size))
-+      goto skip_ktls;
-
+-
      /* ktls works with user provided buffers directly */
      if (BIO_set_ktls(bio, &crypto_info, which & SSL3_CC_WRITE)) {
+         if (which & SSL3_CC_WRITE)
 diff --git ssl/tls13_enc.c ssl/tls13_enc.c
 index 12388922e3..eaab0e2a74 100644
 --- ssl/tls13_enc.c
@@ -469,16 +469,16 @@ index 12388922e3..eaab0e2a74 100644
      BIO *bio;
  #endif
  
-@@ -690,8 +691,7 @@ int tls13_change_cipher_state(SSL *s, int which)
+@@ -688,8 +689,7 @@ int tls13_change_cipher_state(SSL *s, int which)
          s->statem.enc_write_state = ENC_WRITE_STATE_VALID;
  #ifndef OPENSSL_NO_KTLS
- #if defined(OPENSSL_KTLS_TLS13)
+ # if defined(OPENSSL_KTLS_TLS13)
 -    if (!(which & SSL3_CC_WRITE)
--        || !(which & SSL3_CC_APPLICATION)
+-            || !(which & SSL3_CC_APPLICATION)
 +    if (!(which & SSL3_CC_APPLICATION)
-         || (s->options & SSL_OP_ENABLE_KTLS) == 0)
+             || (s->options & SSL_OP_ENABLE_KTLS) == 0)
          goto skip_ktls;
-
+ 
 @@ -705,7 +705,10 @@ int tls13_change_cipher_state(SSL *s, int which)
      if (!ktls_check_supported_cipher(s, cipher, ciph_ctx))
          goto skip_ktls;
@@ -491,21 +491,21 @@ index 12388922e3..eaab0e2a74 100644
  
      if (!ossl_assert(bio != NULL)) {
          SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR);
-@@ -715,18 +718,26 @@ int tls13_change_cipher_state(SSL *s, int which)
+@@ -713,18 +716,26 @@ int tls13_change_cipher_state(SSL *s, int which)
      }
-
+ 
      /* All future data will get encrypted by ktls. Flush the BIO or skip ktls */
 -    if (BIO_flush(bio) <= 0)
 -        goto skip_ktls;
 +    if (which & SSL3_CC_WRITE) {
-+       if (BIO_flush(bio) <= 0)
++        if (BIO_flush(bio) <= 0)
 +            goto skip_ktls;
 +    }
-
+ 
      /* configure kernel crypto structure */
 -    if (!ktls_configure_crypto(s, cipher, ciph_ctx,
--            RECORD_LAYER_get_write_sequence(&s->rlayer),
--            &crypto_info, NULL, iv, key, NULL, 0))
+-                               RECORD_LAYER_get_write_sequence(&s->rlayer),
+-                               &crypto_info, NULL, iv, key, NULL, 0))
 +    if (which & SSL3_CC_WRITE)
 +        rl_sequence = RECORD_LAYER_get_write_sequence(&s->rlayer);
 +    else
@@ -514,7 +514,7 @@ index 12388922e3..eaab0e2a74 100644
 +    if (!ktls_configure_crypto(s, cipher, ciph_ctx, rl_sequence, &crypto_info,
 +                               which & SSL3_CC_WRITE, iv, key, NULL, 0))
          goto skip_ktls;
-
+ 
      /* ktls works with user provided buffers directly */
 -    if (BIO_set_ktls(bio, &crypto_info, which & SSL3_CC_WRITE))
 -        ssl3_release_write_buffer(s);
@@ -523,7 +523,7 @@ index 12388922e3..eaab0e2a74 100644
 +            ssl3_release_write_buffer(s);
 +    }
  skip_ktls:
- #endif
+ # endif
  #endif
 diff --git test/sslapitest.c test/sslapitest.c
 index 2911d6e94b..faf2eec2bc 100644
diff --git a/security/openssl/files/extra-patch-util_find-doc-nits b/security/openssl/files/extra-patch-util_find-doc-nits
index e4fc20a06252..bf70e9fee1ac 100644
--- a/security/openssl/files/extra-patch-util_find-doc-nits
+++ b/security/openssl/files/extra-patch-util_find-doc-nits
@@ -1,4 +1,4 @@
---- util/find-doc-nits.orig	2023-08-01 13:47:24 UTC
+--- util/find-doc-nits.orig	2023-09-07 09:00:22 UTC
 +++ util/find-doc-nits
 @@ -80,7 +80,7 @@ my $temp = '/tmp/docnits.txt';
  my $OUT;
diff --git a/security/openssl/files/patch-Configure b/security/openssl/files/patch-Configure
deleted file mode 100644
index c26823c674f3..000000000000
--- a/security/openssl/files/patch-Configure
+++ /dev/null
@@ -1,11 +0,0 @@
---- Configure.orig	2022-04-12 16:30:34 UTC
-+++ Configure
-@@ -1549,7 +1549,7 @@ my %predefined_CXX = $config{CXX}
- 
- unless ($disabled{asm}) {
-     # big endian systems can use ELFv2 ABI
--    if ($target eq "linux-ppc64") {
-+    if ($target eq "linux-ppc64" || $target eq "BSD-ppc64") {
-         $target{perlasm_scheme} = "linux64v2" if ($predefined_C{_CALL_ELF} == 2);
-     }
- }
diff --git a/security/openssl/files/patch-crypto_async_arch_async__posix.h b/security/openssl/files/patch-crypto_async_arch_async__posix.h
deleted file mode 100644
index 8690f951fa42..000000000000
--- a/security/openssl/files/patch-crypto_async_arch_async__posix.h
+++ /dev/null
@@ -1,32 +0,0 @@
-commit e883812f463c1623249e038698ccaddf2baa34d8
-Author: Warner Losh <imp@FreeBSD.org>
-Date:   Mon Mar 18 19:48:22 2024 -0600
-
-    posix_async: FreeBSD also defines {make|swap|get|set}context
-
-    FreeBSD also defines {make|swap|get|set}context for backward
-    compatibility, despite also exposing POSIX_VERSION 200809L
-    in FreeBSD 15-current.
-
-    Note: There's no fallback for POSIX_VERSION 200809 without these
-    routines, so maybe that should be a #error? ... But that's a questionf
-    or upstream.
-
-    FreeBSD has defined these interfaces since FreeBSD 4.7, released over 20
-    years ago, so no further nuance in FreeBSD version number is necessary.
-
-    Pull Request:           https://github.com/openssl/openssl/pull/23885
-
-diff --git a/crypto/async/arch/async_posix.h b/crypto/async/arch/async_posix.h
-index a17c6b8e68af..2d97ec3acc9b 100644
---- crypto/async/arch/async_posix.h
-+++ crypto/async/arch/async_posix.h
-@@ -19,7 +19,7 @@
- #include <unistd.h>
- 
- #if _POSIX_VERSION >= 200112L \
--    && (_POSIX_VERSION < 200809L || defined(__GLIBC__))
-+    && (_POSIX_VERSION < 200809L || defined(__GLIBC__) || defined(__FreeBSD__))
- 
- #include <pthread.h>
- 
diff --git a/security/openssl/files/patch-crypto_ppccap.c b/security/openssl/files/patch-crypto_ppccap.c
deleted file mode 100644
index 6783e0b13c2d..000000000000
--- a/security/openssl/files/patch-crypto_ppccap.c
+++ /dev/null
@@ -1,34 +0,0 @@
---- crypto/ppccap.c.orig	2022-04-12 16:31:27 UTC
-+++ crypto/ppccap.c
-@@ -117,14 +117,18 @@ static unsigned long getauxval(unsigned long key)
- #endif
- 
- /* I wish <sys/auxv.h> was universally available */
--#define HWCAP 16 /* AT_HWCAP */
-+#ifndef AT_HWCAP
-+# define AT_HWCAP 16 /* AT_HWCAP */
-+#endif
- #define HWCAP_PPC64 (1U << 30)
- #define HWCAP_ALTIVEC (1U << 28)
- #define HWCAP_FPU (1U << 27)
- #define HWCAP_POWER6_EXT (1U << 9)
- #define HWCAP_VSX (1U << 7)
- 
--#define HWCAP2 26 /* AT_HWCAP2 */
-+#ifndef AT_HWCAP2
-+#define AT_HWCAP2 26 /* AT_HWCAP2 */
-+#endif
- #define HWCAP_VEC_CRYPTO (1U << 25)
- #define HWCAP_ARCH_3_00 (1U << 23)
- 
-@@ -215,8 +219,8 @@ void OPENSSL_cpuid_setup(void)
- 
- #ifdef OSSL_IMPLEMENT_GETAUXVAL
-     {
--        unsigned long hwcap = getauxval(HWCAP);
--        unsigned long hwcap2 = getauxval(HWCAP2);
-+        unsigned long hwcap = getauxval(AT_HWCAP);
-+        unsigned long hwcap2 = getauxval(AT_HWCAP2);
- 
-         if (hwcap & HWCAP_FPU) {
-             OPENSSL_ppccap_P |= PPC_FPU;
diff --git a/security/openssl/files/patch-util_perl_OpenSSL_config.pm b/security/openssl/files/patch-util_perl_OpenSSL_config.pm
deleted file mode 100644
index 9c669372a4f1..000000000000
--- a/security/openssl/files/patch-util_perl_OpenSSL_config.pm
+++ /dev/null
@@ -1,14 +0,0 @@
---- util/perl/OpenSSL/config.pm.orig	2022-04-12 16:34:06 UTC
-+++ util/perl/OpenSSL/config.pm
-@@ -747,8 +747,9 @@ EOF
-                                     disable => [ 'sse2' ] } ],
-       [ 'alpha.*-.*-.*bsd.*',     { target => "BSD-generic64",
-                                     defines => [ 'L_ENDIAN' ] } ],
--      [ 'powerpc64-.*-.*bsd.*',   { target => "BSD-generic64",
--                                    defines => [ 'B_ENDIAN' ] } ],
-+      [ 'powerpc-.*-.*bsd.*',     { target => "BSD-ppc" } ],
-+      [ 'powerpc64-.*-.*bsd.*',   { target => "BSD-ppc64" } ],
-+      [ 'powerpc64le-.*-.*bsd.*', { target => "BSD-ppc64le" } ],
-       [ 'riscv64-.*-.*bsd.*',     { target => "BSD-riscv64" } ],
-       [ 'sparc64-.*-.*bsd.*',     { target => "BSD-sparc64" } ],
-       [ 'ia64-.*-.*bsd.*',        { target => "BSD-ia64" } ],
diff --git a/security/openssl/pkg-message b/security/openssl/pkg-message
index 88a7b773b9e9..f13eccf69803 100644
--- a/security/openssl/pkg-message
+++ b/security/openssl/pkg-message
@@ -1,22 +1,12 @@
 [
-{ type: install
-  message: <<EOM
-This port (security/openssl) will update from 3.0 to 3.5
-per 2026-07-01 (2026Q3) in anticipation of the End-of-Life
-of OpenSSL 3.0.
-A new port (security/openssl30) will be created for the
-remainder of the lifespan of OpenSSL 3.0 and FreeBSD 14.
-See: https://openssl-library.org/roadmap/index.html
-EOM
-},
 { type: upgrade
   message: <<EOM
-This port (security/openssl) will update from 3.0 to 3.5
-per 2026-07-01 (2026Q3) in anticipation of the End-of-Life
+This port (security/openssl) has updated from 3.0 to 3.5
+after end-of-life and first reported vulnerabilities
 of OpenSSL 3.0.
-A new port (security/openssl30) will be created for the
-remainder of the lifespan of OpenSSL 3.0 and FreeBSD 14.
-See: https://openssl-library.org/roadmap/index.html
+
+All ports depending on security/openssl must be rebuilt
+for the changed shared library versions
 EOM
 },
 ]
diff --git a/security/openssl/pkg-plist b/security/openssl/pkg-plist
index 37d4816c9993..72bbf7bac54b 100644
--- a/security/openssl/pkg-plist
+++ b/security/openssl/pkg-plist
@@ -2,7 +2,6 @@ bin/c_rehash
 bin/openssl
 include/openssl/aes.h
 include/openssl/asn1.h
-include/openssl/asn1_mac.h
 include/openssl/asn1err.h
 include/openssl/asn1t.h
 include/openssl/async.h
@@ -14,6 +13,7 @@ include/openssl/bn.h
 include/openssl/bnerr.h
 include/openssl/buffer.h
 include/openssl/buffererr.h
+include/openssl/byteorder.h
 include/openssl/camellia.h
 include/openssl/cast.h
 include/openssl/cmac.h
@@ -49,6 +49,7 @@ include/openssl/dsa.h
 include/openssl/dsaerr.h
 include/openssl/dtls1.h
 include/openssl/e_os2.h
+include/openssl/e_ostime.h
 include/openssl/ebcdic.h
 include/openssl/ec.h
 include/openssl/ecdh.h
@@ -66,9 +67,11 @@ include/openssl/evperr.h
 include/openssl/fips_names.h
 include/openssl/fipskey.h
 include/openssl/hmac.h
+include/openssl/hpke.h
 include/openssl/http.h
 include/openssl/httperr.h
 include/openssl/idea.h
+include/openssl/indicator.h
 include/openssl/kdf.h
 include/openssl/kdferr.h
 include/openssl/lhash.h
@@ -77,6 +80,7 @@ include/openssl/md2.h
 include/openssl/md4.h
 include/openssl/md5.h
 include/openssl/mdc2.h
+include/openssl/ml_kem.h
 include/openssl/modes.h
*** 1240 LINES SKIPPED ***