diff --git a/tests/data_files/dir4/Readme b/tests/data_files/dir4/Readme index 7217b75eb..3f1f610b9 100644 --- a/tests/data_files/dir4/Readme +++ b/tests/data_files/dir4/Readme @@ -40,3 +40,8 @@ cert71.crt (max_pathlen=1) -> cert72.crt -> cert73.crt (self signed) -> cert74.c ``` 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 000000000..324b8843d --- /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 000000000..36a4bc217 --- /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 9446b5fed..398f1de2b 100644 --- a/tests/suites/test_suite_x509parse.data +++ b/tests/suites/test_suite_x509parse.data @@ -390,10 +390,14 @@ X509 CRT verify chain #8 (self signed maxpathlen root) 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: