Skip to content

Commit d3869f1

Browse files
jasnelljuanarbol
authored andcommitted
deps: Remove EOED when SSL_MODE_QUIC_HACK is enabled
Ported from tatsuhiro-t/openssl@920a331 PR-URL: nodejs#6 Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com>
1 parent 3541a29 commit d3869f1

3 files changed

Lines changed: 19 additions & 2 deletions

File tree

deps/openssl/openssl/ssl/ssl_lib.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1833,6 +1833,12 @@ int SSL_read_early_data(SSL *s, void *buf, size_t num, size_t *readbytes)
18331833
ret = SSL_accept(s);
18341834
if (ret <= 0) {
18351835
/* NBIO or error */
1836+
if ((s->mode & SSL_MODE_QUIC_HACK)
1837+
&& s->ext.early_data == SSL_EARLY_DATA_ACCEPTED) {
1838+
*readbytes = 0;
1839+
return SSL_READ_EARLY_DATA_FINISH;
1840+
}
1841+
18361842
s->early_data_state = SSL_EARLY_DATA_ACCEPT_RETRY;
18371843
return SSL_READ_EARLY_DATA_ERROR;
18381844
}

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)