psa_hmac_setup_internal: fix double call of psa_hash_setup

In the common case (key no longer than the block size), psa_hash_setup
was being called twice in succession. With current implementations
this is just a small performance loss, but potentially with
alternative implementations this could have lead to a memory leak.
diff --git a/library/psa_crypto.c b/library/psa_crypto.c
index b155563..7ea614f 100644
--- a/library/psa_crypto.c
+++ b/library/psa_crypto.c
@@ -1424,12 +1424,11 @@
     if( block_size == 0 )
         return( PSA_ERROR_NOT_SUPPORTED );
 
-    status = psa_hash_setup( &hmac->hash_ctx, hash_alg );
-    if( status != PSA_SUCCESS )
-        return( status );
-
     if( key_length > block_size )
     {
+        status = psa_hash_setup( &hmac->hash_ctx, hash_alg );
+        if( status != PSA_SUCCESS )
+            goto cleanup;
         status = psa_hash_update( &hmac->hash_ctx, key, key_length );
         if( status != PSA_SUCCESS )
             goto cleanup;