Commit Graph
874 Commits
Author SHA1 Message Date
Dag-Erling Smørgrav 9529bd66d5 caroot: Regenerate
Regenerate using certificate data from NSS 3.131.1.

Upstream dropped emSign_ECC_Root_CA_-_G3.pem entirely; we deliberately
move it to untrusted instead to block its reintroduction through e.g.
an outdated copy of security/ca_root_nss.

Reviewed by:	markj
Differential Revision:	https://reviews.freebsd.org/D60906

(cherry picked from commit 82af7f44eb)
2026-10-20 20:36:01 +00:00
Jose Luis Duran 01f93565ff secure: Adapt Makefile to ssh-sk-client everywhere
Upstream commit 7b47b40b1 ("adapt Makefile to ssh-sk-client everywhere")
adapted the Makefiles to ssh-sk-client.  Do the same here.

Reviewed by:	emaste
Approved by:	emaste (mentor)
Differential Revision:	https://reviews.freebsd.org/D49795

(cherry picked from commit 65d8491719)
2026-10-05 15:32:38 -04:00
Ed Maste 0dfc112ac7 openssh: Remove residual blank line at start of Makefile
This is part of commit e9ac41698b in main by imp@
2026-10-05 10:37:30 -04:00
Jose Luis Duran dcab585511 secure: Rearrange Makefile SRCS to match upstream Makefile.in
SRCS entries are kept in the same order and with the same line breaks as
upstream, to make comparison easier.

No functional change intended.

Reviewed by:	emaste
Approved by:	emaste (mentor)
Differential Revision:	https://reviews.freebsd.org/D49793

(cherry picked from commit 9440aad19d)
2026-10-05 10:14:44 -04:00
Enji Cooper 2ccc244097 crypto/openssl: upgrade to 3.0.22
All of the security content from 3.0.22 has been merged to this branch
already; this follows through with the remainder of the changes to
finish off the version update -- in part to make future updates easier.

This is a direct commit to :stable/14.

See commit 3180d4d82f5 a description of the content update done between
the two versions, as well as the update methodology used when importing
OpenSSL 3.0.22.
2026-10-01 17:28:35 -07:00
Enji Cooper ca66129a2c openssl: update to 3.0.21
This change is a security release which resolves several issues with OpenSSL 3.0,
the highest severity issue being ranked "High". Users are strongly encouraged to
update to this release.

More information about the release (from a high level) can be found in
the release notes [1].

Tested with:	(make tinderbox; spotchecks on dev hosts)

1. https://github.com/openssl/openssl/blob/openssl-3.0.21/NEWS.md

- :main and :stable/15 run OpenSSL 3.5 and :stable/14, et al runs
  OpenSSL 3.0.
- This is not a merge commit because our pre-receive checkers still
  don't allow direct MFVs without going through :main first.
- This is a direct commit to stable/14.
2026-06-10 21:07:34 -07:00
Dag-Erling Smørgrav 09bb6a62d0 caroot: Regenerate
Regenerate using certificate data from NSS 3.123.1.

MFC after:	1 week
Reviewed by:	kevans

(cherry picked from commit 07b52233e8)
2026-04-30 15:03:10 +00:00
Dag-Erling Smørgrav 7e064a35a7 caroot: Clean up
* Get certdata.txt directly from the NSS Mercurial repository, rather
  than from the Mozilla Firefox repository which imports it from NSS at
  irregular intervals.

* Instead of always fetching the latest certdata.txt, fetch a specific
  version.  For this commit, we set this to the version that was last
  imported in May 2025.

* Add a refrence to the MPL to the generated files.

* Regenerate with latest OpenSSL.  This is purely cosmetic; mostly, the
  certificate names now contain less unnecessary whitespace and some
  elements are quoted.

MFC after:	1 week
Reviewed by:	michaelo, kevans
Differential Revision:	https://reviews.freebsd.org/D56620

(cherry picked from commit ce33d6396a)
2026-04-30 15:03:10 +00:00
Dag-Erling Smørgrav dbf17ec890 caroot: Rename script and normalize license
MFC after:	1 week
Reviewed by:	mandree, markj
Differential Revision:	https://reviews.freebsd.org/D51775

