diff --git a/ChangeLog.d/psa-crypto-key-policies.txt b/ChangeLog.d/psa-crypto-key-policies.txt
deleted file mode 100644
index 6186d46..0000000
--- a/ChangeLog.d/psa-crypto-key-policies.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-Features
-   * Added PSA_ALG_AEAD_WITH_MINIMUM_LENGTH_TAG and
-     PSA_ALG_MAC_WITH_MINIMUM_LENGTH_TAG as usage algorithms for declaring key
-     usage in PSA Crypto. These algorithm values describe that a key is allowed
-     to be used with any algorithm that matches the specified base algorithm
-     (e.g PSA_ALG_CCM for AEAD or PSA_ALG_CMAC for MAC) and has a tag length
-     which is at least as long as the one encoded in the MINIMUM_TAG_LENGTH
-     usage algorithm.
diff --git a/ChangeLog.d/psa-crypto-new-wildcard-policies.txt b/ChangeLog.d/psa-crypto-new-wildcard-policies.txt
new file mode 100644
index 0000000..f6aced9
--- /dev/null
+++ b/ChangeLog.d/psa-crypto-new-wildcard-policies.txt
@@ -0,0 +1,7 @@
+Features
+   * Added PSA_ALG_AEAD_WITH_MINIMUM_LENGTH_TAG and
+     PSA_ALG_MAC_WITH_MINIMUM_LENGTH_TAG as wildcard algorithms in PSA Crypto.
+     These algorithm values describe that a key is allowed to be used with any
+     algorithm that matches the specified base algorithm (e.g PSA_ALG_CCM for
+     AEAD or PSA_ALG_CMAC for MAC) and has a tag/MAC length which is at least as
+     long as the one encoded in the MINIMUM_TAG_LENGTH wildcard algorithm.
diff --git a/include/psa/crypto.h b/include/psa/crypto.h
index a8fe59a..4aad094 100644
--- a/include/psa/crypto.h
+++ b/include/psa/crypto.h
@@ -264,12 +264,14 @@
  * - An algorithm value permits this particular algorithm.
  * - An algorithm wildcard built from #PSA_ALG_ANY_HASH allows the specified
  *   signature scheme with any hash algorithm.
- * - An algorithm value for which PSA_ALG_IS_WILDCARD() evaluates to true
- *   allows any algorithm specified by that usage algorithm definition.
- *   E.g. a usage algorithm built from PSA_ALG_MAC_WITH_MINIMUM_LENGTH_TAG()
- *   allows using the key for any algorithm with the same base MAC algorithm as
- *   long as the used algorithm isn't truncated to less than the minimum tag
- *   length declared in the usage algorithm.
+ * - An algorithm built from #PSA_ALG_MAC_WITH_MINIMUM_LENGTH_TAG allows
+ *   any MAC algorithm from the same base class (e.g. CMAC) which
+ *   generates/verifies a MAC length greater than or equal to the length
+ *   encoded in the wildcard algorithm.
+ * - An algorithm built from #PSA_ALG_AEAD_WITH_MINIMUM_LENGTH_TAG allows
+ *   any AEAD algorithm from the same base class (e.g. CCM) which
+ *   generates/verifies a tag length greater than or equal to the length
+ *   encoded in the wildcard algorithm.
  *
  * This function overwrites any algorithm policy
  * previously set in \p attributes.
diff --git a/include/psa/crypto_values.h b/include/psa/crypto_values.h
index 368581c..e804dc4 100644
--- a/include/psa/crypto_values.h
+++ b/include/psa/crypto_values.h
@@ -933,32 +933,36 @@
     (((mac_alg) & PSA_ALG_MAC_TRUNCATION_MASK) >> PSA_MAC_TRUNCATION_OFFSET)
 
 /* In the encoding of a MAC algorithm, the bit corresponding to
- * PSA_ALG_MAC_MINIMUM_LENGTH_FLAG encodes the fact that the algorithm is
- * a usage algorithm, which allows any algorithm corresponding to the same
- * base class and a tag length greater or equal than the one encoded in
- * PSA_ALG_MAC_TRUNCATION_MASK. */
+ * #PSA_ALG_MAC_MINIMUM_LENGTH_FLAG encodes the fact that the algorithm is
+ * a wildcard algorithm, which allows any algorithm corresponding to the same
+ * base class and having a (potentially truncated) MAC length greater or equal
+ * than the one encoded in #PSA_ALG_MAC_TRUNCATION_MASK. */
 #define PSA_ALG_MAC_MINIMUM_LENGTH_FLAG         ((psa_algorithm_t)0x00008000)
 
