Lines Matching refs:s
29 void RECORD_LAYER_init(RECORD_LAYER *rl, SSL *s) in RECORD_LAYER_init() argument
31 rl->s = s; in RECORD_LAYER_init()
32 RECORD_LAYER_set_first_record(&s->rlayer); in RECORD_LAYER_init()
57 ssl3_release_write_buffer(rl->s); in RECORD_LAYER_clear()
71 ssl3_release_read_buffer(rl->s); in RECORD_LAYER_release()
73 ssl3_release_write_buffer(rl->s); in RECORD_LAYER_release()
111 size_t ssl3_pending(const SSL *s) in ssl3_pending() argument
115 if (s->rlayer.rstate == SSL_ST_READ_BODY) in ssl3_pending()
118 for (i = 0; i < RECORD_LAYER_get_numrpipes(&s->rlayer); i++) { in ssl3_pending()
119 if (SSL3_RECORD_get_type(&s->rlayer.rrec[i]) in ssl3_pending()
122 num += SSL3_RECORD_get_length(&s->rlayer.rrec[i]); in ssl3_pending()
133 void SSL_set_default_read_buffer_len(SSL *s, size_t len) in SSL_set_default_read_buffer_len() argument
135 SSL3_BUFFER_set_default_len(RECORD_LAYER_get_rbuf(&s->rlayer), len); in SSL_set_default_read_buffer_len()
138 const char *SSL_rstate_string_long(const SSL *s) in SSL_rstate_string_long() argument
140 switch (s->rlayer.rstate) { in SSL_rstate_string_long()
152 const char *SSL_rstate_string(const SSL *s) in SSL_rstate_string() argument
154 switch (s->rlayer.rstate) { in SSL_rstate_string()
169 int ssl3_read_n(SSL *s, size_t n, size_t max, int extend, int clearold, in ssl3_read_n() argument
188 rb = &s->rlayer.rbuf; in ssl3_read_n()
190 if (!ssl3_setup_read_buffer(s)) { in ssl3_read_n()
224 s->rlayer.packet = rb->buf + rb->offset; in ssl3_read_n()
225 s->rlayer.packet_length = 0; in ssl3_read_n()
229 len = s->rlayer.packet_length; in ssl3_read_n()
235 if (s->rlayer.packet != pkt && clearold == 1) { in ssl3_read_n()
236 memmove(pkt, s->rlayer.packet, len + left); in ssl3_read_n()
237 s->rlayer.packet = pkt; in ssl3_read_n()
246 if (SSL_IS_DTLS(s)) { in ssl3_read_n()
255 s->rlayer.packet_length += n; in ssl3_read_n()
266 SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR); in ssl3_read_n()
274 if (!BIO_get_ktls_recv(s->rbio) && !s->rlayer.read_ahead in ssl3_read_n()
275 && !SSL_IS_DTLS(s)) { in ssl3_read_n()
296 if (s->rbio != NULL) { in ssl3_read_n()
297 s->rwstate = SSL_READING; in ssl3_read_n()
298 ret = BIO_read(s->rbio, pkt + len + left, max - left); in ssl3_read_n()
302 && !BIO_should_retry(s->rbio) in ssl3_read_n()
303 && BIO_eof(s->rbio)) { in ssl3_read_n()
304 if (s->options & SSL_OP_IGNORE_UNEXPECTED_EOF) { in ssl3_read_n()
305 SSL_set_shutdown(s, SSL_RECEIVED_SHUTDOWN); in ssl3_read_n()
306 s->s3.warn_alert = SSL_AD_CLOSE_NOTIFY; in ssl3_read_n()
308 SSLfatal(s, SSL_AD_DECODE_ERROR, in ssl3_read_n()
313 SSLfatal(s, SSL_AD_INTERNAL_ERROR, SSL_R_READ_BIO_NOT_SET); in ssl3_read_n()
319 if (s->mode & SSL_MODE_RELEASE_BUFFERS && !SSL_IS_DTLS(s)) in ssl3_read_n()
321 ssl3_release_read_buffer(s); in ssl3_read_n()
330 if (SSL_IS_DTLS(s)) { in ssl3_read_n()
339 s->rlayer.packet_length += n; in ssl3_read_n()
340 s->rwstate = SSL_NOTHING; in ssl3_read_n()
349 int ssl3_write_bytes(SSL *s, int type, const void *buf_, size_t len, in ssl3_write_bytes() argument
358 SSL3_BUFFER *wb = &s->rlayer.wbuf[0]; in ssl3_write_bytes()
362 s->rwstate = SSL_NOTHING; in ssl3_write_bytes()
363 tot = s->rlayer.wnum; in ssl3_write_bytes()
373 if ((len < s->rlayer.wnum) in ssl3_write_bytes()
374 || ((wb->left != 0) && (len < (s->rlayer.wnum + s->rlayer.wpend_tot)))) { in ssl3_write_bytes()
375 SSLfatal(s, SSL_AD_INTERNAL_ERROR, SSL_R_BAD_LENGTH); in ssl3_write_bytes()
379 if (s->early_data_state == SSL_EARLY_DATA_WRITING in ssl3_write_bytes()
380 && !early_data_count_ok(s, len, 0, 1)) { in ssl3_write_bytes()
385 s->rlayer.wnum = 0; in ssl3_write_bytes()
392 if (wb->left == 0 && (s->key_update != SSL_KEY_UPDATE_NONE in ssl3_write_bytes()
393 || s->ext.extra_tickets_expected > 0)) in ssl3_write_bytes()
394 ossl_statem_set_in_init(s, 1); in ssl3_write_bytes()
401 if (SSL_in_init(s) && !ossl_statem_get_in_handshake(s) in ssl3_write_bytes()
402 && s->early_data_state != SSL_EARLY_DATA_UNAUTH_WRITING) { in ssl3_write_bytes()
403 i = s->handshake_func(s); in ssl3_write_bytes()
418 i = ssl3_write_pending(s, type, &buf[tot], s->rlayer.wpend_tot, in ssl3_write_bytes()
422 s->rlayer.wnum = tot; in ssl3_write_bytes()
435 && len >= 4 * (max_send_fragment = ssl_get_max_send_fragment(s)) in ssl3_write_bytes()
436 && s->compress == NULL in ssl3_write_bytes()
437 && s->msg_callback == NULL in ssl3_write_bytes()
438 && !SSL_WRITE_ETM(s) in ssl3_write_bytes()
439 && SSL_USE_EXPLICIT_IV(s) in ssl3_write_bytes()
440 && BIO_get_ktls_send(s->wbio) == 0 in ssl3_write_bytes()
441 && (EVP_CIPHER_get_flags(EVP_CIPHER_CTX_get0_cipher(s->enc_write_ctx)) in ssl3_write_bytes()
453 ssl3_release_write_buffer(s); in ssl3_write_bytes()
455 packlen = EVP_CIPHER_CTX_ctrl(s->enc_write_ctx, in ssl3_write_bytes()
464 if (!ssl3_setup_write_buffer(s, 1, packlen)) { in ssl3_write_bytes()
470 ssl3_release_write_buffer(s); in ssl3_write_bytes()
479 ssl3_release_write_buffer(s); in ssl3_write_bytes()
483 if (s->s3.alert_dispatch) { in ssl3_write_bytes()
484 i = s->method->ssl_dispatch_alert(s); in ssl3_write_bytes()
487 s->rlayer.wnum = tot; in ssl3_write_bytes()
497 memcpy(aad, s->rlayer.write_sequence, 8); in ssl3_write_bytes()
499 aad[9] = (unsigned char)(s->version >> 8); in ssl3_write_bytes()
500 aad[10] = (unsigned char)(s->version); in ssl3_write_bytes()
507 packleni = EVP_CIPHER_CTX_ctrl(s->enc_write_ctx, in ssl3_write_bytes()
513 ssl3_release_write_buffer(s); in ssl3_write_bytes()
521 if (EVP_CIPHER_CTX_ctrl(s->enc_write_ctx, in ssl3_write_bytes()
526 s->rlayer.write_sequence[7] += mb_param.interleave; in ssl3_write_bytes()
527 if (s->rlayer.write_sequence[7] < mb_param.interleave) { in ssl3_write_bytes()
529 while (j >= 0 && (++s->rlayer.write_sequence[j--]) == 0) ; in ssl3_write_bytes()
535 s->rlayer.wpend_tot = nw; in ssl3_write_bytes()
536 s->rlayer.wpend_buf = &buf[tot]; in ssl3_write_bytes()
537 s->rlayer.wpend_type = type; in ssl3_write_bytes()
538 s->rlayer.wpend_ret = nw; in ssl3_write_bytes()
540 i = ssl3_write_pending(s, type, &buf[tot], nw, &tmpwrit); in ssl3_write_bytes()
543 if (i < 0 && (!s->wbio || !BIO_should_retry(s->wbio))) { in ssl3_write_bytes()
545 ssl3_release_write_buffer(s); in ssl3_write_bytes()
547 s->rlayer.wnum = tot; in ssl3_write_bytes()
552 ssl3_release_write_buffer(s); in ssl3_write_bytes()
562 if (s->mode & SSL_MODE_RELEASE_BUFFERS && !SSL_IS_DTLS(s)) in ssl3_write_bytes()
563 ssl3_release_write_buffer(s); in ssl3_write_bytes()
571 max_send_fragment = ssl_get_max_send_fragment(s); in ssl3_write_bytes()
572 split_send_fragment = ssl_get_split_send_fragment(s); in ssl3_write_bytes()
579 maxpipes = s->max_pipelines; in ssl3_write_bytes()
585 SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR); in ssl3_write_bytes()
589 || s->enc_write_ctx == NULL in ssl3_write_bytes()
590 || (EVP_CIPHER_get_flags(EVP_CIPHER_CTX_get0_cipher(s->enc_write_ctx)) in ssl3_write_bytes()
592 || !SSL_USE_EXPLICIT_IV(s)) in ssl3_write_bytes()
601 SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR); in ssl3_write_bytes()
635 i = do_ssl3_write(s, type, &(buf[tot]), pipelens, numpipes, 0, in ssl3_write_bytes()
640 s->rlayer.wnum = tot; in ssl3_write_bytes()
646 (s->mode & SSL_MODE_ENABLE_PARTIAL_WRITE))) { in ssl3_write_bytes()
651 s->s3.empty_fragment_done = 0; in ssl3_write_bytes()
654 && (s->mode & SSL_MODE_RELEASE_BUFFERS) != 0 in ssl3_write_bytes()
655 && !SSL_IS_DTLS(s)) in ssl3_write_bytes()
656 ssl3_release_write_buffer(s); in ssl3_write_bytes()
667 int do_ssl3_write(SSL *s, int type, const unsigned char *buf, in do_ssl3_write() argument
691 if (RECORD_LAYER_write_pending(&s->rlayer)) { in do_ssl3_write()
693 return ssl3_write_pending(s, type, buf, totlen, written); in do_ssl3_write()
697 if (s->s3.alert_dispatch) { in do_ssl3_write()
698 i = s->method->ssl_dispatch_alert(s); in do_ssl3_write()
706 if (s->rlayer.numwpipes < numpipes) { in do_ssl3_write()
707 if (!ssl3_setup_write_buffer(s, numpipes, 0)) { in do_ssl3_write()
716 sess = s->session; in do_ssl3_write()
719 || (s->enc_write_ctx == NULL) in do_ssl3_write()
720 || (EVP_MD_CTX_get0_md(s->write_hash) == NULL)) { in do_ssl3_write()
721 clear = s->enc_write_ctx ? 0 : 1; /* must be AEAD cipher */ in do_ssl3_write()
724 mac_size = EVP_MD_CTX_get_size(s->write_hash); in do_ssl3_write()
726 SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR); in do_ssl3_write()
734 if (!clear && !create_empty_fragment && !s->s3.empty_fragment_done) { in do_ssl3_write()
740 if (s->s3.need_empty_fragments && type == SSL3_RT_APPLICATION_DATA) { in do_ssl3_write()
750 ret = do_ssl3_write(s, type, buf, &tmppipelen, 1, 1, &prefix_len); in do_ssl3_write()
759 SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR); in do_ssl3_write()
764 s->s3.empty_fragment_done = 1; in do_ssl3_write()
767 if (BIO_get_ktls_send(s->wbio)) { in do_ssl3_write()
774 SSL3_BUFFER_set_buf(&s->rlayer.wbuf[0], (unsigned char *)buf); in do_ssl3_write()
775 SSL3_BUFFER_set_offset(&s->rlayer.wbuf[0], 0); in do_ssl3_write()
776 SSL3_BUFFER_set_app_buffer(&s->rlayer.wbuf[0], 1); in do_ssl3_write()
781 wb = &s->rlayer.wbuf[0]; in do_ssl3_write()
795 SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR); in do_ssl3_write()
800 wb = &s->rlayer.wbuf[0]; in do_ssl3_write()
806 SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR); in do_ssl3_write()
814 wb = &s->rlayer.wbuf[j]; in do_ssl3_write()
823 SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR); in do_ssl3_write()
831 if (s->enc_write_ctx && SSL_USE_EXPLICIT_IV(s) && !SSL_TREAT_AS_TLS13(s)) { in do_ssl3_write()
832 int mode = EVP_CIPHER_CTX_get_mode(s->enc_write_ctx); in do_ssl3_write()
834 eivlen = EVP_CIPHER_CTX_get_iv_length(s->enc_write_ctx); in do_ssl3_write()
851 unsigned int version = (s->version == TLS1_3_VERSION) ? TLS1_2_VERSION in do_ssl3_write()
852 : s->version; in do_ssl3_write()
864 if (SSL_TREAT_AS_TLS13(s) in do_ssl3_write()
865 && s->enc_write_ctx != NULL in do_ssl3_write()
866 && (s->statem.enc_write_state != ENC_WRITE_STATE_WRITE_PLAIN_ALERTS in do_ssl3_write()
877 if (SSL_get_state(s) == TLS_ST_CW_CLNT_HELLO in do_ssl3_write()
878 && !s->renegotiate in do_ssl3_write()
879 && TLS1_get_version(s) > TLS1_VERSION in do_ssl3_write()
880 && s->hello_retry_request == SSL_HRR_NONE) in do_ssl3_write()
885 if (s->compress != NULL) in do_ssl3_write()
892 if (!BIO_get_ktls_send(s->wbio) in do_ssl3_write()
901 SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR); in do_ssl3_write()
917 if (s->compress != NULL) { in do_ssl3_write()
918 if (!ssl3_do_compress(s, thiswr) in do_ssl3_write()
920 SSLfatal(s, SSL_AD_INTERNAL_ERROR, SSL_R_COMPRESSION_FAILURE); in do_ssl3_write()
924 if (BIO_get_ktls_send(s->wbio)) { in do_ssl3_write()
928 SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR); in do_ssl3_write()
935 if (SSL_TREAT_AS_TLS13(s) in do_ssl3_write()
936 && !BIO_get_ktls_send(s->wbio) in do_ssl3_write()
937 && s->enc_write_ctx != NULL in do_ssl3_write()
938 && (s->statem.enc_write_state != ENC_WRITE_STATE_WRITE_PLAIN_ALERTS in do_ssl3_write()
943 SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR); in do_ssl3_write()
949 max_send_fragment = ssl_get_max_send_fragment(s); in do_ssl3_write()
954 if (s->record_padding_cb != NULL) { in do_ssl3_write()
955 padding = s->record_padding_cb(s, type, rlen, s->record_padding_arg); in do_ssl3_write()
956 } else if (s->block_padding > 0) { in do_ssl3_write()
957 size_t mask = s->block_padding - 1; in do_ssl3_write()
961 if ((s->block_padding & mask) == 0) in do_ssl3_write()
964 remainder = rlen % s->block_padding; in do_ssl3_write()
969 padding = s->block_padding - remainder; in do_ssl3_write()
976 SSLfatal(s, SSL_AD_INTERNAL_ERROR, in do_ssl3_write()
991 if (!BIO_get_ktls_send(s->wbio) && !SSL_WRITE_ETM(s) && mac_size != 0) { in do_ssl3_write()
995 || !s->method->ssl3_enc->mac(s, thiswr, mac, 1)) { in do_ssl3_write()
996 SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR); in do_ssl3_write()
1006 if (!BIO_get_ktls_send(s->wbio)) { in do_ssl3_write()
1015 SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR); in do_ssl3_write()
1027 if (s->statem.enc_write_state == ENC_WRITE_STATE_WRITE_PLAIN_ALERTS) { in do_ssl3_write()
1032 if (tls13_enc(s, wr, numpipes, 1, NULL, mac_size) < 1) { in do_ssl3_write()
1033 if (!ossl_statem_in_error(s)) { in do_ssl3_write()
1034 SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR); in do_ssl3_write()
1039 if (!BIO_get_ktls_send(s->wbio)) { in do_ssl3_write()
1040 if (s->method->ssl3_enc->enc(s, wr, numpipes, 1, NULL, in do_ssl3_write()
1042 if (!ossl_statem_in_error(s)) { in do_ssl3_write()
1043 SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR); in do_ssl3_write()
1056 if (BIO_get_ktls_send(s->wbio)) in do_ssl3_write()
1067 SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR); in do_ssl3_write()
1070 if (SSL_WRITE_ETM(s) && mac_size != 0) { in do_ssl3_write()
1074 || !s->method->ssl3_enc->mac(s, thiswr, mac, 1)) { in do_ssl3_write()
1075 SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR); in do_ssl3_write()
1083 SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR); in do_ssl3_write()
1087 if (s->msg_callback) { in do_ssl3_write()
1090 s->msg_callback(1, thiswr->rec_version, SSL3_RT_HEADER, recordstart, in do_ssl3_write()
1091 SSL3_RT_HEADER_LENGTH, s, in do_ssl3_write()
1092 s->msg_callback_arg); in do_ssl3_write()
1094 if (SSL_TREAT_AS_TLS13(s) && s->enc_write_ctx != NULL) { in do_ssl3_write()
1097 s->msg_callback(1, thiswr->rec_version, SSL3_RT_INNER_CONTENT_TYPE, in do_ssl3_write()
1098 &ctype, 1, s, s->msg_callback_arg); in do_ssl3_write()
1103 SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR); in do_ssl3_write()
1117 SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR); in do_ssl3_write()
1133 SSL3_BUFFER_set_left(&s->rlayer.wbuf[j], in do_ssl3_write()
1141 s->rlayer.wpend_tot = totlen; in do_ssl3_write()
1142 s->rlayer.wpend_buf = buf; in do_ssl3_write()
1143 s->rlayer.wpend_type = type; in do_ssl3_write()
1144 s->rlayer.wpend_ret = totlen; in do_ssl3_write()
1147 return ssl3_write_pending(s, type, buf, totlen, written); in do_ssl3_write()
1158 int ssl3_write_pending(SSL *s, int type, const unsigned char *buf, size_t len, in ssl3_write_pending() argument
1162 SSL3_BUFFER *wb = s->rlayer.wbuf; in ssl3_write_pending()
1166 if ((s->rlayer.wpend_tot > len) in ssl3_write_pending()
1167 || (!(s->mode & SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER) in ssl3_write_pending()
1168 && (s->rlayer.wpend_buf != buf)) in ssl3_write_pending()
1169 || (s->rlayer.wpend_type != type)) { in ssl3_write_pending()
1170 SSLfatal(s, SSL_AD_INTERNAL_ERROR, SSL_R_BAD_WRITE_RETRY); in ssl3_write_pending()
1177 && currbuf < s->rlayer.numwpipes - 1) { in ssl3_write_pending()
1182 if (s->wbio != NULL) { in ssl3_write_pending()
1183 s->rwstate = SSL_WRITING; in ssl3_write_pending()
1189 if (BIO_get_ktls_send(s->wbio) && type != SSL3_RT_APPLICATION_DATA) { in ssl3_write_pending()
1190 i = BIO_flush(s->wbio); in ssl3_write_pending()
1193 BIO_set_ktls_ctrl_msg(s->wbio, type); in ssl3_write_pending()
1195 i = BIO_write(s->wbio, (char *) in ssl3_write_pending()
1202 SSLfatal(s, SSL_AD_INTERNAL_ERROR, SSL_R_BIO_NOT_SET); in ssl3_write_pending()
1216 if (currbuf + 1 < s->rlayer.numwpipes) in ssl3_write_pending()
1218 s->rwstate = SSL_NOTHING; in ssl3_write_pending()
1219 *written = s->rlayer.wpend_ret; in ssl3_write_pending()
1222 if (SSL_IS_DTLS(s)) { in ssl3_write_pending()
1265 int ssl3_read_bytes(SSL *s, int type, int *recvd_type, unsigned char *buf, in ssl3_read_bytes() argument
1273 int is_tls13 = SSL_IS_TLS13(s); in ssl3_read_bytes()
1275 rbuf = &s->rlayer.rbuf; in ssl3_read_bytes()
1279 if (!ssl3_setup_read_buffer(s)) { in ssl3_read_bytes()
1289 SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR); in ssl3_read_bytes()
1293 if ((type == SSL3_RT_HANDSHAKE) && (s->rlayer.handshake_fragment_len > 0)) in ssl3_read_bytes()
1296 unsigned char *src = s->rlayer.handshake_fragment; in ssl3_read_bytes()
1302 while ((len > 0) && (s->rlayer.handshake_fragment_len > 0)) { in ssl3_read_bytes()
1305 s->rlayer.handshake_fragment_len--; in ssl3_read_bytes()
1309 for (k = 0; k < s->rlayer.handshake_fragment_len; k++) in ssl3_read_bytes()
1310 s->rlayer.handshake_fragment[k] = *src++; in ssl3_read_bytes()
1323 if (!ossl_statem_get_in_handshake(s) && SSL_in_init(s)) { in ssl3_read_bytes()
1325 i = s->handshake_func(s); in ssl3_read_bytes()
1333 s->rwstate = SSL_NOTHING; in ssl3_read_bytes()
1342 rr = s->rlayer.rrec; in ssl3_read_bytes()
1343 num_recs = RECORD_LAYER_get_numrpipes(&s->rlayer); in ssl3_read_bytes()
1348 ret = ssl3_get_record(s); in ssl3_read_bytes()
1353 num_recs = RECORD_LAYER_get_numrpipes(&s->rlayer); in ssl3_read_bytes()
1356 SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR); in ssl3_read_bytes()
1365 RECORD_LAYER_set_numrpipes(&s->rlayer, 0); in ssl3_read_bytes()
1372 if (s->rlayer.handshake_fragment_len > 0 in ssl3_read_bytes()
1374 && SSL_IS_TLS13(s)) { in ssl3_read_bytes()
1375 SSLfatal(s, SSL_AD_UNEXPECTED_MESSAGE, in ssl3_read_bytes()
1386 s->rlayer.alert_count = 0; in ssl3_read_bytes()
1390 if (s->s3.change_cipher_spec /* set when we receive ChangeCipherSpec, in ssl3_read_bytes()
1393 SSLfatal(s, SSL_AD_UNEXPECTED_MESSAGE, in ssl3_read_bytes()
1402 if (s->shutdown & SSL_RECEIVED_SHUTDOWN) { in ssl3_read_bytes()
1404 s->rwstate = SSL_NOTHING; in ssl3_read_bytes()
1421 if (SSL_in_init(s) && (type == SSL3_RT_APPLICATION_DATA) && in ssl3_read_bytes()
1422 (s->enc_read_ctx == NULL)) { in ssl3_read_bytes()
1423 SSLfatal(s, SSL_AD_UNEXPECTED_MESSAGE, SSL_R_APP_DATA_IN_HANDSHAKE); in ssl3_read_bytes()
1429 && s->rlayer.handshake_fragment_len > 0) { in ssl3_read_bytes()
1430 SSLfatal(s, SSL_AD_UNEXPECTED_MESSAGE, SSL_R_CCS_RECEIVED_EARLY); in ssl3_read_bytes()
1462 if (s->options & SSL_OP_CLEANSE_PLAINTEXT) in ssl3_read_bytes()
1467 s->rlayer.rstate = SSL_ST_READ_HEADER; in ssl3_read_bytes()
1485 && (s->mode & SSL_MODE_RELEASE_BUFFERS) in ssl3_read_bytes()
1487 ssl3_release_read_buffer(s); in ssl3_read_bytes()
1508 SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR); in ssl3_read_bytes()
1512 if (s->method->version == TLS_ANY_VERSION in ssl3_read_bytes()
1513 && (s->server || rr->type != SSL3_RT_ALERT)) { in ssl3_read_bytes()
1520 s->version = rr->rec_version; in ssl3_read_bytes()
1521 SSLfatal(s, SSL_AD_UNEXPECTED_MESSAGE, SSL_R_UNEXPECTED_MESSAGE); in ssl3_read_bytes()
1540 SSLfatal(s, SSL_AD_UNEXPECTED_MESSAGE, SSL_R_INVALID_ALERT); in ssl3_read_bytes()
1544 if (s->msg_callback) in ssl3_read_bytes()
1545 s->msg_callback(0, s->version, SSL3_RT_ALERT, alert_bytes, 2, s, in ssl3_read_bytes()
1546 s->msg_callback_arg); in ssl3_read_bytes()
1548 if (s->info_callback != NULL) in ssl3_read_bytes()
1549 cb = s->info_callback; in ssl3_read_bytes()
1550 else if (s->ctx->info_callback != NULL) in ssl3_read_bytes()
1551 cb = s->ctx->info_callback; in ssl3_read_bytes()
1555 cb(s, SSL_CB_READ_ALERT, j); in ssl3_read_bytes()
1560 s->s3.warn_alert = alert_descr; in ssl3_read_bytes()
1563 s->rlayer.alert_count++; in ssl3_read_bytes()
1564 if (s->rlayer.alert_count == MAX_WARN_ALERT_COUNT) { in ssl3_read_bytes()
1565 SSLfatal(s, SSL_AD_UNEXPECTED_MESSAGE, in ssl3_read_bytes()
1579 s->shutdown |= SSL_RECEIVED_SHUTDOWN; in ssl3_read_bytes()
1582 s->rwstate = SSL_NOTHING; in ssl3_read_bytes()
1583 s->s3.fatal_alert = alert_descr; in ssl3_read_bytes()
1584 SSLfatal_data(s, SSL_AD_NO_ALERT, in ssl3_read_bytes()
1587 s->shutdown |= SSL_RECEIVED_SHUTDOWN; in ssl3_read_bytes()
1589 SSL_CTX_remove_session(s->session_ctx, s->session); in ssl3_read_bytes()
1600 SSLfatal(s, SSL_AD_HANDSHAKE_FAILURE, SSL_R_NO_RENEGOTIATION); in ssl3_read_bytes()
1607 SSLfatal(s, SSL_AD_ILLEGAL_PARAMETER, SSL_R_UNKNOWN_ALERT_TYPE); in ssl3_read_bytes()
1611 if ((s->shutdown & SSL_SENT_SHUTDOWN) != 0) { in ssl3_read_bytes()
1622 if (!SSL_IS_TLS13(s)) { in ssl3_read_bytes()
1626 if ((s->mode & SSL_MODE_AUTO_RETRY) != 0) in ssl3_read_bytes()
1629 s->rwstate = SSL_READING; in ssl3_read_bytes()
1630 rbio = SSL_get_rbio(s); in ssl3_read_bytes()
1645 SSLfatal(s, SSL_AD_NO_ALERT, in ssl3_read_bytes()
1658 size_t dest_maxlen = sizeof(s->rlayer.handshake_fragment); in ssl3_read_bytes()
1659 unsigned char *dest = s->rlayer.handshake_fragment; in ssl3_read_bytes()
1660 size_t *dest_len = &s->rlayer.handshake_fragment_len; in ssl3_read_bytes()
1680 SSLfatal(s, SSL_AD_UNEXPECTED_MESSAGE, SSL_R_CCS_RECEIVED_EARLY); in ssl3_read_bytes()
1688 if ((s->rlayer.handshake_fragment_len >= 4) in ssl3_read_bytes()
1689 && !ossl_statem_get_in_handshake(s)) { in ssl3_read_bytes()
1690 int ined = (s->early_data_state == SSL_EARLY_DATA_READING); in ssl3_read_bytes()
1693 ossl_statem_set_in_init(s, 1); in ssl3_read_bytes()
1695 i = s->handshake_func(s); in ssl3_read_bytes()
1711 if (!(s->mode & SSL_MODE_AUTO_RETRY)) { in ssl3_read_bytes()
1721 s->rwstate = SSL_READING; in ssl3_read_bytes()
1722 bio = SSL_get_rbio(s); in ssl3_read_bytes()
1740 SSLfatal(s, SSL_AD_UNEXPECTED_MESSAGE, SSL_R_UNEXPECTED_RECORD); in ssl3_read_bytes()
1750 SSLfatal(s, SSL_AD_UNEXPECTED_MESSAGE, ERR_R_INTERNAL_ERROR); in ssl3_read_bytes()
1760 if (ossl_statem_app_data_allowed(s)) { in ssl3_read_bytes()
1761 s->s3.in_read_app_data = 2; in ssl3_read_bytes()
1763 } else if (ossl_statem_skip_early_data(s)) { in ssl3_read_bytes()
1773 if (!early_data_count_ok(s, rr->length, in ssl3_read_bytes()
1781 SSLfatal(s, SSL_AD_UNEXPECTED_MESSAGE, SSL_R_UNEXPECTED_RECORD); in ssl3_read_bytes()