(cherry picked from commit 0886019bf8)
2026-04-30 15:03:09 +00:00
Dag-Erling Smørgrav ca80ae39e8 caroot: Generate both trusted and untrusted
Until now, the untrusted directory has been maintained manually.  Modify
the script used to maintain the trusted directory so it can handle both.
While here, clean it up a bit.

MFC after:	1 week
Reviewed by:	mandree, markj
Differential Revision:	https://reviews.freebsd.org/D51774

(cherry picked from commit b88b0bb784)
2026-04-30 15:03:09 +00:00
Enji Cooper 27ac9d336f crypto/openssl: update from 3.0.16 to 3.0.20
### Description

This particular change contains all functional and security fixes made
between 3.0.16 and 3.0.20, with the net-resulting security issues being
the ones addressed in 3.0.20 [1] [2].

This is a direct commit to stable/14 as stable/15 and later use OpenSSL
3.5, as of writing, and thus this change could not have been merged
through main and stable/15 since the 3.0.17+ was released after :main
switched to OpenSSL 3.5.

This does not contain any merge commits as any MFV changes are banned
unless they go through :main.

### Process used when updating the component

1. Run the subtree merge command in a staging tree.
2. Resolve conflicts.
3. Compare against reference branch.
4. Pull over remaining changes adding new manpages to the build.
5. Take changes from staging tree over to stable/14 .

### Test Plan

Tested with sanity checks on 14-STABLE (amd64) and `make tinderbox` on
all 14-STABLE supported architectures.

1. https://github.com/openssl/openssl/releases/tag/openssl-3.0.20
2. https://github.com/openssl/openssl/blob/openssl-3.0.20/CHANGES.md
2026-04-12 17:10:02 -07:00
Enji Cooper 5c361eb2c0 openssl: add a simple smoke test for the legacy provider
This change adds a simple smoke test for the legacy provider to ensure
that the provider doesn't break in the future when performing updates.

This is not a functional or system test; the OpenSSL test suite does a
much better job at doing this than we can.

MFC after:		1 week
Differential Revision:	https://reviews.freebsd.org/D53045

(cherry picked from commit 3b6442370a)
2026-02-21 20:08:44 -08:00
Enji Cooper 9a64f277bf OpenSSL: install .pc files from the exporters subdir
The .pc files generated in the root directory are used as part of the
build; they should never be installed. Use the versions from the
exporters subdirectory--which should be installed--as the .pc files
which are distributed with FreeBSD. This avoids the need for "fixing up"
these files after the fact (see `crypto/openssl/BSDmakefile` for more
details as part of this change).

Garbage collect `secure/lib/libcrypto/Makefile.version`, et al,
as they're orphaned files. They were technically unused prior to this
change as the vendor process properly embeds the version numbers in
various files, but this commit formalizes the removal.

This correction/clarification on the .pc files will be made in an
upcoming release of OpenSSL [1].

References:
1. https://github.com/openssl/openssl/issues/28803

Suggested by:	Richard Levitte (OpenSSL project)
MFC after:	3 days
Differential Revision:	https://reviews.freebsd.org/D53043

(cherry picked from commit 97388e7215)
2026-02-02 23:54:20 -08:00
Enji Cooper aed5a47b3a OpenSSL: update build artifacts to match 3.0.16 release
The files committed match the output of the new vendor process. Much of
this involves regenerating manpages to catch up to content from the
initial 3.0 import.

This is a direct commit to stable/14.
2026-02-02 23:35:24 -08:00
Enji Cooper d03be8cf33 crypto/openssl: make vendor imports easier/less error prone
This change adds a custom BSD makefile containing multiple high-level PHONY
targets, similar to targets provided by the ports framework.

The Makefile does the following:
- Reruns Configure with a deterministic set of arguments to ensure that
  all appropriate features have been enabled/disabled in OpenSSL.
- Preens the pkgconfig files to remove duplicate paths in their
  `CFLAGS` and `includedir` variables.
- Rebuilds all ASM files to ensure that the content contained is fresh.
- Rebuilds all manpages to ensure that the content contained in the
  manpages is fresh.