-/** Macro to build a MAC minimum-tag-length usage algorithm.
+/** Macro to build a MAC minimum-MAC-length wildcard algorithm.
  *
- * A mininimum-tag-length MAC usage algorithm contains all MAC algorithms
- * sharing the same base algorithm, and where the tag length of the specific
- * algorithm is equal to or larger then the usage's minimum tag length.
+ * A mininimum-MAC-length MAC wildcard algorithm contains all MAC algorithms
+ * sharing the same base algorithm, and where the (potentially truncated) MAC
+ * length of the specific algorithm is equal to or larger then the wildcard
+ * algorithm's minimum MAC length.
  *
  * \param mac_alg       A MAC algorithm identifier (value of type
- *                      #psa_algorithm_t such that #PSA_ALG_IS_MAC(\p alg)
+ *                      #psa_algorithm_t such that #PSA_ALG_IS_MAC(\p mac_alg)
  *                      is true).
- * \param tag_length    Desired minimum length of the authentication tag in
- *                      bytes.
+ * \param mac_length    Desired minimum length of the message authentication
+ *                      code in bytes. This must be at most the full length of
+ *                      the MAC and must be at least an implementation-specified
+ *                      minimum. The implementation-specified minimum
+ *                      shall not be zero.
  *
- * \return              The corresponding MAC usage algorithm with the
+ * \return              The corresponding MAC wildcard algorithm with the
  *                      specified minimum length.
- * \return              Unspecified if \p alg is not a supported
- *                      MAC algorithm or if \p tag_length is not valid
+ * \return              Unspecified if \p mac_alg is not a supported MAC
+ *                      algorithm or if \p mac_length is too small or too large
  *                      for the specified MAC algorithm.
  */
-#define PSA_ALG_MAC_WITH_MINIMUM_LENGTH_TAG(mac_alg, tag_length) \
-    ( PSA_ALG_TRUNCATED_MAC(mac_alg, tag_length) | PSA_ALG_MAC_MINIMUM_LENGTH_FLAG )
+#define PSA_ALG_MAC_WITH_MINIMUM_LENGTH_TAG(mac_alg, mac_length) \
+    ( PSA_ALG_TRUNCATED_MAC(mac_alg, mac_length) | PSA_ALG_MAC_MINIMUM_LENGTH_FLAG )
 
 #define PSA_ALG_CIPHER_MAC_BASE                 ((psa_algorithm_t)0x03c00000)
 /** The CBC-MAC construction over a block cipher
@@ -1178,27 +1182,28 @@
     ref :
 
 /* In the encoding of an AEAD algorithm, the bit corresponding to
- * PSA_ALG_AEAD_MINIMUM_LENGTH_FLAG encodes the fact that the algorithm is
- * a usage algorithm, which allows any algorithm corresponding to the same
- * base class and a tag length greater or equal than the one encoded in
- * PSA_ALG_AEAD_TAG_LENGTH_MASK. */
+ * #PSA_ALG_AEAD_MINIMUM_LENGTH_FLAG encodes the fact that the algorithm is
+ * a wildcard algorithm, which allows any algorithm corresponding to the same
+ * base class and having a tag length greater than or equal to the one encoded
+ * in #PSA_ALG_AEAD_TAG_LENGTH_MASK. */
 #define PSA_ALG_AEAD_MINIMUM_LENGTH_FLAG        ((psa_algorithm_t)0x00008000)
 
-/** Macro to build an AEAD minimum-tag-length usage algorithm.
+/** Macro to build an AEAD minimum-tag-length wildcard algorithm.
  *
- * A mininimum-tag-length AEAD usage algorithm contains all AEAD algorithms
+ * A mininimum-tag-length AEAD wildcard algorithm contains all AEAD algorithms
  * sharing the same base algorithm, and where the tag length of the specific
- * algorithm is equal to or larger then the usage's minimum tag length.
+ * algorithm is equal to or larger then the minimum tag length specified by the
+ * wildcard algorithm.
  *
  * \param aead_alg      An AEAD algorithm identifier (value of type
- *                      #psa_algorithm_t such that #PSA_ALG_IS_AEAD(\p alg)
+ *                      #psa_algorithm_t such that #PSA_ALG_IS_AEAD(\p aead_alg)
  *                      is true).
  * \param tag_length    Desired minimum length of the authentication tag in
  *                      bytes.
  *
- * \return              The corresponding AEAD usage algorithm with the
+ * \return              The corresponding AEAD wildcard algorithm with the
  *                      specified minimum length.
- * \return              Unspecified if \p alg is not a supported
+ * \return              Unspecified if \p aead_alg is not a supported
  *                      AEAD algorithm or if \p tag_length is not valid
  *                      for the specified AEAD algorithm.
  */
@@ -1651,14 +1656,14 @@
  * \return This macro may return either 0 or 1 if \c alg is not a supported
  *         algorithm identifier.
  */
-#define PSA_ALG_IS_WILDCARD(alg)                          \
-    (PSA_ALG_IS_HASH_AND_SIGN(alg) ?                      \
-     PSA_ALG_SIGN_GET_HASH(alg) == PSA_ALG_ANY_HASH :     \
-      (PSA_ALG_IS_MAC(alg) ?                              \
-        (alg & PSA_ALG_MAC_MINIMUM_LENGTH_FLAG) != 0 :    \
-        (PSA_ALG_IS_AEAD(alg) ?                           \
-          (alg & PSA_ALG_AEAD_MINIMUM_LENGTH_FLAG) != 0 : \
-          (alg) == PSA_ALG_ANY_HASH)))
+#define PSA_ALG_IS_WILDCARD(alg)                      \
+    (PSA_ALG_IS_HASH_AND_SIGN(alg) ?                  \
+     PSA_ALG_SIGN_GET_HASH(alg) == PSA_ALG_ANY_HASH : \
+     PSA_ALG_IS_MAC(alg) ?                            \
+     (alg & PSA_ALG_MAC_MINIMUM_LENGTH_FLAG) != 0 :   \
+     PSA_ALG_IS_AEAD(alg) ?                           \
+     (alg & PSA_ALG_AEAD_MINIMUM_LENGTH_FLAG) != 0 :  \
+     (alg) == PSA_ALG_ANY_HASH)
 
 /**@}*/
 
