float tls_min_version; //!< Minimum TLS version allowed.
uint32_t fragment_size; //!< Maximum record fragment, or record size.
+ uint32_t padding_block_size; //!< for TLS 1.3, pad blocks to multiple of this size.
+
bool check_crl; //!< Check certificate revocation lists.
bool allow_expired_crl; //!< Don't error out if CRL is expired.
char const *check_cert_cn; //!< Verify cert CN matches the expansion of this string.
#endif
{ FR_CONF_OFFSET("dh_file", FR_TYPE_FILE_INPUT, fr_tls_conf_t, dh_file) },
{ FR_CONF_OFFSET("fragment_size", FR_TYPE_UINT32, fr_tls_conf_t, fragment_size), .dflt = "1024" },
+ { FR_CONF_OFFSET("padding", FR_TYPE_UINT32, fr_tls_conf_t, padding_block_size), },
{ FR_CONF_OFFSET("disable_single_dh_use", FR_TYPE_BOOL, fr_tls_conf_t, disable_single_dh_use) },
{ FR_CONF_OFFSET("check_crl", FR_TYPE_BOOL, fr_tls_conf_t, check_crl), .dflt = "no" },
*/
if (conf->fragment_size < 100) conf->fragment_size = 100;
+ FR_INTEGER_BOUND_CHECK("padding", conf->padding_block_size, <=, SSL3_RT_MAX_PLAIN_LENGTH);
+
#ifdef __APPLE__
if (conf_cert_admin_password(conf) < 0) goto error;
#endif
* SSL_CTX_set_msg_callback(ctx, fr_tls_session_msg_cb);
*/
+#if OPENSSL_VERSION_NUMBER >= 0x10101000L
+ /*
+ * Set the block size for record padding. This is only
+ * used in TLS 1.3.
+ */
+ if (conf->padding_block_size) {
+ SSL_CTX_set_block_padding(ctx, conf->padding_block_size);
+ }
+#endif
+
+
+
/*
* Set eliptical curve crypto configuration.
*/