Some additional work needs to be done to make the manpage regeneration
"operation" reproducible (the date the manpages were generated is
embedded in the files).

All dynamic configuration previously captured in
`include/openssl/configuration.h` and `include/crypto/bn_conf.h` has been
moved to `freebsd/include/dynamic_freebsd_configuration.h` and
`freebsd/include/crypto/bn_conf.h`, respectively. This helps
ensure that future updates don't wipe out FreeBSD customizations to
these files, which tune behavior on a per-target architecture basis, e.g.,
ARM vs x86, 32-bit vs 64-bit, etc.

MFC after: 1 month
Differential Revision:	https://reviews.freebsd.org/D51663

Conflicts:
	crypto/openssl/apps/CA.pl
	crypto/openssl/configdata.pm
	crypto/openssl/include/openssl/configuration.h
	crypto/openssl/include/openssl/fipskey.h
	crypto/openssl/tools/c_rehash
	crypto/openssl/util/shlib_wrap.sh
	crypto/openssl/util/wrap.pl
	secure/lib/libcrypto/Makefile.inc

(cherry picked from commit 267f8c1f4b)
2026-02-02 22:23:29 -08:00
Ed Maste 7ca599aa61 OpenSSH: Update to 10.0p2
Full release notes are available at
https://www.openssh.com/txt/release-10.0

Selected highlights from the release notes:

Potentially-incompatible changes

- This release removes support for the weak DSA signature algorithm.
  [This change was previously merged to FreeBSD main.]

- This release has the version number 10.0 and announces itself as
  "SSH-2.0-OpenSSH_10.0".  Software that naively matches versions using
  patterns like "OpenSSH_1*" may be confused by this.

- sshd(8): this release removes the code responsible for the user
  authentication phase of the protocol from the per-connection
  sshd-session binary to a new sshd-auth binary.

Security

- sshd(8): fix the DisableForwarding directive, which was failing to
  disable X11 forwarding and agent forwarding as documented.
  [This change was previously merged to FreeBSD main.]

New features

- ssh(1): the hybrid post-quantum algorithm mlkem768x25519-sha256 is now
  used by default for key agreement.

Sponsored by:	The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D51630

(cherry picked from commit 8e28d84935)
(cherry picked from commit e600fc7295)
2026-01-20 14:41:59 -05:00
Michael Osipov 5f8831f2fe caroot: Update certdata URL for GitHub switch
Mozilla has migrated its projects' source code to GitHub, update certdata URL
along with it.

Reference: https://github.com/curl/curl/pull/17321

Reviewed by:	jrm (mentor), otis (mentor), kevans
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D50575

(cherry picked from commit 87c46facc3)
2025-06-04 21:32:03 +02:00
Jose Luis Duran bebe2fea19 openssh: Request the OpenSSL 1.1 API
Upstream OpenSSH commit f51423bda ("request 1.1x API compatibility for
OpenSSL >=3.x") requests OPENSSL_API_COMPAT version 0x10100000L (OpenSSL
1.1.0), in order to avoid warnings about deprecated functions.

Do the same here, to avoid getting those warnings.

Reviewed by:	emaste
Approved by:	emaste (mentor)
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D49517

(cherry picked from commit d4f438357e)
2025-04-03 04:33:21 +00:00
Enji Cooper 0d61082e3c openssl: update ASM and version info for 3.0.16 import
MFC after:	1 week
MFC with:	0d0c8621fd
Differential Revision:	https://reviews.freebsd.org/D49297

(cherry picked from commit d2a55e6a93)
2025-03-25 14:07:59 -07:00
Michael Osipov 7577dae4d6 caroot: update the root bundle
Summary:
- Seven (7) new roots
- Four (4) distrusted roots
- Fifteen (15) removed (expired) roots

Reviewed by:	kevans
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D49294

(cherry picked from commit 0100da4deb)
2025-03-20 11:18:27 +01:00
Michael Osipov 4fd560bc94 caroot: Ignore soft distrust of server CA certificates after 398 days
Mozilla introduced the field CKA_NSS_SERVER_DISTRUST_AFTER which indicates that
a CA certificate will be distrusted in the future before its NotAfter time.
This means that the CA stops issuing new certificates, but previous ones are
still valid, but at most for 398 days after the distrust date.

