Merge ~ravi-sharma/ubuntu/+source/openssl:fix-lp2133492 into ubuntu/+source/openssl:debian/sid

Proposed by Ravi Kant Sharma
Status: Needs review
Proposed branch: ~ravi-sharma/ubuntu/+source/openssl:fix-lp2133492
Merge into: ubuntu/+source/openssl:debian/sid
Diff against target: 2810 lines (+2258/-223)
16 files modified
debian/changelog (+1212/-11)
debian/control (+3/-18)
debian/gbp.conf (+1/-1)
debian/patches/default-configuration-read-dropins-and-crypto-config.patch (+30/-0)
debian/patches/fips/apps-pass-propquery-arg-to-the-libctx-DRBG-fetches.patch (+38/-0)
debian/patches/fips/apps-speed-Omit-unavailable-algorithms-in-FIPS-mode.patch (+130/-0)
debian/patches/fips/crypto-Add-kernel-FIPS-mode-detection.patch (+158/-0)
debian/patches/fips/crypto-Automatically-use-the-FIPS-provider-when-the-kerne.patch (+472/-0)
debian/patches/fips/test-Ensure-encoding-runs-with-the-correct-context-during.patch (+57/-0)
debian/patches/fips/two-defines-for-fips-in-libssl-dev-headers.patch (+72/-0)
debian/patches/regex_match_ecp_nistp521-ppc64.patch (+30/-0)
debian/patches/series (+13/-2)
debian/rules (+18/-4)
debian/salsa-ci.yml (+23/-0)
debian/tests/control (+1/-1)
dev/null (+0/-186)
Reviewer Review Type Date Requested Status
Ubuntu Sponsors Pending
git-ubuntu import Pending
Review via email: mp+498283@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Ravi Kant Sharma (ravi-sharma) wrote :

PPA: https://launchpad.net/~ravi-sharma/+archive/ubuntu/fix-lp2133492/+packages

 Results:
  - openssl: resolute/openssl/3.5.4-1ubuntu1 [amd64]
    + ✅ openssl on resolute for amd64 @ 08.01.26 22:42:29
      • Log: https://autopkgtest.ubuntu.com/results/autopkgtest-resolute-ravi-sharma-fix-lp2133492/resolute/amd64/o/openssl/20260108_224229_951d5@/log.gz
  - openssl: resolute/openssl/3.5.4-1ubuntu1 [arm64]
    + ✅ openssl on resolute for arm64 @ 08.01.26 22:42:50
      • Log: https://autopkgtest.ubuntu.com/results/autopkgtest-resolute-ravi-sharma-fix-lp2133492/resolute/arm64/o/openssl/20260108_224250_4f333@/log.gz
  - openssl: resolute/openssl/3.5.4-1ubuntu1 [armhf]
    + ✅ openssl on resolute for armhf @ 08.01.26 22:43:36
      • Log: https://autopkgtest.ubuntu.com/results/autopkgtest-resolute-ravi-sharma-fix-lp2133492/resolute/armhf/o/openssl/20260108_224336_f43df@/log.gz
  - openssl: resolute/openssl/3.5.4-1ubuntu1 [i386]
    + ❌ openssl on resolute for i386 @ 08.01.26 22:43:53
      • Log: https://autopkgtest.ubuntu.com/results/autopkgtest-resolute-ravi-sharma-fix-lp2133492/resolute/i386/o/openssl/20260108_224353_a04f9@/log.gz
      • Status: FAIL
      • 97s FAIL 🟥
    + ✅ openssl on resolute for i386 @ 08.01.26 23:14:49
      • Log: https://autopkgtest.ubuntu.com/results/autopkgtest-resolute-ravi-sharma-fix-lp2133492/resolute/i386/o/openssl/20260108_231449_d3cde@/log.gz
  - openssl: resolute/openssl/3.5.4-1ubuntu1 [ppc64el]
    + ✅ openssl on resolute for ppc64el @ 08.01.26 22:42:15
      • Log: https://autopkgtest.ubuntu.com/results/autopkgtest-resolute-ravi-sharma-fix-lp2133492/resolute/ppc64el/o/openssl/20260108_224215_fee0b@/log.gz
  - openssl: resolute/openssl/3.5.4-1ubuntu1 [s390x]
    + ✅ openssl on resolute for s390x @ 08.01.26 22:44:12
      • Log: https://autopkgtest.ubuntu.com/results/autopkgtest-resolute-ravi-sharma-fix-lp2133492/resolute/s390x/o/openssl/20260108_224412_cecdb@/log.gz
* Running: (none)
* Waiting: (none)

Revision history for this message
Ravi Kant Sharma (ravi-sharma) wrote :

The debian/sid branch has the trixie `stable` version instead of `unstable`. The diff does not make much sense, please look at the branch for review.

Revision history for this message
Ravi Kant Sharma (ravi-sharma) wrote :

