summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2023-08-25Add a link to the multi-stream QUIC client tutorial from the introductionMatt Caswell
We've added a new page to the guide so we should add a link to it. Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Hugo Landau <hlandau@openssl.org> (Merged from https://github.com/openssl/openssl/pull/21765)
2023-08-25Update demos/tutorial to distinguish between stream and connection errorsMatt Caswell
We can use SSL_get_stream_read_state() to distinguish these cases. Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Hugo Landau <hlandau@openssl.org> (Merged from https://github.com/openssl/openssl/pull/21765)
2023-08-25Clarify SSL_accept_stream/SSL_new_stream behaviour with a default streamMatt Caswell
Explain what happens if you call those functions and there is no default stream present yet. Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Hugo Landau <hlandau@openssl.org> (Merged from https://github.com/openssl/openssl/pull/21765)
2023-08-25Add some additional comments to the demosMatt Caswell
Add some additional explanation for some code lines in the demos that did not have a comment. Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Hugo Landau <hlandau@openssl.org> (Merged from https://github.com/openssl/openssl/pull/21765)
2023-08-25Provide introduction/tutorial page for QUIC multi-streamMatt Caswell
Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Hugo Landau <hlandau@openssl.org> (Merged from https://github.com/openssl/openssl/pull/21765)
2023-08-25Update quicserver to be able to handle multiple streamsMatt Caswell
We extend quicserver so that it can handle multiple requests with an HTTP request on each one. If a uni-directional stream comes in we create a uni-directional stream for the response Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Hugo Landau <hlandau@openssl.org> (Merged from https://github.com/openssl/openssl/pull/21765)
2023-08-25Add a QUIC multi-stream client demoMatt Caswell
Demonstrate how to use the QUIC multi-stream APIs with a simple blocking client. Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Hugo Landau <hlandau@openssl.org> (Merged from https://github.com/openssl/openssl/pull/21765)
2023-08-25Add an initial guide page for writing a multi-stream QUIC clientMatt Caswell
Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Hugo Landau <hlandau@openssl.org> (Merged from https://github.com/openssl/openssl/pull/21765)
2023-08-25Update some links within the guide to not use crypto(7)Matt Caswell
Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Hugo Landau <hlandau@openssl.org> (Merged from https://github.com/openssl/openssl/pull/21765)
2023-08-25Update the desciption of shutdown in the QUIC client blocking tutorialMatt Caswell
Give a better description of the shutdown process in QUIC. Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Hugo Landau <hlandau@openssl.org> (Merged from https://github.com/openssl/openssl/pull/21765)
2023-08-25Test that we send multiple datagrams in one go if appropriateMatt Caswell
If we have enough data for more than one datagram then we should send more than one datagram Reviewed-by: Hugo Landau <hlandau@openssl.org> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/21798)
2023-08-25Don't keep creating CONNECTION_CLOSE framesMatt Caswell
If we want to send a CONNECTION_CLOSE frame then one is enough unless we are scheduled to send another one. Now that we can create more than one datagram in one go this is now required. Reviewed-by: Hugo Landau <hlandau@openssl.org> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/21798)
2023-08-25Keep sending datagrams while we have data to sendMatt Caswell
If we've got more data to send than will fit in a single datagram we should keep generating those datagrams until we've sent it all. Reviewed-by: Hugo Landau <hlandau@openssl.org> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/21798)
2023-08-24Allow RSA-PSS also in EVP_PKEY_assign() and EVP_PKEY_can_sign()Ingo Franzki
Treat keys with EVP_PKEY_RSA_PSS the same as EVP_PKEY_RSA in EVP_PKEY_can_sign() and detect_foreign_key() which is called by EVP_PKEY_assign(). Signed-off-by: Ingo Franzki <ifranzki@linux.ibm.com> Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/21819)
2023-08-24ctrl_params_translate: Allow get_rsa_payload_x() also for RSA-PSSIngo Franzki
The get_rsa_payload_x() functions should also allow to get the payload for RSA-PSS keys. Signed-off-by: Ingo Franzki <ifranzki@linux.ibm.com> Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/21818)
2023-08-24ctrl_params_translate: Allow RSA controls also for RSA-PSSIngo Franzki
Controls 'rsa_keygen_pubexp' and 'rsa_keygen_primes' should also be allowed for RSA-PSS keys. Signed-off-by: Ingo Franzki <ifranzki@linux.ibm.com> Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/21818)
2023-08-24doc: Avoid usage of non-existing constantJakub Jelen
CLA: trivial Fixes: #21809 Signed-off-by: Jakub Jelen <jjelen@redhat.com> Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/21817)
2023-08-24Optimize SM2 on aarch64Xu Yizhou
Signed-off-by: Xu Yizhou <xuyizhou1@huawei.com> Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/20754)
2023-08-24QUIC: Rename SSL_set_initial_peer_addr to SSL_set1_initial_peer_addrHugo Landau
Fixes #21701 Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/21814)
2023-08-24Add a -trace option to quicserver to enable tracing of the communicationMatt Caswell
Trace output of the communication with the client is dumped to stderr if the -trace options is supplied Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Hugo Landau <hlandau@openssl.org> (Merged from https://github.com/openssl/openssl/pull/21800)
2023-08-24Add the ability to set SSL_trace as the msg_callback in tserverMatt Caswell
This is useful for debugging purposes. The standard SSL_trace msgcallback can be used with tserver. Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Hugo Landau <hlandau@openssl.org> (Merged from https://github.com/openssl/openssl/pull/21800)
2023-08-24Fixed default value of the "ess_cert_id_alg" option in man openssl-ts(1)olszomal
CLA: trivial Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/21805)
2023-08-24Change the TLS handshake keys early if we're not doing early dataMatt Caswell
We change the client TLS handshake keys as late as possible so that we don't disturb the keys if we are writing early data. However for QUIC we want to do this as early as possible (after ServerHello). Since we will never do TLS early data with QUIC we just do it as early as possible if early data is not being used. Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Hugo Landau <hlandau@openssl.org> (Merged from https://github.com/openssl/openssl/pull/21810)
2023-08-23doc: add the migration guide to the new guide seriesMatthias St. Pierre
Reviewed-by: Hugo Landau <hlandau@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/21807)
2023-08-23Update CHANGES.md and NEWS.md for the upcoming 3.2 releaseTomas Mraz
Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/21802)
2023-08-23quic_impl.c: Add QUIC_RAISE_NON_IO_ERROR() and use itTomas Mraz
Reviewed-by: Hugo Landau <hlandau@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/21700)
2023-08-23ossl_quic_tx_packetiser_generate(): Always report if packets were sentTomas Mraz
Even in case of later failure we need to flush the previous packets. Reviewed-by: Hugo Landau <hlandau@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/21700)
2023-08-23QUIC: Miscellaneous error handling updatesTomas Mraz
Raise errors when appropriate. Reviewed-by: Hugo Landau <hlandau@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/21700)
2023-08-23QUIC: Add ERR_raise() calls for EVP call failuresTomas Mraz
This improves tracking where the failure was triggered. Reviewed-by: Hugo Landau <hlandau@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/21700)
2023-08-23Remove TODO(QUIC) about raising errors from ossl_quic_tls_tick()Tomas Mraz
This was already resolved by https://github.com/openssl/openssl/pull/21547 Reviewed-by: Hugo Landau <hlandau@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/21700)
2023-08-23Fix a leak in ossl_encode_ctx_setup_for_pkeyMatt Caswell
Make sure we free the stack of names we allocated in an error path. Found by the reproducible error patch in #21668 Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com> (Merged from https://github.com/openssl/openssl/pull/21796)
2023-08-22qtest: Use fake time on both client and serverTomas Mraz
And use QTEST_FLAG_FAKE_TIME with test_ssl_trace(). Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Hugo Landau <hlandau@openssl.org> (Merged from https://github.com/openssl/openssl/pull/21713)
2023-08-22qtest: Run both client and server during connectTomas Mraz
Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Hugo Landau <hlandau@openssl.org> (Merged from https://github.com/openssl/openssl/pull/21713)
2023-08-22QUIC: Update ping deadline when we receive a packetTomas Mraz
Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Hugo Landau <hlandau@openssl.org> (Merged from https://github.com/openssl/openssl/pull/21713)
2023-08-22quic_trace.c: Fix typo in tracesTomas Mraz
Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Hugo Landau <hlandau@openssl.org> (Merged from https://github.com/openssl/openssl/pull/21713)
2023-08-22Update the ssltraceref.txtTomas Mraz
Also adds saving the new trace to ssltraceref-new.txt in test-runs which can be handy when the trace changes and needs to be updated. Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Hugo Landau <hlandau@openssl.org> (Merged from https://github.com/openssl/openssl/pull/21713)
2023-08-22QUIC: Do not discard the INITIAL el too earlyTomas Mraz
RFC says that successful decryption of HANDSHAKE el packet triggers the discard on server side only. On client we discard INITIAL el when we successfully send a HANDSHAKE packet. Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Hugo Landau <hlandau@openssl.org> (Merged from https://github.com/openssl/openssl/pull/21713)
2023-08-20Updates documentation of RC4_CHAR and RC4_INT: Should not be used for new ↵Frederik Wedel-Heinen
configuration targets Fixes: #21358 CLA: trivial Reviewed-by: Paul Dale <pauli@openssl.org> Reviewed-by: Hugo Landau <hlandau@openssl.org> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/21391)
2023-08-20Test that a thread blocking in SSL_read_ex() will wake up on FINMatt Caswell
Reviewed-by: Hugo Landau <hlandau@openssl.org> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/21780)
2023-08-20Handle the case where the read buffer is empty but we have received FINMatt Caswell
In some cases where a FIN has been received but with no data quic_read_actual was failing to raise SSL_ERROR_ZERO_RETURN. This meant that we could end up blocking in SSL_read(_ex) for too long. Reviewed-by: Hugo Landau <hlandau@openssl.org> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/21780)
2023-08-20ssl_get_min_max_version(): Remove unused variable singleshub-al
CLA: trivial Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/21768)
2023-08-18ossl_x509_store_ctx_get_by_subject(): Check return value of X509_STORE_lock()Tomas Mraz
Fixes Coverity 1539148 Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Hugo Landau <hlandau@openssl.org> (Merged from https://github.com/openssl/openssl/pull/21755)
2023-08-18cmp_genm.c: Remove superfluous store_ctx != 0 checkTomas Mraz
This really cannot be ever called with NULL store_ctx and the check confuses Coverity. Fixes Coverity 1538865 Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Hugo Landau <hlandau@openssl.org> (Merged from https://github.com/openssl/openssl/pull/21755)
2023-08-18ssl_old_test.c: Check inconsistent values from SSL_get0_alpn_selected()Tomas Mraz
Fixes Coverity 1534838 Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Hugo Landau <hlandau@openssl.org> (Merged from https://github.com/openssl/openssl/pull/21755)
2023-08-18apps/spkac.c: Check result of ASN1_STRING_set()Tomas Mraz
Fixes Coverity 1027256 Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Hugo Landau <hlandau@openssl.org> (Merged from https://github.com/openssl/openssl/pull/21755)
2023-08-18quic_new_record_layer(): Change TODO(QUIC) to QUIC FUTURETomas Mraz
Fixes openssl/project#134 Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Hugo Landau <hlandau@openssl.org> (Merged from https://github.com/openssl/openssl/pull/21756)
2023-08-18Add two missing entries to the OCSP CRLReason tableRob Stradling
CLA: trivial Reviewed-by: Hugo Landau <hlandau@openssl.org> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/21743)
2023-08-17Fix a memory leak in tls_new_record_layerMatt Caswell
If setting the crypto state has failed then memory might have been partially allocated to fields within the partially constructed record layer. We need to call tls_int_free() to properly free it. Found by the reproducible error patch in openssl#21668 Reviewed-by: Todd Short <todd.short@me.com> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/21753)
2023-08-17Add X509_STORE_CTX_set_get_crl and X509_STORE_CTX_set_current_reasonsvl-loz
This change is for feature request #21679. Adds a couple of setters to aid with custom CRL validation. Reviewed-by: Todd Short <todd.short@me.com> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/21737)
2023-08-17QUIC: Update SSL_shutdown manpageHugo Landau
Fixes https://github.com/openssl/project/issues/138 Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/21618)