Add tests for Ocsp checking 61/316661/17
authorLe <xuan.tien@samsung.com>
Mon, 26 Aug 2024 10:39:47 +0000 (17:39 +0700)
committerDariusz Michaluk <d.michaluk@samsung.com>
Mon, 9 Sep 2024 12:25:18 +0000 (12:25 +0000)
Change-Id: Iddcfc05f3a439e450e9b8fb2e4a1c461abbc864e
Signed-off-by: Le <xuan.tien@samsung.com>
unit-tests/CMakeLists.txt
unit-tests/test_common.cpp
unit-tests/test_common.h
unit-tests/test_constant.cpp
unit-tests/test_constant.h
unit-tests/test_vcore_certificate_collection.cpp
unit-tests/test_vcore_ocsp.cpp [new file with mode: 0644]

index f07038b5d61daf497735dc39cc386ae76caaf5e3..a45c1a76c3dda5234fba153e34bd7edb3bfb074a 100644 (file)
@@ -76,6 +76,7 @@ SET(UNIT_TESTS_SOURCES
     test_vcore_signature_data.cpp
     test_vcore_signature_finder.cpp
     test_vcore_signature_reader.cpp
+    test_vcore_ocsp.cpp
     test_vcore_signature_validator.cpp
     test_vcore_certificate.cpp
     test_vcore_saxreader.cpp
index a97f26fbb3c97a8bf99a5a0a50eff43c9d76e78a..4a785bec22db4181c87fb86e2759f8fed42d780c 100644 (file)
 #include "cert-svc/cpkcs12.h"
 #include <cstring>
 #include <sstream>
+#include <string>
+#include <list>
+#include "vcore/Certificate.h"
+
+using namespace ValidationCore;
 
 static inline int convertHexToInt(std::string hexPair)
 {
@@ -68,3 +73,12 @@ CertSvcString wrapperCertsvcStringNew(CertSvcInstance instance, std::string orig
 
        return certsvcStr;
 }
+
+CertificateList createCertificateList(std::list<std::string> strList)
+{
+       CertificateList certList;
+       for (std::string certStr : strList) {
+               certList.push_back(CertificatePtr(new Certificate(certStr, Certificate::FORM_BASE64)));
+       }
+       return certList;
+}
index e3ff7d88e5400c46426d8433958267981c8418d4..83c3cf43cda9185e9d249b587836fee791d9f2f4 100644 (file)
  */
 
 #include <string>
+#include <list>
+#include "vcore/Certificate.h"
 #include "cert-svc/cinstance.h"
 #include "cert-svc/cpkcs12.h"
 
+using namespace ValidationCore;
+
 int convertStringToBytes(const std::string hexString, unsigned char **content);
 std::string createLargeString(size_t size);
-CertSvcString wrapperCertsvcStringNew(CertSvcInstance instance, std::string originStr, int *retVal);
\ No newline at end of file
+CertSvcString wrapperCertsvcStringNew(CertSvcInstance instance, std::string originStr, int *retVal);
+CertificateList createCertificateList(std::list<std::string> strList);
\ No newline at end of file
index 283d4a7f6f63b90f9845bcee3e6ab0549630d412..f9de6e60d40106ec12f931731aa05e9090e9b24c 100644 (file)
@@ -454,3 +454,174 @@ namespace SignatureComponent {
                "t3gTWPxTtFzprQyNiJHTmrbNWXLX1roRVGUE/I8Q4xexqpbNlJIW2Jjm/kqoKfnK"
                "xORG6HNPXZV29NY2fDRPPOIYoFQzrXI=";
 }
+
+namespace CertificateChain {
+       const std::string CertEE =
+               "MIIJGTCCBwGgAwIBAgITEgAxQ0VlMES59RTscQAAADFDRTANBgkqhkiG9w0BAQsF"
+               "ADBPMQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u"
+               "MSAwHgYDVQQDExdNaWNyb3NvZnQgUlNBIFRMUyBDQSAwMTAeFw0yMjExMTUyMDE2"
+               "MzhaFw0yMzExMTUyMDE2MzhaMGExCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJXQTEQ"
+               "MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u"
+               "MRMwEQYDVQQDEwpyLmJpbmcuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB"
+               "CgKCAQEAvzvBoCT8A/rooZzeDm7yJ9PdB5c4ZE54P4q+R5ZaY3l9+UH7wkD/AMgx"
+               "5RUwpCg3JlZaSrl5kjp6xvjmhvy08v/mp0Jw80zG33lQ8DOk16VYBwpoSBy2Pn6E"
+               "6bhDYHGFybPzpKlKxiJHSYuiAF+05FfUk/jBmXFMkmsDlm5Fwq1y6/da4K0bJImC"
+               "msWDPDZrf3A8fu9lQeNRv3tbvrknOCGKaQ15iHxRpHhvMDxfX4/ba/ztw23wMExv"
+               "YKdAkUHQUMygbZE/vSBQhPtqqHFc+IY9sKpJ35oa4lfklnzgxlACogTmytJsrhry"
+               "lDeTp9bBAQwV2T7enHwoy1jdFaaJQwIDAQABo4IE2jCCBNYwggF+BgorBgEEAdZ5"
+               "AgQCBIIBbgSCAWoBaAB1AOg+0No+9QY1MudXKLyJa8kD08vREWvs62nhd31tBr1u"
+               "AAABhHz5BCoAAAQDAEYwRAIgTDH4xbzeE641O31H3wgjEfWbEhEKOfppCp+tYA3i"
+               "1CgCIF2TX3NmpCL3XEYDtbBv1ryuIA3cPGhgzynDWAdMiY5wAHYAVYHUwhaQNgFK"
+               "6gubVzxT8MDkOHhwJQgXL6OqHQcT0wwAAAGEfPkEXwAABAMARzBFAiEA3ao53zxV"
+               "/geztebynoFndOYoZiKOf0rSsa/PAEAsczcCIEOtGgNpraLTEJhe1OYbnuAo9Rak"
+               "eAbFPfjJdALwgGWVAHcAejKMVNi3LbYg6jjgUh7phBZwMhOFTTvSK8E6V6NS61IA"
+               "AAGEfPkC5AAABAMASDBGAiEAzov/r1LY9ELiZbJ2690S3ujq3gzpJ3Sxi6VN58gF"
+               "jH4CIQCG8bsL4aIfW3vB+o6mNl2xB9/cPEMbmFgUPBU8Lyr9uzAnBgkrBgEEAYI3"
+               "FQoEGjAYMAoGCCsGAQUFBwMCMAoGCCsGAQUFBwMBMD0GCSsGAQQBgjcVBwQwMC4G"
+               "JisGAQQBgjcVCIfahnWD7tkBgsmFG4G1nmGF9OtggV25+BCGkdB4AgFkAgElMIGH"
+               "BggrBgEFBQcBAQR7MHkwUwYIKwYBBQUHMAKGR2h0dHA6Ly93d3cubWljcm9zb2Z0"
+               "LmNvbS9wa2kvbXNjb3JwL01pY3Jvc29mdCUyMFJTQSUyMFRMUyUyMENBJTIwMDEu"
+               "Y3J0MCIGCCsGAQUFBzABhhZodHRwOi8vb2NzcC5tc29jc3AuY29tMB0GA1UdDgQW"
+               "BBSukOod1pztVw1Lx47hPotC/higDTAOBgNVHQ8BAf8EBAMCBLAwgeQGA1UdEQSB"
+               "3DCB2YIKci5iaW5nLmNvbYIUdGhha2EubXNmdHN0YXRpYy5jb22CDnRoYWthLmJp"
+               "bmcuY29tghF0aC5tc2Z0c3RhdGljLmNvbYILdGguYmluZy5jb22CE3Jha2EubXNm"
+               "dHN0YXRpYy5jb22CDXJha2EuYmluZy5jb22CEHIubXNmdHN0YXRpYy5jb22CDWFr"
+               "YW0uYmluZy5jb22CDSoubW0uYmluZy5uZXSCEyouZXhwbGljaXQuYmluZy5uZXSC"
+               "ECouYmluZ3N0YXRpYy5jb22CCiouYmluZy5jb20wgbAGA1UdHwSBqDCBpTCBoqCB"
+               "n6CBnIZNaHR0cDovL21zY3JsLm1pY3Jvc29mdC5jb20vcGtpL21zY29ycC9jcmwv"
+               "TWljcm9zb2Z0JTIwUlNBJTIwVExTJTIwQ0ElMjAwMS5jcmyGS2h0dHA6Ly9jcmwu"
+               "bWljcm9zb2Z0LmNvbS9wa2kvbXNjb3JwL2NybC9NaWNyb3NvZnQlMjBSU0ElMjBU"
+               "TFMlMjBDQSUyMDAxLmNybDBXBgNVHSAEUDBOMEIGCSsGAQQBgjcqATA1MDMGCCsG"
+               "AQUFBwIBFidodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL21zY29ycC9jcHMw"
+               "CAYGZ4EMAQICMB8GA1UdIwQYMBaAFLV2DDARzseSQk1Mx1wsyKkM6AtkMB0GA1Ud"
+               "JQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATANBgkqhkiG9w0BAQsFAAOCAgEAUce0"
+               "vFbvYp03JZdLVC7vjMuKOloMCcGQy0CUO3P+T4322/JvQGjgKStq/9FA+GMvqmu0"
+               "yuC4R69o8wlDOhabeJYt2T87BpE31GBHoAYkFE7kdSYfF6FP3fq2FzYcIi8OoKWI"
+               "HHZ1RsIrMKaC3sWxhrmdIpDImdgXFBXlA1CPFafeioF50bQXmjndR0xMNwnpnRNS"
+               "6XNHC9rYARXe7Jj0qk8JYTvLgPGkkaMHmnS7Hn914d1dFIZ2hyVvA+rUtVRQ1oQx"
+               "Q+R+wsRl59Q15MCSIMWnp5Fcg1gcAduGuRCvWKpusJmX3tWjdUSKEQ1UP1qV0eMm"
+               "lh64jNwJ+ejX6psgyWO2a+dFpuD2l8MgFb2gN2RgS4YsPZyDitCBkezHrmsn8txQ"
+               "yaRStDiu6UgS1Z3cqxsNHfct4BdLd7ngzBMY5CacUcCHjwPyoIHYu4G6f84LztQT"
+               "s+uwMhnP9iP/6RiF3xgJMyrIKxUjC0aDjgYyOOVS6VpVLsdVdq0KImHElO5aknT0"
+               "UzvSa5LocKrmAUv+23Dvy/UU94vERy3WelqFzb+ktRgvje0LSsHaIQC8YhokEFx2"
+               "cXdJs7PwmADM4dFCD467C2lsXTzrS4WcvSLfq6xOZ2enl8L6qfQpJ58J49uhUqx3"
+               "lJtG1Q+rccyveDAacyyCp/pDdMQdYLranGFFioA=";
+
+       const std::string CertIM =
+               "MIIFWjCCBEKgAwIBAgIQDxSWXyAgaZlP1ceseIlB4jANBgkqhkiG9w0BAQsFADBa"
+               "MQswCQYDVQQGEwJJRTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJl"
+               "clRydXN0MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTIw"
+               "MDcyMTIzMDAwMFoXDTI0MTAwODA3MDAwMFowTzELMAkGA1UEBhMCVVMxHjAcBgNV"
+               "BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEgMB4GA1UEAxMXTWljcm9zb2Z0IFJT"
+               "QSBUTFMgQ0EgMDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCqYnfP"
+               "mmOyBoTzkDb0mfMUUavqlQo7Rgb9EUEf/lsGWMk4bgj8T0RIzTqk970eouKVuL5R"
+               "IMW/snBjXXgMQ8ApzWRJCZbar879BV8rKpHoAW4uGJssnNABf2n17j9TiFy6BWy+"
+               "IhVnFILyLNK+W2M3zK9gheiWa2uACKhuvgCca5Vw/OQYErEdG7LBEzFnMzTmJcli"
+               "W1iCdXby/vI/OxbfqkKD4zJtm45DJvC9Dh+hpzqvLMiK5uo/+aXSJY+SqhoIEpz+"
+               "rErHw+uAlKuHFtEjSeeku8eR3+Z5ND9BSqc6JtLqb0bjOHPm5dSRrgt4nnil75bj"
+               "c9j3lWXpBb9PXP9Sp/nPCK+nTQmZwHGjUnqlO9ebAVQD47ZisFonnDAmjrZNVqEX"
+               "F3p7laEHrFMxttYuD81BdOzxAbL9Rb/8MeFGQjE2Qx65qgVfhH+RsYuuD9dUw/3w"
+               "ZAhq05yO6nk07AM9c+AbNtRoEcdZcLCHfMDcbkXKNs5DJncCqXAN6LhXVERCw/us"
+               "G2MmCMLSIx9/kwt8bwhUmitOXc6fpT7SmFvRAtvxg84wUkg4Y/Gx++0j0z6StSeN"
+               "0EJz150jaHG6WV4HUqaWTb98Tm90IgXAU4AW2GBOlzFPiU5IY9jt+eXC2Q6yC/Zp"
+               "TL1LAcnL3Qa/OgLrHN0wiw1KFGD51WRPQ0Sh7QIDAQABo4IBJTCCASEwHQYDVR0O"
+               "BBYEFLV2DDARzseSQk1Mx1wsyKkM6AtkMB8GA1UdIwQYMBaAFOWdWTCCR1jMrPoI"
+               "VDaGezq1BE3wMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYI"
+               "KwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADA0BggrBgEFBQcBAQQoMCYwJAYI"
+               "KwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTA6BgNVHR8EMzAxMC+g"
+               "LaArhilodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vT21uaXJvb3QyMDI1LmNybDAq"
+               "BgNVHSAEIzAhMAgGBmeBDAECATAIBgZngQwBAgIwCwYJKwYBBAGCNyoBMA0GCSqG"
+               "SIb3DQEBCwUAA4IBAQCfK76SZ1vae4qt6P+dTQUO7bYNFUHR5hXcA2D59CJWnEj5"
+               "na7aKzyowKvQupW4yMH9fGNxtsh6iJswRqOOfZYC4/giBO/gNsBvwr8uDW7t1nYo"
+               "DYGHPpvnpxCM2mYfQFHq576/TmeYu1RZY29C4w8xYBlkAA8mDJfRhMCmehk7cN5F"
+               "JtyWRj2cZj/hOoI45TYDBChXpOlLZKIYiG1giY16vhCRi6zmPzEwv+tk156N6cGS"
+               "Vm44jTQ/rs1sa0JSYjzUaYngoFdZC4OfxnIkQvUIA4TOFmPzNPEFdjcZsgbeEz4T"
+               "cGHTBPK4R28F44qIMCtHRV55VMX53ev6P3hRddJb";
+
+       const std::string CertRoot =
+               "MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJ"
+               "RTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYD"
+               "VQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoX"
+               "DTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMCSUUxEjAQBgNVBAoTCUJhbHRpbW9y"
+               "ZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFsdGltb3JlIEN5YmVy"
+               "VHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKMEuyKr"
+               "mD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjr"
+               "IZ3AQSsBUnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeK"
+               "mpYcqWe4PwzV9/lSEy/CG9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSu"
+               "XmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9XbIGevOF6uvUA65ehD5f/xXtabz5OTZy"
+               "dc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjprl3RjM71oGDHweI12v/ye"
+               "jl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoIVDaGezq1"
+               "BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3"
+               "DQEBBQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT92"
+               "9hkTI7gQCvlYpNRhcL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3Wgx"
+               "jkzSswF07r51XgdIGn9w/xZchMB5hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0"
+               "Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsaY71k5h+3zvDyny67G7fyUIhz"
+               "ksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9HRCwBXbsdtTLS"
+               "R9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp";
+
+       const std::string CertRootNotSupportOcsp =
+               "MIIDjjCCAnagAwIBAgIGAY+ZLZDuMA0GCSqGSIb3DQEBDQUAMHQxCzAJBgNVBAYT"
+               "AktSMRMwEQYDVQQHDApTdXdvbiBDaXR5MRowGAYDVQQKDBFUaXplbiBBc3NvY2lh"
+               "dGlvbjESMBAGA1UECwwJVGl6ZW4gU0VTMSAwHgYDVQQDDBdUaXplbiBBdXRob3Ig"
+               "Um9vdCBDbGFzczAeFw0yNDA1MjEwMzI0MTFaFw0yNTA1MjEwMzI0MTFaMHQxCzAJ"
+               "BgNVBAYTAktSMRMwEQYDVQQHDApTdXdvbiBDaXR5MRowGAYDVQQKDBFUaXplbiBB"
+               "c3NvY2lhdGlvbjESMBAGA1UECwwJVGl6ZW4gU0VTMSAwHgYDVQQDDBdUaXplbiBB"
+               "dXRob3IgUm9vdCBDbGFzczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB"
+               "AKt8I6FYHbDjq4v7hkzDW5rUxiksmudpuBA8L7aclwY7BmiWD6N9vCF37IY3zPxn"
+               "d7JODIFFGWCbVQindVEBx4McvyrZnngmqNJxeMDzNyjiHmY+8Xg4hlyRHAfyVQWc"
+               "P9SGtYmKyR1n5uaA9FTdAkjUQ0voJ6AbzkRAaH3AgBiUmRdXv7BRU/z5G1Un3ART"
+               "BCUr7R9OxgrBcjUeWD5CfutTKxYYwM6/Fi65j6D1sLf4JdC9EcbLnFQducT3HNsH"
+               "Smtod48V32arxxcVGUJITPfWMb6VT8V3kEX5gLMZ9DPXEv+PZKLemlyAkBoTOP+7"
+               "G5wQJe134Lb9iR/u9p74aGcCAwEAAaMmMCQwEgYDVR0TAQH/BAgwBgEB/wIBADAO"
+               "BgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQENBQADggEBAB+5FNYvEQIfTu6e6R14"
+               "QIZMTF3HyIvd48jFJIfitUSQLEJmCW4jCpDAnAE7i2i4Yi5/aMLEN/R43I/Ck7cM"
+               "0qyE1gHasEDrs3OvV9A8IGOrT85YAUabBG4unkUP8+u5aH8mmXu519Ln9lpwJRbV"
+               "8vhFGDF6sqzFlNq02SHz+pKiXW7oFp7HNLigwJbxFgS9qBxEMiSPoM6afKj9PI56"
+               "fgf+6l1gQVpczxw489PGNTiws3NJSrNogzThR+9UKkT/s0/vhxFWaQaqZdj1j7Vg"
+               "i6PWaYUPG8H4jsKf04ZDHoDRt7zIiUmrjqIM1FTo+JeFlnslzce0x72JUnoQOcn6"
+               "xZ4=";
+
+       const std::string CertIMNotSupportOcsp =
+               "MIIDkTCCAnmgAwIBAgIGAY+ZMX39MA0GCSqGSIb3DQEBDQUAMHQxCzAJBgNVBAYT"
+               "AktSMRMwEQYDVQQHDApTdXdvbiBDaXR5MRowGAYDVQQKDBFUaXplbiBBc3NvY2lh"
+               "dGlvbjESMBAGA1UECwwJVGl6ZW4gU0VTMSAwHgYDVQQDDBdUaXplbiBBdXRob3Ig"
+               "Um9vdCBDbGFzczAeFw0yNDA1MjEwMzI4MjhaFw00NDA1MjEwMzI4MjhaMHoxCzAJ"
+               "BgNVBAYTAktSMRMwEQYDVQQHDApTdXdvbiBDaXR5MRowGAYDVQQKDBFUaXplbiBB"
+               "c3NvY2lhdGlvbjESMBAGA1UECwwJVGl6ZW4gU0VTMSYwJAYDVQQDDB1UaXplbiBT"
+               "RVMgQXV0aG9yIFNpZ25lciBDbGFzczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC"
+               "AQoCggEBAPoDp5isAC1YE3ZZ3470zdFtPsG/iMEDun4vwv2ePb9s/QkgfOFmK6jV"
+               "1xSoCsCTotaDEw+H2kRJ89HXxlAcdG6I1mA6NVgUOt+Nh2NhswAu8BeGUfRLVDIm"
+               "35mJe2P8EHRg5VfVecXFlWy4gz4boqYsZ80m4MTbrxJERhoSvyr+QRLNXOaLn7G6"
+               "3+sbzIHN7GOznQjLCWKiEZpUTqYLf3F9oDYifL9/CUaQDtpHSl+YQD0iTybrnOmY"
+               "Z7LoivRmWnpFkv6JVFMzwMAJLYVVaPlMgFJwi4m5QFOXROw/jOfi7pgkFOpHzC30"
+               "IIZgVcwkqsaQvm4s3WKTG1jFVn/LrRcCAwEAAaMjMCEwDwYDVR0TAQH/BAUwAwEB"
+               "/zAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQENBQADggEBADnYRZq8RZTqlr65"
+               "B7eeMEz+jmbdR0mifav4o2gofEW188+sajNVCeYzuczTzUHRe27Z6oJOagw32dKQ"
+               "zR17QZ/1+HYlFs/ZhOEp+qo/f+4V/iPlXne8oxWLK4mftCt4jg3Tov7HUHhd2gVI"
+               "B21w0lts1hCiyBj2kpSsIHfftDJcgI3/1UymNqSxAwrkRi2Et91PJ6EfEF7BukkU"
+               "fuFWDDAPV9i6rfAxTOd6W4YL/zwmhGq73d7S9IPTVzTmMCkQcxfAAbM0c8UOLmM/"
+               "FugMDhq68L65zW8sP26O0ATIcbXIugVXfETrhMPDNUqaI9TFRwaJsrLY+3UXaxW8"
+               "h0vi1ic=";
+
+       const std::string CertEENotSupportOcsp =
+               "MIIDkTCCAnmgAwIBAgIGAY+ZNINLMA0GCSqGSIb3DQEBDQUAMHQxCzAJBgNVBAYT"
+               "AktSMRMwEQYDVQQHDApTdXdvbiBDaXR5MRowGAYDVQQKDBFUaXplbiBBc3NvY2lh"
+               "dGlvbjESMBAGA1UECwwJVGl6ZW4gU0VTMSAwHgYDVQQDDBdUaXplbiBBdXRob3Ig"
+               "Um9vdCBDbGFzczAeFw0yNDA1MjEwMzMxNDZaFw00NDA1MjEwMzMxNDZaMHoxCzAJ"
+               "BgNVBAYTAktSMRMwEQYDVQQHDApTdXdvbiBDaXR5MRowGAYDVQQKDBFUaXplbiBB"
+               "c3NvY2lhdGlvbjESMBAGA1UECwwJVGl6ZW4gU0VTMSYwJAYDVQQDDB1UaXplbiBT"
+               "RVMgQXV0aG9yIFNpZ25lciBDbGFzczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC"
+               "AQoCggEBAIl4tzKrdR6olVjCRNTR4NDZRcXVrciM5qqeKHUYacgaUTBQ5P59tU3Y"
+               "xVSMUylcWkWdNfL7xfVoL+jJP4NlFzJdbRi3ZOyCXDL0uduXLTBnxY1UMOy5l0oN"
+               "1NDc6hlotjfo8i3oVbC8WZVEHMufVwUiDGu9UQa653lhIm3UAiAStc7RK9S5lC3V"
+               "tCAPWRIp4lAqRimMizy9YGaCFADCJkBs1orKGWr3d6Tm779Wm6RiNNmiuvFLC6OW"
+               "1VKkhaUdDy9Imre72gmjGOIPY0thH2xdctIM/XcgC9yGB0Kkq//Tl6M3/leK5/KN"
+               "QLti7Rxv53AiP4H4OdoOIQ2ZyT1Q13ECAwEAAaMjMCEwDwYDVR0TAQH/BAUwAwEB"
+               "/zAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQENBQADggEBAJ/7UBHhlBJqiwic"
+               "cFsMqR+Y7y9rEKUszk1MIfHnOyl/4BobDolHI79tPmbK0XrhF3xJp4ZxpHIJ5oR5"
+               "PYzcKrQZlaGrTtQGLozBqAAK2qD68c40M1UyKFPcdzUx513gkSTtYSQe2e7nK+FI"
+               "qlMZm5C9TfvGjC4WCxA+Mu+HAmxEF6t0Jdq/P02a7/O5xHUi/3RburkjN6aazD/s"
+               "V+zMbSN5JLy7UDmUwn8P7NkC97DVJOolhXRV7PJ4BJjjdzDPu5d3oKfcQ2owbpGx"
+               "GCXrExBhL4nWzvG4PoDbsAQ9Wma/+R9vWgKOr/KvYsQjrTLSrBKpzZ5yW84C4uId"
+               "m5+JYVs=";
+}
index 82ec4d1814a0e45f633232c12206e9dd3e1a122e..20c4e4b310a225ebadb709cb09cf8198ea210df3 100644 (file)
@@ -140,4 +140,14 @@ namespace SignatureComponent {
        extern const std::string DigestSHA1;
        extern const std::string DigestSHA256;
        extern const std::string Cert;
+}
+
+namespace CertificateChain {
+       extern const std::string CertEE;
+       extern const std::string CertIM;
+       extern const std::string CertRoot;
+
+       extern const std::string CertEENotSupportOcsp;
+       extern const std::string CertIMNotSupportOcsp;
+       extern const std::string CertRootNotSupportOcsp;
 }
\ No newline at end of file
index d7d39113350ae991b46b5bba5e700c116f7cb642..ff494fc76809f8927d9b510abd5eb52dbeaae270 100644 (file)
  */
 
 #include "test_macros.h"
+#include "test_common.h"
+#include "test_constant.h"
 #include "vcore/CertificateCollection.h"
 #include <iostream>
 #include <stdio.h>
 #include <string.h>
 #include <list>
 
-const std::string certEE =
-       "MIIJGTCCBwGgAwIBAgITEgAxQ0VlMES59RTscQAAADFDRTANBgkqhkiG9w0BAQsF"
-       "ADBPMQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u"
-       "MSAwHgYDVQQDExdNaWNyb3NvZnQgUlNBIFRMUyBDQSAwMTAeFw0yMjExMTUyMDE2"
-       "MzhaFw0yMzExMTUyMDE2MzhaMGExCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJXQTEQ"
-       "MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u"
-       "MRMwEQYDVQQDEwpyLmJpbmcuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB"
-       "CgKCAQEAvzvBoCT8A/rooZzeDm7yJ9PdB5c4ZE54P4q+R5ZaY3l9+UH7wkD/AMgx"
-       "5RUwpCg3JlZaSrl5kjp6xvjmhvy08v/mp0Jw80zG33lQ8DOk16VYBwpoSBy2Pn6E"
-       "6bhDYHGFybPzpKlKxiJHSYuiAF+05FfUk/jBmXFMkmsDlm5Fwq1y6/da4K0bJImC"
-       "msWDPDZrf3A8fu9lQeNRv3tbvrknOCGKaQ15iHxRpHhvMDxfX4/ba/ztw23wMExv"
-       "YKdAkUHQUMygbZE/vSBQhPtqqHFc+IY9sKpJ35oa4lfklnzgxlACogTmytJsrhry"
-       "lDeTp9bBAQwV2T7enHwoy1jdFaaJQwIDAQABo4IE2jCCBNYwggF+BgorBgEEAdZ5"
-       "AgQCBIIBbgSCAWoBaAB1AOg+0No+9QY1MudXKLyJa8kD08vREWvs62nhd31tBr1u"
-       "AAABhHz5BCoAAAQDAEYwRAIgTDH4xbzeE641O31H3wgjEfWbEhEKOfppCp+tYA3i"
-       "1CgCIF2TX3NmpCL3XEYDtbBv1ryuIA3cPGhgzynDWAdMiY5wAHYAVYHUwhaQNgFK"
-       "6gubVzxT8MDkOHhwJQgXL6OqHQcT0wwAAAGEfPkEXwAABAMARzBFAiEA3ao53zxV"
-       "/geztebynoFndOYoZiKOf0rSsa/PAEAsczcCIEOtGgNpraLTEJhe1OYbnuAo9Rak"
-       "eAbFPfjJdALwgGWVAHcAejKMVNi3LbYg6jjgUh7phBZwMhOFTTvSK8E6V6NS61IA"
-       "AAGEfPkC5AAABAMASDBGAiEAzov/r1LY9ELiZbJ2690S3ujq3gzpJ3Sxi6VN58gF"
-       "jH4CIQCG8bsL4aIfW3vB+o6mNl2xB9/cPEMbmFgUPBU8Lyr9uzAnBgkrBgEEAYI3"
-       "FQoEGjAYMAoGCCsGAQUFBwMCMAoGCCsGAQUFBwMBMD0GCSsGAQQBgjcVBwQwMC4G"
-       "JisGAQQBgjcVCIfahnWD7tkBgsmFG4G1nmGF9OtggV25+BCGkdB4AgFkAgElMIGH"
-       "BggrBgEFBQcBAQR7MHkwUwYIKwYBBQUHMAKGR2h0dHA6Ly93d3cubWljcm9zb2Z0"
-       "LmNvbS9wa2kvbXNjb3JwL01pY3Jvc29mdCUyMFJTQSUyMFRMUyUyMENBJTIwMDEu"
-       "Y3J0MCIGCCsGAQUFBzABhhZodHRwOi8vb2NzcC5tc29jc3AuY29tMB0GA1UdDgQW"
-       "BBSukOod1pztVw1Lx47hPotC/higDTAOBgNVHQ8BAf8EBAMCBLAwgeQGA1UdEQSB"
-       "3DCB2YIKci5iaW5nLmNvbYIUdGhha2EubXNmdHN0YXRpYy5jb22CDnRoYWthLmJp"
-       "bmcuY29tghF0aC5tc2Z0c3RhdGljLmNvbYILdGguYmluZy5jb22CE3Jha2EubXNm"
-       "dHN0YXRpYy5jb22CDXJha2EuYmluZy5jb22CEHIubXNmdHN0YXRpYy5jb22CDWFr"
-       "YW0uYmluZy5jb22CDSoubW0uYmluZy5uZXSCEyouZXhwbGljaXQuYmluZy5uZXSC"
-       "ECouYmluZ3N0YXRpYy5jb22CCiouYmluZy5jb20wgbAGA1UdHwSBqDCBpTCBoqCB"
-       "n6CBnIZNaHR0cDovL21zY3JsLm1pY3Jvc29mdC5jb20vcGtpL21zY29ycC9jcmwv"
-       "TWljcm9zb2Z0JTIwUlNBJTIwVExTJTIwQ0ElMjAwMS5jcmyGS2h0dHA6Ly9jcmwu"
-       "bWljcm9zb2Z0LmNvbS9wa2kvbXNjb3JwL2NybC9NaWNyb3NvZnQlMjBSU0ElMjBU"
-       "TFMlMjBDQSUyMDAxLmNybDBXBgNVHSAEUDBOMEIGCSsGAQQBgjcqATA1MDMGCCsG"
-       "AQUFBwIBFidodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL21zY29ycC9jcHMw"
-       "CAYGZ4EMAQICMB8GA1UdIwQYMBaAFLV2DDARzseSQk1Mx1wsyKkM6AtkMB0GA1Ud"
-       "JQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATANBgkqhkiG9w0BAQsFAAOCAgEAUce0"
-       "vFbvYp03JZdLVC7vjMuKOloMCcGQy0CUO3P+T4322/JvQGjgKStq/9FA+GMvqmu0"
-       "yuC4R69o8wlDOhabeJYt2T87BpE31GBHoAYkFE7kdSYfF6FP3fq2FzYcIi8OoKWI"
-       "HHZ1RsIrMKaC3sWxhrmdIpDImdgXFBXlA1CPFafeioF50bQXmjndR0xMNwnpnRNS"
-       "6XNHC9rYARXe7Jj0qk8JYTvLgPGkkaMHmnS7Hn914d1dFIZ2hyVvA+rUtVRQ1oQx"
-       "Q+R+wsRl59Q15MCSIMWnp5Fcg1gcAduGuRCvWKpusJmX3tWjdUSKEQ1UP1qV0eMm"
-       "lh64jNwJ+ejX6psgyWO2a+dFpuD2l8MgFb2gN2RgS4YsPZyDitCBkezHrmsn8txQ"
-       "yaRStDiu6UgS1Z3cqxsNHfct4BdLd7ngzBMY5CacUcCHjwPyoIHYu4G6f84LztQT"
-       "s+uwMhnP9iP/6RiF3xgJMyrIKxUjC0aDjgYyOOVS6VpVLsdVdq0KImHElO5aknT0"
-       "UzvSa5LocKrmAUv+23Dvy/UU94vERy3WelqFzb+ktRgvje0LSsHaIQC8YhokEFx2"
-       "cXdJs7PwmADM4dFCD467C2lsXTzrS4WcvSLfq6xOZ2enl8L6qfQpJ58J49uhUqx3"
-       "lJtG1Q+rccyveDAacyyCp/pDdMQdYLranGFFioA=";
-const std::string certIM =
-       "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";
-const std::string certRoot =
-       "MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJ"
-       "RTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYD"
-       "VQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoX"
-       "DTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMCSUUxEjAQBgNVBAoTCUJhbHRpbW9y"
-       "ZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFsdGltb3JlIEN5YmVy"
-       "VHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKMEuyKr"
-       "mD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjr"
-       "IZ3AQSsBUnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeK"
-       "mpYcqWe4PwzV9/lSEy/CG9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSu"
-       "XmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9XbIGevOF6uvUA65ehD5f/xXtabz5OTZy"
-       "dc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjprl3RjM71oGDHweI12v/ye"
-       "jl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoIVDaGezq1"
-       "BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3"
-       "DQEBBQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT92"
-       "9hkTI7gQCvlYpNRhcL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3Wgx"
-       "jkzSswF07r51XgdIGn9w/xZchMB5hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0"
-       "Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsaY71k5h+3zvDyny67G7fyUIhz"
-       "ksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9HRCwBXbsdtTLS"
-       "R9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp";
-
 using namespace ValidationCore;
-
-CertificateList createCertificateList(std::list<std::string> strList)
-{
-       CertificateList certList;
-       for (std::string certStr : strList) {
-               certList.push_back(CertificatePtr(new Certificate(certStr, Certificate::FORM_BASE64)));
-       }
-       return certList;
-}
+using namespace CertificateChain;
 
 CertificateCollection collection;
 
@@ -139,7 +32,7 @@ BOOST_AUTO_TEST_SUITE(CERT_CERTIFICATE_COLLECTION_TEST);
 
 POSITIVE_TEST_CASE(T_certificate_collection_load_certificate_list)
 {
-       std::list<std::string> strList = {certEE, certIM, certRoot};
+       std::list<std::string> strList = {CertEE, CertIM, CertRoot};
        CertificateList certList = createCertificateList(strList);
        collection.load(certList);
        BOOST_CHECK(!collection.empty());
@@ -148,13 +41,13 @@ POSITIVE_TEST_CASE(T_certificate_collection_load_certificate_list)
 
 POSITIVE_TEST_CASE(T_certificate_collection_complete_certificate_chain)
 {
-       std::list<std::string> strList = {certEE, certIM, certRoot};
+       std::list<std::string> strList = {CertEE, CertIM, CertRoot};
        CertificateList certList = createCertificateList(strList);
        collection.load(certList);
        BOOST_CHECK(collection.completeCertificateChain());
        collection.clear();
 
-       strList = {certRoot, certEE, certIM};
+       strList = {CertRoot, CertEE, CertIM};
        certList = createCertificateList(strList);
        collection.load(certList);
        BOOST_CHECK(collection.completeCertificateChain());
@@ -163,7 +56,7 @@ POSITIVE_TEST_CASE(T_certificate_collection_complete_certificate_chain)
 
 POSITIVE_TEST_CASE(T_certificate_collection_check_is_chain)
 {
-       std::list<std::string> strList = {certEE, certIM, certRoot};
+       std::list<std::string> strList = {CertEE, CertIM, CertRoot};
        CertificateList certList = createCertificateList(strList);
        collection.load(certList);
        collection.sort();
@@ -173,7 +66,7 @@ POSITIVE_TEST_CASE(T_certificate_collection_check_is_chain)
 
 NEGATIVE_TEST_CASE(T_certificate_collection_check_is_chain_without_sorting)
 {
-       std::list<std::string> strList = {certEE, certIM, certRoot};
+       std::list<std::string> strList = {CertEE, CertIM, CertRoot};
        CertificateList certList = createCertificateList(strList);
        collection.load(certList);
        BOOST_CHECK_THROW(collection.isChain(), CertificateCollection::Exception::WrongUsage);
@@ -182,7 +75,7 @@ NEGATIVE_TEST_CASE(T_certificate_collection_check_is_chain_without_sorting)
 
 POSITIVE_TEST_CASE(T_certificate_collection_get_chain)
 {
-       std::list<std::string> strList = {certEE, certIM, certRoot};
+       std::list<std::string> strList = {CertEE, CertIM, CertRoot};
        CertificateList certList = createCertificateList(strList);
        collection.load(certList);
        collection.sort();
@@ -193,7 +86,7 @@ POSITIVE_TEST_CASE(T_certificate_collection_get_chain)
 
 NEGATIVE_TEST_CASE(T_certificate_collection_get_chain_without_sorting)
 {
-       std::list<std::string> strList = {certEE, certIM, certRoot};
+       std::list<std::string> strList = {CertEE, CertIM, CertRoot};
        CertificateList certList = createCertificateList(strList);
        collection.load(certList);
        BOOST_CHECK_THROW(collection.getChain(), CertificateCollection::Exception::WrongUsage);
@@ -202,7 +95,7 @@ NEGATIVE_TEST_CASE(T_certificate_collection_get_chain_without_sorting)
 
 POSITIVE_TEST_CASE(T_certificate_collection_sort)
 {
-       std::list<std::string> strList = {certEE, certIM, certRoot};
+       std::list<std::string> strList = {CertEE, CertIM, CertRoot};
        CertificateList certList = createCertificateList(strList);
        collection.load(certList);
        BOOST_CHECK(collection.sort());
@@ -218,7 +111,7 @@ NEGATIVE_TEST_CASE(T_certificate_collection_sort_empty_list)
 
 POSITIVE_TEST_CASE(T_certificate_collection_to_base_64_string)
 {
-       std::list<std::string> strList = {certEE, certIM, certRoot};
+       std::list<std::string> strList = {CertEE, CertIM, CertRoot};
        CertificateList certList = createCertificateList(strList);
        collection.load(certList);
        std::string result = collection.toBase64String();
@@ -233,7 +126,7 @@ POSITIVE_TEST_CASE(T_get_size_certificate_collection)
 
 POSITIVE_TEST_CASE(T_certificate_collection_iterator)
 {
-       std::list<std::string> strList = {certRoot, certIM, certEE};
+       std::list<std::string> strList = {CertRoot, CertIM, CertEE};
        CertificateList certList = createCertificateList(strList);
 
        collection.load(certList);
@@ -245,7 +138,7 @@ POSITIVE_TEST_CASE(T_certificate_collection_iterator)
        CertificatePtr certPtr = NULL;
        CertificateList::const_iterator certIterator;
        CertificateList::const_iterator certIteratorArray[2];
-       Certificate firstCertificate = Certificate(certRoot, Certificate::FORM_BASE64);
+       Certificate firstCertificate = Certificate(CertRoot, Certificate::FORM_BASE64);
 
        certIteratorArray[0] = collection.begin();
        certIteratorArray[1] = collection.getCertificateList().begin();
@@ -259,7 +152,7 @@ POSITIVE_TEST_CASE(T_certificate_collection_iterator)
                BOOST_CHECK_EQUAL(hashName, expectedHashName);
        }
 
-       Certificate secondCertificate = Certificate(certEE, Certificate::FORM_BASE64);
+       Certificate secondCertificate = Certificate(CertEE, Certificate::FORM_BASE64);
 
        hashName = collection.back()->getNameHash(Certificate::FIELD_SUBJECT);
        expectedHashName = secondCertificate.getNameHash(Certificate::FIELD_SUBJECT);
diff --git a/unit-tests/test_vcore_ocsp.cpp b/unit-tests/test_vcore_ocsp.cpp
new file mode 100644 (file)
index 0000000..f68f498
--- /dev/null
@@ -0,0 +1,77 @@
+/*
+ * Copyright (c) 2024 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ *    Licensed under the Apache License, Version 2.0 (the "License");
+ *    you may not use this file except in compliance with the License.
+ *    You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    Unless required by applicable law or agreed to in writing, software
+ *    distributed under the License is distributed on an "AS IS" BASIS,
+ *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    See the License for the specific language governing permissions and
+ *    limitations under the License.
+ */
+
+/*
+ *  This is internal test. ocsp.h isn't included in devel package
+ */
+
+#include "vcore/Ocsp.h"
+#include "test_constant.h"
+#include "test_common.h"
+#include "test_macros.h"
+#include <iostream>
+#include <cstring>
+#include <string.h>
+#include <list>
+
+using namespace ValidationCore;
+using namespace CertificateChain;
+using namespace std;
+
+BOOST_AUTO_TEST_SUITE(VCORE_OCSP_TEST)
+
+POSITIVE_TEST_CASE(T_check_ocsp_function)
+{
+       SignatureData data;
+
+       std::list<std::string> strList = {CertEE, CertIM, CertRoot};
+       CertificateList certList = createCertificateList(strList);
+       data.setSortedCertificateList(certList);
+
+       Ocsp::Result result = Ocsp::check(data);
+       BOOST_CHECK_EQUAL(result, Ocsp::Result::GOOD);
+}
+
+NEGATIVE_TEST_CASE(T_ocsp_certificate_chain_not_supported_ocsp)
+{
+       SignatureData data;
+
+       std::list<std::string> strList = {CertRootNotSupportOcsp, CertIMNotSupportOcsp, CertEENotSupportOcsp};
+       CertificateList certList = createCertificateList(strList);
+       data.setSortedCertificateList(certList);
+
+       BOOST_CHECK_THROW(Ocsp::check(data), Ocsp::Exception::OcspUnsupported);
+}
+
+NEGATIVE_TEST_CASE(T_ocsp_certificate_chain_too_short)
+{
+       SignatureData data;
+
+       CertificateList certList;
+       certList.push_back(CertificatePtr(new Certificate(CertRoot, Certificate::FORM_BASE64)));
+       data.setSortedCertificateList(certList);
+
+       BOOST_CHECK_THROW(Ocsp::check(data), Ocsp::Exception::InvalidParam);
+}
+
+NEGATIVE_TEST_CASE(T_ocsp_certificate_chain_with_unsorted_cert_list)
+{
+       SignatureData data;
+
+       BOOST_CHECK_THROW(Ocsp::check(data), Ocsp::Exception::InvalidParam);
+}
+
+BOOST_AUTO_TEST_SUITE_END()