The upload contains merge (LP: #2133492) and a bug fix (LP: #2137464).

Revision history for this message
Ravi Kant Sharma (ravi-sharma) wrote :

Please ignore rich history for this merge. I have saved split commits in a branch. I will recreate it on the next debian/sid git ubuntu import.

Revision history for this message
Ravi Kant Sharma (ravi-sharma) wrote :

> The debian/sid branch has the trixie `stable` version instead of `unstable`.
> The diff does not make much sense, please look at the branch for review.

I added a commit on top of local debian/sid to make it 3.5.4-1 and rest of the process was a standar git-ubuntu merge.

Unmerged commits

a8a8f56... by Ravi Kant Sharma

Changelog for 3.5.4-1ubuntu1

4dae229... by Ravi Kant Sharma

update-maintainer

fc2fe5b... by Ravi Kant Sharma

reconstruct-changelog

60f5e91... by Ravi Kant Sharma

merge-changelogs

4238261... by Ravi Kant Sharma

match last filename for output in ecp_nistp521-ppc64.pl

66d8f8e... by Ravi Kant Sharma

fips patches (debian/patches/fips)

deee078... by Ravi Kant Sharma

Don't enable or package anything FIPS (LP #2087955)

6d3a9d4... by Ravi Kant Sharma

Default config reads crypto-config and /etc/ssl/openssl.cnf.d dropins

125f47b... by Ravi Kant Sharma

Disable LTO with which the codebase is generally incompatible (LP #2058017)

4b0be6f... by Ravi Kant Sharma

Symlink copyright/changelog.Debian.gz in libssl3* to libssl-dev/openssl

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/debian/changelog b/debian/changelog
2index fe943c4..54742bc 100644
3--- a/debian/changelog
4+++ b/debian/changelog
5@@ -1,16 +1,113 @@
6-openssl (3.5.4-1~deb13u1) trixie; urgency=medium
7+openssl (3.5.4-1ubuntu1) resolute; urgency=medium
8+
9+ * Match last filename for output in ecp_nistp521-ppc64.pl (LP: #2137464)
10+ - d/p/regex_match_ecp_nistp521-ppc64.patch
11+ * Drop patches, merged upstream
12+ - d/p/CVE-2025-9230.patch
13+ - d/p/CVE-2025-9231-1.patch
14+ - d/p/CVE-2025-9231-2.patch
15+ - d/p/CVE-2025-9232.patch
16+ * Merge with Debian unstable (LP: #2133492). Remaining changes:
17+ - Use perl:native in the autopkgtest for installability on i386.
18+ - Symlink copyright/changelog.Debian.gz in libssl3* to libssl-dev/openssl
19+ - Disable LTO with which the codebase is generally incompatible (LP #2058017)
20+ - Default config reads crypto-config and /etc/ssl/openssl.cnf.d dropins
21+ - Don't enable or package anything FIPS (LP #2087955)
22+ - Match last filename for output in ecp_nistp521-ppc64.pl (LP #2137464)
23+ - fips patches (debian/patches/fips):
24+ - crypto: Add kernel FIPS mode detection
25+ - crypto: Automatically use the FIPS provider...
26+ - apps/speed: Omit unavailable algorithms in FIPS mode
27+ - apps: pass -propquery arg to the libctx DRBG fetches
28+ - test: Ensure encoding runs with the correct context...
29+ - Add Ubuntu-specific defines to help FIPS certification (LP #2073991)
30+ + UBUNTU_OSSL_SELF_TEST_DESC_PCT_DH
31+ + UBUNTU_OSSL_PROV_FIPS_PARAM_UNAPPROVED_USAGE
32+
33+ -- Ravi Kant Sharma <ravi.kant.sharma@canonical.com> Thu, 08 Jan 2026 15:53:39 +0100
34+
35+openssl (3.5.4-1) unstable; urgency=medium
36
37 * Import 3.5.4
38-
39- -- Sebastian Andrzej Siewior <sebastian@breakpoint.cc> Sat, 01 Nov 2025 12:22:59 +0100
40-
41-openssl (3.5.1-1+deb13u1) trixie-security; urgency=medium
42-
43- * CVE-2025-9230 (Out-of-bounds read & write in RFC 3211 KEK Unwrap)
44- * CVE-2025-9231 (Timing side-channel in SM2 algorithm on 64 bit ARM)
45- * CVE-2025-9232 (Out-of-bounds read in HTTP client no_proxy handling)
46-
47- -- Sebastian Andrzej Siewior <sebastian@breakpoint.cc> Fri, 26 Sep 2025 21:18:35 +0200
48+ - CVE-2025-9230 (Out-of-bounds read & write in RFC 3211 KEK Unwrap)
49+ - CVE-2025-9231 (Timing side-channel in SM2 algorithm on 64 bit ARM)
50+ - CVE-2025-9232 (Out-of-bounds read in HTTP client no_proxy handling)
51+
52+ -- Sebastian Andrzej Siewior <sebastian@breakpoint.cc> Tue, 30 Sep 2025 21:54:39 +0200
53+
54+openssl (3.5.3-1ubuntu2) questing; urgency=medium
55+
56+ * SECURITY UPDATE: Out-of-bounds read & write in RFC 3211 KEK Unwrap
57+ - debian/patches/CVE-2025-9230.patch: fix incorrect check of unwrapped
58+ key size in crypto/cms/cms_pwri.c.
59+ - CVE-2025-9230
60+ * SECURITY UPDATE: Timing side-channel in SM2 algorithm on 64 bit ARM
61+ - debian/patches/CVE-2025-9231-1.patch: use constant time modular
62+ inversion in crypto/ec/ecp_sm2p256.c.
63+ - debian/patches/CVE-2025-9231-2.patch: remove unused code in
64+ crypto/ec/ecp_sm2p256.c.
65+ - CVE-2025-9231
66+ * SECURITY UPDATE: Out-of-bounds read in HTTP client no_proxy handling
67+ - debian/patches/CVE-2025-9232.patch: add missing terminating NUL byte
68+ in crypto/http/http_lib.c.
69+ - CVE-2025-9232
70+
71+ -- Hlib Korzhynskyy <hlib.korzhynskyy@canonical.com> Tue, 30 Sep 2025 16:17:50 -0230
72+
73+openssl (3.5.3-1ubuntu1) questing; urgency=medium
74+
75+ * Merge with Debian unstable (LP: #2125443). Remaining changes:
76+ - Use perl:native in the autopkgtest for installability on i386.
77+ - Symlink copyright/changelog.Debian.gz in libssl3* to libssl-dev/openssl
78+ - Disable LTO with which the codebase is generally incompatible (LP #2058017)
79+ - Default config reads crypto-config and /etc/ssl/openssl.cnf.d dropins
80+ - Don't enable or package anything FIPS (LP #2087955)
81+ - fips patches (debian/patches/fips):
82+ - crypto: Add kernel FIPS mode detection
83+ - crypto: Automatically use the FIPS provider...
84+ - apps/speed: Omit unavailable algorithms in FIPS mode
85+ - apps: pass -propquery arg to the libctx DRBG fetches
86+ - test: Ensure encoding runs with the correct context...
87+ - Add Ubuntu-specific defines to help FIPS certification (LP #2073991)
88+ + UBUNTU_OSSL_SELF_TEST_DESC_PCT_DH
89+ + UBUNTU_OSSL_PROV_FIPS_PARAM_UNAPPROVED_USAGE
90+
91+ -- Ravi Kant Sharma <ravi.kant.sharma@canonical.com> Mon, 22 Sep 2025 22:35:44 +0200
92+
93+openssl (3.5.3-1) unstable; urgency=medium
94+
95+ * Import 3.5.3
96+ * Drop pic & Bsymbolic patches. This shouldn't be needed anymore.
97+
98+ -- Sebastian Andrzej Siewior <sebastian@breakpoint.cc> Wed, 17 Sep 2025 21:39:04 +0200
99+
100+openssl (3.5.2-1ubuntu1) questing; urgency=medium
101+
102+ * Merge with Debian unstable (LP: #2121799). Remaining changes:
103+ - Use perl:native in the autopkgtest for installability on i386.
104+ - Symlink copyright/changelog.Debian.gz in libssl3* to libssl-dev/openssl
105+ - Disable LTO with which the codebase is generally incompatible (LP #2058017)
106+ - Default config reads crypto-config and /etc/ssl/openssl.cnf.d dropins
107+ - Don't enable or package anything FIPS (LP #2087955)
108+ - fips patches (debian/patches/fips):
109+ - crypto: Add kernel FIPS mode detection
110+ - crypto: Automatically use the FIPS provider...
111+ - apps/speed: Omit unavailable algorithms in FIPS mode
112+ - apps: pass -propquery arg to the libctx DRBG fetches
113+ - test: Ensure encoding runs with the correct context...
114+ - Add Ubuntu-specific defines to help FIPS certification (LP #2073991)
115+ + UBUNTU_OSSL_SELF_TEST_DESC_PCT_DH
116+ + UBUNTU_OSSL_PROV_FIPS_PARAM_UNAPPROVED_USAGE
117+ * Patches refresh
118+ - d/p/fips/two-defines-for-fips-in-libssl-dev-headers.patch
119+
120+ -- Ravi Kant Sharma <ravi.kant.sharma@canonical.com> Mon, 01 Sep 2025 15:47:30 +0200
121+
122+openssl (3.5.2-1) unstable; urgency=medium
123+
124+ * Import 3.5.2
125+
126+ -- Sebastian Andrzej Siewior <sebastian@breakpoint.cc> Sun, 10 Aug 2025 11:30:37 +0200
127
128 openssl (3.5.1-1) unstable; urgency=medium
129
130@@ -18,6 +115,32 @@ openssl (3.5.1-1) unstable; urgency=medium
131
132 -- Sebastian Andrzej Siewior <sebastian@breakpoint.cc> Sat, 12 Jul 2025 18:49:06 +0200
133
134+openssl (3.5.0-2ubuntu1) questing; urgency=medium
135+
136+ * Merge with Debian unstable (LP: #2112457). Remaining changes:
137+ - Use perl:native in the autopkgtest for installability on i386.
138+ - Symlink copyright/changelog.Debian.gz in libssl3* to libssl-dev/openssl
139+ - Disable LTO with which the codebase is generally incompatible (LP #2058017)
140+ - Default config reads crypto-config and /etc/ssl/openssl.cnf.d dropins
141+ - Don't enable or package anything FIPS (LP #2087955)
142+ - fips patches (debian/patches/fips):
143+ - crypto: Add kernel FIPS mode detection
144+ - crypto: Automatically use the FIPS provider...
145+ - apps/speed: Omit unavailable algorithms in FIPS mode
146+ - apps: pass -propquery arg to the libctx DRBG fetches
147+ - test: Ensure encoding runs with the correct context...
148+ - Add Ubuntu-specific defines to help FIPS certification (LP #2073991)
149+ + UBUNTU_OSSL_SELF_TEST_DESC_PCT_DH
150+ + UBUNTU_OSSL_PROV_FIPS_PARAM_UNAPPROVED_USAGE
151+ * Patches refresh
152+ - d/p/fips/crypto-Automatically-use-the-FIPS-provider-when-the-kerne.patch
153+ - d/p/fips/two-defines-for-fips-in-libssl-dev-headers.patch
154+ * Dropped patch, merged upstream (LP #2096810)
155+ - s390x-Add-hardware-acceleration-for-full-AES-XTS.patch
156+ * Drop all post-3.4.1 upstream patches
157+
158+ -- Ravi Kant Sharma <ravi.kant.sharma@canonical.com> Wed, 04 Jun 2025 12:46:00 +0200
159+
160 openssl (3.5.0-2) unstable; urgency=medium
161
162 * Fix P-384 curve on lower-than-P9 PPC64 targets Closes: #1106516).
163@@ -46,6 +169,43 @@ openssl (3.5.0~~alpha1-1) experimental; urgency=medium
164
165 -- Sebastian Andrzej Siewior <sebastian@breakpoint.cc> Wed, 12 Mar 2025 22:08:55 +0100
166
167+openssl (3.4.1-1ubuntu3) plucky; urgency=medium
168+
169+ * Cherry-pick additional 3.4 fixes up to April 2:
170+ - post-3.4.1/*: refresh and add new upstream patches from git
171+
172+ -- Julian Andres Klode <juliank@ubuntu.com> Thu, 03 Apr 2025 10:48:37 +0200
173+
174+openssl (3.4.1-1ubuntu2) plucky; urgency=medium
175+
176+ * Pull patches between 3.4.1 and 2025/02/17:
177+ - post-3.4.1/*: add upstream patches from git
178+ - SPARC-assembly-Don-t-file-aes-cbc-on-T4-with-small-sizes.patch:
179+ remove as it's included in the upstream patches
180+
181+ -- Adrien Nader <adrien.nader@canonical.com> Tue, 18 Mar 2025 10:07:41 +0100
182+
183+openssl (3.4.1-1ubuntu1) plucky; urgency=medium
184+
185+ * Merge with Debian unstable. Remaining changes:
186+ - Use perl:native in the autopkgtest for installability on i386.
187+ - Symlink copyright/changelog.Debian.gz in libssl3* to libssl-dev/openssl
188+ - Disable LTO with which the codebase is generally incompatible (LP: #2058017)
189+ - Default config reads crypto-config and /etc/ssl/openssl.cnf.d dropins
190+ - Don't enable or package anything FIPS (LP: #2087955)
191+ - patch: crypto: Add kernel FIPS mode detection
192+ - patch: crypto: Automatically use the FIPS provider...
193+ - patch: apps/speed: Omit unavailable algorithms in FIPS mode
194+ - patch: apps: pass -propquery arg to the libctx DRBG fetches
195+ - patch: test: Ensure encoding runs with the correct context...
196+ - patch: Add Ubuntu-specific defines to help FIPS certification (LP: #2073991)
197+ + UBUNTU_OSSL_SELF_TEST_DESC_PCT_DH
198+ + UBUNTU_OSSL_PROV_FIPS_PARAM_UNAPPROVED_USAGE
199+ * Remove now-unneeded work-around for m2crypto as discussed in #1091133
200+ * patch: add CPACF instruction usage for AES-XTS (LP: #2096810)
201+
202+ -- Adrien Nader <adrien.nader@canonical.com> Wed, 12 Feb 2025 10:21:22 +0100
203+
204 openssl (3.4.1-1) unstable; urgency=medium
205
206 * Import 3.4.1
207@@ -64,6 +224,39 @@ openssl (3.4.0-2) unstable; urgency=medium
208
209 -- Sebastian Andrzej Siewior <sebastian@breakpoint.cc> Mon, 06 Jan 2025 19:01:42 +0100
210
211+openssl (3.4.0-1ubuntu2) plucky; urgency=medium
212+
213+ * d/p/fips/crypto-Automatically-use-the-FIPS-provider-when-the-kerne.patch:
214+ Extend the patch to print the error encounted when a fallback
215+ provider fails loading, e.g. due to FIPS auto-loading (LP: #2066990)
216+ * d/p/Revert-When-defining-ossl_ssize_t-ssize_t-remember-t.patch:
217+ Work-around SWIG using different feature flag defines than GCC and
218+ parsing sys/select.h differently. (LP: #2091883)
219+
220+ -- Adrien Nader <adrien.nader@canonical.com> Thu, 19 Dec 2024 16:12:42 +0100
221+
222+openssl (3.4.0-1ubuntu1) plucky; urgency=medium
223+
224+ * Merge with Debian unstable (LP: #2044795). Remaining changes:
225+ - Use perl:native in the autopkgtest for installability on i386.
226+ - Symlink copyright/changelog.Debian.gz in libssl3* to libssl-dev/openssl
227+ - Disable LTO with which the codebase is generally incompatible (LP: #2058017)
228+ - Default config reads crypto-config and /etc/ssl/openssl.cnf.d dropins
229+ - patch: crypto: Add kernel FIPS mode detection
230+ - patch: crypto: Automatically use the FIPS provider...
231+ - patch: apps/speed: Omit unavailable algorithms in FIPS mode
232+ - patch: apps: pass -propquery arg to the libctx DRBG fetches
233+ - patch: test: Ensure encoding runs with the correct context...
234+ - patch: Add Ubuntu-specific defines to help FIPS certification (LP: #2073991)
235+ + UBUNTU_OSSL_SELF_TEST_DESC_PCT_DH
236+ + UBUNTU_OSSL_PROV_FIPS_PARAM_UNAPPROVED_USAGE
237+ Dropped, merged upstream:
238+ - debian/patches/CVE-2024-6119.patch: avoid type errors in EAI-related
239+ name check logic in crypto/x509/v3_utl.c, test/*.
240+ * Don't enable or package anything FIPS (LP: #2087955)
241+
242+ -- Adrien Nader <adrien.nader@canonical.com> Fri, 29 Nov 2024 11:19:56 +0100
243+
244 openssl (3.4.0-1) experimental; urgency=medium
245
246 * Import 3.4.0
247@@ -131,6 +324,37 @@ openssl (3.3.1-5) experimental; urgency=medium
248
249 -- Sebastian Andrzej Siewior <sebastian@breakpoint.cc> Sun, 04 Aug 2024 23:22:06 +0200
250
251+openssl (3.3.1-2ubuntu2) oracular; urgency=medium
252+
253+ * SECURITY UPDATE: Possible denial of service in X.509 name checks
254+ - debian/patches/CVE-2024-6119.patch: avoid type errors in EAI-related
255+ name check logic in crypto/x509/v3_utl.c, test/*.
256+ - CVE-2024-6119
257+ * Add Ubuntu-specific defines to help FIPS certification (LP: #2073991)
258+ - UBUNTU_OSSL_SELF_TEST_DESC_PCT_DH
259+ - UBUNTU_OSSL_PROV_FIPS_PARAM_UNAPPROVED_USAGE
260+
261+ -- Adrien Nader <adrien.nader@canonical.com> Wed, 11 Sep 2024 16:09:42 +0200
262+
263+openssl (3.3.1-2ubuntu1) oracular; urgency=medium
264+
265+ * Merge with Debian unstable (LP: #2044795). Remaining changes:
266+ - Use perl:native in the autopkgtest for installability on i386.
267+ - Symlink copyright/changelog.Debian.gz in libssl3* to libssl-dev/openssl
268+ - Disable LTO with which the codebase is generally incompatible (LP #2058017)
269+ - Default config reads crypto-config and /etc/ssl/openssl.cnf.d dropins
270+ - patch: crypto: Add kernel FIPS mode detection
271+ - patch: crypto: Automatically use the FIPS provider...
272+ - patch: apps/speed: Omit unavailable algorithms in FIPS mode
273+ - patch: apps: pass -propquery arg to the libctx DRBG fetches
274+ - patch: test: Ensure encoding runs with the correct context...
275+ - SECURITY UPDATE: crash or memory disclosure via SSL_select_next_proto
276+ - debian/patches/CVE-2024-5535*.patch: validate provided client list in
277+ ssl/ssl_lib.c.
278+ - CVE-2024-5535
279+
280+ -- Simon Chopin <schopin@ubuntu.com> Mon, 12 Aug 2024 13:49:56 +0200
281+
282 openssl (3.3.1-2) unstable; urgency=medium
283
284 * Upload to unstable.
285@@ -163,6 +387,76 @@ openssl (3.3.0~beta1-1) experimental; urgency=medium
286
287 -- Sebastian Andrzej Siewior <sebastian@breakpoint.cc> Fri, 05 Apr 2024 23:09:03 +0200
288
289+openssl (3.2.2-1ubuntu3) oracular; urgency=medium
290+
291+ * Added extra commits to previous upload to fix FTBFS in quic tests
292+ - debian/patches/CVE-2024-5535-2.patch: more correctly handle a
293+ selected_len of 0 when processing NPN in ssl/statem/extensions_clnt.c.
294+ - debian/patches/CVE-2024-5535-3.patch: use correctly formatted ALPN
295+ data in tserver in ssl/quic/quic_tserver.c.
296+
297+ -- Marc Deslauriers <marc.deslauriers@ubuntu.com> Fri, 02 Aug 2024 07:41:40 -0400
298+
299+openssl (3.2.2-1ubuntu2) oracular; urgency=medium
300+
301+ * SECURITY UPDATE: crash or memory disclosure via SSL_select_next_proto
302+ - debian/patches/CVE-2024-5535.patch: validate provided client list in
303+ ssl/ssl_lib.c.
304+ - CVE-2024-5535
305+
306+ -- Marc Deslauriers <marc.deslauriers@ubuntu.com> Wed, 31 Jul 2024 13:16:18 -0400
307+
308+openssl (3.2.2-1ubuntu1) oracular; urgency=medium
309+
310+ * Merge 3.2.2-1 from Debian unstable
311+ - Remaining changes:
312+ + Symlink changelog.Debian.gz and copyright.gz from libssl-dev and
313+ openssl to the ones in libssl3t64
314+ + Use perl:native in the autopkgtest for installability on i386.
315+ + Disable LTO with which the codebase is generally incompatible
316+ (LP: #2058017)
317+ + Add fips-mode detection and adjust defaults when running in fips mode
318+ * The changelog.gz symlink was broken (LP: #1297025)
319+ * The copyright symlink was broken (LP: #2067672)
320+ * Default configuration includes two paths:
321+ - /var/lib/crypto-config/profiles/current/openssl.conf.d
322+ - /etc/ssl/openssl.conf.d
323+ First one is to read configuration through the crypto-config framework.
324+ Second one is for customization by sysadmin.
325+
326+ -- Adrien Nader <adrien.nader@canonical.com> Mon, 01 Jul 2024 17:04:32 +0200
327+
328+openssl (3.2.1-3ubuntu1) oracular; urgency=medium
329+
330+ * Merge 3.2.1-3 from Debian unstable (LP: #2067384)
331+ - Remaining changes:
332+ + Symlink changelog{,.Debian}.gz and copyright.gz from libssl-dev to
333+ openssl
334+ + Use perl:native in the autopkgtest for installability on i386.
335+ + Disable LTO with which the codebase is generally incompatible
336+ (LP: #2058017)
337+ + Add fips-mode detection and adjust defaults when running in fips mode
338+ - Dropped changes:
339+ + d/libssl3.postinst: Revert Debian deletion
340+ - Skip services restart & reboot notification if needrestart is in-use.
341+ - Bump version check to 1.1.1 (bug opened as LP: #1999139)
342+ - Use a different priority for libssl1.1/restart-services depending
343+ on whether a desktop, or server dist-upgrade is being performed.
344+ - Import libraries/restart-without-asking template as used by above.
345+ + Add support for building with noudeb build profile which has been
346+ integrated
347+ + Patches that forbade TLS < 1.2 @SECLEVEL=2 which is now upstream
348+ behaviour:
349+ - skip_tls1.1_seclevel3_tests.patch
350+ - tests-use-seclevel-1.patch
351+ - tls1.2-min-seclevel2.patch
352+ + Revert the provider removal from the default configuration as there's
353+ no point in carrying the delta (will see if Debian drops the patch)
354+ + d/p/intel/*: was a backport from upstream changes
355+ + d/p/CVE-*: was a backport from upstream changes
356+
357+ -- Adrien Nader <adrien.nader@canonical.com> Tue, 28 May 2024 14:30:44 +0200
358+
359 openssl (3.2.1-3) unstable; urgency=medium
360
361 * Upload to unstable.
362@@ -266,6 +560,262 @@ openssl (3.1.0-1) experimental; urgency=medium
363
364 -- Sebastian Andrzej Siewior <sebastian@breakpoint.cc> Sat, 06 May 2023 12:11:09 +0200
365
366+openssl (3.0.13-0ubuntu4) oracular; urgency=medium
367+
368+ * SECURITY UPDATE: Implicit rejection for RSA PKCS#1 (LP: #2054090)
369+ - debian/patches/openssl-pkcs1-implicit-rejection.patch:
370+ Return deterministic random output instead of an error in case
371+ there is a padding error in crypto/cms/cms_env.c,
372+ crypto/evp/ctrl_params_translate.c, crypto/pkcs7/pk7_doit.c,
373+ crypto/rsa/rsa_ossl.c, crypto/rsa/rsa_pk1.c,
374+ crypto/rsa/rsa_pmeth.c, doc/man1/openssl-pkeyutl.pod.in,
375+ doc/man1/openssl-rsautl.pod.in, doc/man3/EVP_PKEY_CTX_ctrl.pod,
376+ doc/man3/EVP_PKEY_decrypt.pod,
377+ doc/man3/RSA_padding_add_PKCS1_type_1.pod,
378+ doc/man3/RSA_public_encrypt.pod, doc/man7/provider-asym_cipher.pod,
379+ include/crypto/rsa.h, include/openssl/core_names.h,
380+ include/openssl/rsa.h,
381+ providers/implementations/asymciphers/rsa_enc.c and
382+ test/recipes/30-test_evp_data/evppkey_rsa_common.txt.
383+
384+ -- David Fernandez Gonzalez <david.fernandezgonzalez@canonical.com> Wed, 15 May 2024 09:54:00 +0200
385+
386+openssl (3.0.13-0ubuntu3) noble; urgency=medium
387+
388+ * No-change rebuild for CVE-2024-3094
389+
390+ -- Steve Langasek <steve.langasek@ubuntu.com> Sun, 31 Mar 2024 06:42:03 +0000
391+
392+openssl (3.0.13-0ubuntu2) noble; urgency=medium
393+
394+ [ Tobias Heider ]
395+ * Add fips-mode detection and adjust defaults when running in fips mode
396+ (LP: #2056593):
397+ - d/p/fips/crypto-Add-kernel-FIPS-mode-detection.patch:
398+ Detect if kernel fips mode is enabled
399+ - d/p/fips/crypto-Automatically-use-the-FIPS-provider-when-the-kerne.patch:
400+ Load FIPS provider if running in FIPS mode
401+ - d/p/fips/apps-speed-Omit-unavailable-algorithms-in-FIPS-mode.patch:
402+ Limit openssl-speed to FIPS compliant algorithms when running in FIPS mode
403+ - d/p/fips/apps-pass-propquery-arg-to-the-libctx-DRBG-fetches.patch
404+ Make sure DRBG respects query properties
405+ - d/p/fips/test-Ensure-encoding-runs-with-the-correct-context-during.patch:
406+ Make sure encoding runs with correct library context and provider
407+
408+ [ Adrien Nader ]
409+ * Re-enable intel/0002-AES-GCM-enabled-with-AVX512-vAES-and-vPCLMULQDQ.patch
410+ (LP: #2030784)
411+ Thanks Bun K Tan and Dan Zimmerman
412+ * Disable LTO with which the codebase is generally incompatible (LP: #2058017)
413+
414+ -- Adrien Nader <adrien.nader@canonical.com> Fri, 15 Mar 2024 09:46:33 +0100
415+
416+openssl (3.0.13-0ubuntu1) noble; urgency=medium
417+
418+ * Import 3.0.13
419+ - Drop security patches :
420+ + CVE-2023-5363-1.patch
421+ + CVE-2023-5363-2.patch
422+ + CVE-2023-5678.patch
423+ + CVE-2023-6129.patch
424+ + CVE-2023-6237.patch
425+ + CVE-2024-0727.patch
426+ - Skip intel/0002-AES-GCM-enabled-with-AVX512-vAES-and-vPCLMULQDQ.patch
427+ as it causes testsuite failures.
428+
429+ -- Adrien Nader <adrien.nader@canonical.com> Fri, 08 Mar 2024 10:47:35 +0100
430+
431+openssl (3.0.10-1ubuntu5) noble; urgency=medium
432+
433+ * Rename libraries for 64-bit time_t transition. Closes: #1064264
434+
435+ -- Steve Langasek <steve.langasek@ubuntu.com> Sun, 03 Mar 2024 20:47:45 -0800
436+
437+openssl (3.0.10-1ubuntu4) noble; urgency=medium
438+
439+ * SECURITY UPDATE: Excessive time spent in DH check / generation with
440+ large Q parameter value
441+ - debian/patches/CVE-2023-5678.patch: make DH_check_pub_key() and
442+ DH_generate_key() safer yet in crypto/dh/dh_check.c,
443+ crypto/dh/dh_err.c, crypto/dh/dh_key.c, crypto/err/openssl.txt,
444+ include/crypto/dherr.h, include/openssl/dh.h,
445+ include/openssl/dherr.h.
446+ - CVE-2023-5678
447+ * SECURITY UPDATE: POLY1305 MAC implementation corrupts vector registers
448+ on PowerPC
449+ - debian/patches/CVE-2023-6129.patch: fix vector register clobbering in
450+ crypto/poly1305/asm/poly1305-ppc.pl.
451+ - CVE-2023-6129
452+ * SECURITY UPDATE: Excessive time spent checking invalid RSA public keys
453+ - debian/patches/CVE-2023-6237.patch: limit the execution time of RSA
454+ public key check in crypto/rsa/rsa_sp800_56b_check.c,
455+ test/recipes/91-test_pkey_check.t,
456+ test/recipes/91-test_pkey_check_data/rsapub_17k.pem.
457+ - CVE-2023-6237
458+ * SECURITY UPDATE: PKCS12 Decoding crashes
459+ - debian/patches/CVE-2024-0727.patch: add NULL checks where ContentInfo
460+ data can be NULL in crypto/pkcs12/p12_add.c,
461+ crypto/pkcs12/p12_mutl.c, crypto/pkcs12/p12_npas.c,
462+ crypto/pkcs7/pk7_mime.c.
463+ - CVE-2024-0727
464+
465+ -- Marc Deslauriers <marc.deslauriers@ubuntu.com> Wed, 31 Jan 2024 13:03:16 -0500
466+
467+openssl (3.0.10-1ubuntu3) noble; urgency=medium
468+
469+ * Drop most of d/libssl3.postinst, keeping only the reboot notification on
470+ servers. The dropped code was actually unreachable since around Ubuntu
471+ 18.04, except for debconf which was loaded but not used.
472+ * Remove template for debconf
473+
474+ -- Adrien Nader <adrien.nader@canonical.com> Mon, 18 Sep 2023 16:06:16 +0200
475+
476+openssl (3.0.10-1ubuntu2.1) mantic-security; urgency=medium
477+
478+ * SECURITY UPDATE: Incorrect cipher key and IV length processing
479+ - debian/patches/CVE-2023-5363-1.patch: process key length and iv
480+ length early if present in crypto/evp/evp_enc.c.
481+ - debian/patches/CVE-2023-5363-2.patch: add unit test in
482+ test/evp_extra_test.c.
483+ - CVE-2023-5363
484+
485+ -- Marc Deslauriers <marc.deslauriers@ubuntu.com> Fri, 13 Oct 2023 07:51:05 -0400
486+
487+openssl (3.0.10-1ubuntu2) mantic; urgency=medium
488+
489+ * d/p/intel/*: cherry-pick AVX512 patches for recent Intel CPUs (LP: #2030784)
490+
491+ -- Simon Chopin <schopin@ubuntu.com> Tue, 08 Aug 2023 17:51:58 +0200
492+
493+openssl (3.0.10-1ubuntu1) mantic; urgency=low
494+
495+ * Merge from Debian unstable. Remaining changes:
496+ - Remaining changes:
497+ + Symlink changelog{,.Debian}.gz and copyright.gz from libssl-dev to
498+ openssl
499+ + d/libssl3.postinst: Revert Debian deletion
500+ - Skip services restart & reboot notification if needrestart is in-use.
501+ - Bump version check to 1.1.1 (bug opened as LP: #1999139)
502+ - Use a different priority for libssl1.1/restart-services depending
503+ on whether a desktop, or server dist-upgrade is being performed.
504+ - Import libraries/restart-without-asking template as used by above.
505+ + Add support for building with noudeb build profile.
506+ + Use perl:native in the autopkgtest for installability on i386.
507+
508+ -- Gianfranco Costamagna <locutusofborg@debian.org> Wed, 02 Aug 2023 08:59:28 +0200
509+
510+openssl (3.0.10-1) unstable; urgency=medium
511+
512+ * Import 3.0.10
513+ - CVE-2023-2975 (AES-SIV implementation ignores empty associated data
514+ entries) (Closes: #1041818).
515+ - CVE-2023-3446 (Excessive time spent checking DH keys and parameters).
516+ (Closes: #1041817).
517+ - CVE-2023-3817 (Excessive time spent checking DH q parameter value).
518+ - Drop bc and m4 from B-D.
519+
520+ -- Sebastian Andrzej Siewior <sebastian@breakpoint.cc> Tue, 01 Aug 2023 22:00:05 +0200
521+
522+openssl (3.0.9-1ubuntu1) mantic; urgency=low
523+
524+ * Merge from Debian unstable. Remaining changes:
525+ - Remaining changes:
526+ + Symlink changelog{,.Debian}.gz and copyright.gz from libssl-dev to
527+ openssl
528+ + d/libssl3.postinst: Revert Debian deletion
529+ - Skip services restart & reboot notification if needrestart is in-use.
530+ - Bump version check to 1.1.1 (bug opened as LP: #1999139)
531+ - Use a different priority for libssl1.1/restart-services depending
532+ on whether a desktop, or server dist-upgrade is being performed.
533+ - Import libraries/restart-without-asking template as used by above.
534+ + Add support for building with noudeb build profile.
535+ + Use perl:native in the autopkgtest for installability on i386.
536+
537+ -- Gianfranco Costamagna <locutusofborg@debian.org> Mon, 12 Jun 2023 11:19:44 +0200
538+
539+openssl (3.0.9-1) unstable; urgency=medium
540+
541+ * Import 3.0.9
542+ - CVE-2023-0464 (Excessive Resource Usage Verifying X.509 Policy
543+ Constraints) (Closes: #1034720).
544+ - CVE-2023-0465 (Invalid certificate policies in leaf certificates are
545+ silently ignored).
546+ - CVE-2023-0466 (Certificate policy check not enabled).
547+ - Alternative fix for CVE-2022-4304 (Timing Oracle in RSA Decryption).
548+ - CVE-2023-2650 (Possible DoS translating ASN.1 object identifiers).
549+ - CVE-2023-1255 (Input buffer over-read in AES-XTS implementation on 64 bit ARM).
550+ - Add new symbol.
551+
552+ -- Sebastian Andrzej Siewior <sebastian@breakpoint.cc> Tue, 30 May 2023 18:12:36 +0200
553+
554+openssl (3.0.8-1ubuntu3) mantic; urgency=medium
555+
556+ * SECURITY UPDATE: DoS in AES-XTS cipher decryption
557+ - debian/patches/CVE-2023-1255.patch: avoid buffer overrread in
558+ crypto/aes/asm/aesv8-armx.pl.
559+ - CVE-2023-1255
560+ * SECURITY UPDATE: Possible DoS translating ASN.1 object identifiers
561+ - debian/patches/CVE-2023-2650.patch: restrict the size of OBJECT
562+ IDENTIFIERs that OBJ_obj2txt will translate in
563+ crypto/objects/obj_dat.c.
564+ - CVE-2023-2650
565+ * Replace CVE-2022-4304 fix with improved version
566+ - debian/patches/revert-CVE-2022-4304.patch: remove previous fix.
567+ - debian/patches/CVE-2022-4304.patch: use alternative fix in
568+ crypto/bn/bn_asm.c, crypto/bn/bn_blind.c, crypto/bn/bn_lib.c,
569+ crypto/bn/bn_local.h, crypto/rsa/rsa_ossl.c.
570+
571+ -- Marc Deslauriers <marc.deslauriers@ubuntu.com> Wed, 24 May 2023 13:04:49 -0400
572+
573+openssl (3.0.8-1ubuntu2) mantic; urgency=medium
574+
575+ * Manual reupload from lunar-security to mantic-proposed pocket, due to
576+ LP failing to copy it
577+
578+ -- Gianfranco Costamagna <locutusofborg@debian.org> Wed, 03 May 2023 10:49:04 +0200
579+
580+openssl (3.0.8-1ubuntu1.1) lunar-security; urgency=medium
581+
582+ * SECURITY UPDATE: excessive resource use when verifying policy constraints
583+ - debian/patches/CVE-2023-0464-1.patch: limit the number of nodes created
584+ in a policy tree (the default limit is set to 1000 nodes).
585+ - debian/patches/CVE-2023-0464-2.patch: add test cases for the policy
586+ resource overuse.
587+ - debian/patches/CVE-2023-0464-3.patch: disable the policy tree
588+ exponential growth test conditionally.
589+ - CVE-2023-0464
590+ * SECURITY UPDATE: invalid certificate policies ignored in leaf certificates
591+ - debian/patches/CVE-2023-0465-1.patch: ensure that EXFLAG_INVALID_POLICY
592+ is checked even in leaf certs.
593+ - debian/patches/CVE-2023-0465-2.patch: generate some certificates with
594+ the certificatePolicies extension.
595+ - debian/patches/CVE-2023-0465-3.patch: add a certificate policies test.
596+ - CVE-2023-0466
597+ * SECURITY UPDATE: certificate policy check in X509_VERIFY_PARAM_add0_policy
598+ not enabled as documented
599+ - debian/patches/CVE-2023-0466.patch: fix documentation of
600+ X509_VERIFY_PARAM_add0_policy().
601+ - CVE-2023-0466
602+
603+ -- Camila Camargo de Matos <camila.camargodematos@canonical.com> Mon, 24 Apr 2023 07:52:33 -0300
604+
605+openssl (3.0.8-1ubuntu1) lunar; urgency=medium
606+
607+ * Merge 3.0.8 from Debian testing (LP: #2006954)
608+ - Remaining changes:
609+ + Symlink changelog{,.Debian}.gz and copyright.gz from libssl-dev to
610+ openssl
611+ + d/libssl3.postinst: Revert Debian deletion
612+ - Skip services restart & reboot notification if needrestart is in-use.
613+ - Bump version check to 1.1.1 (bug opened as LP: #1999139)
614+ - Use a different priority for libssl1.1/restart-services depending
615+ on whether a desktop, or server dist-upgrade is being performed.
616+ - Import libraries/restart-without-asking template as used by above.
617+ + Add support for building with noudeb build profile.
618+ + Use perl:native in the autopkgtest for installability on i386.
619+
620+ -- Adrien Nader <adrien.nader@canonical.com> Mon, 20 Feb 2023 16:10:19 +0100
621+
622 openssl (3.0.8-1) unstable; urgency=medium
623
624 * Import 3.0.8
625@@ -300,6 +850,40 @@ openssl (3.0.7-2) unstable; urgency=medium
626
627 -- Sebastian Andrzej Siewior <sebastian@breakpoint.cc> Thu, 19 Jan 2023 21:31:42 +0100
628
629+openssl (3.0.7-1ubuntu1) lunar; urgency=medium
630+
631+ * Merge 3.0.7 from Debian unstable (LP: #1998942)
632+ - Drop patches merged upstream:
633+ + CVE-2022-3358.patch
634+ + CVE-2022-3602-1.patch
635+ + CVE-2022-3602-2.patch
636+ - Shrink patch since upstream fixed some tests in the patch above:
637+ + tests-use-seclevel-1.patch
638+ - Drop patch since -DOPENSSL_TLS_SECURITY_LEVEL=2 is now hard-coded:
639+ + Set-systemwide-default-settings-for-libssl-users.patch
640+ - Drop Debian patch not needed anymore:
641+ + TEST-Provide-a-default-openssl.cnf-for-tests.patch
642+ - Mention Debian as defaulting to SECLEVEL=2 in addition to Ubuntu:
643+ + tls1.2-min-seclevel2.patch
644+ - Remaining changes:
645+ + Symlink changelog{,.Debian}.gz and copyright.gz from libssl-dev to
646+ openssl
647+ + d/libssl3.postinst: Revert Debian deletion
648+ - Skip services restart & reboot notification if needrestart is in-use.
649+ - Bump version check to 1.1.1 (bug opened as LP: #1999139)
650+ - Use a different priority for libssl1.1/restart-services depending
651+ on whether a desktop, or server dist-upgrade is being performed.
652+ - Import libraries/restart-without-asking template as used by above.
653+ + Add support for building with noudeb build profile.
654+ + Use perl:native in the autopkgtest for installability on i386.
655+ * Correct comment as to which TLS version is disabled with our seclevel:
656+ - skip_tls1.1_seclevel3_tests.patch
657+
658+ [Sebastian Andrzej Siewior]
659+ * CVE-2022-3996 (X.509 Policy Constraints Double Locking).
660+
661+ -- Adrien Nader <adrien.nader@canonical.com> Tue, 06 Dec 2022 15:11:40 +0100
662+
663 openssl (3.0.7-1) unstable; urgency=medium
664
665 * Import 3.0.7
666@@ -326,6 +910,53 @@ openssl (3.0.5-3) unstable; urgency=medium
667
668 -- Sebastian Andrzej Siewior <sebastian@breakpoint.cc> Sun, 18 Sep 2022 21:48:05 +0200
669
670+openssl (3.0.5-2ubuntu2) kinetic-security; urgency=medium
671+
672+ * SECURITY UPDATE: X.509 Email Address Buffer Overflow
673+ - debian/patches/CVE-2022-3602-1.patch: fix off by one in punycode
674+ decoder in crypto/punycode.c, test/build.info, test/punycode_test.c,
675+ test/recipes/04-test_punycode.t.
676+ - debian/patches/CVE-2022-3602-2.patch: ensure the result is zero
677+ terminated in crypto/punycode.c.
678+ - CVE-2022-3602
679+ * SECURITY UPDATE: legacy custom cipher issue
680+ - debian/patches/CVE-2022-3358.patch: fix usage of custom EVP_CIPHER
681+ objects in crypto/evp/digest.c, crypto/evp/evp_enc.c.
682+ - CVE-2022-3358
683+
684+ -- Marc Deslauriers <marc.deslauriers@ubuntu.com> Thu, 27 Oct 2022 13:05:01 -0400
685+
686+openssl (3.0.5-2ubuntu1) kinetic; urgency=low
687+
688+ * Merge from Debian unstable (LP: #1987047). Remaining changes:
689+ - Replace duplicate files in the doc directory with symlinks.
690+ - d/libssl3.postinst: Revert Debian deletion
691+ + Skip services restart & reboot notification if needrestart is in-use.
692+ + Bump version check to to 1.1.1.
693+ + Use a different priority for libssl1.1/restart-services depending
694+ on whether a desktop, or server dist-upgrade is being performed.
695+ + Import libraries/restart-without-asking template as used by above.
696+ - Add support for building with noudeb build profile.
697+ - Revert "Enable system default config to enforce TLS1.2 as a
698+ minimum" & "Increase default security level from 1 to 2".
699+ - Set OPENSSL_TLS_SECURITY_LEVEL=2 as compiled-in minimum security
700+ level. Change meaning of SECURITY_LEVEL=2 to prohibit TLS versions
701+ below 1.2 and update documentation. Previous default of 1, can be set
702+ by calling SSL_CTX_set_security_level(), SSL_set_security_level() or
703+ using ':@SECLEVEL=1' CipherString value in openssl.cfg.
704+ - Use perl:native in the autopkgtest for installability on i386.
705+ - d/p/skip_tls1.1_seclevel3_tests.patch: new Ubuntu-specific patch for the
706+ testsuite
707+ - d/p/Set-systemwide-default-settings-for-libssl-users: partially apply it
708+ on Ubuntu to make it easier for user to change security level
709+ * Dropped changes, merged upstream:
710+ - d/p/fix-avx512-overflow.patch: Cherry-picked from upstream to fix a 3.0.4
711+ regression on AVX-512 capable CPUs.
712+ * Revert the provider removal from the default configuration, following
713+ discussions on LP: #1979639
714+
715+ -- Simon Chopin <schopin@ubuntu.com> Fri, 19 Aug 2022 10:05:04 +0200
716+
717 openssl (3.0.5-2) unstable; urgency=medium
718
719 * Update to commit ce3951fc30c7b ("VC++ 2008 or earlier x86 compilers…")
720@@ -350,6 +981,39 @@ openssl (3.0.4-2) unstable; urgency=medium
721
722 -- Sebastian Andrzej Siewior <sebastian@breakpoint.cc> Fri, 24 Jun 2022 19:27:02 +0200
723
724+openssl (3.0.4-1ubuntu1) kinetic; urgency=medium
725+
726+ * Merge from Debian unstable (LP: #1979639). Remaining changes:
727+ - Replace duplicate files in the doc directory with symlinks.
728+ - d/libssl3.postinst: Revert Debian deletion
729+ + Skip services restart & reboot notification if needrestart is in-use.
730+ + Bump version check to to 1.1.1.
731+ + Use a different priority for libssl1.1/restart-services depending
732+ on whether a desktop, or server dist-upgrade is being performed.
733+ + Import libraries/restart-without-asking template as used by above.
734+ - Add support for building with noudeb build profile.
735+ - Revert "Enable system default config to enforce TLS1.2 as a
736+ minimum" & "Increase default security level from 1 to 2".
737+ - Set OPENSSL_TLS_SECURITY_LEVEL=2 as compiled-in minimum security
738+ level. Change meaning of SECURITY_LEVEL=2 to prohibit TLS versions
739+ below 1.2 and update documentation. Previous default of 1, can be set
740+ by calling SSL_CTX_set_security_level(), SSL_set_security_level() or
741+ using ':@SECLEVEL=1' CipherString value in openssl.cfg.
742+ - Use perl:native in the autopkgtest for installability on i386.
743+ - d/p/skip_tls1.1_seclevel3_tests.patch: new Ubuntu-specific patch for the
744+ testsuite
745+ - d/p/Set-systemwide-default-settings-for-libssl-users: partially apply it
746+ on Ubuntu to make it easier for user to change security level
747+ * Dropped changes, merged upstream:
748+ - Add some more string comparison fixes
749+ - d/p/lp1947588.patch: Cherry-picked as our patches make it very easy to
750+ trigger the underlying bug
751+ - d/p/lp1978093/*: renew some expiring test certificates
752+ * d/p/fix-avx512-overflow.patch: Cherry-picked from upstream to fix a 3.0.4
753+ regression on AVX-512 capable CPUs.
754+
755+ -- Simon Chopin <schopin@ubuntu.com> Thu, 23 Jun 2022 12:43:23 +0200
756+
757 openssl (3.0.4-1) unstable; urgency=medium
758
759 * Import 3.0.4
760@@ -377,6 +1041,49 @@ openssl (3.0.3-6) unstable; urgency=medium
761
762 -- Sebastian Andrzej Siewior <sebastian@breakpoint.cc> Sat, 04 Jun 2022 15:25:53 +0200
763
764+openssl (3.0.3-5ubuntu3) kinetic; urgency=medium
765+
766+ * d/p/lp1978093/*: renew some expiring test certificates (LP: #1978093)
767+
768+ -- Simon Chopin <schopin@ubuntu.com> Thu, 09 Jun 2022 13:20:55 +0200
769+
770+openssl (3.0.3-5ubuntu2) kinetic; urgency=medium
771+
772+ * d/p/Set-systemwide-default-settings-for-libssl-users: don't comment out
773+ the CipherString string to avoid an empty section.
774+
775+ -- Simon Chopin <schopin@ubuntu.com> Tue, 31 May 2022 13:02:15 +0200
776+
777+openssl (3.0.3-5ubuntu1) kinetic; urgency=medium
778+
779+ * Merge with Debian unstable (LP: #1974035):
780+ Remaining change:
781+ - Replace duplicate files in the doc directory with symlinks.
782+ - d/libssl3.postinst: Revert Debian deletion
783+ + Skip services restart & reboot notification if needrestart is in-use.
784+ + Bump version check to to 1.1.1.
785+ + Use a different priority for libssl1.1/restart-services depending
786+ on whether a desktop, or server dist-upgrade is being performed.
787+ + Import libraries/restart-without-asking template as used by above.
788+ - Add support for building with noudeb build profile.
789+ - Revert "Enable system default config to enforce TLS1.2 as a
790+ minimum" & "Increase default security level from 1 to 2".
791+ - Set OPENSSL_TLS_SECURITY_LEVEL=2 as compiled-in minimum security
792+ level. Change meaning of SECURITY_LEVEL=2 to prohibit TLS versions
793+ below 1.2 and update documentation. Previous default of 1, can be set
794+ by calling SSL_CTX_set_security_level(), SSL_set_security_level() or
795+ using ':@SECLEVEL=1' CipherString value in openssl.cfg.
796+ - Use perl:native in the autopkgtest for installability on i386.
797+ - d/p/skip_tls1.1_seclevel3_tests.patch: new Ubuntu-specific patch for the
798+ testsuite
799+ * Add some more string comparison fixes (LP: #1974037)
800+ * d/p/Set-systemwide-default-settings-for-libssl-users: partially apply it on
801+ Ubuntu to make it easier for user to change security level (LP: #1972056)
802+ * d/p/lp1947588.patch: Cherry-picked as our patches make it very easy to
803+ trigger the underlying bug (LP: #1947588)
804+
805+ -- Simon Chopin <schopin@ubuntu.com> Tue, 31 May 2022 09:49:54 +0200
806+
807 openssl (3.0.3-5) unstable; urgency=medium
808
809 * Don't generate endbr32 opcodes on i386. Thanks to Wolfgang Walter
810@@ -426,6 +1133,14 @@ openssl (3.0.3-1) experimental; urgency=medium
811
812 -- Sebastian Andrzej Siewior <sebastian@breakpoint.cc> Fri, 06 May 2022 22:21:52 +0200
813
814+openssl (3.0.3-0ubuntu1) kinetic; urgency=medium
815+
816+ * New upstream release (LP: #1968997):
817+ - d/p/CVE-2022-*: dropped, present upstream
818+ - d/p/c_rehash-compat.patch: refreshed
819+
820+ -- Simon Chopin <simon.chopin@canonical.com> Thu, 05 May 2022 10:56:04 +0200
821+
822 openssl (3.0.2-1) experimental; urgency=medium
823
824 * Import 3.0.2
825@@ -434,6 +1149,40 @@ openssl (3.0.2-1) experimental; urgency=medium
826
827 -- Sebastian Andrzej Siewior <sebastian@breakpoint.cc> Tue, 15 Mar 2022 20:54:57 +0100
828
829+openssl (3.0.2-0ubuntu2) kinetic; urgency=medium
830+
831+ * SECURITY UPDATE: c_rehash script allows command injection
832+ - debian/patches/CVE-2022-1292.patch: do not use shell to invoke
833+ openssl in tools/c_rehash.in.
834+ - CVE-2022-1292
835+ * SECURITY UPDATE: OCSP_basic_verify may incorrectly verify the response
836+ signing certificate
837+ - debian/patches/CVE-2022-1343-1.patch: fix OCSP_basic_verify signer
838+ certificate validation in crypto/ocsp/ocsp_vfy.c.
839+ - debian/patches/CVE-2022-1343-2.patch: test ocsp with invalid
840+ responses in test/recipes/80-test_ocsp.t.
841+ - CVE-2022-1343
842+ * SECURITY UPDATE: incorrect MAC key used in the RC4-MD5 ciphersuite
843+ - debian/patches/CVE-2022-1434.patch: fix the RC4-MD5 cipher in
844+ providers/implementations/ciphers/cipher_rc4_hmac_md5.c,
845+ test/recipes/30-test_evp_data/evpciph_aes_stitched.txt,
846+ test/recipes/30-test_evp_data/evpciph_rc4_stitched.txt.
847+ - CVE-2022-1434
848+ * SECURITY UPDATE: resource leakage when decoding certificates and keys
849+ - debian/patches/CVE-2022-1473.patch: fix bug in OPENSSL_LH_flush in
850+ crypto/lhash/lhash.c.
851+ - CVE-2022-1473
852+
853+ -- Marc Deslauriers <marc.deslauriers@ubuntu.com> Tue, 03 May 2022 12:01:34 -0400
854+
855+openssl (3.0.2-0ubuntu1) jammy; urgency=medium
856+
857+ * New upstream bugfix release (LP: #1965141)
858+ * d/p/skip_tls1.1_seclevel3_tests.patch: new Ubuntu-specific patch for the
859+ testsuite
860+
861+ -- Simon Chopin <simon.chopin@canonical.com> Wed, 16 Mar 2022 09:35:51 +0100
862+
863 openssl (3.0.1-1) experimental; urgency=medium
864
865 * Import 3.0.1
866@@ -445,6 +1194,60 @@ openssl (3.0.1-1) experimental; urgency=medium
867
868 -- Sebastian Andrzej Siewior <sebastian@breakpoint.cc> Mon, 27 Dec 2021 11:44:50 +0100
869
870+openssl (3.0.1-0ubuntu1) jammy; urgency=medium
871+
872+ * New upstream release (LP: #1955026).
873+ + Dropped patches, merged upstream:
874+ - d/p/double-engine-load*
875+ - d/p/Add-null-digest-implementation-to-the-default-provid.patch
876+ - d/p/Don-t-create-an-ECX-key-with-short-keys.patch
877+ + Refreshed patches:
878+ - d/p/c_rehash-compat.patch
879+
880+ -- Simon Chopin <simon.chopin@canonical.com> Thu, 16 Dec 2021 09:10:48 +0100
881+
882+openssl (3.0.0-1ubuntu2) jammy; urgency=medium
883+
884+ * Cherry-pick upstream fixes to prevent double engine loading (LP: #1951943)
885+
886+ -- Julian Andres Klode <juliank@ubuntu.com> Tue, 07 Dec 2021 17:15:51 +0100
887+
888+openssl (3.0.0-1ubuntu1) jammy; urgency=medium
889+
890+ * Manual merge of version 3.0.0-1 from Debian experimental, remaining
891+ changes:
892+ - Replace duplicate files in the doc directory with symlinks.
893+ - debian/libssl1.1.postinst:
894+ + Display a system restart required notification on libssl1.1
895+ upgrade on servers, unless needrestart is available.
896+ + Use a different priority for libssl1.1/restart-services depending
897+ on whether a desktop, or server dist-upgrade is being performed.
898+ + Skip services restart & reboot notification if needrestart is in-use.
899+ + Bump version check to to 1.1.1.
900+ + Import libraries/restart-without-asking template as used by above.
901+ - Revert "Enable system default config to enforce TLS1.2 as a
902+ minimum" & "Increase default security level from 1 to 2".
903+ - Reword the NEWS entry, as applicable on Ubuntu.
904+ - Set OPENSSL_TLS_SECURITY_LEVEL=2 as compiled-in minimum security
905+ level. Change meaning of SECURITY_LEVEL=2 to prohibit TLS versions
906+ below 1.2 and update documentation. Previous default of 1, can be set
907+ by calling SSL_CTX_set_security_level(), SSL_set_security_level() or
908+ using ':@SECLEVEL=1' CipherString value in openssl.cfg.
909+ - Add support for building with noudeb build profile.
910+ * d/p/Don-t-create-an-ECX-key-with-short-keys.patch:
911+ Backported from upstream to fix a regression with short keys (LP: #1946213)
912+ * d/p/Add-null-digest-implementation-to-the-default-provid.patch:
913+ Backported from upstream to fix a compatibility issue with 1.1.1l
914+ * Manually call dh_installdirs to fix build failure
915+ * Drop some Ubuntu patches merged upstream
916+ + The s390x series (00xx) has been applied upstream
917+ + The lp-1927161 Intel CET series has been applied upstream
918+ + CVE-2021-3449 has been fixed upstream
919+ + CVE-2021-3450 doesn't apply to 3.0 branch
920+ * Refresh and adapt the remaining patches
921+
922+ -- Simon Chopin <simon.chopin@canonical.com> Mon, 20 Sep 2021 18:09:50 +0200
923+
924 openssl (3.0.0-1) experimental; urgency=medium
925
926 * Import 3.0.0.
927@@ -519,6 +1322,152 @@ openssl (3.0.0~~alpha1-1) experimental; urgency=medium
928
929 -- Sebastian Andrzej Siewior <sebastian@breakpoint.cc> Sat, 25 Apr 2020 23:08:44 +0200
930
931+openssl (1.1.1j-1ubuntu4) impish; urgency=medium
932+
933+ * Split d/p/pr12272.patch into multiple patchfiles to fix dpkg-source
934+ error when attempting to build a source package, due to pr12272.patch
935+ patching files multiple times within the same patch. (LP: #1927161)
936+ - d/p/lp-1927161-1-x86-Add-endbranch-to-indirect-branch-targets-fo.patch
937+ - d/p/lp-1927161-2-Use-swapcontext-for-Intel-CET.patch
938+ - d/p/lp-1927161-3-x86-Always-generate-note-gnu-property-section-f.patch
939+ - d/p/lp-1927161-4-x86_64-Always-generate-note-gnu-property-sectio.patch
940+ - d/p/lp-1927161-5-x86_64-Add-endbranch-at-function-entries-for-In.patch
941+
942+ -- Matthew Ruffell <matthew.ruffell@canonical.com> Wed, 05 May 2021 11:49:27 +1200
943+
944+openssl (1.1.1j-1ubuntu3) hirsute; urgency=medium
945+
946+ * SECURITY UPDATE: NULL pointer deref in signature_algorithms processing
947+ - debian/patches/CVE-2021-3449-1.patch: fix NULL pointer dereference in
948+ ssl/statem/extensions.c.
949+ - debian/patches/CVE-2021-3449-2.patch: teach TLSProxy how to encrypt
950+ <= TLSv1.2 ETM records in util/perl/TLSProxy/Message.pm.
951+ - debian/patches/CVE-2021-3449-3.patch: add a test to
952+ test/recipes/70-test_renegotiation.t.
953+ - debian/patches/CVE-2021-3449-4.patch: ensure buffer/length pairs are
954+ always in sync in ssl/s3_lib.c, ssl/ssl_lib.c,
955+ ssl/statem/extensions.c, ssl/statem/extensions_clnt.c,
956+ ssl/statem/statem_clnt.c, ssl/statem/statem_srvr.c.
957+ - CVE-2021-3449
958+ * SECURITY UPDATE: CA cert check bypass with X509_V_FLAG_X509_STRICT
959+ - debian/patches/CVE-2021-3450-1.patch: do not override error return
960+ value by check_curve in crypto/x509/x509_vfy.c,
961+ test/verify_extra_test.c.
962+ - debian/patches/CVE-2021-3450-2.patch: fix return code check in
963+ crypto/x509/x509_vfy.c.
964+ - CVE-2021-3450
965+
966+ -- Marc Deslauriers <marc.deslauriers@ubuntu.com> Thu, 25 Mar 2021 11:44:30 -0400
967+
968+openssl (1.1.1j-1ubuntu2) hirsute; urgency=medium
969+
970+ * No-change upload to pick up lto.
971+
972+ -- Matthias Klose <doko@ubuntu.com> Tue, 23 Mar 2021 15:24:20 +0100
973+
974+openssl (1.1.1j-1ubuntu1) hirsute; urgency=medium
975+
976+ * Merge from Debian unstable. Remaining changes:
977+ - Replace duplicate files in the doc directory with symlinks.
978+ - debian/libssl1.1.postinst:
979+ + Display a system restart required notification on libssl1.1
980+ upgrade on servers, unless needrestart is available.
981+ + Use a different priority for libssl1.1/restart-services depending
982+ on whether a desktop, or server dist-upgrade is being performed.
983+ + Skip services restart & reboot notification if needrestart is in-use.
984+ + Bump version check to to 1.1.1.
985+ + Import libraries/restart-without-asking template as used by above.
986+ - Revert "Enable system default config to enforce TLS1.2 as a
987+ minimum" & "Increase default security level from 1 to 2".
988+ - Reword the NEWS entry, as applicable on Ubuntu.
989+ - Cherrypick s390x SIMD acceleration patches for poly1305 and chacha20
990+ and ECC from master.
991+ - Use perl:native in the autopkgtest for installability on i386.
992+ - Set OPENSSL_TLS_SECURITY_LEVEL=2 as compiled-in minimum security
993+ level. Change meaning of SECURITY_LEVEL=2 to prohibit TLS versions
994+ below 1.2 and update documentation. Previous default of 1, can be set
995+ by calling SSL_CTX_set_security_level(), SSL_set_security_level() or
996+ using ':@SECLEVEL=1' CipherString value in openssl.cfg.
997+ - Import https://github.com/openssl/openssl/pull/12272.patch to enable
998+ CET.
999+ * Add support for building with noudeb build profile.
1000+
1001+ -- Dimitri John Ledkov <xnox@ubuntu.com> Tue, 23 Feb 2021 22:01:12 +0000
1002+
1003+openssl (1.1.1j-1) unstable; urgency=medium
1004+
1005+ * New upstream version.
1006+ - CVE-2021-23841 (NULL pointer deref in X509_issuer_and_serial_hash()).
1007+ - CVE-2021-23840 (Possible overflow of the output length argument in
1008+ EVP_CipherUpdate(), EVP_EncryptUpdate() and EVP_DecryptUpdate()).
1009+
1010+ -- Sebastian Andrzej Siewior <sebastian@breakpoint.cc> Tue, 16 Feb 2021 20:50:01 +0100
1011+
1012+openssl (1.1.1i-3ubuntu2) hirsute; urgency=medium
1013+
1014+ * No-change rebuild to drop the udeb package.
1015+
1016+ -- Matthias Klose <doko@ubuntu.com> Mon, 22 Feb 2021 10:35:47 +0100
1017+
1018+openssl (1.1.1i-3ubuntu1) hirsute; urgency=medium
1019+
1020+ * Merge from Debian unstable. Remaining changes:
1021+ - Replace duplicate files in the doc directory with symlinks.
1022+ - debian/libssl1.1.postinst:
1023+ + Display a system restart required notification on libssl1.1
1024+ upgrade on servers, unless needrestart is available.
1025+ + Use a different priority for libssl1.1/restart-services depending
1026+ on whether a desktop, or server dist-upgrade is being performed.
1027+ + Skip services restart & reboot notification if needrestart is in-use.
1028+ + Bump version check to to 1.1.1.
1029+ + Import libraries/restart-without-asking template as used by above.
1030+ - Revert "Enable system default config to enforce TLS1.2 as a
1031+ minimum" & "Increase default security level from 1 to 2".
1032+ - Reword the NEWS entry, as applicable on Ubuntu.
1033+ - Cherrypick s390x SIMD acceleration patches for poly1305 and chacha20
1034+ and ECC from master.
1035+ - Use perl:native in the autopkgtest for installability on i386.
1036+ - Set OPENSSL_TLS_SECURITY_LEVEL=2 as compiled-in minimum security
1037+ level. Change meaning of SECURITY_LEVEL=2 to prohibit TLS versions
1038+ below 1.2 and update documentation. Previous default of 1, can be set
1039+ by calling SSL_CTX_set_security_level(), SSL_set_security_level() or
1040+ using ':@SECLEVEL=1' CipherString value in openssl.cfg.
1041+ - Import https://github.com/openssl/openssl/pull/12272.patch to enable
1042+ CET.
1043+
1044+ * Drop many patches included upstream.
1045+
1046+ -- Dimitri John Ledkov <xnox@ubuntu.com> Mon, 08 Feb 2021 11:08:21 +0000
1047+
1048+openssl (1.1.1i-3) unstable; urgency=medium
1049+
1050+ * Cherry-pick a patch from upstream to address #13931.
1051+ * Enable LFS. Thanks to Dan Nicholson for debugging (Closes: #923479).
1052+
1053+ -- Sebastian Andrzej Siewior <sebastian@breakpoint.cc> Sat, 30 Jan 2021 14:06:46 +0100
1054+
1055+openssl (1.1.1i-2) unstable; urgency=medium
1056+
1057+ * Apply two patches from upstream to address x509 related regressions.
1058+
1059+ -- Sebastian Andrzej Siewior <sebastian@breakpoint.cc> Sun, 17 Jan 2021 20:08:26 +0100
1060+
1061+openssl (1.1.1i-1) unstable; urgency=medium
1062+
1063+ * New upstream version.
1064+ - CVE-2020-1971 (EDIPARTYNAME NULL pointer de-reference).
1065+ - Restore rejection of expired trusted (root) certificate
1066+ (Closes: #976465).
1067+
1068+ -- Sebastian Andrzej Siewior <sebastian@breakpoint.cc> Tue, 08 Dec 2020 20:32:32 +0100
1069+
1070+openssl (1.1.1h-1) unstable; urgency=medium
1071+
1072+ * New upstream version
1073+ * Disable CAPI engine, it is designed for Windows.
1074+
1075+ -- Sebastian Andrzej Siewior <sebastian@breakpoint.cc> Sun, 11 Oct 2020 00:00:47 +0200
1076+
1077 openssl (1.1.1g-1) unstable; urgency=medium
1078
1079 * New upstream version
1080@@ -526,6 +1475,87 @@ openssl (1.1.1g-1) unstable; urgency=medium
1081
1082 -- Sebastian Andrzej Siewior <sebastian@breakpoint.cc> Tue, 21 Apr 2020 21:45:21 +0200
1083
1084+openssl (1.1.1f-1ubuntu5) hirsute; urgency=medium
1085+
1086+ * SECURITY UPDATE: EDIPARTYNAME NULL pointer de-ref
1087+ - debian/patches/CVE-2020-1971-1.patch: use explicit tagging for
1088+ DirectoryString in crypto/x509v3/v3_genn.c.
1089+ - debian/patches/CVE-2020-1971-2.patch: correctly compare EdiPartyName
1090+ in crypto/x509v3/v3_genn.c.
1091+ - debian/patches/CVE-2020-1971-3.patch: check that multi-strings/CHOICE
1092+ types don't use implicit tagging in crypto/asn1/asn1_err.c,
1093+ crypto/asn1/tasn_dec.c, crypto/err/openssl.txt,
1094+ include/openssl/asn1err.h.
1095+ - debian/patches/CVE-2020-1971-4.patch: complain if we are attempting
1096+ to encode with an invalid ASN.1 template in crypto/asn1/asn1_err.c,
1097+ crypto/asn1/tasn_enc.c, crypto/err/openssl.txt,
1098+ include/openssl/asn1err.h.
1099+ - debian/patches/CVE-2020-1971-5.patch: add a test for GENERAL_NAME_cmp
1100+ in test/v3nametest.c.
1101+ - debian/patches/CVE-2020-1971-6.patch: add a test for
1102+ encoding/decoding using an invalid ASN.1 Template in
1103+ test/asn1_decode_test.c, test/asn1_encode_test.c.
1104+ - CVE-2020-1971
1105+
1106+ -- Marc Deslauriers <marc.deslauriers@ubuntu.com> Tue, 08 Dec 2020 12:33:52 -0500
1107+
1108+openssl (1.1.1f-1ubuntu4) groovy; urgency=medium
1109+
1110+ * Cherrypick upstream fix for non-interactive detection on Linux. LP:
1111+ #1879826
1112+ * Cherrypick AES CTR-DRGB: performance improvement LP: #1799928
1113+ * Skip services restart & reboot notification if needrestart is in-use
1114+ LP: #1895708
1115+
1116+ -- Dimitri John Ledkov <xnox@ubuntu.com> Tue, 15 Sep 2020 18:04:36 +0100
1117+
1118+openssl (1.1.1f-1ubuntu3) groovy; urgency=medium
1119+
1120+ * Import https://github.com/openssl/openssl/pull/12272.patch to enable
1121+ CET.
1122+
1123+ -- Dimitri John Ledkov <xnox@ubuntu.com> Thu, 25 Jun 2020 14:18:43 +0100
1124+
1125+openssl (1.1.1f-1ubuntu2) focal; urgency=medium
1126+
1127+ * SECURITY UPDATE: Segmentation fault in SSL_check_chain
1128+ - debian/patches/CVE-2020-1967-1.patch: add test for CVE-2020-1967 in
1129+ test/recipes/70-test_sslsigalgs.t.
1130+ - debian/patches/CVE-2020-1967-2.patch: fix NULL dereference in
1131+ SSL_check_chain() for TLS 1.3 in ssl/t1_lib.c.
1132+ - debian/patches/CVE-2020-1967-3.patch: fix test in
1133+ test/recipes/70-test_sslsigalgs.t.
1134+ - debian/patches/CVE-2020-1967-4.patch: fix test in
1135+ test/recipes/70-test_sslsigalgs.t.
1136+ - CVE-2020-1967
1137+
1138+ -- Marc Deslauriers <marc.deslauriers@ubuntu.com> Mon, 20 Apr 2020 07:53:50 -0400
1139+
1140+openssl (1.1.1f-1ubuntu1) focal; urgency=low
1141+
1142+ * Merge from Debian unstable. Remaining changes:
1143+ - Replace duplicate files in the doc directory with symlinks.
1144+ - debian/libssl1.1.postinst:
1145+ + Display a system restart required notification on libssl1.1
1146+ upgrade on servers.
1147+ + Use a different priority for libssl1.1/restart-services depending
1148+ on whether a desktop, or server dist-upgrade is being performed.
1149+ + Bump version check to to 1.1.1.
1150+ + Import libraries/restart-without-asking template as used by above.
1151+ - Revert "Enable system default config to enforce TLS1.2 as a
1152+ minimum" & "Increase default security level from 1 to 2".
1153+ - Reword the NEWS entry, as applicable on Ubuntu.
1154+ - Cherrypick s390x SIMD acceleration patches for poly1305 and chacha20
1155+ and ECC from master.
1156+ - Use perl:native in the autopkgtest for installability on i386.
1157+ - Set OPENSSL_TLS_SECURITY_LEVEL=2 as compiled-in minimum security
1158+ level. Change meaning of SECURITY_LEVEL=2 to prohibit TLS versions
1159+ below 1.2 and update documentation. Previous default of 1, can be set
1160+ by calling SSL_CTX_set_security_level(), SSL_set_security_level() or
1161+ using ':@SECLEVEL=1' CipherString value in openssl.cfg.
1162+
1163+ -- Dimitri John Ledkov <xnox@ubuntu.com> Fri, 03 Apr 2020 18:31:00 +0100
1164+
1165 openssl (1.1.1f-1) unstable; urgency=medium
1166
1167 * New upstream version
1168@@ -546,6 +1576,50 @@ openssl (1.1.1e-1) unstable; urgency=medium
1169
1170 -- Sebastian Andrzej Siewior <sebastian@breakpoint.cc> Wed, 18 Mar 2020 20:59:39 +0100
1171
1172+openssl (1.1.1d-2ubuntu6) focal; urgency=medium
1173+
1174+ * Revert version number change to 1.1.1e-dev.
1175+
1176+ -- Dimitri John Ledkov <xnox@ubuntu.com> Fri, 06 Mar 2020 04:08:51 +0000
1177+
1178+openssl (1.1.1d-2ubuntu4) focal; urgency=medium
1179+
1180+ * Apply 1_1_1-stable branch patches
1181+ * Apply s390x ECC assembly pack improvements
1182+
1183+ -- Dimitri John Ledkov <xnox@ubuntu.com> Wed, 26 Feb 2020 21:54:47 +0000
1184+
1185+openssl (1.1.1d-2ubuntu3) focal; urgency=medium
1186+
1187+ * Use perl:native in the autopkgtest for installability on i386.
1188+
1189+ -- Dimitri John Ledkov <xnox@ubuntu.com> Thu, 16 Jan 2020 14:15:26 +0000
1190+
1191+openssl (1.1.1d-2ubuntu2) focal; urgency=low
1192+
1193+ * Merge from Debian unstable. Remaining changes:
1194+ - Replace duplicate files in the doc directory with symlinks.
1195+ - debian/libssl1.1.postinst:
1196+ + Display a system restart required notification on libssl1.1
1197+ upgrade on servers.
1198+ + Use a different priority for libssl1.1/restart-services depending
1199+ on whether a desktop, or server dist-upgrade is being performed.
1200+ + Bump version check to to 1.1.1.
1201+ + Import libraries/restart-without-asking template as used by above.
1202+ - Revert "Enable system default config to enforce TLS1.2 as a
1203+ minimum" & "Increase default security level from 1 to 2".
1204+ - Reword the NEWS entry, as applicable on Ubuntu.
1205+ - Cherrypick s390x SIMD acceleration patches for poly1305 and chacha20
1206+ from master.
1207+
1208+ * Set OPENSSL_TLS_SECURITY_LEVEL=2 as compiled-in minimum security
1209+ level. Change meaning of SECURITY_LEVEL=2 to prohibit TLS versions
1210+ below 1.2 and update documentation. Previous default of 1, can be set
1211+ by calling SSL_CTX_set_security_level(), SSL_set_security_level() or
1212+ using ':@SECLEVEL=1' CipherString value in openssl.cfg.
1213+
1214+ -- Dimitri John Ledkov <xnox@ubuntu.com> Wed, 08 Jan 2020 17:17:41 +0000
1215+
1216 openssl (1.1.1d-2) unstable; urgency=medium
1217
1218 * Reenable AES-CBC-HMAC-SHA ciphers (Closes: #941987).
1219@@ -564,6 +1638,47 @@ openssl (1.1.1d-1) unstable; urgency=medium
1220
1221 -- Sebastian Andrzej Siewior <sebastian@breakpoint.cc> Sat, 14 Sep 2019 00:38:12 +0200
1222
1223+openssl (1.1.1c-1ubuntu4) eoan; urgency=medium
1224+
1225+ * Cherrypick s390x SIMD acceleration patches for poly1305 and chacha20
1226+ from master. LP: #1736705 LP: #1736704
1227+
1228+ -- Dimitri John Ledkov <xnox@ubuntu.com> Tue, 20 Aug 2019 12:46:33 +0100
1229+
1230+openssl (1.1.1c-1ubuntu3) eoan; urgency=medium
1231+
1232+ * Import libraries/restart-without-asking as used in postinst, to
1233+ prevent failure to configure the package without debconf database. LP:
1234+ #1832919
1235+
1236+ -- Dimitri John Ledkov <xnox@ubuntu.com> Thu, 20 Jun 2019 17:59:55 +0100
1237+
1238+openssl (1.1.1c-1ubuntu2) eoan; urgency=medium
1239+
1240+ * Bump major version of OpenSSL in postinst to trigger services restart
1241+ upon upgrade. Many services listed there must be restarted when
1242+ upgrading 1.1.0 to 1.1.1. LP: #1832522
1243+ * Fix path to Xorg for reboot notifications on desktop. LP: #1832421
1244+
1245+ -- Dimitri John Ledkov <xnox@ubuntu.com> Thu, 13 Jun 2019 15:29:07 +0100
1246+
1247+openssl (1.1.1c-1ubuntu1) eoan; urgency=low
1248+
1249+ * Merge from Debian unstable. Remaining changes:
1250+ - Replace duplicate files in the doc directory with symlinks.
1251+ - debian/libssl1.1.postinst:
1252+ + Display a system restart required notification on libssl1.1
1253+ upgrade on servers.
1254+ + Use a different priority for libssl1.1/restart-services depending
1255+ on whether a desktop, or server dist-upgrade is being performed.
1256+ - Revert "Enable system default config to enforce TLS1.2 as a
1257+ minimum" & "Increase default security level from 1 to 2".
1258+ - Drop the NEWS entry, not applicable on Ubuntu.
1259+ * Cherrypick upstream patch to fix ca -spkac output to be text again
1260+ LP: #1828215
1261+
1262+ -- Dimitri John Ledkov <xnox@ubuntu.com> Mon, 10 Jun 2019 18:11:35 +0100
1263+
1264 openssl (1.1.1c-1) unstable; urgency=medium
1265
1266 * New upstream version
1267@@ -572,6 +1687,21 @@ openssl (1.1.1c-1) unstable; urgency=medium
1268
1269 -- Sebastian Andrzej Siewior <sebastian@breakpoint.cc> Thu, 30 May 2019 17:27:48 +0200
1270
1271+openssl (1.1.1b-2ubuntu1) devel; urgency=medium
1272+
1273+ * Merge from Debian unstable, remaining changes:
1274+ - Replace duplicate files in the doc directory with symlinks.
1275+ - debian/libssl1.1.postinst:
1276+ + Display a system restart required notification on libssl1.1
1277+ upgrade on servers.
1278+ + Use a different priority for libssl1.1/restart-services depending
1279+ on whether a desktop, or server dist-upgrade is being performed.
1280+ - Revert "Enable system default config to enforce TLS1.2 as a
1281+ minimum" & "Increase default security level from 1 to 2".
1282+ - Drop the NEWS entry, not applicable on Ubuntu.
1283+
1284+ -- Dimitri John Ledkov <xnox@ubuntu.com> Wed, 17 Apr 2019 17:26:42 +0100
1285+
1286 openssl (1.1.1b-2) unstable; urgency=medium
1287
1288 * Fix BUF_MEM regression (Closes: #923516)
1289@@ -580,6 +1710,33 @@ openssl (1.1.1b-2) unstable; urgency=medium
1290
1291 -- Kurt Roeckx <kurt@roeckx.be> Tue, 16 Apr 2019 21:31:11 +0200
1292
1293+openssl (1.1.1b-1ubuntu2) disco; urgency=medium
1294+
1295+ * debian/rules: Ship openssl.cnf in libssl1.1-udeb, as required to use
1296+ OpenSSL by other udebs, e.g. wget-udeb. LP: #1822898
1297+
1298+ * Drop debian/patches/UBUNTU-lower-tls-security-level-for-compat.patch
1299+ to revert TLS_SECURITY_LEVEL back to 1. LP: #1822984
1300+
1301+ -- Dimitri John Ledkov <xnox@ubuntu.com> Wed, 03 Apr 2019 11:50:23 +0100
1302+
1303+openssl (1.1.1b-1ubuntu1) disco; urgency=medium
1304+
1305+ * Merge from Debian unstable, remaining changes:
1306+ - Replace duplicate files in the doc directory with symlinks.
1307+ - debian/libssl1.1.postinst:
1308+ + Display a system restart required notification on libssl1.1
1309+ upgrade on servers.
1310+ + Use a different priority for libssl1.1/restart-services depending
1311+ on whether a desktop, or server dist-upgrade is being performed.
1312+ - Revert "Enable system default config to enforce TLS1.2 as a
1313+ minimum" & "Increase default security level from 1 to 2".
1314+ - Further decrease security level from 1 to 0, for compatibility with
1315+ openssl 1.0.2.
1316+ - Drop the NEWS entry, not applicable on Ubuntu.
1317+
1318+ -- Dimitri John Ledkov <xnox@ubuntu.com> Wed, 27 Feb 2019 18:13:17 -0500
1319+
1320 openssl (1.1.1b-1) unstable; urgency=medium
1321
1322 [ Sebastian Andrzej Siewior ]
1323@@ -591,6 +1748,28 @@ openssl (1.1.1b-1) unstable; urgency=medium
1324
1325 -- Kurt Roeckx <kurt@roeckx.be> Tue, 26 Feb 2019 19:52:12 +0100
1326
1327+openssl (1.1.1a-1ubuntu2) disco; urgency=medium
1328+
1329+ * Drop the NEWS entry, not applicable on Ubuntu.
1330+
1331+ -- Dimitri John Ledkov <xnox@ubuntu.com> Wed, 28 Nov 2018 14:24:28 +0000
1332+
1333+openssl (1.1.1a-1ubuntu1) disco; urgency=medium
1334+
1335+ * Merge from Debian unstable, remaining changes:
1336+ - Replace duplicate files in the doc directory with symlinks.
1337+ - debian/libssl1.1.postinst:
1338+ + Display a system restart required notification on libssl1.1
1339+ upgrade on servers.
1340+ + Use a different priority for libssl1.1/restart-services depending
1341+ on whether a desktop, or server dist-upgrade is being performed.
1342+ - Revert "Enable system default config to enforce TLS1.2 as a
1343+ minimum" & "Increase default security level from 1 to 2".
1344+ - Further decrease security level from 1 to 0, for compatibility with
1345+ openssl 1.0.2.
1346+
1347+ -- Dimitri John Ledkov <xnox@ubuntu.com> Wed, 28 Nov 2018 14:06:04 +0000
1348+
1349 openssl (1.1.1a-1) unstable; urgency=medium
1350
1351 * Add Breaks on python-boto (See: #909545)
1352@@ -614,6 +1793,28 @@ openssl (1.1.1-2) unstable; urgency=medium
1353
1354 -- Sebastian Andrzej Siewior <sebastian@breakpoint.cc> Sun, 28 Oct 2018 23:52:24 +0100
1355
1356+openssl (1.1.1-1ubuntu2) cosmic; urgency=medium
1357+
1358+ * Fixup typpos in the autopkgtest binary name.
1359+
1360+ -- Dimitri John Ledkov <xnox@ubuntu.com> Tue, 25 Sep 2018 15:41:07 +0100
1361+
1362+openssl (1.1.1-1ubuntu1) cosmic; urgency=medium
1363+
1364+ * Merge from Debian unstable, remaining changes:
1365+ - Replace duplicate files in the doc directory with symlinks.
1366+ - debian/libssl1.1.postinst:
1367+ + Display a system restart required notification on libssl1.1
1368+ upgrade on servers.
1369+ + Use a different priority for libssl1.1/restart-services depending
1370+ on whether a desktop, or server dist-upgrade is being performed.
1371+ - Revert "Enable system default config to enforce TLS1.2 as a
1372+ minimum" & "Increase default security level from 1 to 2".
1373+ - Further decrease security level from 1 to 0, for compatibility with
1374+ openssl 1.0.2.
1375+
1376+ -- Dimitri John Ledkov <xnox@ubuntu.com> Mon, 17 Sep 2018 13:24:38 +0100
1377+
1378 openssl (1.1.1-1) unstable; urgency=medium
1379
1380 * New upstream version.
1381diff --git a/debian/control b/debian/control
1382index 5d0a1d4..848aa19 100644
1383--- a/debian/control
1384+++ b/debian/control
1385@@ -2,7 +2,8 @@ Source: openssl
1386 Build-Depends: debhelper-compat (= 13), dpkg-dev (>= 1.22.5), libzstd-dev, zlib1g-dev
1387 Section: utils
1388 Priority: optional
1389-Maintainer: Debian OpenSSL Team <pkg-openssl-devel@alioth-lists.debian.net>
1390+Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
1391+XSBC-Original-Maintainer: Debian OpenSSL Team <pkg-openssl-devel@alioth-lists.debian.net>
1392 Uploaders: Christoph Martin <christoph.martin@uni-mainz.de>, Kurt Roeckx <kurt@roeckx.be>, Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
1393 Standards-Version: 4.7.2
1394 Vcs-Browser: https://salsa.debian.org/debian/openssl
1395@@ -46,29 +47,13 @@ Description: Secure Sockets Layer toolkit - cryptographic utility
1396 the cryptography community, or something similar.
1397 For details see OSSL_PROVIDER-legacy man page.
1398
1399-Package: openssl-provider-fips
1400-Architecture: any
1401-Multi-Arch: foreign
1402-Depends: ${shlibs:Depends}, ${misc:Depends}
1403-Description: Secure Sockets Layer toolkit - cryptographic utility
1404- This package is part of the OpenSSL project's implementation of the SSL
1405- and TLS cryptographic protocols for secure communication over the
1406- Internet.
1407- .
1408- This package contains the FIPS provider. The OpenSSL FIPS provider is a
1409- special provider that conforms to the Federal Information Processing Standards
1410- (FIPS) specified in FIPS 140-2. This 'module' contains an approved set of
1411- cryptographic algorithms that is validated by an accredited testing
1412- laboratory.
1413- For details see OSSL_PROVIDER-fips and fips_module man page.
1414-
1415 Package: libssl3t64
1416 Provides: ${t64:Provides}
1417 Replaces: libssl3
1418 Section: libs
1419 Architecture: any
1420 Multi-Arch: same
1421-Breaks: libssl3 (<< ${source:Version}), openssh-client (<< 1:9.4p1), openssh-server (<< 1:9.4p1), python3-m2crypto (<< 0.38.0-4), freeradius (<< 3.2.7+dfsg-1+deb13u1)
1422+Breaks: libssl3 (<< ${source:Version}), openssh-client (<< 1:9.4p1), openssh-server (<< 1:9.4p1), python3-m2crypto (<< 0.38.0-4)
1423 Pre-Depends: ${misc:Pre-Depends}
1424 Depends: ${shlibs:Depends}, ${misc:Depends}, openssl-provider-legacy
1425 Description: Secure Sockets Layer toolkit - shared libraries
1426diff --git a/debian/gbp.conf b/debian/gbp.conf
1427index fa8005e..ac60d92 100644
1428--- a/debian/gbp.conf
1429+++ b/debian/gbp.conf
1430@@ -1,7 +1,7 @@
1431 [DEFAULT]
1432 dist = DEP14
1433 upstream-branch = upstream/openssl-3.5
1434-debian-branch = debian/trixie
1435+debian-branch = debian/unstable
1436 debian-tag = debian/openssl-%(version)s
1437 id-length = 12
1438 abbrev = 12
1439diff --git a/debian/patches/default-configuration-read-dropins-and-crypto-config.patch b/debian/patches/default-configuration-read-dropins-and-crypto-config.patch
1440new file mode 100644
1441index 0000000..def5ee9
1442--- /dev/null
1443+++ b/debian/patches/default-configuration-read-dropins-and-crypto-config.patch
1444@@ -0,0 +1,30 @@
1445+From 3776c4a41e268d7733e3476743d8104e48477c52 Mon Sep 17 00:00:00 2001
1446+From: Adrien Nader <adrien.nader@canonical.com>
1447+Date: Mon, 1 Jul 2024 16:49:06 +0200
1448+Subject: [PATCH] configuration: read crypto-config and /etc/ssl/openssl.conf.d
1449+ dropins
1450+Forwarded: not-needed
1451+Last-Update: 2024/07/01
1452+
1453+Append two .include directives to the default configuration in order to
1454+integrate with the crypto-config framework and to allow easier
1455+configuration by sysadmins.
1456+
1457+---
1458+ apps/openssl.cnf | 3 +++
1459+ 1 file changed, 3 insertions(+)
1460+
1461+diff --git a/apps/openssl.cnf b/apps/openssl.cnf
1462+index 2833b6f30..175fc5897 100644
1463+--- a/apps/openssl.cnf
1464++++ b/apps/openssl.cnf
1465+@@ -388,3 +388,6 @@ oldcert = $insta::certout # insta.cert.pem
1466+ # Certificate revocation
1467+ cmd = rr
1468+ oldcert = $insta::certout # insta.cert.pem
1469++
1470++.include /var/lib/crypto-config/profiles/current/openssl.conf.d
1471++.include /etc/ssl/openssl.conf.d
1472+--
1473+2.40.1
1474+
1475diff --git a/debian/patches/fips/apps-pass-propquery-arg-to-the-libctx-DRBG-fetches.patch b/debian/patches/fips/apps-pass-propquery-arg-to-the-libctx-DRBG-fetches.patch
1476new file mode 100644
1477index 0000000..fce1415
1478--- /dev/null
1479+++ b/debian/patches/fips/apps-pass-propquery-arg-to-the-libctx-DRBG-fetches.patch
1480@@ -0,0 +1,38 @@
1481+From: Chris Coulson <chris.coulson@canonical.com>
1482+Date: Thu, 13 Oct 2022 00:02:26 +0100
1483+Subject: apps: pass -propquery arg to the libctx DRBG fetches
1484+
1485+Forwarded: no
1486+Applied-Upstream: no
1487+Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/openssl/+bug/2056593
1488+
1489+The -propquery argument might be used to define a preference for which provider
1490+an algorithm is fetched from. Set the query properties for the library context
1491+DRBG fetches as well so that they are fetched with the same properties.
1492+---
1493+ apps/lib/app_libctx.c | 5 +++++
1494+ 1 file changed, 5 insertions(+)
1495+
1496+diff --git a/apps/lib/app_libctx.c b/apps/lib/app_libctx.c
1497+index 4b9ec40e8527..d1c9909165b4 100644
1498+--- a/apps/lib/app_libctx.c
1499++++ b/apps/lib/app_libctx.c
1500+@@ -6,6 +6,7 @@
1501+ * in the file LICENSE in the source distribution or at
1502+ * https://www.openssl.org/source/license.html
1503+ */
1504++#include <openssl/rand.h>
1505+ #include "app_libctx.h"
1506+ #include "apps.h"
1507+
1508+@@ -15,6 +16,10 @@ static const char *app_propq = NULL;
1509+ int app_set_propq(const char *arg)
1510+ {
1511+ app_propq = arg;
1512++ if (!RAND_set_DRBG_type(app_libctx, NULL, arg, NULL, NULL))
1513++ return 0;
1514++ if (!RAND_set_seed_source_type(app_libctx, NULL, arg))
1515++ return 0;
1516+ return 1;
1517+ }
1518+
1519diff --git a/debian/patches/fips/apps-speed-Omit-unavailable-algorithms-in-FIPS-mode.patch b/debian/patches/fips/apps-speed-Omit-unavailable-algorithms-in-FIPS-mode.patch
1520new file mode 100644
1521index 0000000..b2cca08
1522--- /dev/null
1523+++ b/debian/patches/fips/apps-speed-Omit-unavailable-algorithms-in-FIPS-mode.patch
1524@@ -0,0 +1,130 @@
1525+From: Chris Coulson <chris.coulson@canonical.com>
1526+Date: Thu, 21 Apr 2022 13:11:18 +0100
1527+Subject: apps/speed: Omit unavailable algorithms in FIPS mode
1528+
1529+Forwarded: no
1530+Applied-Upstream: no
1531+Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/openssl/+bug/2056593
1532+---
1533+ apps/speed.c | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1534+ 1 file changed, 66 insertions(+)
1535+
1536+diff --git a/apps/speed.c b/apps/speed.c
1537+index 57aeb67bf..97a593912 100644
1538+--- a/apps/speed.c
1539++++ b/apps/speed.c
1540+@@ -1851,6 +1851,9 @@ int speed_main(int argc, char **argv)
1541+ OPENSSL_assert(strcmp(sm2_choices[SM2_NUM - 1].name, "curveSM2") == 0);
1542+ #endif
1543+
1544++ if (EVP_default_properties_is_fips_enabled(app_get0_libctx()))
1545++ evp_mac_mdname = "sha1";
1546++
1547+ prog = opt_init(argc, argv, speed_options);
1548+ while ((o = opt_next()) != OPT_EOF) {
1549+ switch (o) {
1550+@@ -2123,6 +2126,8 @@ int speed_main(int argc, char **argv)
1551+ if (strcmp(algo, "des") == 0) {
1552+ doit[D_CBC_DES] = doit[D_EDE3_DES] = 1;
1553+ algo_found = 1;
1554++ if (EVP_default_properties_is_fips_enabled(app_get0_libctx()))
1555++ doit[D_CBC_DES] = 0;
1556+ }
1557+ if (strcmp(algo, "sha") == 0) {
1558+ doit[D_SHA1] = doit[D_SHA256] = doit[D_SHA512] = 1;
1559+@@ -2136,6 +2141,8 @@ int speed_main(int argc, char **argv)
1560+ if (algo[sizeof("rsa") - 1] == '\0') {
1561+ memset(rsa_doit, 1, sizeof(rsa_doit));
1562+ algo_found = 1;
1563++ if (EVP_default_properties_is_fips_enabled(app_get0_libctx()))
1564++ rsa_doit[R_RSA_512] = rsa_doit[R_RSA_1024] = 0;
1565+ }
1566+ if (opt_found(algo, rsa_choices, &i)) {
1567+ rsa_doit[i] = 1;
1568+@@ -2158,6 +2165,10 @@ int speed_main(int argc, char **argv)
1569+ if (algo[sizeof("dsa") - 1] == '\0') {
1570+ memset(dsa_doit, 1, sizeof(dsa_doit));
1571+ algo_found = 1;
1572++ /* R_DSA_512 and R_DSA_1024 should be disabled in FIPS mode,
1573++ * but actually, none of the DSA benchmarks work because the
1574++ * compiled-in keys fail the necessary checks. Just return an
1575++ * error if the DSA benchmarks are invoked explicitly. */
1576+ }
1577+ if (opt_found(algo, dsa_choices, &i)) {
1578+ dsa_doit[i] = 2;
1579+@@ -2176,6 +2187,18 @@ int speed_main(int argc, char **argv)
1580+ if (algo[sizeof("ecdsa") - 1] == '\0') {
1581+ memset(ecdsa_doit, 1, sizeof(ecdsa_doit));
1582+ algo_found = 1;
1583++ if (EVP_default_properties_is_fips_enabled(app_get0_libctx())) {
1584++ ecdsa_doit[R_EC_P160] = ecdsa_doit[R_EC_P192] = 0;
1585++#ifndef OPENSSL_NO_EC2M
1586++ ecdsa_doit[R_EC_K163] = ecdsa_doit[R_EC_B163] = 0;
1587++#endif
1588++ ecdsa_doit[R_EC_BRP256R1] =
1589++ ecdsa_doit[R_EC_BRP256T1] =
1590++ ecdsa_doit[R_EC_BRP384R1] =
1591++ ecdsa_doit[R_EC_BRP384T1] =
1592++ ecdsa_doit[R_EC_BRP512R1] =
1593++ ecdsa_doit[R_EC_BRP512T1] = 0;
1594++ }
1595+ }
1596+ if (opt_found(algo, ecdsa_choices, &i)) {
1597+ ecdsa_doit[i] = 2;
1598+@@ -2186,6 +2209,18 @@ int speed_main(int argc, char **argv)
1599+ if (algo[sizeof("ecdh") - 1] == '\0') {
1600+ memset(ecdh_doit, 1, sizeof(ecdh_doit));
1601+ algo_found = 1;
1602++ if (EVP_default_properties_is_fips_enabled(app_get0_libctx())) {
1603++ ecdh_doit[R_EC_P160] = ecdh_doit[R_EC_P192] = 0;
1604++#ifndef OPENSSL_NO_EC2M
1605++ ecdh_doit[R_EC_K163] = ecdh_doit[R_EC_B163] = 0;
1606++#endif
1607++ ecdh_doit[R_EC_BRP256R1] =
1608++ ecdh_doit[R_EC_BRP256T1] =
1609++ ecdh_doit[R_EC_BRP384R1] =
1610++ ecdh_doit[R_EC_BRP384T1] =
1611++ ecdh_doit[R_EC_BRP512R1] =
1612++ ecdh_doit[R_EC_BRP512T1] = 0;
1613++ }
1614+ }
1615+ if (opt_found(algo, ecdh_choices, &i)) {
1616+ ecdh_doit[i] = 2;
1617+@@ -2394,6 +2429,37 @@ int speed_main(int argc, char **argv)
1618+ do_kems = 1;
1619+ memset(sigs_doit, 1, sizeof(sigs_doit));
1620+ do_sigs = 1;
1621++ if (EVP_default_properties_is_fips_enabled(app_get0_libctx())) {
1622++ rsa_doit[R_RSA_512] = rsa_doit[R_RSA_1024] = 0;
1623++
1624++ memset(dsa_doit, 0, sizeof(dsa_doit));
1625++
1626++ ecdsa_doit[R_EC_P160] = ecdsa_doit[R_EC_P192] = 0;
1627++#ifndef OPENSSL_NO_EC2M
1628++ ecdsa_doit[R_EC_K163] = ecdsa_doit[R_EC_B163] = 0;
1629++#endif
1630++ ecdsa_doit[R_EC_BRP256R1] =
1631++ ecdsa_doit[R_EC_BRP256T1] =
1632++ ecdsa_doit[R_EC_BRP384R1] =
1633++ ecdsa_doit[R_EC_BRP384T1] =
1634++ ecdsa_doit[R_EC_BRP512R1] =
1635++ ecdsa_doit[R_EC_BRP512T1] = 0;
1636++
1637++ ecdh_doit[R_EC_P160] = ecdh_doit[R_EC_P192] = 0;
1638++#ifndef OPENSSL_NO_EC2M
1639++ ecdh_doit[R_EC_K163] = ecdh_doit[R_EC_B163] = 0;
1640++#endif
1641++ ecdh_doit[R_EC_BRP256R1] =
1642++ ecdh_doit[R_EC_BRP256T1] =
1643++ ecdh_doit[R_EC_BRP384R1] =
1644++ ecdh_doit[R_EC_BRP384T1] =
1645++ ecdh_doit[R_EC_BRP512R1] =
1646++ ecdh_doit[R_EC_BRP512T1] = 0;
1647++
1648++#ifndef OPENSSL_NO_SM2
1649++ memset(sm2_doit, 0, sizeof(sm2_doit));
1650++#endif
1651++ }
1652+ }
1653+ for (i = 0; i < ALGOR_NUM; i++)
1654+ if (doit[i])
1655diff --git a/debian/patches/fips/crypto-Add-kernel-FIPS-mode-detection.patch b/debian/patches/fips/crypto-Add-kernel-FIPS-mode-detection.patch
1656new file mode 100644
1657index 0000000..bb2cd65
1658--- /dev/null
1659+++ b/debian/patches/fips/crypto-Add-kernel-FIPS-mode-detection.patch
1660@@ -0,0 +1,158 @@
1661+From: Chris Coulson <chris.coulson@canonical.com>
1662+Date: Thu, 14 Apr 2022 14:57:44 +0100
1663+Subject: crypto: Add kernel FIPS mode detection
1664+
1665+Forwarded: no
1666+Applied-Upstream: no
1667+Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/openssl/+bug/2056593
1668+
1669+This adds a new internal API to determine whether the kernel has been booted
1670+in FIPS mode. This can be overridden with the OPENSSL_FORCE_FIPS_MODE
1671+environment variable. OPENSSL_FIPS_MODE_SWITCH_PATH can be used to specify an
1672+alternative path for the fips_enabled file and is used in tests.
1673+The FIPS_MODULE switch can be used to enable build of the the FIPS provider
1674+module specific parts which are not needed in the OpenSSL library itself.
1675+---
1676+ crypto/build.info | 2 +-
1677+ crypto/context.c | 20 ++++++++++++++++++++
1678+ crypto/fips_mode.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++
1679+ crypto/fips_mode.h | 17 +++++++++++++++++
1680+ 4 files changed, 84 insertions(+), 1 deletion(-)
1681+ create mode 100644 crypto/fips_mode.c
1682+ create mode 100644 crypto/fips_mode.h
1683+
1684+diff --git a/crypto/build.info b/crypto/build.info
1685+index 2d5b22fcf..60d7f0467 100644
1686+--- a/crypto/build.info
1687++++ b/crypto/build.info
1688+@@ -107,7 +107,7 @@ SOURCE[../libcrypto]=$UTIL_COMMON \
1689+ comp_methods.c cversion.c info.c cpt_err.c ebcdic.c uid.c o_time.c \
1690+ o_dir.c o_fopen.c getenv.c o_init.c init.c trace.c provider.c \
1691+ provider_child.c punycode.c passphrase.c sleep.c deterministic_nonce.c \
1692+- quic_vlint.c time.c defaults.c ssl_err.c
1693++ quic_vlint.c time.c defaults.c ssl_err.c fips_mode.c
1694+ SOURCE[../providers/libfips.a]=$UTIL_COMMON
1695+
1696+ SOURCE[../libcrypto]=$UPLINKSRC
1697+diff --git a/crypto/context.c b/crypto/context.c
1698+index 33d52a964..508bec91e 100644
1699+--- a/crypto/context.c
1700++++ b/crypto/context.c
1701+@@ -18,6 +18,11 @@
1702+ #include "crypto/decoder.h"
1703+ #include "crypto/context.h"
1704+
1705++#ifndef FIPS_MODULE
1706++# include "crypto/evp.h"
1707++# include "fips_mode.h"
1708++#endif
1709++
1710+ struct ossl_lib_ctx_st {
1711+ CRYPTO_RWLOCK *lock;
1712+ OSSL_EX_DATA_GLOBAL global;
1713+@@ -79,15 +84,30 @@ int ossl_lib_ctx_is_child(OSSL_LIB_CTX *ctx)
1714+ return ctx->ischild;
1715+ }
1716+
1717++#if !defined(FIPS_MODULE)
1718++static CRYPTO_ONCE init_fips = CRYPTO_ONCE_STATIC_INIT;
1719++
1720++DEFINE_RUN_ONCE_STATIC(do_init_fips)
1721++{
1722++ ossl_init_fips();
1723++ return 1;
1724++}
1725++#endif
1726++
1727+ static void context_deinit_objs(OSSL_LIB_CTX *ctx);
1728+
1729+ static int context_init(OSSL_LIB_CTX *ctx)
1730+ {
1731+ int exdata_done = 0;
1732+
1733+ if (!CRYPTO_THREAD_init_local(&ctx->rcu_local_key, NULL))
1734+ return 0;
1735+
1736++#if !defined(FIPS_MODULE)
1737++ if (!RUN_ONCE(&init_fips, do_init_fips))
1738++ return 0;
1739++#endif
1740++
1741+ ctx->lock = CRYPTO_THREAD_lock_new();
1742+ if (ctx->lock == NULL)
1743+ goto err;
1744+diff --git a/crypto/fips_mode.c b/crypto/fips_mode.c
1745+new file mode 100644
1746+index 000000000000..0131075ed764
1747+--- /dev/null
1748++++ b/crypto/fips_mode.c
1749+@@ -0,0 +1,46 @@
1750++#define _GNU_SOURCE
1751++#include <errno.h>
1752++#include <fcntl.h>
1753++#include <stdlib.h>
1754++#include <string.h>
1755++#include <sys/types.h>
1756++#include <sys/stat.h>
1757++#include <unistd.h>
1758++#include "fips_mode.h"
1759++
1760++#define FIPS_MODE_SWITCH_FILE "/proc/sys/crypto/fips_enabled"
1761++
1762++static int fips_mode;
1763++
1764++int ossl_fips_mode(void)
1765++{
1766++ return fips_mode;
1767++}
1768++
1769++void ossl_init_fips(void)
1770++{
1771++ const char *switch_path = FIPS_MODE_SWITCH_FILE;
1772++ char *v;
1773++ char c;
1774++ int fd;
1775++
1776++ if ((v = secure_getenv("OPENSSL_FORCE_FIPS_MODE")) != NULL) {
1777++ fips_mode = strcmp(v, "0") == 0 ? 0 : 1;
1778++ return;
1779++ }
1780++
1781++ if ((v = secure_getenv("OPENSSL_FIPS_MODE_SWITCH_PATH")) != NULL) {
1782++ switch_path = v;
1783++ }
1784++
1785++ fd = open(switch_path, O_RDONLY);
1786++ if (fd < 0) {
1787++ fips_mode = 0;
1788++ return;
1789++ }
1790++
1791++ while (read(fd, &c, sizeof(c)) < 0 && errno == EINTR);
1792++ close(fd);
1793++
1794++ fips_mode = c == '1' ? 1 : 0;
1795++}
1796+diff --git a/crypto/fips_mode.h b/crypto/fips_mode.h
1797+new file mode 100644
1798+index 000000000000..5f0607ba9d70
1799+--- /dev/null
1800++++ b/crypto/fips_mode.h
1801+@@ -0,0 +1,17 @@
1802++/*
1803++ * Copyright 2016-2021 The OpenSSL Project Authors. All Rights Reserved.
1804++ *
1805++ * Licensed under the Apache License 2.0 (the "License"). You may not use
1806++ * this file except in compliance with the License. You can obtain a copy
1807++ * in the file LICENSE in the source distribution or at
1808++ * https://www.openssl.org/source/license.html
1809++ */
1810++
1811++#ifndef OSSL_FIPS_MODE_H
1812++# define OSSL_FIPS_MODE_H
1813++# pragma once
1814++
1815++int ossl_fips_mode(void);
1816++void ossl_init_fips(void);
1817++
1818++#endif
1819diff --git a/debian/patches/fips/crypto-Automatically-use-the-FIPS-provider-when-the-kerne.patch b/debian/patches/fips/crypto-Automatically-use-the-FIPS-provider-when-the-kerne.patch
1820new file mode 100644
1821index 0000000..648e77c
1822--- /dev/null
1823+++ b/debian/patches/fips/crypto-Automatically-use-the-FIPS-provider-when-the-kerne.patch
1824@@ -0,0 +1,472 @@
1825+From bad1e625197d002a3588723f81b92b3349baef17 Mon Sep 17 00:00:00 2001
1826+From: Chris Coulson <chris.coulson@canonical.com>
1827+Date: Fri, 21 Jun 2024 13:58:24 +0200
1828+Subject: [PATCH] crypto: Automatically use the FIPS provider when the kernel
1829+ is booted in FIPS mode
1830+
1831+Forwarded: no
1832+Applied-Upstream: no
1833+Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/openssl/+bug/2056593
1834+
1835+This automatically configures all library contexts to use the FIPS provider when
1836+the kernel is booted in FIPS mode by:
1837+- Setting "fips=yes" as the default property for algorithm fetches
1838+- Loading and activating the FIPS provider as the fallback provider.
1839+
1840+If applications load providers via a configuration either because the default
1841+configuration is modified or they override the default configuration, this
1842+disables loading of the fallback providers. In this case, the configuration
1843+must load the FIPS provider when FIPS mode is enabled, else algorithm fetches
1844+will fail
1845+
1846+Applications can choose to use non-FIPS approved algorithms by specifying the
1847+"-fips" or "fips=no" property for algorithm fetches and loading the default
1848+provider.
1849+---
1850+ crypto/context.c | 5 +
1851+ crypto/provider_core.c | 4 +-
1852+ crypto/provider_local.h | 2 +-
1853+ crypto/provider_predefined.c | 25 ++++-
1854+ doc/man3/EVP_set_default_properties.pod | 3 +-
1855+ doc/man5/config.pod | 8 +-
1856+ doc/man7/OSSL_PROVIDER-default.pod | 7 +-
1857+ doc/man7/fips_module.pod | 15 +++
1858+ .../ossl-guide-libraries-introduction.pod | 28 ++++-
1859+ test/build.info | 6 +-
1860+ test/fips_auto_enable_test.c | 106 ++++++++++++++++++
1861+ test/recipes/04-test_auto_fips_mode.t | 50 +++++++++
1862+ test/recipes/04-test_auto_fips_mode/off | 1 +
1863+ test/recipes/04-test_auto_fips_mode/on | 1 +
1864+ test/run_tests.pl | 1 +
1865+ 15 files changed, 246 insertions(+), 16 deletions(-)
1866+ create mode 100644 test/fips_auto_enable_test.c
1867+ create mode 100644 test/recipes/04-test_auto_fips_mode.t
1868+ create mode 100644 test/recipes/04-test_auto_fips_mode/off
1869+ create mode 100644 test/recipes/04-test_auto_fips_mode/on
1870+
1871+--- a/crypto/context.c
1872++++ b/crypto/context.c
1873+@@ -237,6 +237,11 @@
1874+ ctx->comp_methods = ossl_load_builtin_compressions();
1875+ #endif
1876+
1877++#if !defined(FIPS_MODULE)
1878++ if (ossl_fips_mode() == 1 && !evp_default_properties_enable_fips_int(ctx, 1, 0))
1879++ goto err;
1880++#endif
1881++
1882+ return 1;
1883+
1884+ err:
1885+--- a/crypto/provider_core.c
1886++++ b/crypto/provider_core.c
1887+@@ -534,7 +534,7 @@
1888+ int chosen = 0;
1889+
1890+ /* Check if this is a predefined builtin provider */
1891+- for (p = ossl_predefined_providers; p->name != NULL; p++) {
1892++ for (p = ossl_predefined_providers(); p->name != NULL; p++) {
1893+ if (strcmp(p->name, name) != 0)
1894+ continue;
1895+ /* These compile-time templates always have NULL parameters */
1896+@@ -1456,7 +1456,7 @@
1897+ return 1;
1898+ }
1899+
1900+- for (p = ossl_predefined_providers; p->name != NULL; p++) {
1901++ for (p = ossl_predefined_providers(); p->name != NULL; p++) {
1902+ OSSL_PROVIDER *prov = NULL;
1903+ OSSL_PROVIDER_INFO *info = store->provinfo;
1904+ STACK_OF(INFOPAIR) *params = NULL;
1905+@@ -1508,6 +1508,10 @@
1906+ }
1907+ err:
1908+ CRYPTO_THREAD_unlock(store->lock);
1909++ if (!ret)
1910++ fprintf(stderr, "While loading \"%s\" provider: %s\n",
1911++ (p != NULL ? p->name : "<unknown>"),
1912++ ERR_error_string(ERR_peek_last_error(), NULL));
1913+ return ret;
1914+ }
1915+
1916+--- a/crypto/provider_local.h
1917++++ b/crypto/provider_local.h
1918+@@ -23,7 +23,7 @@
1919+ unsigned int is_fallback:1;
1920+ } OSSL_PROVIDER_INFO;
1921+
1922+-extern const OSSL_PROVIDER_INFO ossl_predefined_providers[];
1923++const OSSL_PROVIDER_INFO *ossl_predefined_providers(void);
1924+
1925+ void ossl_provider_info_clear(OSSL_PROVIDER_INFO *info);
1926+ int ossl_provider_info_add_to_store(OSSL_LIB_CTX *libctx,
1927+--- a/crypto/provider_predefined.c
1928++++ b/crypto/provider_predefined.c
1929+@@ -9,6 +9,9 @@
1930+
1931+ #include <openssl/core.h>
1932+ #include "provider_local.h"
1933++#if !defined(FIPS_MODULE)
1934++# include "fips_mode.h"
1935++#endif
1936+
1937+ OSSL_provider_init_fn ossl_default_provider_init;
1938+ OSSL_provider_init_fn ossl_base_provider_init;
1939+@@ -17,7 +20,7 @@
1940+ #ifdef STATIC_LEGACY
1941+ OSSL_provider_init_fn ossl_legacy_provider_init;
1942+ #endif
1943+-const OSSL_PROVIDER_INFO ossl_predefined_providers[] = {
1944++const OSSL_PROVIDER_INFO providers[] = {
1945+ #ifdef FIPS_MODULE
1946+ { "fips", NULL, ossl_fips_intern_provider_init, NULL, 1 },
1947+ #else
1948+@@ -30,3 +33,23 @@
1949+ #endif
1950+ { NULL, NULL, NULL, NULL, 0 }
1951+ };
1952++
1953++#if !defined(FIPS_MODULE)
1954++const OSSL_PROVIDER_INFO fips_providers[] = {
1955++ { "fips", NULL, NULL, NULL, 1 },
1956++ { "base", NULL, ossl_base_provider_init, NULL, 1 },
1957++ { "default", NULL, ossl_default_provider_init, NULL, 0 },
1958++ { "null", NULL, ossl_null_provider_init, NULL, 0 },
1959++ { NULL, NULL, NULL, NULL, 0 }
1960++};
1961++#endif
1962++
1963++const OSSL_PROVIDER_INFO *ossl_predefined_providers(void)
1964++{
1965++#if !defined(FIPS_MODULE)
1966++ if (ossl_fips_mode() == 1)
1967++ return fips_providers;
1968++#endif
1969++
1970++ return providers;
1971++}
1972+--- a/doc/man3/EVP_set_default_properties.pod
1973++++ b/doc/man3/EVP_set_default_properties.pod
1974+@@ -39,7 +39,8 @@
1975+ existing query strings that have been set via EVP_set_default_properties().
1976+
1977+ EVP_default_properties_is_fips_enabled() indicates if 'fips=yes' is a default
1978+-property for the given I<libctx>.
1979++property for the given I<libctx>. This is the default for every I<libctx> on
1980++systems that are operaring in FIPS-approved mode.
1981+
1982+ =head1 NOTES
1983+
1984+--- a/doc/man5/config.pod
1985++++ b/doc/man5/config.pod
1986+@@ -286,11 +286,13 @@
1987+
1988+ =head3 Default provider and its activation
1989+
1990+-If no providers are activated explicitly, the default one is activated implicitly.
1991+-See L<OSSL_PROVIDER-default(7)> for more details.
1992++If no providers are activated explicitly, either the default provider or
1993++FIPS provider are activated implicitly depending on the environment.
1994++See L<crypto(7)>, L<OSSL_PROVIDER-default(7)> and L<OSSL_PROVIDER-FIPS(7)> for
1995++more details.
1996+
1997+ If you add a section explicitly activating any other provider(s),
1998+-you most probably need to explicitly activate the default provider,
1999++you most probably need to explicitly activate the default or FIPS provider,
2000+ otherwise it becomes unavailable in openssl. It may make the system remotely unavailable.
2001+
2002+ =head2 EVP Configuration
2003+--- a/doc/man7/OSSL_PROVIDER-default.pod
2004++++ b/doc/man7/OSSL_PROVIDER-default.pod
2005+@@ -9,9 +9,10 @@
2006+ The OpenSSL default provider supplies the majority of OpenSSL's diverse
2007+ algorithm implementations. If an application doesn't specify anything else
2008+ explicitly (e.g. in the application or via config), then this is the
2009+-provider that will be used as fallback: It is loaded automatically the
2010+-first time that an algorithm is fetched from a provider or a function
2011+-acting on providers is called and no other provider has been loaded yet.
2012++provider that will be used as fallback on systems that are not operating in
2013++FIPS-approved mode: It is loaded automatically the first time that an algorithm
2014++is fetched from a provider or a function acting on providers is called and no
2015++other provider has been loaded yet.
2016+
2017+ If an attempt to load a provider has already been made (whether successful
2018+ or not) then the default provider won't be loaded automatically. Therefore
2019+--- a/doc/man7/fips_module.pod
2020++++ b/doc/man7/fips_module.pod
2021+@@ -45,6 +45,21 @@
2022+ avoid using all deprecated functions. See L<ossl-guide-migration(7)> for a list of
2023+ deprecated functions.
2024+
2025++=head2 Applications running on systems operating in FIPS-approved mode
2026++
2027++When running on systems that are operating in FIPS-approved mode and no
2028++providers are loaded explicitly via the application or config, the FIPS module
2029++is loaded implicitly as a fallback provider whenever an algorithm is fetched
2030++for the first time. The "default" provider is not loaded implicitly in this
2031++case, and must be loaded explicitly if it is required by an application.
2032++
2033++Every L<OSSL_LIB_CTX(3)> is created with "fips=yes" as a default property in
2034++this mode so that algorithm fetches will only fetch algorithms that define
2035++this property and are FIPS-approved. To use algorithms that are not FIPS
2036++approved, either specify "-fips" or "fips=no" as a property query string with
2037++fetching functions, or use the L<EVP_default_properties_enable_fips(3)> function
2038++to remove the default property for a specific B<OSSL_LIB_CTX>.
2039++
2040+ =head2 Making all applications use the FIPS module by default
2041+
2042+ One simple approach is to cause all applications that are using OpenSSL to only
2043+--- a/doc/man7/ossl-guide-libraries-introduction.pod
2044++++ b/doc/man7/ossl-guide-libraries-introduction.pod
2045+@@ -48,7 +48,21 @@
2046+ providers in the form of loadable modules.
2047+
2048+ If you don't load a provider explicitly (either in program code or via config)
2049+-then the OpenSSL built-in "default" provider will be automatically loaded.
2050++then one of the following OpenSSL provdiers will be loaded automatically:
2051++
2052++=over 4
2053++
2054++=item *
2055++
2056++The built-in "default" provider when running on a system that is not operating
2057++in FIPS-approved mode.
2058++
2059++=item *
2060++
2061++The "fips" provider when running on a system that is operating in FIPS-approved
2062++mode.
2063++
2064++=back
2065+
2066+ See L</OPENSSL PROVIDERS> below for a description of the providers that OpenSSL
2067+ itself supplies.
2068+@@ -188,9 +202,10 @@
2069+ search criterion for these implementations. The default provider includes all
2070+ of the functionality in the base provider below.
2071+
2072+-If you don't load any providers at all then the "default" provider will be
2073+-automatically loaded. If you explicitly load any provider then the "default"
2074+-provider would also need to be explicitly loaded if it is required.
2075++If you don't load any providers at all and the system is not running in
2076++FIPS-approved mode, then the "default" provider will be automatically loaded.
2077++If you explicitly load any provider then the "default" provider would also need
2078++to be explicitly loaded if it is required.
2079+
2080+ See L<OSSL_PROVIDER-default(7)>.
2081+
2082+@@ -224,6 +239,11 @@
2083+ Typically the L</Base provider> will also need to be loaded because the FIPS
2084+ provider does not support the encoding or decoding of keys.
2085+
2086++If you don't load any providers at all and the system is running in
2087++FIPS-approved mode, then the FIPS provider will be automatically loaded.
2088++If you explicitly load any provider then the FIPS provider would also need
2089++to be explicitly loaded if it is required.
2090++
2091+ See L<OSSL_PROVIDER-FIPS(7)> and L<fips_module(7)>.
2092+
2093+ =head2 Legacy provider
2094+--- a/test/build.info
2095++++ b/test/build.info
2096+@@ -69,7 +69,8 @@
2097+ ca_internals_test bio_tfo_test membio_test bio_dgram_test list_test \
2098+ fips_version_test x509_test hpke_test pairwise_fail_test \
2099+ nodefltctxtest evp_xof_test x509_load_cert_file_test bio_meth_test \
2100+- x509_acert_test x509_req_test strtoultest bio_pw_callback_test
2101++ x509_acert_test x509_req_test strtoultest bio_pw_callback_test \
2102++ fips_auto_enable_test
2103+
2104+ IF[{- !$disabled{'rpk'} -}]
2105+ PROGRAMS{noinst}=rpktest
2106+@@ -808,6 +809,10 @@
2107+ INCLUDE[ca_internals_test]=.. ../include ../apps/include
2108+ DEPEND[ca_internals_test]=libtestutil.a ../libssl
2109+
2110++ SOURCE[fips_auto_enable_test]=fips_auto_enable_test.c
2111++ INCLUDE[fips_auto_enable_test]=../include ../apps/include
2112++ DEPEND[fips_auto_enable_test]=../libcrypto libtestutil.a
2113++
2114+ # Internal test programs. These are essentially a collection of internal
2115+ # test routines. Some of them need to reach internal symbols that aren't
2116+ # available through the shared library (at least on Linux, Solaris, Windows
2117+--- /dev/null
2118++++ b/test/fips_auto_enable_test.c
2119+@@ -0,0 +1,106 @@
2120++/*
2121++ * Copyright 2022 The OpenSSL Project Authors. All Rights Reserved.
2122++ *
2123++ * Licensed under the Apache License 2.0 (the "License"). You may not use
2124++ * this file except in compliance with the License. You can obtain a copy
2125++ * in the file LICENSE in the source distribution or at
2126++ * https://www.openssl.org/source/license.html
2127++ */
2128++
2129++#include <openssl/evp.h>
2130++#include <openssl/provider.h>
2131++#include "testutil.h"
2132++
2133++static int badfips;
2134++static int context;
2135++static int fips;
2136++
2137++static int test_fips_auto(void)
2138++{
2139++ OSSL_LIB_CTX *libctx = NULL;
2140++ EVP_MD *sha256 = NULL;
2141++ int is_fips_enabled, fips_loaded, default_loaded;
2142++ const char *prov_name, *expected_prov_name = fips ? "fips" : "default";
2143++ int testresult = 0;
2144++
2145++ if (context) {
2146++ if (!TEST_ptr(libctx = OSSL_LIB_CTX_new()))
2147++ goto err;
2148++ }
2149++
2150++ is_fips_enabled = EVP_default_properties_is_fips_enabled(libctx);
2151++
2152++ if (!TEST_int_eq(is_fips_enabled, fips))
2153++ goto err;
2154++
2155++ sha256 = EVP_MD_fetch(libctx, "SHA-256", NULL);
2156++ if (!fips || !badfips) {
2157++ if (!TEST_ptr(sha256))
2158++ goto err;
2159++
2160++ prov_name = OSSL_PROVIDER_get0_name(EVP_MD_get0_provider(sha256));
2161++ if (!TEST_str_eq(prov_name, expected_prov_name))
2162++ goto err;
2163++ } else if (!TEST_ptr_null(sha256))
2164++ goto err;
2165++
2166++ fips_loaded = OSSL_PROVIDER_available(libctx, "fips");
2167++ default_loaded = OSSL_PROVIDER_available(libctx, "default");
2168++
2169++ if (!TEST_int_eq(fips_loaded, fips && !badfips) ||
2170++ !TEST_int_eq(default_loaded, !fips && !badfips))
2171++ goto err;
2172++
2173++ testresult = 1;
2174++ err:
2175++ EVP_MD_free(sha256);
2176++ OSSL_LIB_CTX_free(libctx);
2177++ return testresult;
2178++}
2179++
2180++typedef enum OPTION_choice {
2181++ OPT_ERR = -1,
2182++ OPT_EOF = 0,
2183++ OPT_FIPS,
2184++ OPT_BAD_FIPS,
2185++ OPT_CONTEXT,
2186++ OPT_TEST_ENUM
2187++} OPTION_CHOICE;
2188++
2189++const OPTIONS *test_get_options(void)
2190++{
2191++ static const OPTIONS options[] = {
2192++ OPT_TEST_OPTIONS_DEFAULT_USAGE,
2193++ { "fips", OPT_FIPS, '-', "Test library context in FIPS mode" },
2194++ { "badfips", OPT_BAD_FIPS, '-', "Expect FIPS mode not to work correctly" },
2195++ { "context", OPT_CONTEXT, '-', "Explicitly use a non-default library context" },
2196++ { NULL }
2197++ };
2198++ return options;
2199++}
2200++
2201++int setup_tests(void)
2202++{
2203++ OPTION_CHOICE o;
2204++
2205++ while ((o = opt_next()) != OPT_EOF) {
2206++ switch (o) {
2207++ case OPT_FIPS:
2208++ fips = 1;
2209++ break;
2210++ case OPT_BAD_FIPS:
2211++ badfips = 1;
2212++ break;
2213++ case OPT_CONTEXT:
2214++ context = 1;
2215++ break;
2216++ case OPT_TEST_CASES:
2217++ break;
2218++ default:
2219++ return 0;
2220++ }
2221++ }
2222++
2223++ ADD_TEST(test_fips_auto);
2224++ return 1;
2225++}
2226+--- /dev/null
2227++++ b/test/recipes/04-test_auto_fips_mode.t
2228+@@ -0,0 +1,50 @@
2229++#! /usr/bin/env perl
2230++# Copyright 2022 The OpenSSL Project Authors. All Rights Reserved.
2231++#
2232++# Licensed under the Apache License 2.0 (the "License"). You may not use
2233++# this file except in compliance with the License. You can obtain a copy
2234++# in the file LICENSE in the source distribution or at
2235++# https://www.openssl.org/source/license.html
2236++
2237++use strict;
2238++use warnings;
2239++
2240++use File::Spec::Functions qw/curdir/;
2241++use OpenSSL::Test qw/:DEFAULT srctop_dir srctop_file/;
2242++use OpenSSL::Test::Utils;
2243++use Cwd qw(abs_path);
2244++
2245++BEGIN {
2246++ setup("test_auto_fips_mode");
2247++}
2248++
2249++my $no_fips = disabled('fips') || ($ENV{NO_FIPS} // 0);
2250++
2251++plan tests => ($no_fips ? 5 : 7);
2252++
2253++$ENV{OPENSSL_FIPS_MODE_SWITCH_PATH} = abs_path(srctop_dir("test", "recipes",
2254++ "04-test_auto_fips_mode", "notexist"));
2255++ok(run(test(["fips_auto_enable_test"])), "running fips_auto_enable_test");
2256++ok(run(test(["fips_auto_enable_test", "-context"])),
2257++ "running fips_auto_enable_test -context");
2258++
2259++$ENV{OPENSSL_FIPS_MODE_SWITCH_PATH} = abs_path(srctop_file("test", "recipes",
2260++ "04-test_auto_fips_mode", "off"));
2261++ok(run(test(["fips_auto_enable_test"])),
2262++ "running fips_auto_enable_test with FIPS mode off");
2263++ok(run(test(["fips_auto_enable_test", "-context"])),
2264++ "running fips_auto_enable_test -context with FIPS mode off");
2265++
2266++$ENV{OPENSSL_FIPS_MODE_SWITCH_PATH} = abs_path(srctop_file("test", "recipes",
2267++ "04-test_auto_fips_mode", "on"));
2268++
2269++unless($no_fips) {
2270++ ok(run(test(["fips_auto_enable_test", "-fips"])),
2271++ "running fips_auto_enable_test -fips");
2272++ ok(run(test(["fips_auto_enable_test", "-context", "-fips"])),
2273++ "running fips_auto_enable_test -context -fips");
2274++}
2275++
2276++$ENV{OPENSSL_MODULES} = curdir();
2277++ok(run(test(["fips_auto_enable_test", "-fips", "-badfips"])),
2278++ "running fips_auto_enable_test -fips -badfips");
2279+--- /dev/null
2280++++ b/test/recipes/04-test_auto_fips_mode/off
2281+@@ -0,0 +1 @@
2282++0
2283+--- /dev/null
2284++++ b/test/recipes/04-test_auto_fips_mode/on
2285+@@ -0,0 +1 @@
2286++1
2287+--- a/test/run_tests.pl
2288++++ b/test/run_tests.pl
2289+@@ -37,6 +37,7 @@
2290+ $ENV{OPENSSL_CONF_INCLUDE} = rel2abs(catdir($bldtop, "test"));
2291+ $ENV{OPENSSL_MODULES} = rel2abs(catdir($bldtop, "providers"));
2292+ $ENV{OPENSSL_ENGINES} = rel2abs(catdir($bldtop, "engines"));
2293++$ENV{OPENSSL_FIPS_MODE_SWITCH_PATH} = "/nonexistant";
2294+ $ENV{CTLOG_FILE} = rel2abs(catfile($srctop, "test", "ct", "log_list.cnf"));
2295+
2296+ # On platforms that support this, this will ensure malloc returns data that is
2297diff --git a/debian/patches/fips/test-Ensure-encoding-runs-with-the-correct-context-during.patch b/debian/patches/fips/test-Ensure-encoding-runs-with-the-correct-context-during.patch
2298new file mode 100644
2299index 0000000..ed4294f
2300--- /dev/null
2301+++ b/debian/patches/fips/test-Ensure-encoding-runs-with-the-correct-context-during.patch
2302@@ -0,0 +1,57 @@
2303+From: Chris Coulson <chris.coulson@canonical.com>
2304+Date: Thu, 30 Mar 2023 16:10:16 +0100
2305+Subject: test: Ensure encoding runs with the correct context during
2306+ test_encoder_decoder
2307+
2308+Forwarded: no
2309+Applied-Upstream: no
2310+Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/openssl/+bug/2056593
2311+
2312+This test uses 2 library contexts - one context for creating initial test keys,
2313+and then another context (or the default context) for running tests. There is an
2314+issue that during the encoding tests, the OSSL_ENCODER_CTX is created from the
2315+created EVP_PKEYs, which are associated with the library context used to create
2316+the keys. This means that encoding tests run with the wrong library context,
2317+which always uses the default provider.
2318+---
2319+ test/endecode_test.c | 15 +++++++++++++--
2320+ 1 file changed, 13 insertions(+), 2 deletions(-)
2321+
2322+diff --git a/test/endecode_test.c b/test/endecode_test.c
2323+index e28fd41b7..e7b25937a 100644
2324+--- a/test/endecode_test.c
2325++++ b/test/endecode_test.c
2326+@@ -109,11 +109,12 @@ static EVP_PKEY *make_template(const char *type, OSSL_PARAM *genparams)
2327+ static EVP_PKEY *make_key(const char *type, EVP_PKEY *template,
2328+ OSSL_PARAM *genparams)
2329+ {
2330+- EVP_PKEY *pkey = NULL;
2331++ EVP_PKEY *tmp_pkey = NULL, *pkey = NULL;
2332+ EVP_PKEY_CTX *ctx =
2333+ template != NULL
2334+ ? EVP_PKEY_CTX_new_from_pkey(keyctx, template, testpropq)
2335+ : EVP_PKEY_CTX_new_from_name(keyctx, type, testpropq);
2336++ OSSL_PARAM *params = NULL;
2337+
2338+ /*
2339+ * No real need to check the errors other than for the cascade
2340+@@ -123,8 +124,18 @@ static EVP_PKEY *make_key(const char *type, EVP_PKEY *template,
2341+ && EVP_PKEY_keygen_init(ctx) > 0
2342+ && (genparams == NULL
2343+ || EVP_PKEY_CTX_set_params(ctx, genparams) > 0)
2344+- && EVP_PKEY_keygen(ctx, &pkey) > 0);
2345++ && EVP_PKEY_keygen(ctx, &tmp_pkey) > 0);
2346++ EVP_PKEY_CTX_free(ctx);
2347++
2348++ (void)(tmp_pkey != NULL
2349++ && ((ctx = EVP_PKEY_CTX_new_from_name(testctx, type, testpropq)) != NULL)
2350++ && EVP_PKEY_todata(pkey, EVP_PKEY_KEYPAIR, &params) > 0
2351++ && EVP_PKEY_fromdata_init(ctx) > 0
2352++ && EVP_PKEY_fromdata(ctx, &pkey, EVP_PKEY_KEYPAIR, params) > 0);
2353++ OSSL_PARAM_free(params);
2354+ EVP_PKEY_CTX_free(ctx);
2355++ EVP_PKEY_free(tmp_pkey);
2356++
2357+ return pkey;
2358+ }
2359+ #endif
2360diff --git a/debian/patches/fips/two-defines-for-fips-in-libssl-dev-headers.patch b/debian/patches/fips/two-defines-for-fips-in-libssl-dev-headers.patch
2361new file mode 100644
2362index 0000000..369a354
2363--- /dev/null
2364+++ b/debian/patches/fips/two-defines-for-fips-in-libssl-dev-headers.patch
2365@@ -0,0 +1,72 @@
2366+From: Adrien Nader <adrien.nader@canonical.com>
2367+Date: Wed, 11 Sept 2023 15:27:16 +0200
2368+Subject: Add two defines for FIPS in libssl-dev headers
2369+
2370+During FIPS certification for Noble, it was found that a few defines were
2371+missing and had to be manually inserted. This should be the last change
2372+needed to make libssl directly available for FIPS setups as all the remaining delta is in providers.
2373+
2374+The two defines are extracted from two patches:
2375+- crypto/dh: perform a PCT during key generation
2376+- providers: Add a FIPS status indicator
2377+
2378+Forwarded: not-needed
2379+Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/openssl/+bug/2073991
2380+
2381+---
2382+
2383+--- a/doc/man7/OSSL_PROVIDER-FIPS.pod
2384++++ b/doc/man7/OSSL_PROVIDER-FIPS.pod
2385+@@ -281,6 +281,36 @@
2386+
2387+ =back
2388+
2389++=head1 STATUS INDICATOR
2390++
2391++FIPS 140-3 requires that services provide an indicator when the service uses an
2392++approved cryptographic algorithm in an approved manner. In most cases, the
2393++status can be determine implicitly by observing the return code from an
2394++approved security service call, but the FIPS provider module may permit the
2395++use of approved cryptographic algorithms in a non-approved manner in some cases.
2396++For this, the Ubuntu FIPS provider module provides an explicit status indicator
2397++which is implemented as a gettable provider module parameter, and can be
2398++accessed using L<OSSL_PROVIDER_get_params(3)> on the B<OSSL_PROVIDER> associated
2399++with the FIPS provider module.
2400++
2401++See L<OSSL_PARAM(3)> for information about passing parameters.
2402++
2403++The following B<OSSL_PARAM> key is used for accessing the status indicator:
2404++
2405++=over 4
2406++
2407++=item "ubuntu.fips-unapproved-usage" (B<UBUNTU_OSSL_PROV_FIPS_PARAM_UNAPPROVED_USAGE>) <integer>
2408++
2409++Gets 1 if the L<OSSL_LIB_CTX(3)> associated with the B<OSSL_PROVIDER> has been
2410++used to execute a security service call that used an approved cryptographic
2411++algorithm in a non-approved manner inside the FIPS provider module. Querying
2412++this parameter resets it to 0. Note that this only applies to services inside
2413++of the FIPS provider module boundary - it cannot indicate whether the
2414++L<OSSL_LIB_CTX> has been used to execute security service calls in other
2415++provider modules.
2416++
2417++=back
2418++
2419+ =head1 SELF TESTING
2420+
2421+ A requirement of FIPS modules is to run cryptographic algorithm self tests.
2422+--- a/include/openssl/fips_names.h
2423++++ b/include/openssl/fips_names.h
2424+@@ -43,6 +43,13 @@
2425+ # define OSSL_PROV_FIPS_PARAM_TLS1_PRF_EMS_CHECK OSSL_PROV_PARAM_TLS1_PRF_EMS_CHECK
2426+ # define OSSL_PROV_FIPS_PARAM_DRBG_TRUNC_DIGEST OSSL_PROV_PARAM_DRBG_TRUNC_DIGEST
2427+
2428++/*
2429++ * The module status indicator for the FIPS provider. This is queried from
2430++ * the provider.
2431++ * Type: OSSL_PARAM_INTEGER
2432++ */
2433++# define UBUNTU_OSSL_PROV_FIPS_PARAM_UNAPPROVED_USAGE "ubuntu.fips-unapproved-usage"
2434++
2435+ # ifdef __cplusplus
2436+ }
2437+ # endif
2438diff --git a/debian/patches/no-symbolic.patch b/debian/patches/no-symbolic.patch
2439deleted file mode 100644
2440index 85ed6e6..0000000
2441--- a/debian/patches/no-symbolic.patch
2442+++ /dev/null
2443@@ -1,21 +0,0 @@
2444-From: Debian OpenSSL Team <pkg-openssl-devel@lists.alioth.debian.org>
2445-Date: Sun, 5 Nov 2017 15:09:09 +0100
2446-Subject: no-symbolic
2447-
2448----
2449- Configurations/shared-info.pl | 2 +-
2450- 1 file changed, 1 insertion(+), 1 deletion(-)
2451-
2452-diff --git a/Configurations/shared-info.pl b/Configurations/shared-info.pl
2453-index caf6f901261f..be6a5d7b0b90 100644
2454---- a/Configurations/shared-info.pl
2455-+++ b/Configurations/shared-info.pl
2456-@@ -25,7 +25,7 @@ sub detect_gnu_cc {
2457- my %shared_info;
2458- %shared_info = (
2459- 'gnu-shared' => {
2460-- shared_ldflag => '-shared -Wl,-Bsymbolic',
2461-+ shared_ldflag => '-shared',
2462- shared_sonameflag => '-Wl,-soname=',
2463- },
2464- 'linux-shared' => sub {
2465diff --git a/debian/patches/pic.patch b/debian/patches/pic.patch
2466deleted file mode 100644
2467index 986d2d7..0000000
2468--- a/debian/patches/pic.patch
2469+++ /dev/null
2470@@ -1,186 +0,0 @@
2471-From: Debian OpenSSL Team <pkg-openssl-devel@lists.alioth.debian.org>
2472-Date: Sun, 5 Nov 2017 15:09:09 +0100
2473-Subject: pic
2474-
2475----
2476- crypto/des/asm/desboth.pl | 17 ++++++++++++++---
2477- crypto/perlasm/cbc.pl | 24 ++++++++++++++++++++----
2478- crypto/perlasm/x86gas.pl | 16 ++++++++++++++++
2479- crypto/x86cpuid.pl | 10 +++++-----
2480- 4 files changed, 55 insertions(+), 12 deletions(-)
2481-
2482-diff --git a/crypto/des/asm/desboth.pl b/crypto/des/asm/desboth.pl
2483-index afffd20d84cd..b50e85ce24f8 100644
2484---- a/crypto/des/asm/desboth.pl
2485-+++ b/crypto/des/asm/desboth.pl
2486-@@ -23,6 +23,11 @@ sub DES_encrypt3
2487-
2488- &push("edi");
2489-
2490-+ &call (&label("pic_point0"));
2491-+ &set_label("pic_point0");
2492-+ &blindpop("ebp");
2493-+ &add ("ebp", "\$_GLOBAL_OFFSET_TABLE_+[.-" . &label("pic_point0") . "]");
2494-+
2495- &comment("");
2496- &comment("Load the data words");
2497- &mov($L,&DWP(0,"ebx","",0));
2498-@@ -54,15 +59,21 @@ sub DES_encrypt3
2499- &mov(&swtmp(2), (DWC(($enc)?"1":"0")));
2500- &mov(&swtmp(1), "eax");
2501- &mov(&swtmp(0), "ebx");
2502-- &call("DES_encrypt2");
2503-+ &exch("ebx", "ebp");
2504-+ &call("DES_encrypt2\@PLT");
2505-+ &exch("ebx", "ebp");
2506- &mov(&swtmp(2), (DWC(($enc)?"0":"1")));
2507- &mov(&swtmp(1), "edi");
2508- &mov(&swtmp(0), "ebx");
2509-- &call("DES_encrypt2");
2510-+ &exch("ebx", "ebp");
2511-+ &call("DES_encrypt2\@PLT");
2512-+ &exch("ebx", "ebp");
2513- &mov(&swtmp(2), (DWC(($enc)?"1":"0")));
2514- &mov(&swtmp(1), "esi");
2515- &mov(&swtmp(0), "ebx");
2516-- &call("DES_encrypt2");
2517-+ &exch("ebx", "ebp");
2518-+ &call("DES_encrypt2\@PLT");
2519-+ &exch("ebx", "ebp");
2520-
2521- &stack_pop(3);
2522- &mov($L,&DWP(0,"ebx","",0));
2523-diff --git a/crypto/perlasm/cbc.pl b/crypto/perlasm/cbc.pl
2524-index ef09e0fd297a..fe6ff45d1804 100644
2525---- a/crypto/perlasm/cbc.pl
2526-+++ b/crypto/perlasm/cbc.pl
2527-@@ -129,7 +129,11 @@ sub cbc
2528- &mov(&DWP($data_off,"esp","",0), "eax"); # put in array for call
2529- &mov(&DWP($data_off+4,"esp","",0), "ebx"); #
2530-
2531-- &call($enc_func);
2532-+ &call (&label("pic_point0"));
2533-+ &set_label("pic_point0");
2534-+ &blindpop("ebx");
2535-+ &add ("ebx", "\$_GLOBAL_OFFSET_TABLE_+[.-" . &label("pic_point0") . "]");
2536-+ &call("$enc_func\@PLT");
2537-
2538- &mov("eax", &DWP($data_off,"esp","",0));
2539- &mov("ebx", &DWP($data_off+4,"esp","",0));
2540-@@ -199,7 +203,11 @@ sub cbc
2541- &mov(&DWP($data_off,"esp","",0), "eax"); # put in array for call
2542- &mov(&DWP($data_off+4,"esp","",0), "ebx"); #
2543-
2544-- &call($enc_func);
2545-+ &call (&label("pic_point1"));
2546-+ &set_label("pic_point1");
2547-+ &blindpop("ebx");
2548-+ &add ("ebx", "\$_GLOBAL_OFFSET_TABLE_+[.-" . &label("pic_point1") . "]");
2549-+ &call("$enc_func\@PLT");
2550-
2551- &mov("eax", &DWP($data_off,"esp","",0));
2552- &mov("ebx", &DWP($data_off+4,"esp","",0));
2553-@@ -232,7 +240,11 @@ sub cbc
2554- &mov(&DWP($data_off,"esp","",0), "eax"); # put back
2555- &mov(&DWP($data_off+4,"esp","",0), "ebx"); #
2556-
2557-- &call($dec_func);
2558-+ &call (&label("pic_point2"));
2559-+ &set_label("pic_point2");
2560-+ &blindpop("ebx");
2561-+ &add ("ebx", "\$_GLOBAL_OFFSET_TABLE_+[.-" . &label("pic_point2") . "]");
2562-+ &call("$dec_func\@PLT");
2563-
2564- &mov("eax", &DWP($data_off,"esp","",0)); # get return
2565- &mov("ebx", &DWP($data_off+4,"esp","",0)); #
2566-@@ -275,7 +287,11 @@ sub cbc
2567- &mov(&DWP($data_off,"esp","",0), "eax"); # put back
2568- &mov(&DWP($data_off+4,"esp","",0), "ebx"); #
2569-
2570-- &call($dec_func);
2571-+ &call (&label("pic_point3"));
2572-+ &set_label("pic_point3");
2573-+ &blindpop("ebx");
2574-+ &add ("ebx", "\$_GLOBAL_OFFSET_TABLE_+[.-" . &label("pic_point3") . "]");
2575-+ &call("$dec_func\@PLT");
2576-
2577- &mov("eax", &DWP($data_off,"esp","",0)); # get return
2578- &mov("ebx", &DWP($data_off+4,"esp","",0)); #
2579-diff --git a/crypto/perlasm/x86gas.pl b/crypto/perlasm/x86gas.pl
2580-index f3c01ea89b4b..2fba3d831c74 100644
2581---- a/crypto/perlasm/x86gas.pl
2582-+++ b/crypto/perlasm/x86gas.pl
2583-@@ -172,6 +172,7 @@ sub ::file_end
2584- if ($::macosx) { push (@out,"$tmp,2\n"); }
2585- elsif ($::elf) { push (@out,"$tmp,4\n"); }
2586- else { push (@out,"$tmp\n"); }
2587-+ if ($::elf) { push (@out,".hidden\tOPENSSL_ia32cap_P\n"); }
2588- }
2589- push(@out,$initseg) if ($initseg);
2590- if ($::elf) {
2591-@@ -250,8 +251,23 @@ ___
2592- elsif ($::elf)
2593- { $initseg.=<<___;
2594- .section .init
2595-+___
2596-+ if ($::pic)
2597-+ { $initseg.=<<___;
2598-+ pushl %ebx
2599-+ call .pic_point0
2600-+.pic_point0:
2601-+ popl %ebx
2602-+ addl \$_GLOBAL_OFFSET_TABLE_+[.-.pic_point0],%ebx
2603-+ call $f\@PLT
2604-+ popl %ebx
2605-+___
2606-+ }
2607-+ else
2608-+ { $initseg.=<<___;
2609- call $f
2610- ___
2611-+ }
2612- }
2613- elsif ($::coff)
2614- { $initseg.=<<___; # applies to both Cygwin and Mingw
2615-diff --git a/crypto/x86cpuid.pl b/crypto/x86cpuid.pl
2616-index 35e2c5b0a540..282058ce87f3 100644
2617---- a/crypto/x86cpuid.pl
2618-+++ b/crypto/x86cpuid.pl
2619-@@ -16,6 +16,8 @@ $output = pop and open STDOUT,">$output";
2620-
2621- for (@ARGV) { $sse2=1 if (/-DOPENSSL_IA32_SSE2/); }
2622-
2623-+push(@out, ".hidden OPENSSL_ia32cap_P\n");
2624-+
2625- &function_begin("OPENSSL_ia32_cpuid");
2626- &xor ("edx","edx");
2627- &pushf ();
2628-@@ -185,9 +187,7 @@ for (@ARGV) { $sse2=1 if (/-DOPENSSL_IA32_SSE2/); }
2629- &set_label("nocpuid");
2630- &function_end("OPENSSL_ia32_cpuid");
2631-
2632--&external_label("OPENSSL_ia32cap_P");
2633--
2634--&function_begin_B("OPENSSL_rdtsc","EXTRN\t_OPENSSL_ia32cap_P:DWORD");
2635-+&function_begin_B("OPENSSL_rdtsc");
2636- &xor ("eax","eax");
2637- &xor ("edx","edx");
2638- &picmeup("ecx","OPENSSL_ia32cap_P");
2639-@@ -201,7 +201,7 @@ for (@ARGV) { $sse2=1 if (/-DOPENSSL_IA32_SSE2/); }
2640- # This works in Ring 0 only [read DJGPP+MS-DOS+privileged DPMI host],
2641- # but it's safe to call it on any [supported] 32-bit platform...
2642- # Just check for [non-]zero return value...
2643--&function_begin_B("OPENSSL_instrument_halt","EXTRN\t_OPENSSL_ia32cap_P:DWORD");
2644-+&function_begin_B("OPENSSL_instrument_halt");
2645- &picmeup("ecx","OPENSSL_ia32cap_P");
2646- &bt (&DWP(0,"ecx"),4);
2647- &jnc (&label("nohalt")); # no TSC
2648-@@ -268,7 +268,7 @@ for (@ARGV) { $sse2=1 if (/-DOPENSSL_IA32_SSE2/); }
2649- &ret ();
2650- &function_end_B("OPENSSL_far_spin");
2651-
2652--&function_begin_B("OPENSSL_wipe_cpu","EXTRN\t_OPENSSL_ia32cap_P:DWORD");
2653-+&function_begin_B("OPENSSL_wipe_cpu");
2654- &xor ("eax","eax");
2655- &xor ("edx","edx");
2656- &picmeup("ecx","OPENSSL_ia32cap_P");
2657diff --git a/debian/patches/regex_match_ecp_nistp521-ppc64.patch b/debian/patches/regex_match_ecp_nistp521-ppc64.patch
2658new file mode 100644
2659index 0000000..74085ab
2660--- /dev/null
2661+++ b/debian/patches/regex_match_ecp_nistp521-ppc64.patch
2662@@ -0,0 +1,30 @@
2663+Description: match last filename for output in ecp_nistp521-ppc64.pl
2664+
2665+ ecp_nistp521-ppc64.pl matches the incorrect param for output instead of
2666+ crypto/ec/ecp_nistp521-ppc64.s This leads to ecp_nistp521-ppc64.pl writing
2667+ output to STDOUT instead of the file crypto/ec/ecp_nistp521-ppc64.s. The
2668+ missing .s file leads Missing .s file leads to gcc erroring out and build
2669+ failure. Makefile generates command with crypto/ec/ecp_nistp521-ppc64.s as
2670+ the last param. This page matches the last filename instead of first.
2671+
2672+Author: Ravi Kant Sharma <ravi.kant.sharma@canonical.com>
2673+Bug-Ubuntu: https://launchpad.net/bugs/2137464
2674+
2675+---
2676+Forwarded: https://github.com/openssl/openssl/pull/29417
2677+Last-Update: 2025-12-17
2678+
2679+--- openssl-3.0.13.orig/crypto/ec/asm/ecp_nistp521-ppc64.pl
2680++++ openssl-3.0.13/crypto/ec/asm/ecp_nistp521-ppc64.pl
2681+@@ -19,7 +19,10 @@ use warnings;
2682+
2683+ my $flavour = shift;
2684+ my $output = "";
2685+-while (($output=shift) && ($output!~/\w[\w\-]*\.\w+$/)) {}
2686++my $arg;
2687++while ($arg = shift) {
2688++ $output = $arg if $arg =~ /\w[\w\-]*\.\w+$/;
2689++}
2690+ if (!$output) {
2691+ $output = "-";
2692+ }
2693diff --git a/debian/patches/series b/debian/patches/series
2694index cbf74e5..39ae18e 100644
2695--- a/debian/patches/series
2696+++ b/debian/patches/series
2697@@ -1,7 +1,18 @@
2698 debian-targets.patch
2699 man-section.patch
2700-no-symbolic.patch
2701-pic.patch
2702 c_rehash-compat.patch
2703 Configure-allow-to-enable-ktls-if-target-does-not-start-w.patch
2704 conf-Serialize-allocation-free-of-ssl_names.patch
2705+
2706+# Ubuntu patches
2707+
2708+default-configuration-read-dropins-and-crypto-config.patch
2709+regex_match_ecp_nistp521-ppc64.patch
2710+
2711+# Ubuntu FIPS patches
2712+fips/crypto-Add-kernel-FIPS-mode-detection.patch
2713+fips/crypto-Automatically-use-the-FIPS-provider-when-the-kerne.patch
2714+fips/apps-speed-Omit-unavailable-algorithms-in-FIPS-mode.patch
2715+fips/apps-pass-propquery-arg-to-the-libctx-DRBG-fetches.patch
2716+fips/test-Ensure-encoding-runs-with-the-correct-context-during.patch
2717+fips/two-defines-for-fips-in-libssl-dev-headers.patch
2718diff --git a/debian/rules b/debian/rules
2719index 5a80970..958db53 100755
2720--- a/debian/rules
2721+++ b/debian/rules
2722@@ -11,11 +11,12 @@
2723 include /usr/share/dpkg/architecture.mk
2724 include /usr/share/dpkg/pkg-info.mk
2725
2726-export DEB_BUILD_MAINT_OPTIONS = hardening=+all future=+lfs
2727+export DEB_BUILD_MAINT_OPTIONS = hardening=+all future=+lfs optimize=-lto
2728
2729 SHELL=/bin/bash
2730
2731 package=openssl
2732+library_package=libssl3t64
2733
2734 # For generating the manpages
2735 export VERSION=$(DEB_VERSION_UPSTREAM)
2736@@ -30,7 +31,7 @@ ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
2737 endif
2738
2739 CONFARGS = --prefix=/usr --openssldir=/usr/lib/ssl --libdir=lib/$(DEB_HOST_MULTIARCH) no-idea no-mdc2 no-rc5 no-ssl3 enable-unit-test no-ssl3-method enable-rfc3779 enable-cms no-capieng no-rdrand \
2740- enable-tfo enable-zstd enable-zlib enable-fips
2741+ enable-tfo enable-zstd enable-zlib no-fips
2742 #OPT_alpha = ev4 ev5
2743 ARCHOPTS = OPT_$(DEB_HOST_ARCH)
2744 OPTS = $($(ARCHOPTS))
2745@@ -146,6 +147,19 @@ override_dh_fixperms:
2746 fi
2747 dh_fixperms -a -X etc/ssl/private
2748
2749+override_dh_compress:
2750+ dh_compress
2751+ # symlink doc files
2752+ # We used to also add symlinks to changelog.gz but pkgstripfiles from
2753+ # pkgbinarymangler will remove the real changelog.gz file and break all the
2754+ # symlinks. Ignore changelog, it will end up as wanted.
2755+ # NB: pkgstripfiles is not done in PPAs
2756+ for p in openssl libssl-dev; do \
2757+ for f in changelog.Debian.gz copyright; do \
2758+ ln -sf ../$(library_package)/$$f debian/$$p/usr/share/doc/$$p/$$f; \
2759+ done; \
2760+ done
2761+
2762 override_dh_perl:
2763 dh_perl -d
2764
2765@@ -153,5 +167,5 @@ override_dh_makeshlibs:
2766 dh_makeshlibs -a -V --add-udeb="libcrypto3-udeb" -Xengines -Xossl-modules -- -c4
2767
2768 override_dh_shlibdeps:
2769- sed -i '/^udeb: libssl/s/libcrypto3-udeb/libssl3-udeb/' debian/libssl3t64/DEBIAN/shlibs
2770- dh_shlibdeps -a -L libssl3t64
2771+ sed -i '/^udeb: libssl/s/libcrypto3-udeb/libssl3-udeb/' debian/$(library_package)/DEBIAN/shlibs
2772+ dh_shlibdeps -a -L $(library_package)
2773diff --git a/debian/salsa-ci.yml b/debian/salsa-ci.yml
2774new file mode 100644
2775index 0000000..927d446
2776--- /dev/null
2777+++ b/debian/salsa-ci.yml
2778@@ -0,0 +1,23 @@
2779+# This is a template from
2780+# https://salsa.debian.org/salsa-ci-team/pipeline/-/raw/master/recipes/salsa-ci.yml
2781+#
2782+# If this pipeline is not running at after committing and pushing this file,
2783+# ensure that https://salsa.debian.org/%{project_path}/-/settings/ci_cd has in
2784+# field "CI/CD configuration file" filename "debian/salsa-ci.yml".
2785+#
2786+# Feel free disable and enable tests to find a good balance between extensive
2787+# coverage and having a consistently green pipeline where failures are rare
2788+# enough that they are always investigated and addressed. For documeenation
2789+# please read https://salsa.debian.org/salsa-ci-team/pipeline
2790+---
2791+include:
2792+ - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/recipes/debian.yml
2793+
2794+# Disable jobs that are failing at the time of adopting Salsa CI. The purpose of
2795+# a CI system is to detect regressions, so it must be green initially, so change
2796+# to red is clear. Fixing build flags and reprotest is of course needed, but
2797+# that is an independent effort from enabling Salsa CI to protect from futher
2798+# regressions.
2799+variables:
2800+ SALSA_CI_DISABLE_BLHC: 1
2801+ SALSA_CI_DISABLE_REPROTEST: 1
2802diff --git a/debian/tests/control b/debian/tests/control
2803index ac7f2cb..874a65e 100644
2804--- a/debian/tests/control
2805+++ b/debian/tests/control
2806@@ -1,3 +1,3 @@
2807 Tests: run-25-test-verify
2808-Depends: openssl, perl
2809+Depends: openssl, perl:native
2810 Restrictions: rw-build-tree, allow-stderr

Subscribers

People subscribed via source and target branches