Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Openssl 3.0.15+quic #171

Merged
merged 67 commits into from
Sep 12, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
2af27c0
QUIC: Add support for BoringSSL QUIC APIs
xl32 Jun 7, 2024
7d2f15b
QUIC: New method to get QUIC secret length
tmshort Jun 14, 2019
ac5c184
QUIC: Make temp secret names less confusing
tmshort Aug 15, 2019
ef0b5b4
QUIC: Move QUIC transport params to encrypted extensions
tmshort Aug 15, 2019
22dc5ae
QUIC: Use proper secrets for handshake
tmshort Aug 15, 2019
e72b5a3
QUIC: Handle partial handshake messages
tmshort Aug 15, 2019
78660a2
QUIC: Fix duplicate word in docs
tmshort Aug 26, 2019
fa402ff
QUIC: Fix quic_transport constructors/parsers
tmshort Aug 26, 2019
13c25c1
QUIC: Reset init state in SSL_process_quic_post_handshake()
tmshort Aug 29, 2019
a79c239
QUIC: Don't process an incomplete message
tmshort Aug 29, 2019
d7cc415
QUIC: Quick fix: s2c to c2s for early secret
tmshort Aug 30, 2019
a934412
QUIC: Add client early traffic secret storage
tmshort Aug 30, 2019
c30bad0
QUIC: Add OPENSSL_NO_QUIC wrapper
tmshort Aug 30, 2019
a2c1436
QUIC: Correctly disable middlebox compat
tmshort Aug 30, 2019
b59eded
QUIC: Move QUIC code out of tls13_change_cipher_state()
tmshort Aug 30, 2019
13d3b7d
QUIC: Tweeks to quic_change_cipher_state()
tmshort Aug 30, 2019
47e3daa
QUIC: Add support for more secrets
tmshort Sep 24, 2019
6664ef8
QUIC: Fix resumption secret
tmshort Nov 12, 2019
ffd63d9
QUIC: Handle EndOfEarlyData and MaxEarlyData
tmshort Nov 13, 2019
dbdba85
QUIC: Fall-through for 0RTT
tmshort Jan 7, 2020
f7b2e9a
QUIC: Some cleanup for the main QUIC changes
kaduk Apr 22, 2020
c3ff5bb
QUIC: Prevent KeyUpdate for QUIC
kaduk May 11, 2020
e977ac3
QUIC: Test KeyUpdate rejection
kaduk May 11, 2020
3e992ce
QUIC: Buffer all provided quic data
kaduk Aug 31, 2020
997505a
QUIC: Enforce consistent encryption level for handshake messages
kaduk Sep 1, 2020
5e14e95
QUIC: add v1 quic_transport_parameters
tmshort Dec 12, 2020
fe7c167
QUIC: return success when no post-handshake data
tmshort Jan 5, 2021
68c0536
QUIC: __owur makes no sense for void return values
kaduk Jan 15, 2021
de9f388
QUIC: remove SSL_R_BAD_DATA_LENGTH (unused)
tmshort Feb 19, 2021
0cbcf7f
QUIC: Update shared library version
xl32 Jun 7, 2024
6ca4798
QUIC: Swap around README files
tmshort Mar 3, 2021
63011ea
QUIC: Fix 3.0.0 GitHub CI
tmshort Mar 3, 2021
9de82cf
QUIC: SSLerr() -> ERR_raise(ERR_LIB_SSL)
tmshort Mar 3, 2021
ab26f97
QUIC: Add compile/run-time checking for QUIC
tmshort Mar 5, 2021
468e54b
QUIC: Add early data support (#11)
tatsuhiro-t Mar 11, 2021
40c82b1
QUIC: Make SSL_provide_quic_data accept 0 length data (#13)
tatsuhiro-t Mar 11, 2021
07803ed
QUIC: Process multiple post-handshake messages in a single call (#16)
tatsuhiro-t Mar 12, 2021
5d9edd6
QUIC: Tighten up some language in SSL_CTX_set_quic_method.pod (#18)
kaduk Mar 12, 2021
5b29aaa
QUIC: Fix typo in README.md (#19)
NanXiao Mar 15, 2021
92319a4
QUIC: Fix CI (#20)
tmshort Mar 18, 2021
7d97945
QUIC: Break up header/body processing
tmshort May 6, 2021
bf5bf43
QUIC: Fix make doc-nits
tmshort Jun 24, 2021
de05c52
QUIC: Fix make md-nits
tmshort Jun 24, 2021
263c2e2
QUIC: Check for FIPS checksum changes
tmshort Jul 9, 2021
546959f
QUIC: Don't muck with FIPS checksums
tmshort Jul 9, 2021
6ac2b94
QUIC: README.md fixups
tmshort Jul 29, 2021
3234ba5
QUIC: Update RFC references
tmshort Sep 7, 2021
f691d38
QUIC: revert white-space change
tmshort Sep 7, 2021
eca4f12
QUIC: update copyrights
tmshort Sep 7, 2021
c649270
QUIC: update SSL_provide_quic_data() documentation
kaduk Sep 7, 2021
0bd0404
QUIC: expound on what DoS attacks QUIC avoids
kaduk Sep 7, 2021
5b73481
QUIC: remove SSL_get_current_cipher() reference
kaduk Sep 7, 2021
413b8be
QUIC: use SSL_IS_QUIC() in more places
kaduk Sep 7, 2021
971bbdb
QUIC: Error when non-empty session_id in CH (fixes #29)
tmshort Oct 18, 2021
265d25e
QUIC: Update SSL_clear() to clear quic data
tmshort Oct 19, 2021
4a134d7
QUIC: Better SSL_clear()
tmshort Oct 29, 2021
6d93aff
QUIC: Update README
tmshort Nov 2, 2021
9c84073
QUIC: Update README.md for 3.0.7
tmshort Mar 15, 2022
9fb9376
QUIC: Fix extension test
tmshort Nov 1, 2022
745ca1d
QUIC: Update README.md for 3.0.8
tmshort Feb 7, 2023
189ee35
QUIC: Update README.md for OpenSSL 3.0.9
wbl May 30, 2023
62d3750
QUIC: Update README.md for 3.0.10
tmshort Aug 1, 2023
a3b565e
QUIC: Fix md-nits
tmshort Aug 2, 2023
0936b26
QUIC: Cleanup quic tests
tmshort Aug 2, 2023
0952804
QUIC: Update MD files for 3.0.13
tmshort Oct 6, 2023
e37f050
QUIC: Fix md-nits
xl32 Jun 10, 2024
910d4b7
Update md files for 3.0.15
tmshort Sep 4, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions .github/workflows/fips-checksums.yml
Original file line number Diff line number Diff line change
Expand Up @@ -73,3 +73,29 @@ jobs:
with:
name: fips_checksum
path: artifact/
verify-checksums:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's not clear this test is doing much for us anymore, and isn't redundant with above

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is pointless for us.

runs-on: ubuntu-latest
steps:
- name: install unifdef
run: |
sudo apt-get update
sudo apt-get -yq --no-install-suggests --no-install-recommends --force-yes install unifdef
- uses: actions/checkout@v2
- name: create build dirs
run: |
mkdir ./build
- name: config
run: ../config enable-fips && perl configdata.pm --dump
working-directory: ./build
- name: make build_generated
run: make -s build_generated
working-directory: ./build
- name: make fips-checksums
run: make fips-checksums
working-directory: ./build
- name: make fips-checksums
run: make fips-checksums
working-directory: ./build
- name: make diff-fips-checksums
run: make diff-fips-checksums
working-directory: ./build
6 changes: 6 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,12 @@ breaking changes, and mappings for the large list of deprecated functions.

[Migration guide]: https://github.com/openssl/openssl/tree/master/doc/man7/migration_guide.pod

### Changes between 3.0.15 and 3.0.15+quic [3 Sep 2024]

* Add QUIC API support from BoringSSL

*Todd Short*

### Changes between 3.0.14 and 3.0.15 [3 Sep 2024]

* Fixed possible denial of service in X.509 name checks.
Expand Down
5 changes: 4 additions & 1 deletion Configure
Original file line number Diff line number Diff line change
Expand Up @@ -467,6 +467,7 @@ my @disablables = (
"poly1305",
"posix-io",
"psk",
"quic",
"rc2",
"rc4",
"rc5",
Expand Down Expand Up @@ -577,14 +578,15 @@ my @disable_cascades = (
"sm3", "sm4", "srp",
"srtp", "ssl3-method", "ssl-trace",
"ts", "ui-console", "whirlpool",
"quic",
"fips-securitychecks" ],
sub { $config{processor} eq "386" }
=> [ "sse2" ],
"ssl" => [ "ssl3" ],
"ssl3-method" => [ "ssl3" ],
"zlib" => [ "zlib-dynamic" ],
"des" => [ "mdc2" ],
"ec" => [ "ec2m", "ecdsa", "ecdh", "sm2", "gost" ],
"ec" => [ "ec2m", "ecdsa", "ecdh", "sm2", "gost", "quic" ],
"dgram" => [ "dtls", "sctp" ],
"sock" => [ "dgram" ],
"dtls" => [ @dtls ],
Expand Down Expand Up @@ -635,6 +637,7 @@ my @disable_cascades = (
"legacy" => [ "md2" ],

"cmp" => [ "crmf" ],
"tls1_3" => [ "quic" ],

"fips" => [ "fips-securitychecks", "acvp-tests" ],

Expand Down
4 changes: 4 additions & 0 deletions INSTALL.md
Original file line number Diff line number Diff line change
Expand Up @@ -829,6 +829,10 @@ Don't use POSIX IO capabilities.

Don't build support for Pre-Shared Key based ciphersuites.

### no-quic

Don't build support for QUIC API from BoringSSL.

### no-rdrand

Don't use hardware RDRAND capabilities.
Expand Down
224 changes: 224 additions & 0 deletions README-OpenSSL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,224 @@
Welcome to the OpenSSL Project
==============================

[![openssl logo]][www.openssl.org]

[![github actions ci badge]][github actions ci]
[![appveyor badge]][appveyor jobs]

OpenSSL is a robust, commercial-grade, full-featured Open Source Toolkit
for the Transport Layer Security (TLS) protocol formerly known as the
Secure Sockets Layer (SSL) protocol. The protocol implementation is based
on a full-strength general purpose cryptographic library, which can also
be used stand-alone.

OpenSSL is descended from the SSLeay library developed by Eric A. Young
and Tim J. Hudson.

The official Home Page of the OpenSSL Project is [www.openssl.org].

Table of Contents
=================

- [Overview](#overview)
- [Download](#download)
- [Build and Install](#build-and-install)
- [Documentation](#documentation)
- [License](#license)
- [Support](#support)
- [Contributing](#contributing)
- [Legalities](#legalities)

Overview
========

The OpenSSL toolkit includes:

- **libssl**
an implementation of all TLS protocol versions up to TLSv1.3 ([RFC 8446]).

- **libcrypto**
a full-strength general purpose cryptographic library. It constitutes the
basis of the TLS implementation, but can also be used independently.

- **openssl**
the OpenSSL command line tool, a swiss army knife for cryptographic tasks,
testing and analyzing. It can be used for
- creation of key parameters
- creation of X.509 certificates, CSRs and CRLs
- calculation of message digests
- encryption and decryption
- SSL/TLS client and server tests
- handling of S/MIME signed or encrypted mail
- and more...

Download
========

For Production Use
------------------

Source code tarballs of the official releases can be downloaded from
[www.openssl.org/source](https://www.openssl.org/source).
The OpenSSL project does not distribute the toolkit in binary form.

However, for a large variety of operating systems precompiled versions
of the OpenSSL toolkit are available. In particular on Linux and other
Unix operating systems it is normally recommended to link against the
precompiled shared libraries provided by the distributor or vendor.

For Testing and Development
---------------------------

Although testing and development could in theory also be done using
the source tarballs, having a local copy of the git repository with
the entire project history gives you much more insight into the
code base.

The official OpenSSL Git Repository is located at [git.openssl.org].
There is a GitHub mirror of the repository at [github.com/openssl/openssl],
which is updated automatically from the former on every commit.

A local copy of the Git Repository can be obtained by cloning it from
the original OpenSSL repository using

git clone git://git.openssl.org/openssl.git

or from the GitHub mirror using

git clone https://github.com/openssl/openssl.git

If you intend to contribute to OpenSSL, either to fix bugs or contribute
new features, you need to fork the OpenSSL repository openssl/openssl on
GitHub and clone your public fork instead.

git clone https://github.com/yourname/openssl.git

This is necessary, because all development of OpenSSL nowadays is done via
GitHub pull requests. For more details, see [Contributing](#contributing).

Build and Install
=================

After obtaining the Source, have a look at the [INSTALL](INSTALL.md) file for
detailed instructions about building and installing OpenSSL. For some
platforms, the installation instructions are amended by a platform specific
document.

* [Notes for UNIX-like platforms](NOTES-UNIX.md)
* [Notes for Android platforms](NOTES-ANDROID.md)
* [Notes for Windows platforms](NOTES-WINDOWS.md)
* [Notes for the DOS platform with DJGPP](NOTES-DJGPP.md)
* [Notes for the OpenVMS platform](NOTES-VMS.md)
* [Notes on Perl](NOTES-PERL.md)
* [Notes on Valgrind](NOTES-VALGRIND.md)

Specific notes on upgrading to OpenSSL 3.0 from previous versions can be found
in the [migration_guide(7ossl)] manual page.

Documentation
=============

Manual Pages
------------

The manual pages for the master branch and all current stable releases are
available online.

- [OpenSSL master](https://www.openssl.org/docs/manmaster)
- [OpenSSL 3.0](https://www.openssl.org/docs/man3.0)
- [OpenSSL 1.1.1](https://www.openssl.org/docs/man1.1.1)

Wiki
----

There is a Wiki at [wiki.openssl.org] which is currently not very active.
It contains a lot of useful information, not all of which is up to date.

License
=======

OpenSSL is licensed under the Apache License 2.0, which means that
you are free to get and use it for commercial and non-commercial
purposes as long as you fulfill its conditions.

See the [LICENSE.txt](LICENSE.txt) file for more details.

Support
=======

There are various ways to get in touch. The correct channel depends on
your requirement. see the [SUPPORT](SUPPORT.md) file for more details.

Contributing
============

If you are interested and willing to contribute to the OpenSSL project,
please take a look at the [CONTRIBUTING](CONTRIBUTING.md) file.

Legalities
==========

A number of nations restrict the use or export of cryptography. If you are
potentially subject to such restrictions you should seek legal advice before
attempting to develop or distribute cryptographic code.

Copyright
=========

Copyright (c) 1998-2024 The OpenSSL Project

Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson

All rights reserved.

<!-- Links -->

[www.openssl.org]:
<https://www.openssl.org>
"OpenSSL Homepage"

[git.openssl.org]:
<https://git.openssl.org>
"OpenSSL Git Repository"

[git.openssl.org]:
<https://git.openssl.org>
"OpenSSL Git Repository"

[github.com/openssl/openssl]:
<https://github.com/openssl/openssl>
"OpenSSL GitHub Mirror"

[wiki.openssl.org]:
<https://wiki.openssl.org>
"OpenSSL Wiki"

[migration_guide(7ossl)]:
<https://www.openssl.org/docs/man3.0/man7/migration_guide.html>
"OpenSSL Migration Guide"

[RFC 8446]:
<https://tools.ietf.org/html/rfc8446>

<!-- Logos and Badges -->

[openssl logo]:
doc/images/openssl.svg
"OpenSSL Logo"

[github actions ci badge]:
<https://github.com/openssl/openssl/workflows/GitHub%20CI/badge.svg>
"GitHub Actions CI Status"

[github actions ci]:
<https://github.com/openssl/openssl/actions?query=workflow%3A%22GitHub+CI%22>
"GitHub Actions CI"

[appveyor badge]:
<https://ci.appveyor.com/api/projects/status/8e10o7xfrg73v98f/branch/master?svg=true>
"AppVeyor Build Status"

[appveyor jobs]:
<https://ci.appveyor.com/project/openssl/openssl/branch/master>
"AppVeyor Jobs"
Loading
Loading