Skip to content

Commit 5f8bd68

Browse files
committed
Merge branch 'upstream' of github.com:kassane/openssl-zig into zig-pkg
2 parents e29b7ab + ed68623 commit 5f8bd68

File tree

732 files changed

+21085
-5079
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

732 files changed

+21085
-5079
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
name: "Build openssl interop container from master"
2+
3+
on:
4+
schedule:
5+
- cron: '20 0 * * *'
6+
workflow_dispatch:
7+
8+
jobs:
9+
update_quay_container:
10+
runs-on: ubuntu-latest
11+
steps:
12+
- uses: actions/checkout@v4
13+
with:
14+
fetch-depth: 0
15+
- name: "log in to quay.io"
16+
run: |
17+
docker login -u openssl-ci+machine -p ${{ secrets.QUAY_IO_PASSWORD }} quay.io
18+
- name: "Build container"
19+
run: |
20+
cd test/quic-openssl-docker/
21+
docker build -t quay.io/openssl-ci/openssl-quic-interop:latest .
22+
- name: "Push to quay"
23+
run: |
24+
docker push quay.io/openssl-ci/openssl-quic-interop:latest
25+

.github/workflows/prov-compat-label.yml

+5-5
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ jobs:
8989
-providers
9090
working-directory: ${{ matrix.release.dir }}
9191

92-
- uses: actions/upload-artifact@v3
92+
- uses: actions/upload-artifact@v4
9393
with:
9494
name: ${{ matrix.release.tgz }}
9595
path: ${{ matrix.release.tgz }}
@@ -174,7 +174,7 @@ jobs:
174174
./util/opensslwrap.sh version -c
175175
working-directory: ${{ matrix.branch.dir }}
176176

177-
- uses: actions/upload-artifact@v3
177+
- uses: actions/upload-artifact@v4
178178
with:
179179
name: ${{ matrix.branch.tgz }}
180180
path: ${{ matrix.branch.tgz }}
@@ -193,7 +193,7 @@ jobs:
193193
# Note that releases are not used as a test environment for
194194
# later providers. Problems in these situations ought to be
195195
# caught by cross branch testing before the release.
196-
tree_a: [ branch-master, branch-3.3, branch-3.2, branch-3.1, branch-3.0,
196+
tree_a: [ branch-3.3, branch-3.2, branch-3.1, branch-3.0,
197197
openssl-3.0.0, openssl-3.0.8, openssl-3.0.9, openssl-3.1.2 ]
198198
tree_b: [ PR ]
199199
include:
@@ -218,15 +218,15 @@ jobs:
218218
fi
219219
continue-on-error: true
220220

221-
- uses: actions/download-artifact@v3
221+
- uses: actions/download-artifact@v4.1.8
222222
if: steps.early_exit.outcome == 'success'
223223
with:
224224
name: ${{ matrix.tree_a }}.tar.gz
225225
- name: unpack first build
226226
if: steps.early_exit.outcome == 'success'
227227
run: tar xzf "${{ matrix.tree_a }}.tar.gz"
228228

229-
- uses: actions/download-artifact@v3
229+
- uses: actions/download-artifact@v4.1.8
230230
if: steps.early_exit.outcome == 'success'
231231
with:
232232
name: ${{ matrix.tree_b }}.tar.gz
+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
name: "Run openssl quic interop testing"
2+
3+
on:
4+
workflow_run:
5+
workflows: ["Build openssl interop container from master"]
6+
types: [completed]
7+
workflow_dispatch:
8+
9+
jobs:
10+
run_quic_interop:
11+
strategy:
12+
matrix:
13+
tests: [http3, transfer, handshake, retry, chacha20, resumption, multiplexing]
14+
servers: [quic-go, ngtcp2, mvfst, quiche, nginx, msquic, haproxy]
15+
fail-fast: false
16+
runs-on: ubuntu-latest
17+
steps:
18+
- uses: actions/checkout@v4
19+
with:
20+
repository: 'quic-interop/quic-interop-runner'
21+
fetch-depth: 0
22+
- name: Install dependencies
23+
run: |
24+
pip install -r requirements.txt
25+
sudo add-apt-repository ppa:wireshark-dev/stable
26+
sudo apt-get update
27+
sudo apt-get install -y tshark
28+
- name: Patch implementations file
29+
run: |
30+
jq '.openssl = { image: "quay.io/openssl-ci/openssl-quic-interop"
31+
, url: "https://github.com/openssl/openssl"
32+
, role: "client"
33+
}' ./implementations.json > ./implementations.tmp
34+
mv ./implementations.tmp implementations.json
35+
- name: "run interop"
36+
run: |
37+
python3 ./run.py -c openssl -t ${{ matrix.tests }} -s ${{ matrix.servers }} --log-dir ./logs -d
38+
39+

