Skip to content

Commit

Permalink
QUIC: Implement SSL_rstate_string(_long)
Browse files Browse the repository at this point in the history
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Paul Dale <pauli@openssl.org>
(Merged from #20061)
  • Loading branch information
hlandau authored and paulidale committed Jul 4, 2023
1 parent 7163617 commit 9ea0e72
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 0 deletions.
2 changes: 2 additions & 0 deletions doc/man3/SSL_rstate_string.pod
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,8 @@ The read state is unknown. This should never happen.

=back

When used with QUIC SSL objects, these functions always return "unknown".

=head1 SEE ALSO

L<ssl(7)>
Expand Down
16 changes: 16 additions & 0 deletions ssl/record/rec_layer_s3.c
Original file line number Diff line number Diff line change
Expand Up @@ -170,8 +170,16 @@ void SSL_set_default_read_buffer_len(SSL *s, size_t len)
const char *SSL_rstate_string_long(const SSL *s)
{
const SSL_CONNECTION *sc = SSL_CONNECTION_FROM_CONST_SSL(s);
#ifndef OPENSSL_NO_QUIC
const QUIC_CONNECTION *qc = QUIC_CONNECTION_FROM_CONST_SSL(s);
#endif
const char *lng;

#ifndef OPENSSL_NO_QUIC
if (qc != NULL)
return "unknown";
#endif

if (sc == NULL)
return NULL;

Expand All @@ -186,8 +194,16 @@ const char *SSL_rstate_string_long(const SSL *s)
const char *SSL_rstate_string(const SSL *s)
{
const SSL_CONNECTION *sc = SSL_CONNECTION_FROM_CONST_SSL(s);
#ifndef OPENSSL_NO_QUIC
const QUIC_CONNECTION *qc = QUIC_CONNECTION_FROM_CONST_SSL(s);
#endif
const char *shrt;

#ifndef OPENSSL_NO_QUIC
if (qc != NULL)
return "unknown";
#endif

if (sc == NULL)
return NULL;

Expand Down
14 changes: 14 additions & 0 deletions ssl/ssl_lib.c
Original file line number Diff line number Diff line change
Expand Up @@ -6974,6 +6974,12 @@ void SSL_CTX_set_post_handshake_auth(SSL_CTX *ctx, int val)
void SSL_set_post_handshake_auth(SSL *ssl, int val)
{
SSL_CONNECTION *sc = SSL_CONNECTION_FROM_SSL(ssl);
#ifndef OPENSSL_NO_QUIC
QUIC_CONNECTION *qc = QUIC_CONNECTION_FROM_SSL(ssl);

if (qc != NULL)
return;
#endif

if (sc == NULL)
return;
Expand All @@ -6984,6 +6990,14 @@ void SSL_set_post_handshake_auth(SSL *ssl, int val)
int SSL_verify_client_post_handshake(SSL *ssl)
{
SSL_CONNECTION *sc = SSL_CONNECTION_FROM_SSL(ssl);
#ifndef OPENSSL_NO_QUIC
QUIC_CONNECTION *qc = QUIC_CONNECTION_FROM_SSL(ssl);

if (qc != NULL) {
ERR_raise(ERR_LIB_SSL, SSL_R_WRONG_SSL_VERSION);
return 0;
}
#endif

if (sc == NULL)
return 0;
Expand Down

0 comments on commit 9ea0e72

Please sign in to comment.