diff --git a/tests/data_files/Makefile b/tests/data_files/Makefile index 130852ed5c..2f9c43586e 100644 --- a/tests/data_files/Makefile +++ b/tests/data_files/Makefile @@ -101,6 +101,9 @@ server2-in-database-revoked.crt: server2-in-database-revoked.csr $(test_ca_confi $(OPENSSL) ca -batch -config $(test_ca_config_file) -extensions server_cert -cert test-ca-sha256.crt -keyfile $(test_ca_key_file_rsa) -days 3653 -notext -md sha256 -passin "pass:$(test_ca_pwd_rsa)" -in $< -out $@ $(OPENSSL) ca -config $(test_ca_config_file) -passin "pass:$(test_ca_pwd_rsa)" -cert test-ca-sha256.crt -notext -keyfile $(test_ca_key_file_rsa) -revoke $@ all_final += server2-in-database-revoked.crt +server2_server2-in-database_server2-in-database-revoked.crt: server2.crt server2-in-database.crt server2-in-database-revoked.crt + cat $^ > $@ +all_final += server2_server2-in-database_server2-in-database-revoked.crt ################################################################ #### Generate OCSP responses using existing certificates @@ -150,6 +153,9 @@ all_intermediate += ocsp-req-for-server2.der ocsp-req-for-server2-in-database-revoked.der: server2-in-database-revoked.crt test-ca-sha256.crt $(OPENSSL) ocsp -issuer test-ca-sha256.crt -cert $< -no_nonce -reqout $@ all_intermediate += ocsp-req-for-server2-in-database-revoked.der +ocsp-req-for-good-revoked-unknown.der: server2.crt server2-in-database.crt server2-in-database-revoked.crt test-ca-sha256.crt + $(OPENSSL) ocsp -issuer test-ca-sha256.crt -cert server2.crt -cert server2-in-database.crt -cert server2-in-database-revoked.crt -no_nonce -reqout $@ +all_intermediate += ocsp-req-for-good-revoked-unknown.der ocsp-resp-future-produced-at-this-update.der: ocsp-req-for-server2-in-database.der test-ca-index.txt test-ca-sha256.crt $(FAKETIME) -f "+9y" $(OPENSSL) ocsp -rsigner test-ca-sha256.crt -index test-ca-index.txt -rkey $(test_ca_key_file_rsa) -CA test-ca-sha256.crt -noverify -reqin $< -respout $@ @@ -168,6 +174,9 @@ all_final += ocsp-resp-revoked-cert.der ocsp-resp-unknown-cert.der: ocsp-req-for-server2.der test-ca-index.txt test-ca-sha256.crt $(OPENSSL) ocsp -rsigner test-ca-sha256.crt -index test-ca-index.txt -rkey $(test_ca_key_file_rsa) -CA test-ca-sha256.crt -noverify -reqin $< -respout $@ all_final += ocsp-resp-unknown-cert.der +ocsp-resp-good-revoked-unknown.der: ocsp-req-for-good-revoked-unknown.der test-ca-index.txt test-ca-sha256.crt + $(OPENSSL) ocsp -rsigner test-ca-sha256.crt -index test-ca-index.txt -rkey $(test_ca_key_file_rsa) -CA test-ca-sha256.crt -noverify -reqin $< -respout $@ +all_final += ocsp-resp-good-revoked-unknown.der ################################################################ #### Meta targets diff --git a/tests/data_files/ocsp-req-for-good-revoked-unknown.der b/tests/data_files/ocsp-req-for-good-revoked-unknown.der new file mode 100644 index 0000000000..bc18a49012 Binary files /dev/null and b/tests/data_files/ocsp-req-for-good-revoked-unknown.der differ diff --git a/tests/data_files/ocsp-resp-good-revoked-unknown.der b/tests/data_files/ocsp-resp-good-revoked-unknown.der new file mode 100644 index 0000000000..36a4c723c2 Binary files /dev/null and b/tests/data_files/ocsp-resp-good-revoked-unknown.der differ diff --git a/tests/data_files/server2_server2-in-database_server2-in-database-revoked.crt b/tests/data_files/server2_server2-in-database_server2-in-database-revoked.crt new file mode 100644 index 0000000000..9dc022e946 --- /dev/null +++ b/tests/data_files/server2_server2-in-database_server2-in-database-revoked.crt @@ -0,0 +1,127 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: 2 (0x2) + Signature Algorithm: sha1WithRSAEncryption + Issuer: C=NL, O=PolarSSL, CN=PolarSSL Test CA + Validity + Not Before: Feb 12 14:44:06 2011 GMT + Not After : Feb 12 14:44:06 2021 GMT + Subject: C=NL, O=PolarSSL, CN=localhost + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + RSA Public Key: (2048 bit) + Modulus (2048 bit): + 00:c1:4d:a3:dd:e7:cd:1d:d1:04:d7:49:72:b8:99: + ac:0e:78:e4:3a:3c:4a:cf:3a:13:16:d0:5a:e4:cd: + a3:00:88:a7:ee:1e:6b:96:a7:52:b4:90:ef:2d:72: + 7a:3e:24:9a:fc:b6:34:ac:24:f5:77:e0:26:64:8c: + 9c:b0:28:7d:a1:da:ea:8c:e6:c9:1c:96:bc:fe:c1: + 04:52:b3:36:d4:a3:fa:e1:b1:76:d8:90:c1:61:b4: + 66:52:36:a2:26:53:aa:ab:74:5e:07:7d:19:82:db: + 2a:d8:1f:a0:d9:0d:1c:2d:49:66:f7:5b:25:73:46: + e8:0b:8a:4f:69:0c:b5:00:90:e1:da:82:10:66:7d: + ae:54:2b:8b:65:79:91:a1:e2:61:c3:cd:40:49:08: + ee:68:0c:f1:8b:86:d2:46:bf:d0:b8:aa:11:03:1e: + 7f:56:a8:1a:1e:44:18:0f:0f:85:8b:da:8b:44:5e: + e2:18:c6:62:2f:c7:66:8d:fa:5d:d8:7d:f3:27:89: + 29:01:c5:90:0e:3f:27:f1:30:c8:4a:0e:ef:d6:de: + c7:c7:27:6b:c7:05:3d:7a:c4:02:3c:9a:1d:3e:0f: + e8:34:98:5b:cb:73:4b:52:96:d8:11:a2:2c:80:88: + 69:39:5a:d3:0f:b0:de:59:2f:11:c7:f7:ea:12:01: + 30:97 + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Basic Constraints: + CA:FALSE + X509v3 Subject Key Identifier: + A5:05:E8:64:B8:DC:DF:60:0F:50:12:4D:60:A8:64:AF:4D:8B:43:93 + X509v3 Authority Key Identifier: + keyid:B4:5A:E4:A5:B3:DE:D2:52:F6:B9:D5:A6:95:0F:EB:3E:BC:C7:FD:FF + + Signature Algorithm: sha1WithRSAEncryption + 9c:67:5c:29:58:a0:79:1b:a7:bd:1c:a8:1a:ec:19:72:f2:6c: + 0e:f8:73:36:ce:e5:17:4b:12:01:6c:ee:b1:d5:4b:da:fe:73: + 6f:77:96:e4:bf:29:d9:62:2d:27:19:a8:0c:d8:57:29:70:51: + f4:56:bc:a3:28:5a:11:d8:2a:9d:dd:10:84:b8:c5:35:e4:eb: + fe:73:5f:18:6f:f5:1c:3c:48:67:3c:aa:7e:af:21:31:e4:d5: + 2d:66:3d:eb:ed:7a:48:1a:b1:8e:58:89:64:2e:33:78:78:61: + 59:51:1f:71:c7:10:c0:03:d5:39:c0:7b:17:d7:1c:70:c5:40: + 67:be:05:dd:62:01:bc:f5:fe:c1:fd:1f:c9:78:4a:dc:17:e9: + e8:2f:4c:ad:cc:c1:74:70:90:a9:2f:8c:a6:84:0c:0f:40:4d: + b6:71:d2:62:3c:2c:6b:31:4a:e0:aa:7b:da:fd:77:28:e6:b6: + d7:78:ec:9d:69:d5:1b:a5:cf:70:8b:cd:a4:5c:54:8b:92:45: + 14:1f:68:3f:27:78:cf:5c:d5:2f:e2:27:f6:a6:4d:5a:89:c4: + 0d:4a:39:d3:92:e7:bf:34:5a:13:df:48:0a:c0:fa:0e:2a:02: + 64:a3:7a:57:37:a7:8c:16:a6:16:bc:ce:1b:98:c2:35:6e:5f: + a2:47:1b:47 +-----BEGIN CERTIFICATE----- +MIIDNzCCAh+gAwIBAgIBAjANBgkqhkiG9w0BAQUFADA7MQswCQYDVQQGEwJOTDER +MA8GA1UEChMIUG9sYXJTU0wxGTAXBgNVBAMTEFBvbGFyU1NMIFRlc3QgQ0EwHhcN +MTEwMjEyMTQ0NDA2WhcNMjEwMjEyMTQ0NDA2WjA0MQswCQYDVQQGEwJOTDERMA8G +A1UEChMIUG9sYXJTU0wxEjAQBgNVBAMTCWxvY2FsaG9zdDCCASIwDQYJKoZIhvcN +AQEBBQADggEPADCCAQoCggEBAMFNo93nzR3RBNdJcriZrA545Do8Ss86ExbQWuTN +owCIp+4ea5anUrSQ7y1yej4kmvy2NKwk9XfgJmSMnLAofaHa6ozmyRyWvP7BBFKz +NtSj+uGxdtiQwWG0ZlI2oiZTqqt0Xgd9GYLbKtgfoNkNHC1JZvdbJXNG6AuKT2kM +tQCQ4dqCEGZ9rlQri2V5kaHiYcPNQEkI7mgM8YuG0ka/0LiqEQMef1aoGh5EGA8P +hYvai0Re4hjGYi/HZo36Xdh98yeJKQHFkA4/J/EwyEoO79bex8cna8cFPXrEAjya +HT4P6DSYW8tzS1KW2BGiLICIaTla0w+w3lkvEcf36hIBMJcCAwEAAaNNMEswCQYD +VR0TBAIwADAdBgNVHQ4EFgQUpQXoZLjc32APUBJNYKhkr02LQ5MwHwYDVR0jBBgw +FoAUtFrkpbPe0lL2udWmlQ/rPrzH/f8wDQYJKoZIhvcNAQEFBQADggEBAJxnXClY +oHkbp70cqBrsGXLybA74czbO5RdLEgFs7rHVS9r+c293luS/KdliLScZqAzYVylw +UfRWvKMoWhHYKp3dEIS4xTXk6/5zXxhv9Rw8SGc8qn6vITHk1S1mPevtekgasY5Y +iWQuM3h4YVlRH3HHEMAD1TnAexfXHHDFQGe+Bd1iAbz1/sH9H8l4StwX6egvTK3M +wXRwkKkvjKaEDA9ATbZx0mI8LGsxSuCqe9r9dyjmttd47J1p1Rulz3CLzaRcVIuS +RRQfaD8neM9c1S/iJ/amTVqJxA1KOdOS5780WhPfSArA+g4qAmSjelc3p4wWpha8 +zhuYwjVuX6JHG0c= +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIELzCCAxegAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwOzELMAkGA1UEBhMCTkwx +ETAPBgNVBAoMCFBvbGFyU1NMMRkwFwYDVQQDDBBQb2xhclNTTCBUZXN0IENBMB4X +DTE4MDMwMTIyMDYwNVoXDTI4MDMwMTIyMDYwNVowQjELMAkGA1UEBhMCTkwxETAP +BgNVBAoMCFBvbGFyU1NMMSAwHgYDVQQDDBdNYmVkIFRMUyBPQ1NQIHRlc3QgY2Vy +dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFNo93nzR3RBNdJcriZ +rA545Do8Ss86ExbQWuTNowCIp+4ea5anUrSQ7y1yej4kmvy2NKwk9XfgJmSMnLAo +faHa6ozmyRyWvP7BBFKzNtSj+uGxdtiQwWG0ZlI2oiZTqqt0Xgd9GYLbKtgfoNkN +HC1JZvdbJXNG6AuKT2kMtQCQ4dqCEGZ9rlQri2V5kaHiYcPNQEkI7mgM8YuG0ka/ +0LiqEQMef1aoGh5EGA8PhYvai0Re4hjGYi/HZo36Xdh98yeJKQHFkA4/J/EwyEoO +79bex8cna8cFPXrEAjyaHT4P6DSYW8tzS1KW2BGiLICIaTla0w+w3lkvEcf36hIB +MJcCAwEAAaOCATQwggEwMAkGA1UdEwQCMAAwEQYJYIZIAYb4QgEBBAQDAgZAMDQG +CWCGSAGG+EIBDQQnFiVNYmVkIFRMUyBHZW5lcmF0ZWQgU2VydmVyIENlcnRpZmlj +YXRlMB0GA1UdDgQWBBSlBehkuNzfYA9QEk1gqGSvTYtDkzBjBgNVHSMEXDBagBS0 +WuSls97SUva51aaVD+s+vMf9/6E/pD0wOzELMAkGA1UEBhMCTkwxETAPBgNVBAoM +CFBvbGFyU1NMMRkwFwYDVQQDDBBQb2xhclNTTCBUZXN0IENBggEAMA4GA1UdDwEB +/wQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcDATAxBggrBgEFBQcBAQQlMCMwIQYI +KwYBBQUHMAGGFWh0dHA6Ly9sb2NhbGhvc3Q6NDQ1NTANBgkqhkiG9w0BAQsFAAOC +AQEAjAC04LUv828n4PKfEsdfls6gCY/3wNDWECLBu/94EHSasqh83W05uWvLoTMq +98kPU/ZBc85EiAKABKc27Aw0x5/hvxupcdrOREfb01yxpq6gIPbpredR5rfKXzFx +4zmEujQzxrk8W3evTxD4M69yR1MbPmbyvxgr5yJPOEKuNbGkk9lXgg8RClBeRlZh +TTTyuYvL77RHqzJs6xLg9q712Sc2e4XSWqmE+bwCALjMUGnU7TQZS3sgxJYZP4/K +0MzXmBhUS+28Ih5c2Epl8LQid1n1ohL8RTEqxtPQGCIsTVx+wRKph1W0rrkEIMiw +2zyVqis29m+s4bI4oZLGvmV5Pg== +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIENzCCAx+gAwIBAgICEAEwDQYJKoZIhvcNAQELBQAwOzELMAkGA1UEBhMCTkwx +ETAPBgNVBAoMCFBvbGFyU1NMMRkwFwYDVQQDDBBQb2xhclNTTCBUZXN0IENBMB4X +DTE4MDMwNjIyMDc0MVoXDTI4MDMwNjIyMDc0MVowSjELMAkGA1UEBhMCTkwxETAP +BgNVBAoMCFBvbGFyU1NMMSgwJgYDVQQDDB9NYmVkIFRMUyBPQ1NQIHJldm9rZWQg +dGVzdCBjZXJ0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwU2j3efN +HdEE10lyuJmsDnjkOjxKzzoTFtBa5M2jAIin7h5rlqdStJDvLXJ6PiSa/LY0rCT1 +d+AmZIycsCh9odrqjObJHJa8/sEEUrM21KP64bF22JDBYbRmUjaiJlOqq3ReB30Z +gtsq2B+g2Q0cLUlm91slc0boC4pPaQy1AJDh2oIQZn2uVCuLZXmRoeJhw81ASQju +aAzxi4bSRr/QuKoRAx5/VqgaHkQYDw+Fi9qLRF7iGMZiL8dmjfpd2H3zJ4kpAcWQ +Dj8n8TDISg7v1t7HxydrxwU9esQCPJodPg/oNJhby3NLUpbYEaIsgIhpOVrTD7De +WS8Rx/fqEgEwlwIDAQABo4IBNDCCATAwCQYDVR0TBAIwADARBglghkgBhvhCAQEE +BAMCBkAwNAYJYIZIAYb4QgENBCcWJU1iZWQgVExTIEdlbmVyYXRlZCBTZXJ2ZXIg +Q2VydGlmaWNhdGUwHQYDVR0OBBYEFKUF6GS43N9gD1ASTWCoZK9Ni0OTMGMGA1Ud +IwRcMFqAFLRa5KWz3tJS9rnVppUP6z68x/3/oT+kPTA7MQswCQYDVQQGEwJOTDER +MA8GA1UECgwIUG9sYXJTU0wxGTAXBgNVBAMMEFBvbGFyU1NMIFRlc3QgQ0GCAQAw +DgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMDEGCCsGAQUFBwEB +BCUwIzAhBggrBgEFBQcwAYYVaHR0cDovL2xvY2FsaG9zdDo0NDU1MA0GCSqGSIb3 +DQEBCwUAA4IBAQBX02w6x7vVLYF6urkmd21LEIel/LAj/7LdgsRteVvg/qj4UxxE +liNVRnlsADJiZyV3GfzYjCy8HH9cgwTkj9mKcSAZCtNXS1W8RPuM3f2kj2teCYoh +Jnkxd7Uj44LBXRmsEvp0xx40PlNwiiO3CSccnEOj8Qz6809iTmOmgDC8ml8OLK5L +G9a2Nw+KAOckB5M7JqXxXCliywZXSByarqrRnpr8oswhQMrh1bUEdiHWGvd5v654 +76OalKVAKZCx9tU7pNz3K1o6jMXhU8v2huWTxLcU6iHVkjYuvVTWDTPIcVz/WcOo +2VxpCJqK1FIAWZSvcVfJnltY1krI5uOXf8Q8 +-----END CERTIFICATE----- diff --git a/tests/suites/test_suite_x509parse_ocsp.data b/tests/suites/test_suite_x509parse_ocsp.data index 4351c4f7cb..6fb21c9989 100644 --- a/tests/suites/test_suite_x509parse_ocsp.data +++ b/tests/suites/test_suite_x509parse_ocsp.data @@ -282,3 +282,6 @@ x509_ocsp_response_verify:"data_files/ocsp-resp-revoked-cert.der":"data_files/se X509 OCSP Response verification (SingleResponse unknown cert status) x509_ocsp_response_verify:"data_files/ocsp-resp-unknown-cert.der":"data_files/server2.crt":"data_files/test-ca-sha256.crt":"data_files/test-ca-sha256.crt":MBEDTLS_ERR_X509_OCSP_RESPONSE_VERIFY_FAILED:MBEDTLS_X509_BADOCSP_RESPONSE_UNKNOWN_CERT + +X509 OCSP Response verification (SingleResponse cert status good, revoked and unknown) +x509_ocsp_response_verify:"data_files/ocsp-resp-good-revoked-unknown.der":"data_files/server2_server2-in-database_server2-in-database-revoked.crt":"data_files/test-ca-sha256.crt":"data_files/test-ca-sha256.crt":MBEDTLS_ERR_X509_OCSP_RESPONSE_VERIFY_FAILED:MBEDTLS_X509_BADOCSP_RESPONSE_UNKNOWN_CERT | MBEDTLS_X509_BADOCSP_RESPONSE_REVOKED_CERT