}
}
+ ERR_set_mark();
enc_err = rl->funcs->cipher(rl, rr, num_recs, 0, macbufs, mac_size);
/*-
if (enc_err == 0) {
if (rl->alert != SSL_AD_NO_ALERT) {
/* RLAYERfatal() already got called */
+ ERR_clear_last_mark();
goto end;
}
if (num_recs == 1
* it like an empty record.
*/
+ /*
+ * Remove any errors from the stack. Decryption failures are normal
+ * behaviour.
+ */
+ ERR_pop_to_mark();
+
thisrr = &rr[0];
if (!rlayer_early_data_count_ok(rl, thisrr->length,
ret = 1;
goto end;
}
+ ERR_clear_last_mark();
RLAYERfatal(rl, SSL_AD_BAD_RECORD_MAC,
SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC);
goto end;
+ } else {
+ ERR_clear_last_mark();
}
OSSL_TRACE_BEGIN(TLS) {
BIO_printf(trc_out, "dec %lu\n", (unsigned long)rr[0].length);