@@ -1628,7 +1628,7 @@ int tls_write_records_default(OSSL_RECORD_LAYER *rl,
16281628
16291629 if (!rl -> funcs -> prepare_record_header (rl , thispkt , thistempl , rectype ,
16301630 & compressdata )) {
1631- RLAYERfatal (rl , SSL_AD_INTERNAL_ERROR , ERR_R_INTERNAL_ERROR );
1631+ /* RLAYERfatal() already called */
16321632 goto err ;
16331633 }
16341634
@@ -1658,54 +1658,11 @@ int tls_write_records_default(OSSL_RECORD_LAYER *rl,
16581658 SSL3_RECORD_reset_input (& wr [j ]);
16591659 }
16601660
1661- if (rl -> version == TLS1_3_VERSION
1662- && !using_ktls
1663- && rl -> enc_ctx != NULL
1664- && (!rl -> allow_plain_alerts
1665- || thistempl -> type != SSL3_RT_ALERT )) {
1666- size_t rlen ;
1667-
1668- if (!WPACKET_put_bytes_u8 (thispkt , thistempl -> type )) {
1669- RLAYERfatal (rl , SSL_AD_INTERNAL_ERROR , ERR_R_INTERNAL_ERROR );
1670- goto err ;
1671- }
1672- SSL3_RECORD_add_length (thiswr , 1 );
1673-
1674- /* Add TLS1.3 padding */
1675- rlen = SSL3_RECORD_get_length (thiswr );
1676- if (rlen < rl -> max_frag_len ) {
1677- size_t padding = 0 ;
1678- size_t max_padding = rl -> max_frag_len - rlen ;
1679-
1680- if (rl -> padding != NULL ) {
1681- padding = rl -> padding (rl -> cbarg , thistempl -> type , rlen );
1682- } else if (rl -> block_padding > 0 ) {
1683- size_t mask = rl -> block_padding - 1 ;
1684- size_t remainder ;
1685-
1686- /* optimize for power of 2 */
1687- if ((rl -> block_padding & mask ) == 0 )
1688- remainder = rlen & mask ;
1689- else
1690- remainder = rlen % rl -> block_padding ;
1691- /* don't want to add a block of padding if we don't have to */
1692- if (remainder == 0 )
1693- padding = 0 ;
1694- else
1695- padding = rl -> block_padding - remainder ;
1696- }
1697- if (padding > 0 ) {
1698- /* do not allow the record to exceed max plaintext length */
1699- if (padding > max_padding )
1700- padding = max_padding ;
1701- if (!WPACKET_memset (thispkt , 0 , padding )) {
1702- RLAYERfatal (rl , SSL_AD_INTERNAL_ERROR ,
1703- ERR_R_INTERNAL_ERROR );
1704- goto err ;
1705- }
1706- SSL3_RECORD_add_length (thiswr , padding );
1707- }
1708- }
1661+ if (rl -> funcs -> add_record_padding != NULL
1662+ && !rl -> funcs -> add_record_padding (rl , thistempl , thispkt ,
1663+ thiswr )) {
1664+ /* RLAYERfatal() already called */
1665+ goto err ;
17091666 }
17101667
17111668 /*
0 commit comments