1 | // |
2 | // X509CertificateTest.cpp |
3 | // |
4 | // $Id: //poco/1.4/NetSSL_OpenSSL/testsuite/src/X509CertificateTest.cpp#1 $ |
5 | // |
6 | // Copyright (c) 2017, Applied Informatics Software Engineering GmbH. |
7 | // and Contributors. |
8 | // |
9 | // SPDX-License-Identifier: BSL-1.0 |
10 | // |
11 | |
12 | |
13 | #include "X509CertificateTest.h" |
14 | #include "Poco/CppUnit/TestCaller.h" |
15 | #include "Poco/CppUnit/TestSuite.h" |
16 | #include "Poco/Net/X509Certificate.h" |
17 | #include <openssl/opensslv.h> |
18 | #include <sstream> |
19 | |
20 | using namespace Poco::Net; |
21 | |
22 | |
23 | static const std::string BADSSL_PEM( |
24 | "-----BEGIN CERTIFICATE-----\n" |
25 | "MIIHGjCCBgKgAwIBAgIQC2as9L3V1BSoMGn+fB4NRjANBgkqhkiG9w0BAQ0FADBN\n" |
26 | "MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMScwJQYDVQQDEx5E\n" |
27 | "aWdpQ2VydCBTSEEyIFNlY3VyZSBTZXJ2ZXIgQ0EwHhcNMTcwMzE4MDAwMDAwWhcN\n" |
28 | "MjAwMzI1MTIwMDAwWjBnMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5p\n" |
29 | "YTEVMBMGA1UEBxMMV2FsbnV0IENyZWVrMRUwEwYDVQQKEwxMdWNhcyBHYXJyb24x\n" |
30 | "FTATBgNVBAMMDCouYmFkc3NsLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC\n" |
31 | "AQoCggEBAMIE7PiM7gTCs9hQ1XBYzJMY61yoaEmwIrX5lZ6xKyx2PmzAS2BMTOqy\n" |
32 | "tMAPgLaw+XLJhgL5XEFdEyt/ccRLvOmULlA3pmccYYz2QULFRtMWhyefdOsKnRFS\n" |
33 | "JiFzbIRMeVXk0WvoBj1IFVKtsyjbqv9u/2CVSndrOfEk0TG23U3AxPxTuW1CrbV8\n" |
34 | "/q71FdIzSOciccfCFHpsKOo3St/qbLVytH5aohbcabFXRNsKEqveww9HdFxBIuGa\n" |
35 | "+RuT5q0iBikusbpJHAwnnqP7i/dAcgCskgjZjFeEU4EFy+b+a1SYQCeFxxC7c3Dv\n" |
36 | "aRhBB0VVfPlkPz0sw6l865MaTIbRyoUCAwEAAaOCA9owggPWMB8GA1UdIwQYMBaA\n" |
37 | "FA+AYRyCMWHVLyjnjUY4tCzhxtniMB0GA1UdDgQWBBSd7sF7gQs6R2lxGH0RN5O8\n" |
38 | "pRs/+zAjBgNVHREEHDAaggwqLmJhZHNzbC5jb22CCmJhZHNzbC5jb20wDgYDVR0P\n" |
39 | "AQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjBrBgNVHR8E\n" |
40 | "ZDBiMC+gLaArhilodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vc3NjYS1zaGEyLWc1\n" |
41 | "LmNybDAvoC2gK4YpaHR0cDovL2NybDQuZGlnaWNlcnQuY29tL3NzY2Etc2hhMi1n\n" |
42 | "NS5jcmwwTAYDVR0gBEUwQzA3BglghkgBhv1sAQEwKjAoBggrBgEFBQcCARYcaHR0\n" |
43 | "cHM6Ly93d3cuZGlnaWNlcnQuY29tL0NQUzAIBgZngQwBAgMwfAYIKwYBBQUHAQEE\n" |
44 | "cDBuMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wRgYIKwYB\n" |
45 | "BQUHMAKGOmh0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFNIQTJT\n" |
46 | "ZWN1cmVTZXJ2ZXJDQS5jcnQwDAYDVR0TAQH/BAIwADCCAfcGCisGAQQB1nkCBAIE\n" |
47 | "ggHnBIIB4wHhAHcApLkJkLQYWBSHuxOizGdwCjw1mAT5G9+443fNDsgN3BAAAAFa\n" |
48 | "37GUmAAABAMASDBGAiEAlzAI5gaOsmMH2II7yr08jlqKgxeZT5zAtd9obFeUfMgC\n" |
49 | "IQChMLfMCBbgv8Fo+7YoGzXJrNJJXDDBC+R/miHp2PA8BwB2AFYUBpov18Ls0/Xh\n" |
50 | "vUSyPsdGdrm8mRFcwO+UmFXWidDdAAABWt+xlX0AAAQDAEcwRQIgWBrOlMeBTCBJ\n" |
51 | "ezx+6OwzmD1QSl7/Vq2k/xACoGInSjsCIQCii59Rjt8rZxNIHMQE6/lnYHWyCqEv\n" |
52 | "rNAJiUOrJAxJ3QB1AO5Lvbd1zmC64UJpH6vhnmajD35fsHLYgwDEe4l6qP3LAAAB\n" |
53 | "Wt+xlqkAAAQDAEYwRAIgEklGobMohZiTQwTgizi4Sfy2CQ/fL1K1EM2yZGrvSCAC\n" |
54 | "IGkDXy8uSUh3S09pAODVLHeyMYX8fdGM3UU1uv8ReNH3AHcAu9nfvB+KcbWTlCOX\n" |
55 | "qpJ7RzhXlQqrUugakJZkNo4e0YUAAAFa37GUwQAABAMASDBGAiEA2wazyXDaD1k3\n" |
56 | "4UVG0AJH+HhNBb728PHxuTJYGffXCckCIQDOb7subG8AQJFc5zWKeKPhnHhP2R56\n" |
57 | "28tXqM8mzCQGzzANBgkqhkiG9w0BAQ0FAAOCAQEAyA7NyduD8+zjNI/uclW9WkvG\n" |
58 | "6Oolon0vvbs+BGvCl5iY/3BBIxNTWPeRBDE0P+zOkceqGqjENce/d1O5I/H+oFZR\n" |
59 | "Y0fLjtILwg/BH5QKoRWJF/rqvu7wlSqnxlYGDducs2hY2WgtIl/BntMaDQXcyzXP\n" |
60 | "O+Pjbq0JLb6/Enss558t3DNIKvtspDidxnQIPBzKBVx8prG1C0ng4S+HmZYg166W\n" |
61 | "mShTOeNNQMYPIUr44ICQkw82gYuAsjsgxEEjAHo0zrkHlA3cnwXeERAX3qEUQ8WH\n" |
62 | "Dw/Py3T1TqiODDqvLLE/sFYUwqDaSdaaOo/geYvJmfqOYXQoaz2t1ptYXdvsfg==\n" |
63 | "-----END CERTIFICATE-----\n" |
64 | ); |
65 | |
66 | |
67 | X509CertificateTest::X509CertificateTest(const std::string& name): CppUnit::TestCase(name) |
68 | { |
69 | } |
70 | |
71 | |
72 | X509CertificateTest::~X509CertificateTest() |
73 | { |
74 | } |
75 | |
76 | |
77 | void X509CertificateTest::testVerify() |
78 | { |
79 | std::istringstream certStream(BADSSL_PEM); |
80 | X509Certificate cert(certStream); |
81 | |
82 | assertTrue (cert.verify("badssl.com" )); |
83 | assertTrue (cert.verify("host.badssl.com" )); |
84 | |
85 | #if OPENSSL_VERSION_NUMBER < 0x10002000L |
86 | assertTrue (cert.verify("wrong.host.badssl.com" )); |
87 | #else |
88 | assertTrue (!cert.verify("wrong.host.badssl.com" )); |
89 | #endif |
90 | } |
91 | |
92 | |
93 | void X509CertificateTest::setUp() |
94 | { |
95 | } |
96 | |
97 | |
98 | void X509CertificateTest::tearDown() |
99 | { |
100 | } |
101 | |
102 | |
103 | CppUnit::Test* X509CertificateTest::suite() |
104 | { |
105 | CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("X509CertificateTest" ); |
106 | |
107 | CppUnit_addTest(pSuite, X509CertificateTest, testVerify); |
108 | |
109 | return pSuite; |
110 | } |
111 | |