Matt Caswell
3a0012cb52
Handle non IO based retry errors in QUIC
...
SSL_get_error() may respond with some retry errors that are not IO related.
In particular SSL_ERROR_WANT_RETRY_VERIFY and SSL_ERROR_WANT_X509_LOOKUP.
These can occur during a TLS handshake. If they occur when a QUIC Connection
is performing a TLS handshake then we need to propagate these up to the QCSO.
We also handle SSL_ERROR_WANT_CLIENT_HELLO_CB. This one will only ever
occur on the server side which we don't currently support. However adding
the handling for it now is identical to all the other handling so including
it is no cost, and will be needed when we do add server support.
We are not concerned with SSL_ERROR_WANT_ASYNC or SSL_ERROR_WANT_ASYNC_JOB
since we do not support async operation with QUIC.
Fixes openssl/project#199
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Hugo Landau <hlandau@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21922 )
2023-09-02 15:23:47 +01:00
Bernd Edlinger
7b8e27bc2e
Avoid clobbering non-volatile XMM registers
...
This affects some Poly1305 assembler functions
which are only used for certain CPU types.
Remove those functions for Windows targets,
as a simple interim solution.
Fixes #21522
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Paul Dale <pauli@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21808 )
2023-09-02 10:23:57 +02:00
Hugo Landau
9ff816106c
QUIC MULTISTREAM TEST: Test SSL_want for consistency with SSL_get_error
...
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21915 )
2023-09-01 14:44:47 +01:00
Hugo Landau
5debf07010
QUIC APL: Implement SSL_want
...
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21915 )
2023-09-01 14:44:47 +01:00
Hugo Landau
72ca0b88fc
QUIC APL: Revise I/O error setting so that the last error is set on success
...
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21915 )
2023-09-01 14:44:47 +01:00
Hugo Landau
56df4cf24f
QUIC APL: Adjust expect_quic_conn_only
...
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21915 )
2023-09-01 14:44:46 +01:00
Hugo Landau
8c792b0ccd
QUIC RXDP: Reuse allocations between ACK frame processing
...
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21917 )
2023-09-01 14:06:18 +01:00
Hugo Landau
a31601cc3f
QUIC WIRE: When peeking at number of ACK ranges, ensure enough data is available
...
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21917 )
2023-09-01 14:06:18 +01:00
Hugo Landau
d5c3f4b2db
Comment on internal flag
...
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21905 )
2023-09-01 14:02:54 +01:00
Hugo Landau
016a80dcf4
Minor fixes
...
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21905 )
2023-09-01 14:02:54 +01:00
Hugo Landau
7b1ca59995
Fix after rebase
...
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21905 )
2023-09-01 14:02:54 +01:00
Hugo Landau
e24f784b0c
QUIC: Note differences in SSL_want
...
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21905 )
2023-09-01 14:02:54 +01:00
Hugo Landau
ca5b030306
QUIC: Update API overview document
...
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21905 )
2023-09-01 14:02:54 +01:00
Hugo Landau
728741f588
QUIC: Note that SSL_set_shutdown is not supported
...
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21905 )
2023-09-01 14:02:54 +01:00
Hugo Landau
b139f7a26d
QUIC APL: Report that we do not support SSL_clear correctly
...
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21905 )
2023-09-01 14:02:54 +01:00
Hugo Landau
0c125b611d
QUIC: Update API table
...
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21905 )
2023-09-01 14:02:54 +01:00
Hugo Landau
cf26915063
BIO: Emphasise API contract for BIO_sendmmsg/BIO_recvmmsg
...
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21905 )
2023-09-01 14:02:50 +01:00
Hugo Landau
2619d10ace
BIO: Allow third parties to use integers instead of pointers for poll descriptors
...
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21905 )
2023-09-01 14:02:50 +01:00
Hugo Landau
d492e34351
QUIC: Make TLS1_FLAGS_QUIC private
...
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21905 )
2023-09-01 14:02:50 +01:00
Hugo Landau
7d9e447ab8
QUIC API: Revise SSL_get_conn_close_info to use a flags field
...
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21905 )
2023-09-01 14:02:50 +01:00
Hugo Landau
cc50b44e55
Document OSSL_get_thread_support_flags()
...
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21905 )
2023-09-01 14:02:50 +01:00
Hugo Landau
d2e9e12b23
QUIC APL: Allow stream origin to be queried
...
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21905 )
2023-09-01 14:02:50 +01:00
Hugo Landau
8d7f034622
Minor fixes
...
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21715 )
2023-09-01 10:45:36 +01:00
Hugo Landau
abeb41b42f
Minor updates
...
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21715 )
2023-09-01 10:45:36 +01:00
Hugo Landau
4426c47d66
Add manpages
...
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21715 )
2023-09-01 10:45:36 +01:00
Hugo Landau
3760747ff4
Minor fixes
...
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21715 )
2023-09-01 10:45:36 +01:00
Hugo Landau
277880e754
QUIC DDD: Final report
...
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21715 )
2023-09-01 10:45:35 +01:00
Hugo Landau
c276217e4b
QUIC DDD: ddd-02-conn-nonblocking-threads: Unplanned changes
...
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21715 )
2023-09-01 10:45:35 +01:00
Hugo Landau
1ed2d7929a
QUIC DDD: ddd-02-conn-nonblocking-threads: Planned changes
...
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21715 )
2023-09-01 10:45:35 +01:00
Hugo Landau
74d588ca15
QUIC DDD: ddd-06-mem-uv: Unplanned changes
...
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21715 )
2023-09-01 10:45:35 +01:00
Hugo Landau
5e73999803
QUIC DDD: ddd-06-mem-uv: Planned changes
...
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21715 )
2023-09-01 10:45:35 +01:00
Hugo Landau
47eceab67a
QUIC DDD: ddd-05-mem-nonblocking: Unplanned changes
...
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21715 )
2023-09-01 10:45:35 +01:00
Hugo Landau
70dc50c265
QUIC DDD: ddd-05-mem-nonblocking: Planned changes
...
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21715 )
2023-09-01 10:45:35 +01:00
Hugo Landau
92db6d6280
QUIC DDD: ddd-04-fd-nonblocking: Unplanned changes
...
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21715 )
2023-09-01 10:45:35 +01:00
Hugo Landau
b3e71dbf68
QUIC DDD: ddd-04-fd-nonblocking: Planned changes
...
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21715 )
2023-09-01 10:45:35 +01:00
Hugo Landau
24e583619c
QUIC DDD: ddd-03-fd-blocking: Unplanned changes
...
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21715 )
2023-09-01 10:45:35 +01:00
Hugo Landau
43f4b8a80e
QUIC DDD: ddd-03-fd-blocking: Planned changes
...
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21715 )
2023-09-01 10:45:35 +01:00
Hugo Landau
f379207659
QUIC DDD: ddd-02-conn-nonblocking: Unplanned changes
...
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21715 )
2023-09-01 10:45:35 +01:00
Hugo Landau
e6ad003d73
QUIC DDD: ddd-02-conn-nonblocking: Planned changes
...
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21715 )
2023-09-01 10:45:35 +01:00
Hugo Landau
b96e5cc60b
QUIC DDD: ddd-01-conn-blocking: Unplanned changes
...
- QUIC_client_method() renamed due to namespacing
- QUIC mandates use of ALPN
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21715 )
2023-09-01 10:45:35 +01:00
Hugo Landau
37f12107ee
QUIC DDD: ddd-01-conn-blocking: Planned changes
...
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21715 )
2023-09-01 10:45:35 +01:00
Hugo Landau
be4c3446a4
QUIC DDD: Update makefile
...
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21715 )
2023-09-01 10:45:34 +01:00
Hugo Landau
e1d0c930c1
QUIC DDD: Add unchanged copy of ddd-02-conn-nonblocking to serve as base for thread-assisted variant
...
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21715 )
2023-09-01 10:45:34 +01:00
Hugo Landau
30302c66bd
QUIC DDD: Allow target host:port to be set from command line
...
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21715 )
2023-09-01 10:45:34 +01:00
Hugo Landau
b1cb0675e5
QUIC DDD: Fix bug in ddd-06-mem-uv
...
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21715 )
2023-09-01 10:45:34 +01:00
Hugo Landau
62665fc243
QUIC APL: Introduce addressed v. non-addressed mode handling
...
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21715 )
2023-09-01 10:45:34 +01:00
Hugo Landau
c20b78d599
BIO_s_dgram_pair: Correct implementation of BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE
...
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21715 )
2023-09-01 10:45:34 +01:00
Hugo Landau
1bd35edc66
BIO_s_datagram: Wire capability negotiation for BIO_s_datagram
...
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21715 )
2023-09-01 10:45:34 +01:00
Hugo Landau
000ef7818b
BIO: Add BIO_dgram_detect_peer_addr API
...
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21715 )
2023-09-01 10:45:34 +01:00
Hugo Landau
f3295bd80c
BIO_s_datagram: Support configuring non-blocking mode
...
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21715 )
2023-09-01 10:45:34 +01:00