Skip to content
This repository was archived by the owner on Aug 11, 2020. It is now read-only.

Commit b26804b

Browse files
jasnelladdaleax
authored andcommitted
deps: Remove EOED when SSL_MODE_QUIC_HACK is enabled
Ported from tatsuhiro-t/openssl@920a331 PR-URL: #6 Reviewed-By: Daniel Bevenius <[email protected]>
1 parent fd87b2f commit b26804b

File tree

3 files changed

+19
-2
lines changed

3 files changed

+19
-2
lines changed

deps/openssl/openssl/ssl/ssl_lib.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1816,6 +1816,12 @@ int SSL_read_early_data(SSL *s, void *buf, size_t num, size_t *readbytes)
18161816
ret = SSL_accept(s);
18171817
if (ret <= 0) {
18181818
/* NBIO or error */
1819+
if ((s->mode & SSL_MODE_QUIC_HACK)
1820+
&& s->ext.early_data == SSL_EARLY_DATA_ACCEPTED) {
1821+
*readbytes = 0;
1822+
return SSL_READ_EARLY_DATA_FINISH;
1823+
}
1824+
18191825
s->early_data_state = SSL_EARLY_DATA_ACCEPT_RETRY;
18201826
return SSL_READ_EARLY_DATA_ERROR;
18211827
}

deps/openssl/openssl/ssl/statem/statem_clnt.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -450,7 +450,8 @@ static WRITE_TRAN ossl_statem_client13_write_transition(SSL *s)
450450
return WRITE_TRAN_CONTINUE;
451451

452452
case TLS_ST_PENDING_EARLY_DATA_END:
453-
if (s->ext.early_data == SSL_EARLY_DATA_ACCEPTED) {
453+
if (!(s->mode & SSL_MODE_QUIC_HACK)
454+
&& s->ext.early_data == SSL_EARLY_DATA_ACCEPTED) {
454455
st->hand_state = TLS_ST_CW_END_OF_EARLY_DATA;
455456
return WRITE_TRAN_CONTINUE;
456457
}

deps/openssl/openssl/ssl/statem/statem_srvr.c

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,8 @@ static int ossl_statem_server13_read_transition(SSL *s, int mt)
5757
return 1;
5858
}
5959
break;
60-
} else if (s->ext.early_data == SSL_EARLY_DATA_ACCEPTED) {
60+
} else if (!(s->mode & SSL_MODE_QUIC_HACK)
61+
&& s->ext.early_data == SSL_EARLY_DATA_ACCEPTED) {
6162
if (mt == SSL3_MT_END_OF_EARLY_DATA) {
6263
st->hand_state = TLS_ST_SR_END_OF_EARLY_DATA;
6364
return 1;
@@ -939,6 +940,15 @@ WORK_STATE ossl_statem_server_post_work(SSL *s, WORK_STATE wst)
939940
SSL3_CC_APPLICATION | SSL3_CHANGE_CIPHER_SERVER_WRITE))
940941
/* SSLfatal() already called */
941942
return WORK_ERROR;
943+
944+
if ((s->mode & SSL_MODE_QUIC_HACK)
945+
&& s->ext.early_data == SSL_EARLY_DATA_ACCEPTED) {
946+
s->early_data_state = SSL_EARLY_DATA_FINISHED_READING;
947+
if (!s->method->ssl3_enc->change_cipher_state(
948+
s, SSL3_CC_HANDSHAKE | SSL3_CHANGE_CIPHER_SERVER_READ))
949+
/* SSLfatal() already called */
950+
return WORK_ERROR;
951+
}
942952
}
943953
break;
944954

0 commit comments

Comments
 (0)