Infineon: Switch to 1.9.0 code base, add xmc7000 family support, refactor memory layer
diff --git a/boot/bootutil/src/image_ed25519.c b/boot/bootutil/src/image_ed25519.c
index b5838c4..47fd5ba 100644
--- a/boot/bootutil/src/image_ed25519.c
+++ b/boot/bootutil/src/image_ed25519.c
@@ -64,32 +64,24 @@
     return 0;
 }
 
-int
+fih_int
 bootutil_verify_sig(uint8_t *hash, uint32_t hlen, uint8_t *sig, size_t slen,
   uint8_t key_id)
 {
-    int rc;
-    uint8_t *pubkey;
-    uint8_t *end;
+    fih_int fih_rc = FIH_FAILURE;
 
-    if (hlen != 32 || slen != 64) {
-        return -1;
+    if (hlen == 32 && slen == 64) {
+        uint8_t *pubkey = (uint8_t *)bootutil_keys[key_id].key;
+        uint8_t *end = pubkey + *bootutil_keys[key_id].len;
+
+        if (0 == bootutil_import_key(&pubkey, end) &&
+            ED25519_verify(hash, 32, sig, pubkey)) {
+
+            fih_rc = FIH_SUCCESS;
+        }
     }
 
-    pubkey = (uint8_t *)bootutil_keys[key_id].key;
-    end = pubkey + *bootutil_keys[key_id].len;
-
-    rc = bootutil_import_key(&pubkey, end);
-    if (rc) {
-        return -1;
-    }
-
-    rc = ED25519_verify(hash, 32, sig, pubkey);
-    if (rc == 0) {
-        return -2;
-    }
-
-    return 0;
+    FIH_RET(fih_rc);
 }
 
 #endif /* MCUBOOT_SIGN_ED25519 */