Add test case for root with max_pathlen=0
This was already working but not tested so far
(Test case from previous commit still failing.)
Test certificates generated with:
programs/pkey/gen_key type=ec ec_curve=secp256r1 filename=cert91.key
programs/pkey/gen_key type=ec ec_curve=secp256r1 filename=cert92.key
programs/x509/cert_write serial=91 output_file=cert91.crt is_ca=1 \
issuer_key=cert91.key issuer_name="CN=Root 9,O=mbed TLS,C=UK" \
selfsign=1 max_pathlen=0
programs/x509/cert_write serial=92 output_file=cert92.crt \
issuer_key=cert91.key issuer_name="CN=Root 9,O=mbed TLS,C=UK" \
subject_key=cert92.key subject_name="CN=EE 92,O=mbed TLS,C=UK"
diff --git a/tests/data_files/dir4/Readme b/tests/data_files/dir4/Readme
index 7217b75..3f1f610 100644
--- a/tests/data_files/dir4/Readme
+++ b/tests/data_files/dir4/Readme
@@ -40,3 +40,8 @@
```
cert81.crt -> cert82.crt (max_pathlen=0) -> cert83.crt
```
+
+9. zero pathlen constraint on trusted root (valid)
+```
+cert91.crt (max_pathlen=0) -> cert92.crt
+```
diff --git a/tests/data_files/dir4/cert91.crt b/tests/data_files/dir4/cert91.crt
new file mode 100644
index 0000000..324b884
--- /dev/null
+++ b/tests/data_files/dir4/cert91.crt
@@ -0,0 +1,30 @@
+-----BEGIN CERTIFICATE-----
+MIIFMDCCAxigAwIBAgIBWzANBgkqhkiG9w0BAQsFADAxMQ8wDQYDVQQDEwZSb290
+IDkxETAPBgNVBAoTCG1iZWQgVExTMQswCQYDVQQGEwJVSzAeFw0wMTAxMDEwMDAw
+MDBaFw0zMDEyMzEyMzU5NTlaMDExDzANBgNVBAMTBlJvb3QgOTERMA8GA1UEChMI
+bWJlZCBUTFMxCzAJBgNVBAYTAlVLMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC
+CgKCAgEAriINpPI+qGnaHxP+bRU3ZkkoaVBIckbrVY+KBa2BMyqXnbY4cmXUUxQY
+Su0JqfVt20e/z8ydIgyIe3j9dGsLAxDgc443NPb2v6Y3Deyn1CS75XpKskiy4Fzk
+eB3o2UzZFZP0hEIfgKvxHHlgm/dKnS+XIdvVgvVqrjwvHL9hLka3oFt+omUwJqq3
+OLhnrgR/CdJLip9UYegD7+7ft1yW4MCvlmtm96adg/aaLMHQ+9fSSFpSTwg8N49d
+zH7qBB002FF0QFYLXW8WMfGSSTuu/c5uQVWWPkVlQMFyAHfIv+/2OfXPERCJw/MQ
+VyidHIQ0VcUWVS981uEWZmBq3LKB3BTrHURo/nXeFhD5F1H4XUWyzY1jzemL+noE
+CKV/Kb8fADM03KxoQ6FF93ipTPCG3w2n8QgPrtbd0zfIweFopXykMLqySqfhQrw5
+Q4orMRiPimzeWohzS2X9WIbWVOodocPYl1qxK9uOHeYmuujapDVeGLYjcQbZuknO
+atrqan/4kMlsRuvFfg2Wx/aGjsuHKXfi/Z7hUgqlxpbQP4iCBFOADY42XT//a7jP
+pOWjXZMKQ7k1ZvAuVgQXNXpAxwLw4QEu5OGOQFkO9iwOhgK82ZwepweOXMYQUOV3
+gXjFnLwQrmPMkFmwK/gxBW4PCViVgHaV7lNUV8deB8T7OoYtmycCAwEAAaNTMFEw
+DwYDVR0TBAgwBgEB/wIBADAdBgNVHQ4EFgQU6Emig07wVTtIf18xo/EByrTqBIgw
+HwYDVR0jBBgwFoAU6Emig07wVTtIf18xo/EByrTqBIgwDQYJKoZIhvcNAQELBQAD
+ggIBABagh1vF6YDoCEPh92LOA8g1cNjQWthS05wpgLs0BOmIQFfOvDzCtmiTwWBM
+fmowjxhmz8um7CntjLZyh+eamh3u2jbRI8t9QrpJlsVtl46YR4I03FxNBH1fAiY/
+VnVhouJJlczD7m98EpHocq/zRj6tfubcSV3r/onKpT0Dyx6WndcfDIVwnxw0Wejo
+K8EnAtvIrPjgVxGNjLfopP/CHEXqLR70pJO06o/OZ9h81bFIcQoZyXMKlGALTZuj
+GlcEX6wzmKhHAAVXbq13LFYv0ZSxNIzTkMXV/1HoO08lN34CbwOd1K2LOoO6X/g8
+25lnutWD7KwBjvL/DMa2SZTqDiIVKe9l9+a2assg2Ko6/I2CKJnQrut8ZeX7knRn
+l+cw4Tsv1M6gNZFsLhrJ0yZZzSkZakOLonIAU9nTQyK7SKuJnO63SWEYptCZy8v/
+YaKGRTJhCvVtDnq0s9ebf/0YS1W7jIsIK3rCH7F5tAuaM0VTWJEdEYUrUHtniOav
+qe+Vz+2jaHapH+vYxXH5V+qAVIu9SlSwoOUrQsgYeKgey8cVNKKyK58M998Lua2z
+ufXROHnrJ37yJstDBP/rZ0dB1wh19UR9q87C4rQdDMPL4MH4sk6J6jqaK390dGoy
+WPzY8xlhOOXNShXA7JvGxLL8qRRRvYTNjHsvFU8QcUIl+LWc
+-----END CERTIFICATE-----
diff --git a/tests/data_files/dir4/cert92.crt b/tests/data_files/dir4/cert92.crt
new file mode 100644
index 0000000..36a4bc2
--- /dev/null
+++ b/tests/data_files/dir4/cert92.crt
@@ -0,0 +1,30 @@
+-----BEGIN CERTIFICATE-----
+MIIFKTCCAxGgAwIBAgIBXDANBgkqhkiG9w0BAQsFADAxMQ8wDQYDVQQDEwZSb290
+IDkxETAPBgNVBAoTCG1iZWQgVExTMQswCQYDVQQGEwJVSzAeFw0wMTAxMDEwMDAw
+MDBaFw0zMDEyMzEyMzU5NTlaMDAxDjAMBgNVBAMTBUVFIDkyMREwDwYDVQQKEwht
+YmVkIFRMUzELMAkGA1UEBhMCVUswggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK
+AoICAQCcIqRLAOv1kRafgs5tlbx4jEzgAzPnPRAbx2qcVLRwJczbmB48HMWvY2DA
+uxAql/NJ2704UY5MQXuVTOqkz+cTIT1qRaxpVDFcYXH76DXv9yxvOQkJYm8PIoPt
+ckDT4r00DOe5n4FEMkXNSVPVy4so4iFWrWBLe9gjpLIC27AcU2hDWSIjbN3aXzye
+FBCJhVAwZb2y95tawcV6YRLphOhDh1YgaacqfTHR/vQpe97ZP7cDd4SvoLSixO6X
+gZHz5Em6oSgMgGMcOtRBxm1RiVomIv27Dz+d83qYqmj+fqqe3HLPp4bYRajLfoPB
+3NL2cjO2LdqJfNbI/l5OxSDD0JJAKBJsZY6J1JFf+HA8om4mxWgoWRn/Cp+ySvuZ
+zVIEwJX+hvG8N7DK3tBA1Td0ZRsYK048yhd3EYVt84swHfS1EB5K+eGiP/sP/BH6
+NVJPttTB1a4y8e3SjG2y/WAoAevXV0/62SIy1vjt/sKnhOb0NcOhXXhkrB5tuqVA
+At3K9sR+iGvuwbHwjAvvvMvnWSSAbTQBwHYCqvGflLGui+pu7lKX7TtdyZXKthGJ
+X7OL7u++xrAlP2oeGiNVJj64E2zCCkcvm9uzRxB+f0Sa/ftO2e/XSG5UPO95aJ4x
+NA17sXIrxJEnvnFwjNHgHrr7G5yfINRIV62u4e5Z/E5KMcwWzQIDAQABo00wSzAJ
+BgNVHRMEAjAAMB0GA1UdDgQWBBSwG0Um+mccqaYjSEX8DSj1EejCXTAfBgNVHSME
+GDAWgBToSaKDTvBVO0h/XzGj8QHKtOoEiDANBgkqhkiG9w0BAQsFAAOCAgEAGtjq
+Ju136Gm1hTYhRIfE0zfqSYLJ+rGULVMv/Ror2Hm/hYw8/S59IWzw0MhrNOIot1Es
+bH+/aZ+lGgyoKoo2lsQR/zFdiJJEySmCmDWPVMZ1B5+T6zgdlgn0NGgjWnrkCdTu
+wYZVbg7i2H54MkuI+Mkn+u212KF/eNm13OuDXSbImhqmksMhqT8RGpjCcmPt6KOn
+IBqreagdD7RnfA48XiXG+Cx02bC1J8GuUyeJ2VbWWPDBmK/l01vn98C4LdGlxZbV
+IRSEktWsiR2PpsYWUjf7nH6Bd3j3ipB3KJDCrjf/XLYhx1gLMDJMq3tCI+YweQ/K
+jJACWlRRKE7eLxTKcwmK4Lr0aEpol5D+r4IVLWIbTwKMBs/bB7oXlqN+dHKCiRD/
+MKCLG7+G/rg/fdX8KT4idpjM75S/YfzEd6xFR+bguswZzB/UHR9nweq4FDD44dXr
+z9TiWxce+2rw/pnqEX9yDuIE+/p4mUYy13k4JCeIvp1zFS9iJGNiqjiYnc3Xs0o0
+SxgyAkLxVBJ1Kz1Wosjq4zx/ZRfIm7L+59kWRfqNhV83dnu/NDDNd1N6deS1E9Jm
+bAUU5BudGpd9Q/KPs1Hfs0YZsZC7xlxydAYXgOIVVDjg0PmS9P0ZPejPX3sslgp8
+3i8qWBo1ZdjA/sl4+GK85hgToGWy86aybvShCCc=
+-----END CERTIFICATE-----
diff --git a/tests/suites/test_suite_x509parse.data b/tests/suites/test_suite_x509parse.data
index 9446b5f..398f1de 100644
--- a/tests/suites/test_suite_x509parse.data
+++ b/tests/suites/test_suite_x509parse.data
@@ -390,10 +390,14 @@
depends_on:POLARSSL_PEM_C:POLARSSL_FS_IO:POLARSSL_SHA2_C
x509_crt_verify_chain:"data_files/dir4/cert61.crt data_files/dir4/cert63.crt data_files/dir4/cert62.crt":"data_files/dir4/cert61.crt":0
-X509 CRT verify chain #9 (self signed maxpathlen root)
+X509 CRT verify chain #9 (zero pathlen first intermediate, valid)
depends_on:POLARSSL_PEM_C:POLARSSL_FS_IO:POLARSSL_SHA2_C
x509_crt_verify_chain:"data_files/dir4/cert83.crt data_files/dir4/cert82.crt":"data_files/dir4/cert81.crt":0
+X509 CRT verify chain #10 (zero pathlen root, valid)
+depends_on:POLARSSL_PEM_C:POLARSSL_FS_IO:POLARSSL_SHA2_C
+x509_crt_verify_chain:"data_files/dir4/cert92.crt":"data_files/dir4/cert91.crt":0
+
X509 Parse Selftest
depends_on:POLARSSL_MD5_C:POLARSSL_PEM_C:POLARSSL_SELF_TEST
x509_selftest: