diff --git a/library/ssl_invasive.h b/library/ssl_invasive.h
index babbc27..c9256d6 100644
--- a/library/ssl_invasive.h
+++ b/library/ssl_invasive.h
@@ -29,8 +29,7 @@
 #include "common.h"
 #include "mbedtls/md.h"
 
-#if defined(MBEDTLS_TEST_HOOKS) &&              \
-    defined(MBEDTLS_SSL_SOME_SUITES_USE_TLS_CBC)
+#if defined(MBEDTLS_TEST_HOOKS) && defined(MBEDTLS_SSL_SOME_SUITES_USE_TLS_CBC)
 /** \brief Compute the HMAC of variable-length data with constant flow.
  *
  * This function computes the HMAC of the concatenation of \p add_data and \p
@@ -65,12 +64,14 @@
  * \retval MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED
  *         The hardware accelerator failed.
  */
-int mbedtls_ssl_cf_hmac(
-        mbedtls_md_context_t *ctx,
-        const unsigned char *add_data, size_t add_data_len,
-        const unsigned char *data, size_t data_len_secret,
-        size_t min_data_len, size_t max_data_len,
-        unsigned char *output );
+int mbedtls_ssl_cf_hmac(mbedtls_md_context_t *ctx,
+                        const unsigned char *add_data,
+                        size_t add_data_len,
+                        const unsigned char *data,
+                        size_t data_len_secret,
+                        size_t min_data_len,
+                        size_t max_data_len,
+                        unsigned char *output);
 
 /** \brief Copy data from a secret position with constant flow.
  *
@@ -90,11 +91,12 @@
  * \param offset_max    The maximal value of \p offset_secret.
  * \param len           The number of bytes to copy.
  */
-void mbedtls_ssl_cf_memcpy_offset( unsigned char *dst,
-                                   const unsigned char *src_base,
-                                   size_t offset_secret,
-                                   size_t offset_min, size_t offset_max,
-                                   size_t len );
+void mbedtls_ssl_cf_memcpy_offset(unsigned char *dst,
+                                  const unsigned char *src_base,
+                                  size_t offset_secret,
+                                  size_t offset_min,
+                                  size_t offset_max,
+                                  size_t len);
 #endif /* MBEDTLS_TEST_HOOKS && MBEDTLS_SSL_SOME_SUITES_USE_TLS_CBC */
 
 #endif /* MBEDTLS_SSL_INVASIVE_H */
