diff --git a/library/md.c b/library/md.c
index 0be1b7d..bc0a115 100644
--- a/library/md.c
+++ b/library/md.c
@@ -277,13 +277,13 @@
 #endif
 #if defined(MBEDTLS_SHA3_C)
         case MBEDTLS_MD_SHA3_224:
-            return( &mbedtls_sha3_224_info );
+            return &mbedtls_sha3_224_info;
         case MBEDTLS_MD_SHA3_256:
-            return( &mbedtls_sha3_256_info );
+            return &mbedtls_sha3_256_info;
         case MBEDTLS_MD_SHA3_384:
-            return( &mbedtls_sha3_384_info );
+            return &mbedtls_sha3_384_info;
         case MBEDTLS_MD_SHA3_512:
-            return( &mbedtls_sha3_512_info );
+            return &mbedtls_sha3_512_info;
 #endif
         default:
             return NULL;
@@ -353,7 +353,7 @@
             case MBEDTLS_MD_SHA3_256:
             case MBEDTLS_MD_SHA3_384:
             case MBEDTLS_MD_SHA3_512:
-                mbedtls_sha3_free( ctx->md_ctx );
+                mbedtls_sha3_free(ctx->md_ctx);
                 break;
 #endif
             default:
@@ -422,7 +422,7 @@
         case MBEDTLS_MD_SHA3_256:
         case MBEDTLS_MD_SHA3_384:
         case MBEDTLS_MD_SHA3_512:
-            mbedtls_sha3_clone( dst->md_ctx, src->md_ctx );
+            mbedtls_sha3_clone(dst->md_ctx, src->md_ctx);
             break;
 #endif
         default:
@@ -492,7 +492,7 @@
         case MBEDTLS_MD_SHA3_256:
         case MBEDTLS_MD_SHA3_384:
         case MBEDTLS_MD_SHA3_512:
-            ALLOC( sha3 );
+            ALLOC(sha3);
             break;
 #endif
         default:
@@ -548,13 +548,13 @@
 #endif
 #if defined(MBEDTLS_SHA3_C)
         case MBEDTLS_MD_SHA3_224:
-            return( mbedtls_sha3_starts( ctx->md_ctx, MBEDTLS_SHA3_224 ) );
+            return mbedtls_sha3_starts(ctx->md_ctx, MBEDTLS_SHA3_224);
         case MBEDTLS_MD_SHA3_256:
-            return( mbedtls_sha3_starts( ctx->md_ctx, MBEDTLS_SHA3_256 ) );
+            return mbedtls_sha3_starts(ctx->md_ctx, MBEDTLS_SHA3_256);
         case MBEDTLS_MD_SHA3_384:
-            return( mbedtls_sha3_starts( ctx->md_ctx, MBEDTLS_SHA3_384 ) );
+            return mbedtls_sha3_starts(ctx->md_ctx, MBEDTLS_SHA3_384);
         case MBEDTLS_MD_SHA3_512:
-            return( mbedtls_sha3_starts( ctx->md_ctx, MBEDTLS_SHA3_512 ) );
+            return mbedtls_sha3_starts(ctx->md_ctx, MBEDTLS_SHA3_512);
 #endif
         default:
             return MBEDTLS_ERR_MD_BAD_INPUT_DATA;
@@ -601,7 +601,7 @@
         case MBEDTLS_MD_SHA3_256:
         case MBEDTLS_MD_SHA3_384:
         case MBEDTLS_MD_SHA3_512:
-            return( mbedtls_sha3_update( ctx->md_ctx, input, ilen ) );
+            return mbedtls_sha3_update(ctx->md_ctx, input, ilen);
 #endif
         default:
             return MBEDTLS_ERR_MD_BAD_INPUT_DATA;
@@ -648,7 +648,7 @@
         case MBEDTLS_MD_SHA3_256:
         case MBEDTLS_MD_SHA3_384:
         case MBEDTLS_MD_SHA3_512:
-            return( mbedtls_sha3_finish( ctx->md_ctx, output, ctx->md_info->size ) );
+            return mbedtls_sha3_finish(ctx->md_ctx, output, ctx->md_info->size);
 #endif
         default:
             return MBEDTLS_ERR_MD_BAD_INPUT_DATA;
@@ -693,13 +693,13 @@
 #endif
 #if defined(MBEDTLS_SHA3_C)
         case MBEDTLS_MD_SHA3_224:
-            return( mbedtls_sha3( MBEDTLS_SHA3_224, input, ilen, output, md_info->size ) );
+            return mbedtls_sha3(MBEDTLS_SHA3_224, input, ilen, output, md_info->size);
         case MBEDTLS_MD_SHA3_256:
-            return( mbedtls_sha3( MBEDTLS_SHA3_256, input, ilen, output, md_info->size ) );
+            return mbedtls_sha3(MBEDTLS_SHA3_256, input, ilen, output, md_info->size);
         case MBEDTLS_MD_SHA3_384:
-            return( mbedtls_sha3( MBEDTLS_SHA3_384, input, ilen, output, md_info->size ) );
+            return mbedtls_sha3(MBEDTLS_SHA3_384, input, ilen, output, md_info->size);
         case MBEDTLS_MD_SHA3_512:
-            return( mbedtls_sha3( MBEDTLS_SHA3_512, input, ilen, output, md_info->size ) );
+            return mbedtls_sha3(MBEDTLS_SHA3_512, input, ilen, output, md_info->size);
 #endif
         default:
             return MBEDTLS_ERR_MD_BAD_INPUT_DATA;
@@ -936,7 +936,7 @@
         case MBEDTLS_MD_SHA3_256:
         case MBEDTLS_MD_SHA3_384:
         case MBEDTLS_MD_SHA3_512:
-            return( 0 );
+            return 0;
 #endif
         default:
             return MBEDTLS_ERR_MD_BAD_INPUT_DATA;
