OpenVPN 3 Core Library
Loading...
Searching...
No Matches
test_mbedtls_x509certinfo.cpp
Go to the documentation of this file.
1// OpenVPN -- An application to securely tunnel IP networks
2// over a single port, with support for SSL/TLS-based
3// session authentication and key exchange,
4// packet encryption, packet authentication, and
5// packet compression.
6//
7// Copyright (C) 2012- OpenVPN Inc.
8//
9// SPDX-License-Identifier: MPL-2.0 OR AGPL-3.0-only WITH openvpn3-openssl-exception
10//
11//
12//
13// Basic unit test for the openvpn/openssl/pki/x509certinfo.hpp functions
14//
15
16#include <string>
17
18#include "test_common.hpp"
21
22using namespace openvpn;
23
24namespace unittests {
25
26std::string test_cert = "-----BEGIN CERTIFICATE-----\n"
27 "MIIFrjCCA5agAwIBAgIJFXABl4gwlJIEMA0GCSqGSIb3DQEBCwUAMHAxCzAJBgNV\n"
28 "BAYTAlVTMQswCQYDVQQIDAJDQTETMBEGA1UEBwwKUGxlYXNhbnRvbjEYMBYGA1UE\n"
29 "CgwPT3BlblZQTi1URVNULUNBMSUwIwYJKoZIhvcNAQkBFhZleGFtcGxlLmNhQGV4\n"
30 "YW1wbGUubmV0MB4XDTE5MTAwMjEyMzY0OFoXDTI5MDkyOTEyMzY0OFowezELMAkG\n"
31 "A1UEBhMCVVMxCzAJBgNVBAgMAkNBMRUwEwYDVQQKDAxPcGVuVlBOLVRFU1QxHTAb\n"
32 "BgNVBAMMFHNlcnZlci0xLmV4YW1wbGUubmV0MSkwJwYJKoZIhvcNAQkBFhpleGFt\n"
33 "cGxlLXNlcnZlckBleGFtcGxlLm5ldDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC\n"
34 "AQoCggEBAN7KKMU2A7X74KYn+agBvQmW2zr/OFH/PJn6sMk94aDAIWsa7KccuV8W\n"
35 "d/69XH2FXK2ygSd9df8kO8mGkDl1w5nC/LUk5V0KNqsZGLyNDRvulSFJ2eQChOOs\n"
36 "snOdpf17e/yzs08KY5RME9+HBWx2GpQQWHVsmqvPF+pPJnBctOm8azBOAUZRDBuj\n"
37 "TxCWtwLwVjnFHGSATETuvCiTPuDa9sbw5ibCLFz9ge94ptXcXEU6z+GuighQI9rU\n"
38 "o8BVFF6DiaWZn3jC5KsA1dX81c+UpDpxwOpG9MXg8RRm8rWwsvC/RvjVYjGDBdra\n"
39 "oSuHWPjzH1DIJ31ptjKUPAVdR8ZxAGcCAwEAAaOCAT4wggE6MAkGA1UdEwQCMAAw\n"
40 "EQYJYIZIAYb4QgEBBAQDAgZAMDQGCWCGSAGG+EIBDQQnFiVUZXN0IENlcnRpZmlj\n"
41 "YXRlIC0gTk9UIEZPUiBQUk9EVUNUSU9OMB0GA1UdDgQWBBRsQDoK1XxrwQdrKmcC\n"
42 "7/HfbSrQFTCBogYDVR0jBIGaMIGXgBTa10VpSdTIo1PhrwMuGmGrUMerq6F0pHIw\n"
43 "cDELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMRMwEQYDVQQHDApQbGVhc2FudG9u\n"
44 "MRgwFgYDVQQKDA9PcGVuVlBOLVRFU1QtQ0ExJTAjBgkqhkiG9w0BCQEWFmV4YW1w\n"
45 "bGUuY2FAZXhhbXBsZS5uZXSCCQDm/rJ9Tz3bEDATBgNVHSUEDDAKBggrBgEFBQcD\n"
46 "ATALBgNVHQ8EBAMCBaAwDQYJKoZIhvcNAQELBQADggIBAHl41WvFsh+nscCx+1X2\n"
47 "RudmnsuKHFUAktpAOdG3vh+5zh2v3PZYWoS4sgmBl0Zvia4VC/xTrcC2ywJILLAM\n"
48 "cda6CUXMF3+kJMi+qlgn6WRn9RsUHLQFa1/y7zNkuo38zkLlJaiKPQfm1YPkUtnr\n"
49 "n74W9XBrZ2rWBsqL2XCDayEs1IAjL9zs0F1Bs0MCgf+BccCu7wFL886+Y8mhAkRJ\n"
50 "c0aniG/bsawOrrF8JwW2MP/QpPls2BSWmfwJASxX57AbSQ8TmMf289ozTupcBVMC\n"
51 "N973ks9n/35cRtW9SHtwpdsb4nvXFZi6DCfyS3PBpHgi/mRuhgWWSLaVr40RnlHI\n"
52 "NvW0x7SPJwkbHeWz6PStrZJLjkJ9LuvRQwb2+wH6SjIxQiJ/AMXlSL2USASdLR32\n"
53 "eiPUWq5xalTrNQINcnEfVT/ruTInY2vytUaQgFTQvJKp0DJZZHEmkvEQC77IkI7Y\n"
54 "ED4Icu9CLCpXN7axV4Ga0iM53kX4MsDt419mmD8NoYJciHzBZHuJ6cD1tAsUUov7\n"
55 "NJZQLYfixIs63ZNEgb5gCkKywy40gZ+jaK3ard5LzyRUhgWHXdV7oZU7DkY5yAON\n"
56 "63gBg9THgEvcEhG/Ci60y6pB+YpXTiVGkuJvqLdSCn3qota8v+/Fm9ujrlJk1evR\n"
57 "fYFKjF0w1F5ftfpCbucSMbqt\n"
58 "-----END CERTIFICATE-----\n";
59
60TEST(mbedTLS_x509_get_subject, old_format)
61{
62 MbedTLSPKI::X509Cert x509crt(test_cert, "Embedded Test Server Cert", true);
63 std::string expect(
64 "/C=US/ST=CA/O=OpenVPN-TEST/CN=server-1.example.net/"
65 "emailAddress=example-server@example.net");
66
67 ASSERT_EQ(MbedTLSPKI::x509_get_subject(x509crt.get()), expect);
68 ASSERT_EQ(MbedTLSPKI::x509_get_subject(x509crt.get(), false), expect);
69}
70
71TEST(mbesTLS_x509_get_subject, new_format)
72{
73 MbedTLSPKI::X509Cert x509crt(test_cert, "Embedded Test Server Cert", true);
74 std::string expect(
75 "C=US, ST=CA, O=OpenVPN-TEST, CN=server-1.example.net, "
76 "emailAddress=example-server@example.net");
77
78 ASSERT_EQ(MbedTLSPKI::x509_get_subject(x509crt.get(), true), expect);
79}
80
81TEST(mbedTLS_x509_get_common_name, basic_check)
82{
83 MbedTLSPKI::X509Cert x509crt(test_cert, "Embedded Test Server Cert", true);
84
85 ASSERT_EQ(MbedTLSPKI::x509_get_common_name(x509crt.get()),
86 "server-1.example.net");
87}
88
89} // namespace unittests
mbedtls_x509_crt * get() const
Definition x509cert.hpp:132
static std::string x509_get_common_name(const mbedtls_x509_crt *cert)
static std::string x509_get_subject(const mbedtls_x509_crt *cert, bool new_format=false)
TEST(CPUTime, cpu_time_pid)