See also:
* https://bugzilla.mozilla.org/show_bug.cgi?id=1465613
* https://github.com/Lukasa/mkcert/issues/19
* https://gitlab.alpinelinux.org/alpine/ca-certificates/-/merge_requests/16
* https://github.com/curl/curl/commit/448df98d9280b3290ecf63e5fc9452d487f41a7c

Tested by:	michaelo
Reviewed by:	emaste
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D49075

(cherry picked from commit 457c03b397)
2025-03-15 14:51:24 +01:00
Ed Maste 74776eba28 ssh: Consolidate HAVE_LDNS / LIBWRAP in ssh.mk
Commit 9d63429fa1 ("ssh: move common Makefile boilerplate to a new
ssh.mk") introduced ssh.mk for common OpenSSH paths and flags, as part
of enabling FIDO/U2F.  Move duplicated MK_LDNS and MK_TCP_WRAPPERS
handling there.

Reviewed by:	kevans
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D31896

(cherry picked from commit d71e7e57fc)
2025-03-11 10:39:36 -04:00
Ed Maste be7b176511 ssh: tidy include handling
Centralize optional krb5_config.h handling in ssh.mk.  Do not add
headers (that are committed to the src tree) to SRCS as there is no
need.

Reviewed by:	imp, jlduran, kevans (all earlier)
MFC after:	1 month
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D34409

(cherry picked from commit 7f91623604)
2025-03-11 10:39:36 -04:00
Isaac Freund f183965bb8 pkgbase: fix inclusion of tests in ssh, bsnmp, clibs-dev
Currently, files that belong in the tests package are included in the
ssh, bsnmp, and clibs-dev packages:

ssh.plist
24:@dir(root,wheel,0755,) /usr/tests/secure/libexec
25:@(root,wheel,0444,) /usr/tests/secure/libexec/Kyuafile

bsnmp.plist
82:@dir(root,wheel,0755,) /usr/tests/lib/libbsnmp
83:@(root,wheel,0444,) /usr/tests/lib/libbsnmp/Kyuafile
84:@(root,wheel,0555,) /usr/tests/lib/libbsnmp/bsnmpd_test

clibs-dev.plist
2518:@dir(root,wheel,0755,) /usr/tests/lib/csu
2519:@(root,wheel,0444,) /usr/tests/lib/csu/Kyuafile

This is caused by the PACKAGE=foo assignment in foo/Makefile.inc which
overrides the default PACKAGE?=tests in bsd.test.mk.

To fix this, instead use PACKAGE?=foo in foo/Makefile.inc and set
PACKAGE=tests in foo/tests/Makefile.

PR:		249144
Reviewed by:	bapt, emaste
Sponsored by:	The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D47025

(cherry picked from commit 3a56015a2f)
2025-02-27 14:45:40 -05:00
Ed Maste 802386cd37 openssh: Update to 9.9p1
Highlights from the release notes are reproduced below.  Bug fixes and
improvements that were previously merged into FreeBSD have been elided.

See the upstream release notes for full details of the 9.9p1 release
(https://www.openssh.com/releasenotes.html).

---

Future deprecation notice
=========================

OpenSSH plans to remove support for the DSA signature algorithm in
early 2025.

Potentially-incompatible changes
--------------------------------

 * ssh(1): remove support for pre-authentication compression.

 * ssh(1), sshd(8): processing of the arguments to the "Match"
   configuration directive now follows more shell-like rules for
   quoted strings, including allowing nested quotes and \-escaped
   characters.

New features
------------

 * ssh(1), sshd(8): add support for a new hybrid post-quantum key
   exchange based on the FIPS 203 Module-Lattice Key Enapsulation
   mechanism (ML-KEM) combined with X25519 ECDH as described by
   https://datatracker.ietf.org/doc/html/draft-kampanakis-curdle-ssh-pq-ke-03
   This algorithm "mlkem768x25519-sha256" is available by default.

 * ssh(1), sshd(8), ssh-agent(1): prevent private keys from being
   included in core dump files for most of their lifespans. This is
   in addition to pre-existing controls in ssh-agent(1) and sshd(8)
   that prevented coredumps. This feature is supported on OpenBSD,
   Linux and FreeBSD.

 * All: convert key handling to use the libcrypto EVP_PKEY API, with
   the exception of DSA.

Bugfixes
--------

 * sshd(8): do not apply authorized_keys options when signature
   verification fails. Prevents more restrictive key options being
   incorrectly applied to subsequent keys in authorized_keys. bz3733

 * ssh-keygen(1): include pathname in some of ssh-keygen's passphrase
   prompts. Helps the user know what's going on when ssh-keygen is
   invoked via other tools. Requested in GHPR503

 * ssh(1), ssh-add(1): make parsing user@host consistently look for
   the last '@' in the string rather than the first. This makes it
   possible to more consistently use usernames that contain '@'
   characters.

 * ssh(1), sshd(8): be more strict in parsing key type names. Only
   allow short names (e.g "rsa") in user-interface code and require
   full SSH protocol names (e.g. "ssh-rsa") everywhere else. bz3725

 * ssh-keygen(1): clarify that ed25519 is the default key type
   generated and clarify that rsa-sha2-512 is the default signature
   scheme when RSA is in use. GHPR505

---

Reviewed by:	jlduran (build infrastructure)
Reviewed by:	cy (build infrastructure)
Sponsored by:	The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D48947

(cherry picked from commit 3d9fd9fcb4)

Approved by:	re (accelerated MFC)
2025-02-20 12:50:31 -05:00
Ed Maste ff2fd01609 openssh: Update to 9.8p1
Highlights from the release notes are reproduced below.  Some security
and bug fixes were previously merged into FreeBSD and have been elided.
See the upstream release notes for full details
(https://www.openssh.com/releasenotes.html).

---

Future deprecation notice
=========================

OpenSSH plans to remove support for the DSA signature algorithm in
early 2025.

Potentially-incompatible changes
--------------------------------

 * sshd(8): the server will now block client addresses that
   repeatedly fail authentication, repeatedly connect without ever
   completing authentication or that crash the server. See the
   discussion of PerSourcePenalties below for more information.
   Operators of servers that accept connections from many users, or
   servers that accept connections from addresses behind NAT or
   proxies may need to consider these settings.

 * sshd(8): the server has been split into a listener binary, sshd(8),
   and a per-session binary "sshd-session". This allows for a much
   smaller listener binary, as it no longer needs to support the SSH
   protocol. As part of this work, support for disabling privilege
   separation (which previously required code changes to disable) and
   disabling re-execution of sshd(8) has been removed. Further
   separation of sshd-session into additional, minimal binaries is
   planned for the future.

 * sshd(8): several log messages have changed. In particular, some
   log messages will be tagged with as originating from a process
   named "sshd-session" rather than "sshd".

 * ssh-keyscan(1): this tool previously emitted comment lines
   containing the hostname and SSH protocol banner to standard error.
   This release now emits them to standard output, but adds a new
   "-q" flag to silence them altogether.

 * sshd(8): (portable OpenSSH only) sshd will no longer use argv[0]
   as the PAM service name. A new "PAMServiceName" sshd_config(5)
   directive allows selecting the service name at runtime. This
   defaults to "sshd". bz2101

New features
------------

 * sshd(8): sshd(8) will now penalise client addresses that, for various
   reasons, do not successfully complete authentication. This feature is
   controlled by a new sshd_config(5) PerSourcePenalties option and is
   on by default.

 * ssh(8): allow the HostkeyAlgorithms directive to disable the
   implicit fallback from certificate host key to plain host keys.

Portability
-----------

 * sshd(8): expose SSH_AUTH_INFO_0 always to PAM auth modules
   unconditionally. The previous behaviour was to expose it only when
   particular authentication methods were in use.

 * ssh(1), ssh-agent(8): allow the presence of the WAYLAND_DISPLAY
   environment variable to enable SSH_ASKPASS, similarly to the X11
   DISPLAY environment variable. GHPR479

---

Sponsored by:	The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D48914

(cherry picked from commit 0fdf8fae8b)
(cherry picked from commit b4bb480ae9)
(cherry picked from commit e95979047a)
(cherry picked from commit dcb4ae528d)

Approved by:	re (accelerated MFC)
2025-02-20 12:50:11 -05:00
Ed Maste 8a02eb2c1e libssh: Remove progressmeter
It is used only by scp and sftp, and already included directly in their
Makefiles.  It does not belong in libssh.

Fixes: d8b043c8d4 ("Update for 3.6.1p1; also remove Kerberos IV shims.")
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D48871

(cherry picked from commit c0af329525)
2025-02-19 21:31:22 -05:00
Ed Maste 73dd56ffcd ssh: Move XAUTH_PATH setting to ssh.mk
XAUTH_PATH is normally set (in the upstream build infrastructure) in
config.h.  We previously set it in ssh and sshd's Makefiles if LOCALBASE
is set, and over time have sometimes also defined it in config.h.

Leave it unset in config.h and move the CFLAGS logic to to ssh.mk so
that it will be set when building all ssh libraries and programs but
still be set by LOCALBASE.

Reviewed by:	jlduran
Sponsored by:	The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D48907

(cherry picked from commit a63701848f)
2025-02-19 09:58:47 -05:00
Kyle Evans 616156f8e6 secure: hook up libecc as libpkgecc
libecc is not intended to be general use, other applications should
really be using openssl.  pkg(7) uses libecc to align with the pkg(8)
project and its goals.  This will be used in the upcoming support for
ECC in pkg(7).

Reviewed by:	emaste

(cherry picked from commit 05427f4639)
2025-01-10 20:48:24 -06:00
Enji Cooper cc43f991ab openssl: Import OpenSSL 3.0.15.
This release incorporates the following bug fixes and mitigations:
- Fixed possible denial of service in X.509 name checks ([CVE-2024-6119])
- Fixed possible buffer overread in SSL_select_next_proto() ([CVE-2024-5535])

Release notes can be found at:
https://openssl-library.org/news/openssl-3.0-notes/index.html

Co-authored-by:	gordon
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D46602

Merge commit '108164cf95d9594884c2dcccba2691335e6f221b'

(cherry picked from commit a7148ab39c)

Update config/build info for OpenSSL 3.0.15

This is a companion commit to the OpenSSL 3.0.15 update.

`opensslv.h` was regenerated via the following process:

```
cd crypto/openssl
./config
git reset --hard
gmake include/openssl/opensslv.h
```

`Makefile.inc` has been updated to match.

MFC after:	1 week
MFC with:	a7148ab39c
Differential Revision:	https://reviews.freebsd.org/D46603

(cherry picked from commit cc717b574d)

sys/crypto/openssl: update powerpc* ASM

This change updates the crypto powerpc* ASM via the prescribed process
documented in `crypto/openssl/FREEBSD-upgrade`.

This change syncs the ASM with 3.0.15's generated ASM.

MFC after:	1 week
MFC with:	a7148ab39c
MFC with:	cc717b574d
Differential Revision:	https://reviews.freebsd.org/D46604

(cherry picked from commit 77864b545b)
2024-09-27 20:50:47 -07:00
Gordon Tetlow 3d8501d90e openssl: Remove fips module from base system.
To comply with FIPS 140 guidance, you must be using a specifically
validated and approved version of the fips module. Currently, only
OpenSSL 3.0.8 and 3.0.9 have been approved by NIST for FIPS 140
validation. As such, we need to stop shipping later versions of the
module in the base system.

Differential Revision: https://reviews.freebsd.org/D46223

(cherry picked from commit 86dd740dd7)
2024-09-06 21:17:19 -07:00
Enji Cooper dd43e907c7 Update config/build info for OpenSSL
This is a companion commit to the OpenSSL 3.0.14 update.

MFC after:      3 days
MFC with:       44096ebd22

(cherry picked from commit 303596eac3)
2024-06-29 13:29:19 -07:00
Mark Johnston 0b9dffed30 ossl: Move arm_arch.h to a common subdirectory
OpenSSL itself keeps only a single copy of this header.  Do the same in
sys/crypto/openssl to avoid the extra maintenance burden.  This requires
adjusting the include paths for generated asm files.

No functional change intended.

Reported by:	jrtc27
Reviewed by:	jhb
MFC after:	3 months
Differential Revision:	https://reviews.freebsd.org/D42866

(cherry picked from commit e655cc70df)
2024-03-29 09:53:05 -04:00
Kyle Evans 9fc1d78e39 caroot: routine update
Changes:
- One (1) modified
- Eight (8) added
- One (1) expired, now untrusted

MFC after:	3 days

(cherry picked from commit 0d3b2bdbf7)
2024-02-13 13:14:51 -06:00
Cy Schubert e72329a4e8 OpenSSL: Update version strings
Reported by:	"Herbert J. Skuhra" <[email protected]>
Fixes:		9eb4e0b42d

(cherry picked from commit 74fe298c82)
2024-02-05 08:06:08 -08:00
Ed Maste a25789646d ssh: Update to OpenSSH 9.6p1
From the release notes,

> This release contains a number of security fixes, some small features
> and bugfixes.

The most significant change in 9.6p1 is a set of fixes for a newly-
discovered weakness in the SSH transport protocol.  The fix was already
merged into FreeBSD and released as FreeBSD-SA-23:19.openssh.

Full release notes at https://www.openssh.com/txt/release-9.6

Relnotes:	Yes
Sponsored by:	The FreeBSD Foundation

(cherry picked from commit 069ac18495)
2024-01-07 14:31:11 -05:00
Ed Maste 53a984a36f Track upstream project rename in contrib/blocklistd
Upstream is now https://github.com/zoulasc/blocklist/.  Rename the
contrib directory and update Makefiles to match, in advance of the next
vendor branch update.

Sponsored by:	The FreeBSD Foundation

(cherry picked from commit 5f4c09dd85)
2024-01-07 14:31:11 -05:00
Ed Maste e833378cf9 OpenSSL: update to 3.0.12
OpenSSL 3.0.12 addresses:

 * Fix incorrect key and IV resizing issues when calling
   EVP_EncryptInit_ex2(), EVP_DecryptInit_ex2() or EVP_CipherInit_ex2()
   with OSSL_PARAM parameters that alter the key or IV length
   ([CVE-2023-5363]).

Relnotes:	Yes
Sponsored by:	The FreeBSD Foundation

(cherry picked from commit ad991e4c14)
(cherry picked from commit 575878a533)
2023-10-25 16:20:31 -04:00
Andrew Turner 5b413daf3a libcrypto: Copy the arm64 header when building asm
It may be needed when it's updated so is best to keep in sync with the
assembly files.

Reviewed by:	emaste
Sponsored by:	Arm Ltd
Differential Revision:	https://reviews.freebsd.org/D41938

(cherry picked from commit c97a82d4a4)
2023-10-25 14:32:49 -04:00
Pierre Pronchery bbecb0ff6c OpenSSL: update to 3.0.11
OpenSSL 3.0.11 addresses:

    POLY1305 MAC implementation corrupts XMM registers on Windows (CVE-2023-4807)

Relnotes:	Yes
Pull request:	https://github.com/freebsd/freebsd-src/pull/852
Sponsored by:	The FreeBSD Foundation

(cherry picked from commit 6f1af0d7d2)
2023-10-12 14:46:11 -04:00
Pierre Pronchery ab64f100ca libcrypto: complete the support for the 0.9.8 API
When importing OpenSSL 3 in base, some but not all source files
implementing the deprecated 0.9.8 API were imported. With this change,
it becomes possible again to compile software targeting this API.

PR:		272220
Fixes:		b077aed33b ("Merge OpenSSL 3.0.9")
Reviewed by:	emaste
Sponsored by:	The FreeBSD Foundation
Pull Request:	https://github.com/freebsd/freebsd-src/pull/851

(cherry picked from commit b15b395216)
2023-09-24 09:17:43 -04:00
Pierre Pronchery abd9da9363 libcrypto: fix the FIPS provider on amd64
This corrects the list of source files required for the FIPS provider.

To test:

```
INSTALL PASSED
enter AES-128-CBC encryption password:
Verifying - enter AES-128-CBC encryption password:
U2FsdGVkX1+MGm7LbZou29UWU+KAyBX/PxF5T1pO9VM=
```

Reviewed by:	emaste
Fixes:		b077aed33b ("Merge OpenSSL 3.0.9")
Sponsored by:	The FreeBSD Foundation
Pull Request:	https://github.com/freebsd/freebsd-src/pull/837
Differential Revision: https://reviews.freebsd.org/D41720

(cherry picked from commit 8f37b3a142)
2023-09-22 15:06:35 -04:00
Pierre Pronchery fd4b13acd9 libcrypto: link engines and the legacy provider to libcrypto
OpenSSL's legacy provider module and engines need to link to
libcrypto.so, as it provides some of the actual implementations of
legacy routines.

This is a little tricky due to build order issues.  Introduce a small
hack (LIBCRYPTO_WITHOUT_SUBDIRS) that builds libcrypto.so in its usual
early phase without any OpenSSL provider modules or engines.  This is
intended to restore the test suite; a future change should remove the
hack and replace it with a better approach.

PR:		254853, 273528
Discussed with:	Folks at EuroBSDCon in Coimbra
Sponsored by:	The FreeBSD Foundation

(cherry picked from commit 1a18383a52)
2023-09-19 11:01:55 -04:00
John Baldwin bf5069fb6a libcrypto: Switch back to the generated assembly in sys/crypto/openssl
Reviewed by:	markj
Differential Revision:	https://reviews.freebsd.org/D41569

(cherry picked from commit 47d997021f)
2023-09-08 13:55:44 -07:00
John Baldwin ef81451d11 libcrypto: Add buildasm and cleanasm targets
These targets generate all the assembly files in sys/crypto/openssl.

Reviewed by:	markj, emaste (earlier version)
Differential Revision:	https://reviews.freebsd.org/D41590

(cherry picked from commit 73653b72af)
2023-09-08 13:55:44 -07:00
John Baldwin 14dc723496 libcrypto: Refactor Makefile.asm so it can be run outside of buildenv
Currently Makefile.asm relies on the current buildenv to set CFLAGS
for i386.  The current approach also leaves various temporary *.s
files around in the current directory.  To make this a bit better:

- Instead of using CFLAGS from buildenv for i386, define the actual
  flags the perl scripts need: -DOPENSSL_IA32_SSE2 to enable SSE2.

- Change i386 to have the perl scripts write to /dev/stdout to avoid
  creating temporaries.  Previously i386 was generating the temporary
  files in the OpenSSL contrib src.

- Cleanup temporary *.s files in the all target after generating the
  real *.S files for architectures which need them.

- Remove a duplicate rule for aes-armv4.S.

Reviewed by:	markj
Differential Revision:	https://reviews.freebsd.org/D41589

(cherry picked from commit c0fe6b9d75)
2023-09-08 13:55:44 -07:00
John Baldwin a3f973f2ea Makefile.asm: Simplify variable expansions in generated headers
The :R:S expressions removed the .pl extension only to add it back
again, so just trim them to using :T alone.

Reviewed by:	Pierre Pronchery <[email protected]>, markj, emaste
Differential Revision:	https://reviews.freebsd.org/D41588

(cherry picked from commit 7406b6f976)
2023-09-08 13:55:44 -07:00
Kyle Evans e710972446 caroot: regenerate the root bundle with OpenSSL 3
No functional change intended.

Approved by:	re (kib)

(cherry picked from commit 8ed0ecf802)
2023-09-05 09:55:09 -05:00
Kyle Evans 5829e12051 caroot: update the root bundle
Summary:
- Six (6) new roots
- Four (4) distrusted roots

Note that this was intentionally generated with OpenSSL 1.1.1 to avoid
mixing updates and non-functional changes -- there will be some churn
with OpenSSL 3.  The next commit will update the current batch of
trusted certs with the format OpenSSL 3 produces, which I've tested
against OpenSSL 1.1.1 to be sure that that doesn't hurt us in older
branches.

Approved by:	re (kib)

(cherry picked from commit 65fd80909e)
2023-09-05 09:55:02 -05:00
Kyle Evans 7c52963832 caroot: drop the VERSION tag from already-processed certs
An update is imminent; drop these now to make it easier to audit the
results.

Approved by:	re (kib)

(cherry picked from commit 3f84d4b0fe)
2023-09-05 09:54:55 -05:00