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

Commit 2e85951

Browse files
committed
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 edbc7ff commit 2e85951

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
@@ -1807,6 +1807,12 @@ int SSL_read_early_data(SSL *s, void *buf, size_t num, size_t *readbytes)
18071807
ret = SSL_accept(s);
18081808
if (ret <= 0) {
18091809
/* NBIO or error */
1810+
if ((s->mode & SSL_MODE_QUIC_HACK)
1811+
&& s->ext.early_data == SSL_EARLY_DATA_ACCEPTED) {
1812+
*readbytes = 0;
1813+
return SSL_READ_EARLY_DATA_FINISH;
1814+
}
1815+
18101816
s->early_data_state = SSL_EARLY_DATA_ACCEPT_RETRY;
18111817
return SSL_READ_EARLY_DATA_ERROR;
18121818
}

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;
@@ -941,6 +942,15 @@ WORK_STATE ossl_statem_server_post_work(SSL *s, WORK_STATE wst)
941942
SSL3_CC_APPLICATION | SSL3_CHANGE_CIPHER_SERVER_WRITE))
942943
/* SSLfatal() already called */
943944
return WORK_ERROR;
945+
946+
if ((s->mode & SSL_MODE_QUIC_HACK)
947+
&& s->ext.early_data == SSL_EARLY_DATA_ACCEPTED) {
948+
s->early_data_state = SSL_EARLY_DATA_FINISHED_READING;
949+
if (!s->method->ssl3_enc->change_cipher_state(
950+
s, SSL3_CC_HANDSHAKE | SSL3_CHANGE_CIPHER_SERVER_READ))
951+
/* SSLfatal() already called */
952+
return WORK_ERROR;
953+
}
944954
}
945955
break;
946956

0 commit comments

Comments
 (0)