A key agreement algorithm can contain a key derivation

PSA_ALG_KEY_AGREEMENT(..., kdf) is a valid key derivation algorithm
when kdf is one.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
diff --git a/tests/scripts/generate_psa_tests.py b/tests/scripts/generate_psa_tests.py
index 8595d45..d1d8abc 100755
--- a/tests/scripts/generate_psa_tests.py
+++ b/tests/scripts/generate_psa_tests.py
@@ -373,7 +373,7 @@
             category: crypto_knowledge.AlgorithmCategory,
     ) -> Iterator[test_case.TestCase]:
         """Generate failure test cases for keyless operations with the specified algorithm."""
-        if category == alg.category:
+        if alg.can_do(category):
             # Compatible operation, unsupported algorithm
             for dep in automatic_dependencies(alg.base_expression):
                 yield self.make_test_case(alg, category,
@@ -392,7 +392,7 @@
         for kt in self.key_types:
             key_is_compatible = kt.can_do(alg)
             # To do: public key for a private key operation
-            if key_is_compatible and category == alg.category:
+            if key_is_compatible and alg.can_do(category):
                 # Compatible key and operation, unsupported algorithm
                 for dep in automatic_dependencies(alg.base_expression):
                     yield self.make_test_case(alg, category,
@@ -403,7 +403,7 @@
                 yield self.make_test_case(alg, category,
                                           self.Reason.INVALID,
                                           kt=kt)
-            elif category == alg.category:
+            elif alg.can_do(category):
                 # Incompatible key, compatible operation, supported algorithm
                 yield self.make_test_case(alg, category,
                                           self.Reason.INCOMPATIBLE,