.gitignore

+3
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,9 @@ providers/common/include/prov/der_sm2.h
149149
/apps/progs.c
150150
/apps/progs.h
151151

152+
# macOS
153+
.DS_Store
154+
152155
# Windows (legacy)
153156
/tmp32
154157
/tmp32.dbg

CHANGES.md

+128-6
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ appropriate release branch.
1212
OpenSSL Releases
1313
----------------
1414

15+
- [OpenSSL 3.5](#openssl-35)
1516
- [OpenSSL 3.4](#openssl-34)
1617
- [OpenSSL 3.3](#openssl-33)
1718
- [OpenSSL 3.2](#openssl-32)
@@ -27,11 +28,99 @@ OpenSSL Releases
2728
OpenSSL 3.4
2829
-----------
2930

31+
### Changes between 3.4 and 3.5 [xx XXX xxxx]
32+
33+
* none yet
34+
35+
OpenSSL 3.4
36+
-----------
37+
3038
### Changes between 3.3 and 3.4 [xx XXX xxxx]
3139

40+
* Improved base64 BIO correctness and error reporting.
41+
42+
*Viktor Dukhovni*
43+
44+
* Added support for directly fetched composite signature algorithms such as
45+
RSA-SHA2-256 including new API functions in the EVP_PKEY_sign,
46+
EVP_PKEY_verify and EVP_PKEY_verify_recover groups.
47+
48+
*Richard Levitte*
49+
50+
* XOF Digest API improvements
51+
52+
EVP_MD_CTX_get_size() and EVP_MD_CTX_size are macros that were aliased to
53+
EVP_MD_get_size which returns a constant value. XOF Digests such as SHAKE
54+
have an output size that is not fixed, so calling EVP_MD_get_size() is not
55+
sufficent. The existing macros now point to the new function
56+
EVP_MD_CTX_get_size_ex() which will retrieve the "size" for a XOF digest,
57+
otherwise it falls back to calling EVP_MD_get_size(). Note that the SHAKE
58+
implementation did not have a context getter previously, so the "size" will
59+
only be able to be retrieved with new providers.
60+
61+
Also added a EVP_xof() helper.
62+
63+
*Shane Lontis*
64+
65+
* Added FIPS indicators to the FIPS provider.
66+
67+
FIPS 140-3 requires indicators to be used if the FIPS provider allows
68+
non-approved algorithms. An algorithm is approved if it passes all
69+
required checks such as minimum key size. By default an error will
70+
occur if any check fails. For backwards compatibility individual
71+
algorithms may override the checks by using either an option in the
72+
FIPS configuration OR in code using an algorithm context setter.
73+
Overriding the check means that the algorithm is not FIPS compliant.
74+
OSSL_INDICATOR_set_callback() can be called to register a callback
75+
to log unapproved algorithms. At the end of any algorithm operation
76+
the approved status can be queried using an algorithm context getter.
77+
FIPS provider configuration options are set using 'openssl fipsinstall'.
78+
79+
Note that new FIPS 140-3 restrictions have been enforced such as
80+
RSA Encryption using PKCS1 padding is no longer approved.
81+
Documentation related to the changes can be found on the [fips_module(7)]
82+
manual page.
83+
84+
[fips_module(7)]: https://docs.openssl.org/master/man7/fips_module/#FIPS indicators
85+
86+
*Shane Lontis, Paul Dale, Po-Hsing Wu and Dimitri John Ledkov*
87+
88+
* Added support for hardware acceleration for HMAC on S390x architecture.
89+
90+
*Ingo Franzki*
91+
92+
* Added debuginfo Makefile target for unix platforms to produce
93+
a separate DWARF info file from the corresponding shared libs.
94+
95+
*Neil Horman*
96+
97+
* Added support for encapsulation and decapsulation operations in the
98+
pkeyutl command.
99+
100+
*Dmitry Belyavskiy*
101+
102+
* Added implementation of RFC 9579 (PBMAC1) in PKCS#12.
103+
104+
*Dmitry Belyavskiy*
105+
106+
* Add a new random seed source RNG `JITTER` using a statically linked
107+
jitterentropy library.
108+
109+
*Dimitri John Ledkov*
110+
111+
* Added a feature to retrieve configured TLS signature algorithms,
112+
e.g., via the openssl list command.
113+
114+
*Michael Baentsch*
115+
116+
* Deprecated TS_VERIFY_CTX_set_* functions and added replacement
117+
TS_VERIFY_CTX_set0_* functions with improved semantics.
118+
119+
*Tobias Erbsland*
120+
32121
* Redesigned Windows use of OPENSSLDIR/ENGINESDIR/MODULESDIR such that
33122
what were formerly build time locations can now be defined at run time
34-
with registry keys. See NOTES-WINDOWS.md
123+
with registry keys. See NOTES-WINDOWS.md.
35124

36125
*Neil Horman*
37126

@@ -63,8 +152,8 @@ OpenSSL 3.4
63152

64153
*Tomáš Mráz*
65154

66-
* Use an empty renegotiate extension in TLS client hellos instead of
67-
the empty renegotiation SCSV, for all connections with a minimum TLS
155+
* An empty renegotiate extension will be used in TLS client hellos instead
156+
of the empty renegotiation SCSV, for all connections with a minimum TLS
68157
version > 1.0.
69158

70159
*Tim Perry*
@@ -80,7 +169,14 @@ OpenSSL 3.4
80169

81170
This work was sponsored by Siemens AG.
82171

83-
*Rajeev Ranjan*
172+
*Rajeev Ranjan*
173+
174+
* Added support for issuedOnBehalfOf, auditIdentity, basicAttConstraints,
175+
userNotice, acceptablePrivilegePolicies, acceptableCertPolicies,
176+
subjectDirectoryAttributes, associatedInformation, delegatedNameConstraints,
177+
holderNameConstraints and targetingInformation X.509v3 extensions.
178+
179+
*Jonathan M. Wilbur*
84180

85181
* Added Attribute Certificate (RFC 5755) support. Attribute
86182
Certificates can be created, parsed, modified and printed via the
@@ -109,7 +205,31 @@ OpenSSL 3.4
109205
OpenSSL 3.3
110206
-----------
111207

112-
### Changes between 3.3.0 and 3.3.1 [xx XXX xxxx]
208+
### Changes between 3.3.1 and 3.3.2 [xx XXX xxxx]
209+
210+
* Fixed possible denial of service in X.509 name checks.
211+
212+
Applications performing certificate name checks (e.g., TLS clients checking
213+
server certificates) may attempt to read an invalid memory address when
214+
comparing the expected name with an `otherName` subject alternative name of
215+
an X.509 certificate. This may result in an exception that terminates the
216+
application program.
217+
218+
([CVE-2024-6119])
219+
220+
*Viktor Dukhovni*
221+
222+
* Fixed possible buffer overread in SSL_select_next_proto().
223+
224+
Calling the OpenSSL API function SSL_select_next_proto with an empty
225+
supported client protocols buffer may cause a crash or memory contents
226+
to be sent to the peer.
227+
228+
([CVE-2024-5535])
229+
230+
*Matt Caswell*
231+
232+
### Changes between 3.3.0 and 3.3.1 [4 Jun 2024]
113233

114234
* Fixed potential use after free after SSL_free_buffers() is called.
115235

@@ -1108,7 +1228,7 @@ OpenSSL 3.1
11081228

11091229
* Add FIPS provider configuration option to enforce the
11101230
Extended Master Secret (EMS) check during the TLS1_PRF KDF.
1111-
The option '-ems-check' can optionally be supplied to
1231+
The option '-ems_check' can optionally be supplied to
11121232
'openssl fipsinstall'.
11131233

11141234
*Shane Lontis*
@@ -20744,6 +20864,8 @@ ndif
2074420864

2074520865
<!-- Links -->
2074620866

20867+
[CVE-2024-6119]: https://www.openssl.org/news/vulnerabilities.html#CVE-2024-6119
20868+
[CVE-2024-5535]: https://www.openssl.org/news/vulnerabilities.html#CVE-2024-5535
2074720869
[CVE-2024-4741]: https://www.openssl.org/news/vulnerabilities.html#CVE-2024-4741
2074820870
[CVE-2024-4603]: https://www.openssl.org/news/vulnerabilities.html#CVE-2024-4603
2074920871
[CVE-2024-2511]: https://www.openssl.org/news/vulnerabilities.html#CVE-2024-2511

CONTRIBUTING.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ HOW TO CONTRIBUTE TO OpenSSL
33

44
Please visit our [Getting Started] page for other ideas about how to contribute.
55

6-
[Getting Started]: <https://www.openssl.org/community/getting-started.html>
6+
[Getting Started]: <https://openssl-library.org/community/getting-started>
77

88
Development is done on GitHub in the [openssl/openssl] repository.
99

@@ -77,8 +77,8 @@ guidelines:
7777
Clean builds via GitHub Actions are required. They are started automatically
7878
whenever a PR is created or updated by committers.
7979
80-
[coding style]: https://www.openssl.org/policies/technical/coding-style.html
81-
[documentation policy]: https://openssl.org/policies/technical/documentation-policy.html
80+
[coding style]: https://openssl-library.org/policies/technical/coding-style/
81+
[documentation policy]: https://openssl-library.org/policies/technical/documentation-policy/
8282
8383
5. When at all possible, code contributions should include tests. These can
8484
either be added to an existing test, or completely new. Please see

Configurations/00-base-templates.conf

+5
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,8 @@ my %targets=(
5959
includes =>
6060
sub {
6161
my @incs = ();
62+
push @incs, $withargs{jitter_include}
63+
if !$disabled{jitter} && $withargs{jitter_include};
6264
push @incs, $withargs{brotli_include}
6365
if !$disabled{brotli} && $withargs{brotli_include};
6466
push @incs, $withargs{zlib_include}
@@ -76,6 +78,7 @@ my %targets=(
7678
AR => "ar",
7779
ARFLAGS => "qc",
7880
CC => "cc",
81+
OBJCOPY => "objcopy",
7982
bin_cflags =>
8083
sub {
8184
my @flags = ();
@@ -95,6 +98,7 @@ my %targets=(
9598
lflags =>
9699
sub {
97100
my @libs = ();
101+
push(@libs, "-L".$withargs{jitter_lib}) if $withargs{jitter_lib};
98102
push(@libs, "-L".$withargs{zlib_lib}) if $withargs{zlib_lib};
99103
push(@libs, "-L".$withargs{brotli_lib}) if $withargs{brotli_lib};
100104
push(@libs, "-L".$withargs{zstd_lib}) if $withargs{zstd_lib};
@@ -103,6 +107,7 @@ my %targets=(
103107
ex_libs =>
104108
sub {
105109
my @libs = ();
110+
push(@libs, "-l:libjitterentropy.a") if !defined($disabled{jitter});
106111
push(@libs, "-lz") if !defined($disabled{zlib}) && defined($disabled{"zlib-dynamic"});
107112
if (!defined($disabled{brotli}) && defined($disabled{"brotli-dynamic"})) {
108113
push(@libs, "-lbrotlienc");

0 commit comments

Comments
 (0)