Add _AT_LEAST_THIS_LENGTH_ macros to PSA constants test

Signed-off-by: Steven Cooreman <steven.cooreman@silabs.com>
diff --git a/programs/psa/psa_constant_names_generated.c b/programs/psa/psa_constant_names_generated.c
index 6b0c0b2..b12ef0a 100644
--- a/programs/psa/psa_constant_names_generated.c
+++ b/programs/psa/psa_constant_names_generated.c
@@ -150,20 +150,37 @@
     unsigned long length_modifier = NO_LENGTH_MODIFIER;
     if (PSA_ALG_IS_MAC(alg)) {
         core_alg = PSA_ALG_TRUNCATED_MAC(alg, 0);
-        if (core_alg != alg) {
+        if (alg & PSA_ALG_MAC_MINIMUM_LENGTH_FLAG) {
             append(&buffer, buffer_size, &required_size,
-                   "PSA_ALG_TRUNCATED_MAC(", 22);
+                   "PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(", 33);
             length_modifier = PSA_MAC_TRUNCATED_LENGTH(alg);
+        } else {
+            if (core_alg != alg) {
+                append(&buffer, buffer_size, &required_size,
+                       "PSA_ALG_TRUNCATED_MAC(", 22);
+                length_modifier = PSA_MAC_TRUNCATED_LENGTH(alg);
+            }
         }
     } else if (PSA_ALG_IS_AEAD(alg)) {
         core_alg = PSA_ALG_AEAD_WITH_DEFAULT_LENGTH_TAG(alg);
-        if (core_alg == 0) {
-            /* For unknown AEAD algorithms, there is no "default tag length". */
-            core_alg = alg;
-        } else if (core_alg != alg) {
-            append(&buffer, buffer_size, &required_size,
-                   "PSA_ALG_AEAD_WITH_SHORTENED_TAG(", 32);
-            length_modifier = PSA_AEAD_TAG_LENGTH(alg);
+        if (alg & PSA_ALG_AEAD_MINIMUM_LENGTH_FLAG) {
+            if (core_alg == 0) {
+                /* For unknown AEAD algorithms, there is no "default tag length". */
+                core_alg = alg;
+            } else {
+                append(&buffer, buffer_size, &required_size,
+                       "PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(", 43);
+                length_modifier = PSA_AEAD_TAG_LENGTH(alg);
+            }
+        } else {
+            if (core_alg == 0) {
+                /* For unknown AEAD algorithms, there is no "default tag length". */
+                core_alg = alg;
+            } else if (core_alg != alg) {
+                append(&buffer, buffer_size, &required_size,
+                       "PSA_ALG_AEAD_WITH_SHORTENED_TAG(", 32);
+                length_modifier = PSA_AEAD_TAG_LENGTH(alg);
+            }
         }
     } else if (PSA_ALG_IS_KEY_AGREEMENT(alg) &&
                !PSA_ALG_IS_RAW_KEY_AGREEMENT(alg)) {
diff --git a/scripts/generate_psa_constants.py b/scripts/generate_psa_constants.py
index 01c5a32..ddcf625 100755
--- a/scripts/generate_psa_constants.py
+++ b/scripts/generate_psa_constants.py
@@ -100,20 +100,37 @@
     unsigned long length_modifier = NO_LENGTH_MODIFIER;
     if (PSA_ALG_IS_MAC(alg)) {
         core_alg = PSA_ALG_TRUNCATED_MAC(alg, 0);
-        if (core_alg != alg) {
+        if (alg & PSA_ALG_MAC_MINIMUM_LENGTH_FLAG) {
             append(&buffer, buffer_size, &required_size,
-                   "PSA_ALG_TRUNCATED_MAC(", 22);
+                   "PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(", 33);
             length_modifier = PSA_MAC_TRUNCATED_LENGTH(alg);
+        } else {
+            if (core_alg != alg) {
+                append(&buffer, buffer_size, &required_size,
+                       "PSA_ALG_TRUNCATED_MAC(", 22);
+                length_modifier = PSA_MAC_TRUNCATED_LENGTH(alg);
+            }
         }
     } else if (PSA_ALG_IS_AEAD(alg)) {
         core_alg = PSA_ALG_AEAD_WITH_DEFAULT_LENGTH_TAG(alg);
-        if (core_alg == 0) {
-            /* For unknown AEAD algorithms, there is no "default tag length". */
-            core_alg = alg;
-        } else if (core_alg != alg) {
-            append(&buffer, buffer_size, &required_size,
-                   "PSA_ALG_AEAD_WITH_SHORTENED_TAG(", 32);
-            length_modifier = PSA_AEAD_TAG_LENGTH(alg);
+        if (alg & PSA_ALG_AEAD_MINIMUM_LENGTH_FLAG) {
+            if (core_alg == 0) {
+                /* For unknown AEAD algorithms, there is no "default tag length". */
+                core_alg = alg;
+            } else {
+                append(&buffer, buffer_size, &required_size,
+                       "PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(", 43);
+                length_modifier = PSA_AEAD_TAG_LENGTH(alg);
+            }
+        } else {
+            if (core_alg == 0) {
+                /* For unknown AEAD algorithms, there is no "default tag length". */
+                core_alg = alg;
+            } else if (core_alg != alg) {
+                append(&buffer, buffer_size, &required_size,
+                       "PSA_ALG_AEAD_WITH_SHORTENED_TAG(", 32);
+                length_modifier = PSA_AEAD_TAG_LENGTH(alg);
+            }
         }
     } else if (PSA_ALG_IS_KEY_AGREEMENT(alg) &&
                !PSA_ALG_IS_RAW_KEY_AGREEMENT(alg)) {
diff --git a/tests/scripts/test_psa_constant_names.py b/tests/scripts/test_psa_constant_names.py
index 537f9e9..9e8d7f8 100755
--- a/tests/scripts/test_psa_constant_names.py
+++ b/tests/scripts/test_psa_constant_names.py
@@ -101,7 +101,7 @@
         # PSA_ALG_IS_xxx macros, but are also not currently assigned and are
         # not likely to be assigned in the near future.
         self.hash_algorithms = set(['0x020000fe']) # 0x020000ff is PSA_ALG_ANY_HASH
-        self.mac_algorithms = set(['0x0300ffff'])
+        self.mac_algorithms = set(['0x03007fff'])
         self.ka_algorithms = set(['0x09fc0000'])
         self.kdf_algorithms = set(['0x080000ff'])
         # For AEAD algorithms, the only variability is over the tag length,
@@ -146,6 +146,8 @@
         self.arguments_for = {
             'mac_length': ['1', '63'],
             'tag_length': ['1', '63'],
+            'min_mac_length': ['1', '63'],
+            'min_tag_length': ['1', '63'],
         }
 
     def get_names(self, type_word):