Use bool variable instead of enum values

Signed-off-by: gabor-mezei-arm <gabor.mezei@arm.com>
diff --git a/library/psa_crypto.c b/library/psa_crypto.c
index 4f2cdb3..5758539 100644
--- a/library/psa_crypto.c
+++ b/library/psa_crypto.c
@@ -2460,22 +2460,31 @@
 /* Asymmetric cryptography */
 /****************************************************************/
 
-typedef enum
+static psa_status_t psa_sign_verify_check_alg( uint8_t do_hash,
+                                               psa_algorithm_t alg )
 {
-    PSA_SIGN_INVALID = 0,
-    PSA_SIGN_HASH = 1,
-    PSA_SIGN_MESSAGE
-} psa_sign_operation_t;
+    if( do_hash )
+    {
+        if( ! PSA_ALG_IS_SIGN_MESSAGE( alg ) )
+            return( PSA_ERROR_INVALID_ARGUMENT );
 
-typedef enum
-{
-    PSA_VERIFY_INVALID = 0,
-    PSA_VERIFY_HASH = 1,
-    PSA_VERIFY_MESSAGE
-} psa_verify_operation_t;
+        if ( PSA_ALG_IS_HASH_AND_SIGN( alg ) )
+        {
+            if( ! PSA_ALG_IS_HASH( PSA_ALG_SIGN_GET_HASH( alg ) ) )
+                return( PSA_ERROR_INVALID_ARGUMENT );
+        }
+    }
+    else
+    {
+        if( ! PSA_ALG_IS_HASH_AND_SIGN( alg ) )
+            return( PSA_ERROR_INVALID_ARGUMENT );
+    }
+
+    return( PSA_SUCCESS );
+}
 
 static psa_status_t psa_sign_internal( mbedtls_svc_key_id_t key,
-                                       psa_sign_operation_t operation,
+                                       uint8_t do_hash,
                                        psa_algorithm_t alg,
                                        const uint8_t * input,
                                        size_t input_length,
@@ -2489,27 +2498,9 @@
 
     *signature_length = 0;
 
-    switch( operation )
-    {
-        case PSA_SIGN_HASH:
-            if( ! PSA_ALG_IS_HASH_AND_SIGN( alg ) )
-                return( PSA_ERROR_INVALID_ARGUMENT );
-            break;
-
-        case PSA_SIGN_MESSAGE:
-            if( ! PSA_ALG_IS_SIGN_MESSAGE( alg ) )
-                return( PSA_ERROR_INVALID_ARGUMENT );
-
-            if ( PSA_ALG_IS_HASH_AND_SIGN( alg ) )
-            {
-                if( ! PSA_ALG_IS_HASH( PSA_ALG_SIGN_GET_HASH( alg ) ) )
-                    return( PSA_ERROR_INVALID_ARGUMENT );
-            }
-            break;
-
-        default:
-            return( PSA_ERROR_INVALID_ARGUMENT );
-    }
+    status = psa_sign_verify_check_alg( do_hash, alg );
+    if( status != PSA_SUCCESS )
+        return status;
 
     /* Immediately reject a zero-length signature buffer. This guarantees
      * that signature must be a valid pointer. (On the other hand, the input
@@ -2520,8 +2511,8 @@
 
     status = psa_get_and_lock_key_slot_with_policy(
                 key, &slot,
-                operation == PSA_SIGN_HASH ? PSA_KEY_USAGE_SIGN_HASH :
-                                             PSA_KEY_USAGE_SIGN_MESSAGE,
+                do_hash ? PSA_KEY_USAGE_SIGN_MESSAGE :
+                          PSA_KEY_USAGE_SIGN_HASH,
                 alg );
 
     if( status != PSA_SUCCESS )
@@ -2537,14 +2528,14 @@
       .core = slot->attr
     };
 
-    if( operation == PSA_SIGN_MESSAGE )
+    if( do_hash )
     {
         status = psa_driver_wrapper_sign_message(
             &attributes, slot->key.data, slot->key.bytes,
             alg, input, input_length,
             signature, signature_size, signature_length );
     }
-    else if( operation == PSA_SIGN_HASH )
+    else
     {
 
         status = psa_driver_wrapper_sign_hash(
@@ -2573,7 +2564,7 @@
 }
 
 static psa_status_t psa_verify_internal( mbedtls_svc_key_id_t key,
-                                         psa_verify_operation_t operation,
+                                         uint8_t do_hash,
                                          psa_algorithm_t alg,
                                          const uint8_t * input,
                                          size_t input_length,
@@ -2584,32 +2575,14 @@
     psa_status_t unlock_status = PSA_ERROR_CORRUPTION_DETECTED;
     psa_key_slot_t *slot;
 
-    switch( operation )
-    {
-        case PSA_VERIFY_HASH:
-            if( ! PSA_ALG_IS_HASH_AND_SIGN( alg ) )
-                return( PSA_ERROR_INVALID_ARGUMENT );
-            break;
-
-        case PSA_VERIFY_MESSAGE:
-            if( ! PSA_ALG_IS_SIGN_MESSAGE( alg ) )
-                return( PSA_ERROR_INVALID_ARGUMENT );
-
-            if ( PSA_ALG_IS_HASH_AND_SIGN( alg ) )
-            {
-                if( ! PSA_ALG_IS_HASH( PSA_ALG_SIGN_GET_HASH( alg ) ) )
-                    return( PSA_ERROR_INVALID_ARGUMENT );
-            }
-            break;
-
-        default:
-            return( PSA_ERROR_INVALID_ARGUMENT );
-    }
+    status = psa_sign_verify_check_alg( do_hash, alg );
+    if( status != PSA_SUCCESS )
+        return status;
 
     status = psa_get_and_lock_key_slot_with_policy(
                 key, &slot,
-                operation == PSA_VERIFY_HASH ? PSA_KEY_USAGE_VERIFY_HASH :
-                                               PSA_KEY_USAGE_VERIFY_MESSAGE,
+                do_hash ? PSA_KEY_USAGE_VERIFY_MESSAGE :
+                          PSA_KEY_USAGE_VERIFY_HASH,
                 alg );
 
     if( status != PSA_SUCCESS )
@@ -2619,14 +2592,14 @@
       .core = slot->attr
     };
 
-    if( operation == PSA_VERIFY_MESSAGE )
+    if( do_hash )
     {
         status = psa_driver_wrapper_verify_message(
             &attributes, slot->key.data, slot->key.bytes,
             alg, input, input_length,
             signature, signature_length );
     }
-    else if( operation == PSA_VERIFY_HASH )
+    else
     {
         status = psa_driver_wrapper_verify_hash(
             &attributes, slot->key.data, slot->key.bytes,
@@ -2672,10 +2645,7 @@
                     signature, signature_size, signature_length );
     }
 
-    return psa_driver_wrapper_sign_hash(
-                attributes, key_buffer, key_buffer_size,
-                alg, input, input_length,
-                signature, signature_size, signature_length );
+    return( PSA_ERROR_NOT_SUPPORTED );
 }
 
 psa_status_t psa_sign_message( mbedtls_svc_key_id_t key,
@@ -2687,7 +2657,7 @@
                                size_t * signature_length )
 {
     return psa_sign_internal(
-        key, PSA_SIGN_MESSAGE, alg, input, input_length,
+        key, 1, alg, input, input_length,
         signature, signature_size, signature_length );
 }
 
@@ -2736,7 +2706,7 @@
                                  size_t signature_length )
 {
     return psa_verify_internal(
-        key, PSA_VERIFY_MESSAGE, alg, input, input_length,
+        key, 1, alg, input, input_length,
         signature, signature_length );
 }
 
@@ -2807,7 +2777,7 @@
                             size_t *signature_length )
 {
     return psa_sign_internal(
-        key, PSA_SIGN_HASH, alg, hash, hash_length,
+        key, 0, alg, hash, hash_length,
         signature, signature_size, signature_length );
 }
 
@@ -2876,7 +2846,7 @@
                               size_t signature_length )
 {
     return psa_verify_internal(
-        key, PSA_VERIFY_HASH, alg, hash, hash_length,
+        key, 0, alg, hash, hash_length,
         signature, signature_length );
 }