CKM: Get rid of early expiring certificates 46/278746/3
authorKrzysztof Jackiewicz <k.jackiewicz@samsung.com>
Mon, 25 Jul 2022 20:40:35 +0000 (22:40 +0200)
committerKrzysztof Jackiewicz <k.jackiewicz@samsung.com>
Tue, 2 Aug 2022 08:56:41 +0000 (10:56 +0200)
* Use OCSP chain with longer validity (Jan 28 2028)
* Use last CA certificate before root CA for OCSP tests (CA has longer
  validity than EE certificate)
* Remove "third party" chain to avoid expiration issues
* Replace above chain with "OCSP" or "test" chain where possible
* Simplify or remove tests that do not make sense with current chains

Change-Id: I22eba70ae8b73607cc4c8de1f18f014104fd12ea

src/ckm/privileged/main.cpp
src/ckm/test-certs.cpp
src/ckm/test-certs.h
src/ckm/unprivileged/async-api.cpp
src/ckm/unprivileged/capi-certificate-chains.cpp
src/ckm/unprivileged/capi-testcases.cpp
src/ckm/unprivileged/main.cpp

index 8e25fbe..0f53270 100644 (file)
@@ -72,8 +72,8 @@ RUNNER_TEST(T1510_init_unlock_key)
 
 RUNNER_TEST(T1511_insert_data)
 {
-    auto certee = TestData::getTestCertificate(TestData::OCSP_AVAILABLE_LEAF);
-    auto certim = TestData::getTestCertificate(TestData::OCSP_AVAILABLE_IM);
+    auto certee = TestData::getTestCertificate(TestData::TEST_LEAF);
+    auto certim = TestData::getTestCertificate(TestData::TEST_IM_CA);
     CKM::Alias certeeAlias("CertEE");
     CKM::Alias certimAlias("CertIM");
     {
@@ -125,7 +125,7 @@ RUNNER_CHILD_TEST(T1702_insert_data)
     int temp;
     ScopedAppContext ctx(TEST_LABEL, USER_TEST+1, GROUP_APP);
 
-    auto certee = TestData::getTestCertificate(TestData::THIRD_PARTY_LEAF);
+    auto certee = TestData::getTestCertificate(TestData::TEST_LEAF);
 
     auto manager = CKM::Manager::create();
     size_t current_aliases_num = count_aliases(ALIAS_CERT);
index af7911c..a589936 100644 (file)
@@ -39,18 +39,10 @@ enum RawCertificateID {
     TEST_IM_CA,          // TEST_IM_CA, signed by TEST_ROOT_CA, expires 2035
     TEST_LEAF,           // TEST_LEAF, signed by TEST_IM_CA, expires 2035
 
-    // third party
-    BALTIMORE_CYBER_TRUST_ROOT,    // Baltimore CyberTrust Root, (root CA), expires May 13, 2025
-    MS_RSA_TLS_CA_01,    // Microsoft RSA TLS CA 01, signed by Baltimore CyberTrust Root,
-                         // expires Oct 8, 2024
-    MICROSOFT_COM,       // www.microsoft.com, signed by Microsoft RSA TLS CA 01,
-                         // expires Jul 28, 2022
-
     // ocsp available chain on third party
-    MS_RSA_TLS_CA_02,    // Microsoft RSA TLS CA 02, signed by Baltimore CyberTrust Root,
-                         // expires Oct 8 2024
-    BING_COM,            // www.bing.com, signed by Microsoft RSA TLS CA 02,
-                         // expires Mar 30 2022,
+    GLOBALSIGN_ROOT_CA,  // GlobalSign Root CA, expires Jan 28 2028
+    GTS_ROOT_R1,         // Google GTS Root R1, signed by GlobalSign Root CA,
+                         // expires Jan 28 2028
 
     // footer - last element in the set
     NO_CERT
@@ -87,12 +79,8 @@ RawCertificateID toRawCertificateID(certificateID id)
     case certificateID::TEST_IM_CA:          return RawCertificateID::TEST_IM_CA;
     case certificateID::TEST_LEAF:           return RawCertificateID::TEST_LEAF;
 
-    case certificateID::THIRD_PARTY_ROOT_CA: return RawCertificateID::BALTIMORE_CYBER_TRUST_ROOT;
-    case certificateID::THIRD_PARTY_IM_CA:   return RawCertificateID::MS_RSA_TLS_CA_01;
-    case certificateID::THIRD_PARTY_LEAF:    return RawCertificateID::MICROSOFT_COM;
-
-    case certificateID::OCSP_AVAILABLE_IM:   return RawCertificateID::MS_RSA_TLS_CA_02;
-    case certificateID::OCSP_AVAILABLE_LEAF: return RawCertificateID::BING_COM;
+    case certificateID::OCSP_ROOT_CA:        return RawCertificateID::GLOBALSIGN_ROOT_CA;
+    case certificateID::OCSP_AVAILABLE_IM:   return RawCertificateID::GTS_ROOT_R1;
 
     case certificateID::NO_CERT:             return RawCertificateID::NO_CERT;
     default: throw std::invalid_argument("Invalid raw certificat ID!");
@@ -188,252 +176,72 @@ CertMap initializeTestCerts()
         cm[RawCertificateID::TEST_LEAF].certPtr = createCert(raw_base64);
     }
 
-    // Baltimore CyberTrust Root, (root CA), expires May 13, 2025
-    {
-        std::string raw_base64 = std::string(
-            "-----BEGIN CERTIFICATE-----\n"
-            "MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJ\n"
-            "RTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYD\n"
-            "VQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoX\n"
-            "DTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMCSUUxEjAQBgNVBAoTCUJhbHRpbW9y\n"
-            "ZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFsdGltb3JlIEN5YmVy\n"
-            "VHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKMEuyKr\n"
-            "mD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjr\n"
-            "IZ3AQSsBUnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeK\n"
-            "mpYcqWe4PwzV9/lSEy/CG9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSu\n"
-            "XmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9XbIGevOF6uvUA65ehD5f/xXtabz5OTZy\n"
-            "dc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjprl3RjM71oGDHweI12v/ye\n"
-            "jl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoIVDaGezq1\n"
-            "BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3\n"
-            "DQEBBQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT92\n"
-            "9hkTI7gQCvlYpNRhcL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3Wgx\n"
-            "jkzSswF07r51XgdIGn9w/xZchMB5hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0\n"
-            "Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsaY71k5h+3zvDyny67G7fyUIhz\n"
-            "ksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9HRCwBXbsdtTLS\n"
-            "R9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp\n"
-            "-----END CERTIFICATE-----\n");
-        cm[RawCertificateID::BALTIMORE_CYBER_TRUST_ROOT].raw_base64 = raw_base64;
-        cm[RawCertificateID::BALTIMORE_CYBER_TRUST_ROOT].certPtr = createCert(raw_base64);
-    }
-
-    // Microsoft RSA TLS CA 01, signed by Baltimore CyberTrust Root, expires Oct 8, 2024
-    {
-        std::string raw_base64 = std::string(
-            "-----BEGIN CERTIFICATE-----\n"
-            "MIIFWjCCBEKgAwIBAgIQDxSWXyAgaZlP1ceseIlB4jANBgkqhkiG9w0BAQsFADBa\n"
-            "MQswCQYDVQQGEwJJRTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJl\n"
-            "clRydXN0MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTIw\n"
-            "MDcyMTIzMDAwMFoXDTI0MTAwODA3MDAwMFowTzELMAkGA1UEBhMCVVMxHjAcBgNV\n"
-            "BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEgMB4GA1UEAxMXTWljcm9zb2Z0IFJT\n"
-            "QSBUTFMgQ0EgMDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCqYnfP\n"
-            "mmOyBoTzkDb0mfMUUavqlQo7Rgb9EUEf/lsGWMk4bgj8T0RIzTqk970eouKVuL5R\n"
-            "IMW/snBjXXgMQ8ApzWRJCZbar879BV8rKpHoAW4uGJssnNABf2n17j9TiFy6BWy+\n"
-            "IhVnFILyLNK+W2M3zK9gheiWa2uACKhuvgCca5Vw/OQYErEdG7LBEzFnMzTmJcli\n"
-            "W1iCdXby/vI/OxbfqkKD4zJtm45DJvC9Dh+hpzqvLMiK5uo/+aXSJY+SqhoIEpz+\n"
-            "rErHw+uAlKuHFtEjSeeku8eR3+Z5ND9BSqc6JtLqb0bjOHPm5dSRrgt4nnil75bj\n"
-            "c9j3lWXpBb9PXP9Sp/nPCK+nTQmZwHGjUnqlO9ebAVQD47ZisFonnDAmjrZNVqEX\n"
-            "F3p7laEHrFMxttYuD81BdOzxAbL9Rb/8MeFGQjE2Qx65qgVfhH+RsYuuD9dUw/3w\n"
-            "ZAhq05yO6nk07AM9c+AbNtRoEcdZcLCHfMDcbkXKNs5DJncCqXAN6LhXVERCw/us\n"
-            "G2MmCMLSIx9/kwt8bwhUmitOXc6fpT7SmFvRAtvxg84wUkg4Y/Gx++0j0z6StSeN\n"
-            "0EJz150jaHG6WV4HUqaWTb98Tm90IgXAU4AW2GBOlzFPiU5IY9jt+eXC2Q6yC/Zp\n"
-            "TL1LAcnL3Qa/OgLrHN0wiw1KFGD51WRPQ0Sh7QIDAQABo4IBJTCCASEwHQYDVR0O\n"
-            "BBYEFLV2DDARzseSQk1Mx1wsyKkM6AtkMB8GA1UdIwQYMBaAFOWdWTCCR1jMrPoI\n"
-            "VDaGezq1BE3wMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYI\n"
-            "KwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADA0BggrBgEFBQcBAQQoMCYwJAYI\n"
-            "KwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTA6BgNVHR8EMzAxMC+g\n"
-            "LaArhilodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vT21uaXJvb3QyMDI1LmNybDAq\n"
-            "BgNVHSAEIzAhMAgGBmeBDAECATAIBgZngQwBAgIwCwYJKwYBBAGCNyoBMA0GCSqG\n"
-            "SIb3DQEBCwUAA4IBAQCfK76SZ1vae4qt6P+dTQUO7bYNFUHR5hXcA2D59CJWnEj5\n"
-            "na7aKzyowKvQupW4yMH9fGNxtsh6iJswRqOOfZYC4/giBO/gNsBvwr8uDW7t1nYo\n"
-            "DYGHPpvnpxCM2mYfQFHq576/TmeYu1RZY29C4w8xYBlkAA8mDJfRhMCmehk7cN5F\n"
-            "JtyWRj2cZj/hOoI45TYDBChXpOlLZKIYiG1giY16vhCRi6zmPzEwv+tk156N6cGS\n"
-            "Vm44jTQ/rs1sa0JSYjzUaYngoFdZC4OfxnIkQvUIA4TOFmPzNPEFdjcZsgbeEz4T\n"
-            "cGHTBPK4R28F44qIMCtHRV55VMX53ev6P3hRddJb\n"
-            "-----END CERTIFICATE-----\n"
-            );
-        cm[RawCertificateID::MS_RSA_TLS_CA_01].raw_base64 = raw_base64;
-        cm[RawCertificateID::MS_RSA_TLS_CA_01].certPtr = createCert(raw_base64);
-    }
-
-    // www.microsoft.com, signed by Microsoft RSA TLS CA 01, expires Jul 28, 2022
-    {
-        std::string raw_base64 = std::string(
-            "-----BEGIN CERTIFICATE-----\n"
-            "MIII9DCCBtygAwIBAgITEgAU8ewjldVv3MTctwAAABTx7DANBgkqhkiG9w0BAQsF\n"
-            "ADBPMQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u\n"
-            "MSAwHgYDVQQDExdNaWNyb3NvZnQgUlNBIFRMUyBDQSAwMTAeFw0yMTA3MjgyMTIy\n"
-            "MDZaFw0yMjA3MjgyMTIyMDZaMIGIMQswCQYDVQQGEwJVUzELMAkGA1UECBMCV0Ex\n"
-            "EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv\n"
-            "bjEeMBwGA1UECxMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMRowGAYDVQQDExF3d3cu\n"
-            "bWljcm9zb2Z0LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMnE\n"
-            "YTuMHAC05tDE3Xeql1wP18DqLF1YZ6z6vsnmS9FQg5HhjYW9d5JEpxldYfA26Rmu\n"
-            "SjzBnPIV6C9TsxSasdijXzMBGBXLMRN1Lqo8t+ULT0JAsmt0TjvhGTk7qAWOxx5W\n"
-            "gbEA+hZP12P1glre2E5LGORyf3/HDDHDJpoyVrJQcXTTxGGFrUaz8BxpSxnk3+p+\n"
-            "/b2hPxO70jt3vqtpgS+dJa9j9CsGm5f6QZdYFCNVL3HNk4ji36dQZd3Z01jjddgn\n"
-            "8eqG220HvEDL+tJY+q9/iz0fLd+rcDO/igCgpEfM3/gmz4b9xUB1MfexdFNX8zxq\n"
-            "7HBedJTQOSrYbcEupCMCAwEAAaOCBI0wggSJMIIBfAYKKwYBBAHWeQIEAgSCAWwE\n"
-            "ggFoAWYAdQApeb7wnjk5IfBWc59jpXflvld9nGAK+PlNXSZcJV3HhAAAAXrvCDQo\n"
-            "AAAEAwBGMEQCIGsG4F9acHkVtLDESPJxtX8xga3P+ib5mF86uhDdHdQyAiAIlmPH\n"
-            "81f0tFDjOT3QypOpS6W95Wv4AB7QpxQPkX5R+wB1AEHIyrHfIkZKEMahOglCh15O\n"
-            "MYsbA+vrS8do8JBilgb2AAABeu8INBYAAAQDAEYwRAIgYLmw/lgwOh/iFUG+ghFb\n"
-            "jH9odXbXMn9pH+6aoOwNpJoCIFOT/s390eZjaTM99x3B+7aF2iah+3NbIVRIO7eU\n"
-            "gCUJAHYARqVV63X6kSAwtaKJafTzfREsQXS+/Um4havy/HD+bUcAAAF67wg0VQAA\n"
-            "BAMARzBFAiEAvkCi3Cm3jnqCQFRVP4cinZcVZbMVsIsCdWq17Ql9W7gCIFsGi8PI\n"
-            "T+LMgAOXRfRyq4o5ffWlrF3RKPjpFm1XmcvaMCcGCSsGAQQBgjcVCgQaMBgwCgYI\n"
-            "KwYBBQUHAwIwCgYIKwYBBQUHAwEwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUI\n"
-            "h9qGdYPu2QGCyYUbgbWeYYX062CBXbn4EIaR0HgCAWQCASUwgYcGCCsGAQUFBwEB\n"
-            "BHsweTBTBggrBgEFBQcwAoZHaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9t\n"
-            "c2NvcnAvTWljcm9zb2Z0JTIwUlNBJTIwVExTJTIwQ0ElMjAwMS5jcnQwIgYIKwYB\n"
-            "BQUHMAGGFmh0dHA6Ly9vY3NwLm1zb2NzcC5jb20wHQYDVR0OBBYEFAkmLKnc/2OR\n"
-            "QOdYZ+IIP3T26vFlMA4GA1UdDwEB/wQEAwIEsDCBmQYDVR0RBIGRMIGOghVwcml2\n"
-            "YWN5Lm1pY3Jvc29mdC5jb22CEWMucy1taWNyb3NvZnQuY29tgg1taWNyb3NvZnQu\n"
-            "Y29tghFpLnMtbWljcm9zb2Z0LmNvbYIYc3RhdGljdmlldy5taWNyb3NvZnQuY29t\n"
-            "ghF3d3cubWljcm9zb2Z0LmNvbYITd3d3cWEubWljcm9zb2Z0LmNvbTCBsAYDVR0f\n"
-            "BIGoMIGlMIGioIGfoIGchk1odHRwOi8vbXNjcmwubWljcm9zb2Z0LmNvbS9wa2kv\n"
-            "bXNjb3JwL2NybC9NaWNyb3NvZnQlMjBSU0ElMjBUTFMlMjBDQSUyMDAxLmNybIZL\n"
-            "aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9tc2NvcnAvY3JsL01pY3Jvc29m\n"
-            "dCUyMFJTQSUyMFRMUyUyMENBJTIwMDEuY3JsMFcGA1UdIARQME4wQgYJKwYBBAGC\n"
-            "NyoBMDUwMwYIKwYBBQUHAgEWJ2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kv\n"
-            "bXNjb3JwL2NwczAIBgZngQwBAgIwHwYDVR0jBBgwFoAUtXYMMBHOx5JCTUzHXCzI\n"
-            "qQzoC2QwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMA0GCSqGSIb3DQEB\n"
-            "CwUAA4ICAQAVMIWmZCVQqfj7bJx9qruDL8/ylrr3axGTW38+QbP7a+705e8piKYA\n"
-            "oSLpwDnWs00JzLLfe55xE7b3veY5q88ZAcQfB34tvewp+2rYvTcvPq641TXloQlJ\n"
-            "an/90VgkCa2YsbSwWg4uldv0fjvbdZmRvm/fofrR45ySK8KK1SsNJ1Aa/3wuNCyj\n"
-            "L03dT3tf2pDymMaNj3PamyjClHsdYcWop3ZBbM/PiL0pY/a0YsqIUsUkpK93yC4E\n"
-            "+IkZkQDEEAeZHzoHlZv2moJSKL357z1wqS2tDTNGpX8NBvudKkUlnShJfu6MFn1m\n"
-            "vXONhYfpYpJ5t0DxFwhahPS7MKmp/sz7A5fO8b/nvyvwohvHHlI502Np7LdRWE1J\n"
-            "7bNmOcCK/gGVWU2VtZUyhJwGN104Aba61Jn8+mds8JagLPAwiB2Si7M1sfKHpacC\n"
-            "GTeO2N8v8WaBQw/hFLnXlV6c8C8QrYLWLxlmM+6pAlm9fHVU4RESJFseMJiJ66US\n"
-            "bKVIwfysnXZseCb5gbVI8v3d/qpPZSkpKfLs47spTDVKEqSBr8a2evyRJFzIZZ0v\n"
-            "MW9by1fTuByXk82Uyz6/MQ4x0Z/zflGSOyozpZFli7FMFbh4+Fpg6s5RgWVVep96\n"
-            "h4MER2f+ulxJ3j9wUxCa/BR6St/Ck6ZO+FL676uHMx3NMrrSVltSuA==\n"
-            "-----END CERTIFICATE-----\n"
-            );
-        cm[RawCertificateID::MICROSOFT_COM].raw_base64 = raw_base64;
-        cm[RawCertificateID::MICROSOFT_COM].certPtr = createCert(raw_base64);
-    }
-
-    // Microsoft RSA TLS CA 01, signed by Baltimore CyberTrust Root, expires 8 Oct 2024
-    // This is the same as IM for microsoft.com currently,
-    // not removing as it's not always like that.
+    // GlobalSign Root CA, expires Jan 28 2028
     {
         std::string raw_base64(
             "-----BEGIN CERTIFICATE-----\n"
-            "MIIFWjCCBEKgAwIBAgIQDxSWXyAgaZlP1ceseIlB4jANBgkqhkiG9w0BAQsFADBa\n"
-            "MQswCQYDVQQGEwJJRTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJl\n"
-            "clRydXN0MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTIw\n"
-            "MDcyMTIzMDAwMFoXDTI0MTAwODA3MDAwMFowTzELMAkGA1UEBhMCVVMxHjAcBgNV\n"
-            "BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEgMB4GA1UEAxMXTWljcm9zb2Z0IFJT\n"
-            "QSBUTFMgQ0EgMDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCqYnfP\n"
-            "mmOyBoTzkDb0mfMUUavqlQo7Rgb9EUEf/lsGWMk4bgj8T0RIzTqk970eouKVuL5R\n"
-            "IMW/snBjXXgMQ8ApzWRJCZbar879BV8rKpHoAW4uGJssnNABf2n17j9TiFy6BWy+\n"
-            "IhVnFILyLNK+W2M3zK9gheiWa2uACKhuvgCca5Vw/OQYErEdG7LBEzFnMzTmJcli\n"
-            "W1iCdXby/vI/OxbfqkKD4zJtm45DJvC9Dh+hpzqvLMiK5uo/+aXSJY+SqhoIEpz+\n"
-            "rErHw+uAlKuHFtEjSeeku8eR3+Z5ND9BSqc6JtLqb0bjOHPm5dSRrgt4nnil75bj\n"
-            "c9j3lWXpBb9PXP9Sp/nPCK+nTQmZwHGjUnqlO9ebAVQD47ZisFonnDAmjrZNVqEX\n"
-            "F3p7laEHrFMxttYuD81BdOzxAbL9Rb/8MeFGQjE2Qx65qgVfhH+RsYuuD9dUw/3w\n"
-            "ZAhq05yO6nk07AM9c+AbNtRoEcdZcLCHfMDcbkXKNs5DJncCqXAN6LhXVERCw/us\n"
-            "G2MmCMLSIx9/kwt8bwhUmitOXc6fpT7SmFvRAtvxg84wUkg4Y/Gx++0j0z6StSeN\n"
-            "0EJz150jaHG6WV4HUqaWTb98Tm90IgXAU4AW2GBOlzFPiU5IY9jt+eXC2Q6yC/Zp\n"
-            "TL1LAcnL3Qa/OgLrHN0wiw1KFGD51WRPQ0Sh7QIDAQABo4IBJTCCASEwHQYDVR0O\n"
-            "BBYEFLV2DDARzseSQk1Mx1wsyKkM6AtkMB8GA1UdIwQYMBaAFOWdWTCCR1jMrPoI\n"
-            "VDaGezq1BE3wMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYI\n"
-            "KwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADA0BggrBgEFBQcBAQQoMCYwJAYI\n"
-            "KwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTA6BgNVHR8EMzAxMC+g\n"
-            "LaArhilodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vT21uaXJvb3QyMDI1LmNybDAq\n"
-            "BgNVHSAEIzAhMAgGBmeBDAECATAIBgZngQwBAgIwCwYJKwYBBAGCNyoBMA0GCSqG\n"
-            "SIb3DQEBCwUAA4IBAQCfK76SZ1vae4qt6P+dTQUO7bYNFUHR5hXcA2D59CJWnEj5\n"
-            "na7aKzyowKvQupW4yMH9fGNxtsh6iJswRqOOfZYC4/giBO/gNsBvwr8uDW7t1nYo\n"
-            "DYGHPpvnpxCM2mYfQFHq576/TmeYu1RZY29C4w8xYBlkAA8mDJfRhMCmehk7cN5F\n"
-            "JtyWRj2cZj/hOoI45TYDBChXpOlLZKIYiG1giY16vhCRi6zmPzEwv+tk156N6cGS\n"
-            "Vm44jTQ/rs1sa0JSYjzUaYngoFdZC4OfxnIkQvUIA4TOFmPzNPEFdjcZsgbeEz4T\n"
-            "cGHTBPK4R28F44qIMCtHRV55VMX53ev6P3hRddJb\n"
+            "MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkG\n"
+            "A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv\n"
+            "b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAw\n"
+            "MDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i\n"
+            "YWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9iYWxT\n"
+            "aWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDaDuaZ\n"
+            "jc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavp\n"
+            "xy0Sy6scTHAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp\n"
+            "1Wrjsok6Vjk4bwY8iGlbKk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdG\n"
+            "snUOhugZitVtbNV4FpWi6cgKOOvyJBNPc1STE4U6G7weNLWLBYy5d4ux2x8gkasJ\n"
+            "U26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrXgzT/LCrBbBlDSgeF59N8\n"
+            "9iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8E\n"
+            "BTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0B\n"
+            "AQUFAAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOz\n"
+            "yj1hTdNGCbM+w6DjY1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE\n"
+            "38NflNUVyRRBnMRddWQVDf9VMOyGj/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymP\n"
+            "AbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhHhm4qxFYxldBniYUr+WymXUad\n"
+            "DKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveCX4XSQRjbgbME\n"
+            "HMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==\n"
             "-----END CERTIFICATE-----\n"
             );
-        cm[RawCertificateID::MS_RSA_TLS_CA_02].raw_base64 = raw_base64;
-        cm[RawCertificateID::MS_RSA_TLS_CA_02].certPtr = createCert(raw_base64);
+        cm[RawCertificateID::GLOBALSIGN_ROOT_CA].raw_base64 = raw_base64;
+        cm[RawCertificateID::GLOBALSIGN_ROOT_CA].certPtr = createCert(raw_base64);
     }
 
-    // www.bing.com, signed by Microsoft RSA TLS CA 01, expires Dec 10 2022
+    // Google GTS Root R1, signed by GlobalSign Root CA, expires Jan 28 2028
     {
         std::string raw_base64(
             "-----BEGIN CERTIFICATE-----\n"
-            "MIINWDCCC0CgAwIBAgITEgAtFJyg3q6Puh27sQAAAC0UnDANBgkqhkiG9w0BAQsF\n"
-            "ADBPMQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u\n"
-            "MSAwHgYDVQQDExdNaWNyb3NvZnQgUlNBIFRMUyBDQSAwMTAeFw0yMjA2MTAwMTE1\n"
-            "NDFaFw0yMjEyMTAwMTE1NDFaMBcxFTATBgNVBAMTDHd3dy5iaW5nLmNvbTCCASIw\n"
-            "DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL8sdZYQ+f3lROucTlyDAVTlH2C8\n"
-            "na0X+Q9IJhKA/J1HmC7WhYbreG54dJvDC5J8dlXs7VcJw4+2zHePozofwQ1MuVz7\n"
-            "hzCztVoCWAsMkXNQcGzvEFUpI08xTPgkgEQQQrLWd9AoJ8kbkKV2GOQ6fbujj/Bx\n"
-            "80PKC1wLYLn7QHPZiYN/ID/TdE6qaTxOfBCMG2g6b6xep5DTw7/8YwOKb3HK0Hij\n"
-            "/RD0iTaxNQrq4xanBqZvjIpbOM1QaTnGLETMmmsu/HBEYpk24R1X/LvFSbNc3zHy\n"
-            "f5kCfK/zA0kPkqlggmbOW9ZPzQs8CZ9SbJv5fxEpi3UzWUlc286mtGLrZNECAwEA\n"
-            "AaOCCWMwgglfMIIBfAYKKwYBBAHWeQIEAgSCAWwEggFoAWYAdgBGpVXrdfqRIDC1\n"
-            "oolp9PN9ESxBdL79SbiFq/L8cP5tRwAAAYFLN69wAAAEAwBHMEUCIGTND7bl7y2c\n"
-            "PUBTR4qse7n1J3y3QVHtwxxInN8017dvAiEAzAY98uWMgzsXToG22QuFfgZITqUP\n"
-            "mUDyDR6wjLLxTYYAdQBVgdTCFpA2AUrqC5tXPFPwwOQ4eHAlCBcvo6odBxPTDAAA\n"
-            "AYFLN7B6AAAEAwBGMEQCIGvArKHV/doC367M/K3k+QzrdJkdSzuDF0pXftPau9RP\n"
-            "AiAdGw4rMcThB+ateVyBx1ePL+f6x3fZVi4utU59u+zY2wB1AEHIyrHfIkZKEMah\n"
-            "OglCh15OMYsbA+vrS8do8JBilgb2AAABgUs3r/sAAAQDAEYwRAIgD2JGU3HOI1ub\n"
-            "MmsaOi5wV82K04NdYLrPhbuALtgnsnkCIF2G0Rq8qsABzAlnO6zXbNP4qPXztlF9\n"
-            "c1kcPGbUn07cMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUH\n"
-            "AwIwPgYJKwYBBAGCNxUHBDEwLwYnKwYBBAGCNxUIh9qGdYPu2QGCyYUbgbWeYYX0\n"
-            "62CBXYWGjkGHwphQAgFkAgEnMIGHBggrBgEFBQcBAQR7MHkwUwYIKwYBBQUHMAKG\n"
-            "R2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kvbXNjb3JwL01pY3Jvc29mdCUy\n"
-            "MFJTQSUyMFRMUyUyMENBJTIwMDEuY3J0MCIGCCsGAQUFBzABhhZodHRwOi8vb2Nz\n"
-            "cC5tc29jc3AuY29tMB0GA1UdDgQWBBTPhtbKWKRl7m/t8mbyPQQwi99VOzAOBgNV\n"
-            "HQ8BAf8EBAMCBLAwggVtBgNVHREEggVkMIIFYIIMd3d3LmJpbmcuY29tghBkaWN0\n"
-            "LmJpbmcuY29tLmNughMqLnBsYXRmb3JtLmJpbmcuY29tggoqLmJpbmcuY29tgghi\n"
-            "aW5nLmNvbYIWaWVvbmxpbmUubWljcm9zb2Z0LmNvbYITKi53aW5kb3dzc2VhcmNo\n"
-            "LmNvbYIZY24uaWVvbmxpbmUubWljcm9zb2Z0LmNvbYIRKi5vcmlnaW4uYmluZy5j\n"
-            "b22CDSoubW0uYmluZy5uZXSCDiouYXBpLmJpbmcuY29tghhlY24uZGV2LnZpcnR1\n"
-            "YWxlYXJ0aC5uZXSCDSouY24uYmluZy5uZXSCDSouY24uYmluZy5jb22CEHNzbC1h\n"
-            "cGkuYmluZy5jb22CEHNzbC1hcGkuYmluZy5uZXSCDiouYXBpLmJpbmcubmV0gg4q\n"
-            "LmJpbmdhcGlzLmNvbYIPYmluZ3NhbmRib3guY29tghZmZWVkYmFjay5taWNyb3Nv\n"
-            "ZnQuY29tghtpbnNlcnRtZWRpYS5iaW5nLm9mZmljZS5uZXSCDnIuYmF0LmJpbmcu\n"
-            "Y29tghAqLnIuYmF0LmJpbmcuY29tghIqLmRpY3QuYmluZy5jb20uY26CDyouZGlj\n"
-            "dC5iaW5nLmNvbYIOKi5zc2wuYmluZy5jb22CECouYXBwZXguYmluZy5jb22CFiou\n"
-            "cGxhdGZvcm0uY24uYmluZy5jb22CDXdwLm0uYmluZy5jb22CDCoubS5iaW5nLmNv\n"
-            "bYIPZ2xvYmFsLmJpbmcuY29tghF3aW5kb3dzc2VhcmNoLmNvbYIOc2VhcmNoLm1z\n"
-            "bi5jb22CESouYmluZ3NhbmRib3guY29tghkqLmFwaS50aWxlcy5kaXR1LmxpdmUu\n"
-            "Y29tgg8qLmRpdHUubGl2ZS5jb22CGCoudDAudGlsZXMuZGl0dS5saXZlLmNvbYIY\n"
-            "Ki50MS50aWxlcy5kaXR1LmxpdmUuY29tghgqLnQyLnRpbGVzLmRpdHUubGl2ZS5j\n"
-            "b22CGCoudDMudGlsZXMuZGl0dS5saXZlLmNvbYIVKi50aWxlcy5kaXR1LmxpdmUu\n"
-            "Y29tggszZC5saXZlLmNvbYITYXBpLnNlYXJjaC5saXZlLmNvbYIUYmV0YS5zZWFy\n"
-            "Y2gubGl2ZS5jb22CFWNud2ViLnNlYXJjaC5saXZlLmNvbYIMZGV2LmxpdmUuY29t\n"
-            "gg1kaXR1LmxpdmUuY29tghFmYXJlY2FzdC5saXZlLmNvbYIOaW1hZ2UubGl2ZS5j\n"
-            "b22CD2ltYWdlcy5saXZlLmNvbYIRbG9jYWwubGl2ZS5jb20uYXWCFGxvY2Fsc2Vh\n"
-            "cmNoLmxpdmUuY29tghRsczRkLnNlYXJjaC5saXZlLmNvbYINbWFpbC5saXZlLmNv\n"
-            "bYIRbWFwaW5kaWEubGl2ZS5jb22CDmxvY2FsLmxpdmUuY29tgg1tYXBzLmxpdmUu\n"
-            "Y29tghBtYXBzLmxpdmUuY29tLmF1gg9taW5kaWEubGl2ZS5jb22CDW5ld3MubGl2\n"
-            "ZS5jb22CHG9yaWdpbi5jbndlYi5zZWFyY2gubGl2ZS5jb22CFnByZXZpZXcubG9j\n"
-            "YWwubGl2ZS5jb22CD3NlYXJjaC5saXZlLmNvbYISdGVzdC5tYXBzLmxpdmUuY29t\n"
-            "gg52aWRlby5saXZlLmNvbYIPdmlkZW9zLmxpdmUuY29tghV2aXJ0dWFsZWFydGgu\n"
-            "bGl2ZS5jb22CDHdhcC5saXZlLmNvbYISd2VibWFzdGVyLmxpdmUuY29tghN3ZWJt\n"
-            "YXN0ZXJzLmxpdmUuY29tghV3d3cubG9jYWwubGl2ZS5jb20uYXWCFHd3dy5tYXBz\n"
-            "LmxpdmUuY29tLmF1MIGwBgNVHR8EgagwgaUwgaKggZ+ggZyGTWh0dHA6Ly9tc2Ny\n"
-            "bC5taWNyb3NvZnQuY29tL3BraS9tc2NvcnAvY3JsL01pY3Jvc29mdCUyMFJTQSUy\n"
-            "MFRMUyUyMENBJTIwMDEuY3JshktodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtp\n"
-            "L21zY29ycC9jcmwvTWljcm9zb2Z0JTIwUlNBJTIwVExTJTIwQ0ElMjAwMS5jcmww\n"
-            "VwYDVR0gBFAwTjBCBgkrBgEEAYI3KgEwNTAzBggrBgEFBQcCARYnaHR0cDovL3d3\n"
-            "dy5taWNyb3NvZnQuY29tL3BraS9tc2NvcnAvY3BzMAgGBmeBDAECATAfBgNVHSME\n"
-            "GDAWgBS1dgwwEc7HkkJNTMdcLMipDOgLZDAdBgNVHSUEFjAUBggrBgEFBQcDAQYI\n"
-            "KwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAB26QQoY9CP1wxr34qQBIURTkqNv\n"
-            "FPnC9cIWilX/mHoF1Br1UoZMMmiCqueSeqfWRzCJvgmX3LI0mwwuHK6v1+aCLtNA\n"
-            "ZTmMBDta0bHECngcv3OYsCsLq721HMx41jghii4MU6AbAa/lfp4HTYwa+3/F5S9c\n"
-            "nV2iRDU5b5dAa4sVCagzAqYrZ6lqRA4ZqBtf0dbjdHAY39qeC7qFsZXm45IsDcwL\n"
-            "1TvCfDaUMwT0QxVNSfqRyX1YtygcfEqhQ6Ixe9uEO8I0PrULK/Nv1/ljV7B//YpJ\n"
-            "1Y/8LUKLVZf5/hUWniF1dk5ieCudGaMJrMKEb+phBpGi4/rIiLmtcu5vhXs0Surb\n"
-            "+5BaCdDv6DCPbs54MzAqDbPtvq4QhdxZJqF9GSgppdkeG71jduoWGf6//myU0FL8\n"
-            "mQo7e0AQRXpI73bgm22ltnv1hv5dVxCcow4dwsyO1y+wTm54slnUIbnz5Q/ersm+\n"
-            "A46ArbcRRvmp86hwZlflq7Ck4c53RXAncWUW7bkAMmdYFpDBRkMh/VsCt9pV6LcZ\n"
-            "CwibBdeCW4u530hJSeQ7IUkru7cqInzPgJaWA4Rd5Z8ZmKySR9LFi3E+wGL7d9bC\n"
-            "ck1o2m9gskB4yaxNivRn6XAo8dF2bsHxVmqwpzbdQ2BXECzJ9WwxrThRJXZo9BOR\n"
-            "WneHWxrOCzK3NWzJ\n"
+            "MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBX\n"
+            "MQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UE\n"
+            "CxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYx\n"
+            "OTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoT\n"
+            "GUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIx\n"
+            "MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63\n"
+            "ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwS\n"
+            "iV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351k\n"
+            "KSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZ\n"
+            "DrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zk\n"
+            "j5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5\n"
+            "cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esW\n"
+            "CruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499\n"
+            "iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35Ei\n"
+            "Eua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbap\n"
+            "sZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b\n"
+            "9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAP\n"
+            "BgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAf\n"
+            "BgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIw\n"
+            "JQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUH\n"
+            "MAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6Al\n"
+            "oCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAy\n"
+            "MAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIF\n"
+            "AwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9\n"
+            "NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9\n"
+            "WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw\n"
+            "9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy\n"
+            "+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvi\n"
+            "d0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=\n"
             "-----END CERTIFICATE-----\n"
             );
-        cm[RawCertificateID::BING_COM].raw_base64 = raw_base64;
-        cm[RawCertificateID::BING_COM].certPtr = createCert(raw_base64);
+        cm[RawCertificateID::GTS_ROOT_R1].raw_base64 = raw_base64;
+        cm[RawCertificateID::GTS_ROOT_R1].certPtr = createCert(raw_base64);
     }
 
     return cm;
index 7958a18..2fd4e24 100644 (file)
@@ -33,14 +33,9 @@ enum certificateID {
     TEST_IM_CA,
     TEST_LEAF,
 
-    // third party
-    THIRD_PARTY_ROOT_CA,
-    THIRD_PARTY_IM_CA,
-    THIRD_PARTY_LEAF,
-
-    // ocsp available certificate chain, thirt party
+    // ocsp available certificate chain, third party
+    OCSP_ROOT_CA,
     OCSP_AVAILABLE_IM,
-    OCSP_AVAILABLE_LEAF,
 
     // footer
     NO_CERT
index c0c40bf..82ad290 100644 (file)
@@ -535,17 +535,17 @@ RUNNER_TEST(TA0110_save_cert_invalid_param, UserEnv)
 
 RUNNER_TEST(TA0120_save_cert_already_exists, UserEnv)
 {
-    test_positive(&ManagerAsync::saveCertificate, "alias", getTestCertificate(OCSP_AVAILABLE_LEAF), Policy());
+    test_positive(&ManagerAsync::saveCertificate, "alias", getTestCertificate(TEST_LEAF), Policy());
     test_negative(&ManagerAsync::saveCertificate,
                   CKM_API_ERROR_DB_ALIAS_EXISTS,
                   "alias",
-                  getTestCertificate(OCSP_AVAILABLE_LEAF),
+                  getTestCertificate(TEST_LEAF),
                   Policy());
 }
 
 RUNNER_TEST(TA0150_save_cert_positive, UserEnv)
 {
-    test_positive(&ManagerAsync::saveCertificate, "alias", getTestCertificate(OCSP_AVAILABLE_LEAF), Policy());
+    test_positive(&ManagerAsync::saveCertificate, "alias", getTestCertificate(TEST_LEAF), Policy());
 }
 
 
@@ -599,7 +599,7 @@ RUNNER_TEST(TA0350_remove_key_positive, UserEnv)
 
 RUNNER_TEST(TA0450_remove_cert_positive, UserEnv)
 {
-    test_positive(&ManagerAsync::saveCertificate, "alias", getTestCertificate(OCSP_AVAILABLE_LEAF), Policy());
+    test_positive(&ManagerAsync::saveCertificate, "alias", getTestCertificate(TEST_LEAF), Policy());
     test_positive(&ManagerAsync::removeAlias, "alias");
 }
 
@@ -685,7 +685,7 @@ RUNNER_TEST(TA0740_get_cert_wrong_password, UserEnv)
 {
     test_positive(&ManagerAsync::saveCertificate,
                   "alias",
-                  getTestCertificate(OCSP_AVAILABLE_LEAF),
+                  getTestCertificate(TEST_LEAF),
                   Policy("password"));
     test_negative(&ManagerAsync::getCertificate,
                   CKM_API_ERROR_AUTHENTICATION_FAILED,
@@ -701,7 +701,7 @@ RUNNER_TEST(TA0750_get_cert_positive, UserEnv)
     static constexpr char PASS[] = "password";
     static constexpr char ALIAS[] = "alias";
 
-    const auto cert = getTestCertificate(OCSP_AVAILABLE_LEAF);
+    const auto cert = getTestCertificate(TEST_LEAF);
 
     mgr.saveCertificate(obs, ALIAS, cert, Policy(PASS));
     obs->WaitForSuccess();
@@ -783,10 +783,10 @@ RUNNER_TEST(TA1010_get_cert_alias_vector_invalid_param, UserEnv)
 
 RUNNER_TEST(TA1050_get_cert_alias_vector_positive, UserEnv)
 {
-    test_positive(&ManagerAsync::saveCertificate, "alias1", getTestCertificate(OCSP_AVAILABLE_LEAF), Policy());
+    test_positive(&ManagerAsync::saveCertificate, "alias1", getTestCertificate(TEST_LEAF), Policy());
     test_check_aliases(&ManagerAsync::getCertificateAliasVector, { aliasWithLabelFromSelf("alias1") });
 
-    test_positive(&ManagerAsync::saveCertificate, "alias2", getTestCertificate(OCSP_AVAILABLE_IM), Policy());
+    test_positive(&ManagerAsync::saveCertificate, "alias2", getTestCertificate(TEST_IM_CA), Policy());
     test_check_aliases(&ManagerAsync::getCertificateAliasVector, { aliasWithLabelFromSelf("alias1"),
                                                                    aliasWithLabelFromSelf("alias2") });
 
@@ -955,8 +955,8 @@ RUNNER_TEST(TA1380_create_key_AES_positive, UserEnv)
 // getCertificateChain
 RUNNER_TEST(TA1410_get_certificate_chain_invalid_param, UserEnv)
 {
-    CertificateShPtr cert = getTestCertificate(OCSP_AVAILABLE_LEAF);
-    CertificateShPtrVector certv = { getTestCertificate(OCSP_AVAILABLE_IM) };
+    CertificateShPtr cert = getTestCertificate(TEST_LEAF);
+    CertificateShPtrVector certv = { getTestCertificate(TEST_IM_CA) };
     test_no_observer<certChainFn1>(&ManagerAsync::getCertificateChain,
                                    cert,
                                    certv,
@@ -984,55 +984,61 @@ RUNNER_TEST(TA1410_get_certificate_chain_invalid_param, UserEnv)
 
 RUNNER_TEST(TA1420_get_certificate_chain_negative, UserEnv)
 {
-    CertificateShPtr cert = getTestCertificate(OCSP_AVAILABLE_LEAF);
-    CertificateShPtrVector certv = { getTestCertificate(OCSP_AVAILABLE_LEAF) };
+    CertificateShPtr cert = getTestCertificate(TEST_LEAF);
+    CertificateShPtrVector certv = { getTestCertificate(TEST_LEAF) };
+    CertificateShPtrVector trustedv = { getTestCertificate(TEST_ROOT_CA) };
     test_negative<certChainFn1>(&ManagerAsync::getCertificateChain,
                                 CKM_API_ERROR_VERIFICATION_FAILED,
                                 cert,
                                 EMPTY_CERT_VECTOR,
-                                EMPTY_CERT_VECTOR,
+                                trustedv,
                                 true);
     test_negative<certChainFn1>(&ManagerAsync::getCertificateChain,
                                 CKM_API_ERROR_VERIFICATION_FAILED,
                                 cert,
                                 certv,
-                                EMPTY_CERT_VECTOR,
+                                trustedv,
                                 true);
     AliasVector aliasv = { "alias" };
-    test_positive(&ManagerAsync::saveCertificate, aliasv[0], getTestCertificate(OCSP_AVAILABLE_LEAF), Policy());
+    test_positive(&ManagerAsync::saveCertificate, aliasv[0], certv[0], Policy());
+    AliasVector trusted_aliasv = { "trusted" };
+    test_positive(&ManagerAsync::saveCertificate, trusted_aliasv[0], trustedv[0], Policy());
     test_negative<certChainFn2>(&ManagerAsync::getCertificateChain,
                                 CKM_API_ERROR_VERIFICATION_FAILED,
                                 cert,
                                 EMPTY_ALIAS_VECTOR,
-                                EMPTY_ALIAS_VECTOR,
+                                trusted_aliasv,
                                 true);
     test_negative<certChainFn2>(&ManagerAsync::getCertificateChain,
                                 CKM_API_ERROR_VERIFICATION_FAILED,
                                 cert,
                                 aliasv,
-                                EMPTY_ALIAS_VECTOR,
+                                trusted_aliasv,
                                 true);
 }
 
 RUNNER_TEST(TA1450_get_certificate_chain_positive, UserEnv)
 {
-    CertificateShPtr cert = getTestCertificate(OCSP_AVAILABLE_LEAF);
-    CertificateShPtrVector certv = { getTestCertificate(OCSP_AVAILABLE_IM) };
+    CertificateShPtr cert = getTestCertificate(TEST_LEAF);
+    CertificateShPtrVector certv = { getTestCertificate(TEST_IM_CA) };
+    CertificateShPtrVector trustedv = { getTestCertificate(TEST_ROOT_CA) };
     test_check_cert_chain<certChainFn1>(&ManagerAsync::getCertificateChain,
                                         3,
                                         cert,
                                         certv,
-                                        EMPTY_CERT_VECTOR,
-                                        true);
+                                        trustedv,
+                                        false);
 
     AliasVector aliasv = { "alias" };
-    test_positive(&ManagerAsync::saveCertificate, aliasv[0], getTestCertificate(OCSP_AVAILABLE_IM), Policy());
+    AliasVector trusted_aliasv = { "trusted" };
+    test_positive(&ManagerAsync::saveCertificate, aliasv[0], certv[0], Policy());
+    test_positive(&ManagerAsync::saveCertificate, trusted_aliasv[0], trustedv[0], Policy());
     test_check_cert_chain<certChainFn2>(&ManagerAsync::getCertificateChain,
                                         3,
                                         cert,
                                         aliasv,
-                                        EMPTY_ALIAS_VECTOR,
-                                        true);
+                                        trusted_aliasv,
+                                        false);
 }
 
 
@@ -1238,7 +1244,7 @@ RUNNER_TEST(TA1710_ocsp_check_invalid_param, UserEnv)
 
 RUNNER_TEST(TA1720_ocsp_check_negative, UserEnv)
 {
-    CertificateShPtrVector certv = { getTestCertificate(OCSP_AVAILABLE_LEAF), getTestCertificate(OCSP_AVAILABLE_LEAF) };
+    CertificateShPtrVector certv = { getTestCertificate(OCSP_AVAILABLE_IM), getTestCertificate(OCSP_AVAILABLE_IM) };
 
     auto obs = test_positive(&ManagerAsync::ocspCheck, certv);
     RUNNER_ASSERT_MSG(obs->m_ocspStatus != CKM_API_OCSP_STATUS_GOOD,
@@ -1247,8 +1253,8 @@ RUNNER_TEST(TA1720_ocsp_check_negative, UserEnv)
 
 RUNNER_TEST(TA1750_ocsp_check_positive, UserEnv)
 {
-    CertificateShPtr cert = getTestCertificate(OCSP_AVAILABLE_LEAF);
-    CertificateShPtrVector certv = { getTestCertificate(OCSP_AVAILABLE_IM) };
+    CertificateShPtr cert = getTestCertificate(OCSP_AVAILABLE_IM);
+    CertificateShPtrVector certv;
     auto obs = test_positive<certChainFn1>(&ManagerAsync::getCertificateChain,
                                            cert,
                                            certv,
index a9d22b7..7638810 100644 (file)
@@ -47,7 +47,7 @@ ckmc_cert_s* create_cert(TestData::certificateID idx) {
 
     ckmc_cert_s* cert = NULL;
     assert_positive(ckmc_cert_new,
-                    reinterpret_cast<unsigned char*>(const_cast<char*>(cert_raw.c_str())),
+                    reinterpret_cast<unsigned char*>(cert_raw.data()),
                     cert_raw.size(),
                     CKMC_FORM_PEM,
                     &cert);
@@ -100,12 +100,13 @@ public:
     ChainVerifierBase();
     virtual ~ChainVerifierBase();
 
-    void addTrusted(TestData::certificateID idx);
+    virtual void addTrusted(TestData::certificateID idx);
     void addUntrusted(TestData::certificateID idx);
-    void enableSystem(bool enable);
+    void disableSystem();
 
-    virtual void verifyPositive(TestData::certificateID idx, size_t expected) = 0;
-    virtual void verifyNegative(TestData::certificateID idx, int error = CKMC_ERROR_VERIFICATION_FAILED) = 0;
+    virtual void verifyPositive(TestData::certificateID idx, size_t expected) const = 0;
+    virtual void verifyNegative(TestData::certificateID idx,
+                                int error = CKMC_ERROR_VERIFICATION_FAILED) const = 0;
 
 protected:
     void addCert(ckmc_cert_list_s*& list, ckmc_cert_s* cert);
@@ -162,9 +163,9 @@ void ChainVerifierBase::addUntrusted(TestData::certificateID idx)
     addAlias(m_untrustedAliases, ss.str().c_str());
 }
 
-void ChainVerifierBase::enableSystem(bool enable)
+void ChainVerifierBase::disableSystem()
 {
-    m_system = enable;
+    m_system = false;
 }
 
 void ChainVerifierBase::addCert(ckmc_cert_list_s*& list, ckmc_cert_s* cert)
@@ -201,17 +202,22 @@ void ChainVerifierBase::addAlias(ckmc_alias_list_s*& list, const char* alias)
 
 class ChainVerifierOld : public ChainVerifierBase {
 public:
-    virtual void verifyPositive(TestData::certificateID idx, size_t expected);
-    virtual void verifyNegative(TestData::certificateID idx, int error = CKMC_ERROR_VERIFICATION_FAILED);
+    void addTrusted(TestData::certificateID) override {
+        RUNNER_FAIL_MSG("Old API does not support trusted certificates");
+    }
+    void verifyPositive(TestData::certificateID idx, size_t expected) const override;
+    void verifyNegative(TestData::certificateID idx,
+                        int error = CKMC_ERROR_VERIFICATION_FAILED) const override;
 };
 
 class ChainVerifier : public ChainVerifierBase {
 public:
-    virtual void verifyPositive(TestData::certificateID idx, size_t expected);
-    virtual void verifyNegative(TestData::certificateID idx, int error = CKMC_ERROR_VERIFICATION_FAILED);
+    void verifyPositive(TestData::certificateID idx, size_t expected) const override;
+    void verifyNegative(TestData::certificateID idx,
+                        int error = CKMC_ERROR_VERIFICATION_FAILED) const override;
 };
 
-void ChainVerifierOld::verifyPositive(TestData::certificateID idx, size_t expected)
+void ChainVerifierOld::verifyPositive(TestData::certificateID idx, size_t expected) const
 {
     ckmc_cert_s* cert = create_cert(idx);
 
@@ -240,7 +246,7 @@ void ChainVerifierOld::verifyPositive(TestData::certificateID idx, size_t expect
     ckmc_cert_free(cert);
 }
 
-void ChainVerifier::verifyPositive(TestData::certificateID idx, size_t expected)
+void ChainVerifier::verifyPositive(TestData::certificateID idx, size_t expected) const
 {
     ckmc_cert_s* cert = create_cert(idx);
 
@@ -261,7 +267,7 @@ void ChainVerifier::verifyPositive(TestData::certificateID idx, size_t expected)
     ckmc_cert_free(cert);
 }
 
-void ChainVerifierOld::verifyNegative(TestData::certificateID idx, int error)
+void ChainVerifierOld::verifyNegative(TestData::certificateID idx, int error) const
 {
     ckmc_cert_s* cert = create_cert(idx);
 
@@ -285,7 +291,7 @@ void ChainVerifierOld::verifyNegative(TestData::certificateID idx, int error)
     ckmc_cert_free(cert);
 }
 
-void ChainVerifier::verifyNegative(TestData::certificateID idx, int error)
+void ChainVerifier::verifyNegative(TestData::certificateID idx, int error) const
 {
     ckmc_cert_s* cert = create_cert(idx);
 
@@ -317,10 +323,15 @@ RUNNER_TEST(TCCH_0010_get_chain_old_api)
     remove_user_data(APP_UID);
 
     ChainVerifierOld cv;
-    cv.verifyNegative(TestData::THIRD_PARTY_LEAF);
 
-    cv.addUntrusted(TestData::THIRD_PARTY_IM_CA);
-    cv.verifyPositive(TestData::THIRD_PARTY_LEAF, 3); // including system cert
+    cv.verifyNegative(TestData::TEST_LEAF);
+
+    cv.verifyPositive(TestData::OCSP_AVAILABLE_IM, 2); // including system cert
+
+    cv.addUntrusted(TestData::TEST_IM_CA);
+    cv.verifyNegative(TestData::TEST_LEAF);
+
+    cv.addUntrusted(TestData::TEST_ROOT_CA);
     cv.verifyNegative(TestData::TEST_LEAF);
 }
 
@@ -330,7 +341,7 @@ RUNNER_TEST(TCCH_0020_get_chain_old_api_system_only)
     remove_user_data(APP_UID);
 
     ChainVerifierOld cv;
-    cv.verifyPositive(TestData::THIRD_PARTY_IM_CA, 2); // including system cert
+    cv.verifyPositive(TestData::OCSP_AVAILABLE_IM, 2); // including system cert
 }
 
 // check invalid arguments
@@ -338,45 +349,48 @@ RUNNER_TEST(TCCH_0100_get_certificate_chain_invalid_param)
 {
     remove_user_data(APP_UID);
 
-    ckmc_cert_s* ca2 = create_cert(TestData::THIRD_PARTY_LEAF);
-    ckmc_cert_s* ca1 = create_cert(TestData::THIRD_PARTY_IM_CA);
+    ckmc_cert_s* leaf = create_cert(TestData::TEST_LEAF);
+    ckmc_cert_s* ca = create_cert(TestData::TEST_IM_CA);
+    ckmc_cert_s* root = create_cert(TestData::TEST_ROOT_CA);
     ckmc_cert_list_s* chain = NULL;
 
     // cert
-    CertListPtr untrusted_c = create_cert_list(ca1, NULL);
-    ca1 = NULL;
+    CertListPtr untrusted_c = create_cert_list(ca, NULL);
+    ca = NULL;
+    CertListPtr trusted_c = create_cert_list(root, NULL);
 
     assert_invalid_param(ckmc_get_cert_chain_with_trustedcert,
                          NULL_CERT,
                          untrusted_c.get(),
-                         untrusted_c.get(),
+                         trusted_c.get(),
                          true,
                          &chain);
 
     assert_invalid_param(ckmc_get_cert_chain_with_trustedcert,
-                         ca2,
-                         untrusted_c.get(),
+                         leaf,
                          untrusted_c.get(),
+                         trusted_c.get(),
                          true,
                          NULL_CHAIN);
 
-    ckmc_cert_free(ca2);
+    ckmc_cert_free(leaf);
 }
 
 /*
  * This test verifies that chain of trust won't be successfully built unless system or trusted
- * certificates are used even if real trusted root ca certs are used as untrusted.
+ * certificates are used.
  */
 RUNNER_TEST(TCCH_0120_get_certificate_chain_root_ca_negative)
 {
     remove_user_data(APP_UID);
 
     ChainVerifier cv;
-    cv.enableSystem(false);
-    cv.verifyNegative(TestData::THIRD_PARTY_ROOT_CA);
+    cv.disableSystem();
+    cv.verifyNegative(TestData::OCSP_AVAILABLE_IM);
+    cv.verifyNegative(TestData::OCSP_ROOT_CA);
 
-    cv.addUntrusted(TestData::THIRD_PARTY_IM_CA);
-    cv.verifyNegative(TestData::THIRD_PARTY_LEAF);
+    cv.addUntrusted(TestData::OCSP_ROOT_CA);
+    cv.verifyNegative(TestData::OCSP_AVAILABLE_IM);
 }
 
 /*
@@ -388,7 +402,7 @@ RUNNER_TEST(TCCH_0140_get_certificate_chain_trusted_only)
     remove_user_data(APP_UID);
 
     ChainVerifier cv;
-    cv.enableSystem(false);
+    cv.disableSystem();
     cv.addTrusted(TestData::TEST_ROOT_CA);
     cv.verifyPositive(TestData::TEST_IM_CA, 2);
     cv.verifyNegative(TestData::TEST_LEAF);
@@ -402,8 +416,8 @@ RUNNER_TEST(TCCH_0150_get_certificate_chain_system_only)
     remove_user_data(APP_UID);
 
     ChainVerifier cv;
-    cv.verifyPositive(TestData::THIRD_PARTY_IM_CA, 2); // including system cert
-    cv.verifyNegative(TestData::THIRD_PARTY_LEAF);
+    cv.verifyPositive(TestData::OCSP_AVAILABLE_IM, 2); // including system cert
+    cv.verifyNegative(TestData::TEST_ROOT_CA);
 }
 
 /*
@@ -416,17 +430,7 @@ RUNNER_TEST(TCCH_0160_get_certificate_chain_no_untrusted)
     ChainVerifier cv;
     cv.addTrusted(TestData::TEST_ROOT_CA);
     cv.verifyPositive(TestData::TEST_IM_CA, 2); // signed by trusted cert (TEST_ROOT_CA)
-    cv.verifyPositive(TestData::THIRD_PARTY_IM_CA, 2); // signed by system cert (THIRD_PARTY_ROOT_CA)
-    cv.verifyNegative(TestData::THIRD_PARTY_LEAF);
-}
-
-RUNNER_TEST(TCCH_0170_get_certificate_chain_no_trusted)
-{
-    remove_user_data(APP_UID);
-
-    ChainVerifier cv;
-    cv.addUntrusted(TestData::THIRD_PARTY_IM_CA);
-    cv.verifyPositive(TestData::THIRD_PARTY_LEAF, 3); // including system cert
+    cv.verifyPositive(TestData::OCSP_AVAILABLE_IM, 2); // signed by system cert (OCSP_ROOT_CA)
     cv.verifyNegative(TestData::TEST_LEAF);
 }
 
@@ -438,11 +442,11 @@ RUNNER_TEST(TCCH_0180_get_certificate_chain_no_system)
     remove_user_data(APP_UID);
 
     ChainVerifier cv;
-    cv.enableSystem(false);
+    cv.disableSystem();
     cv.addTrusted(TestData::TEST_ROOT_CA);
     cv.addUntrusted(TestData::TEST_IM_CA);
     cv.verifyPositive(TestData::TEST_LEAF, 3);
-    cv.verifyNegative(TestData::THIRD_PARTY_LEAF);
+    cv.verifyNegative(TestData::OCSP_AVAILABLE_IM);
 }
 
 /*
@@ -453,24 +457,11 @@ RUNNER_TEST(TCCH_0190_get_certificate_chain_im_ca_in_trusted)
     remove_user_data(APP_UID);
 
     ChainVerifier cv;
-    cv.enableSystem(false);
+    cv.disableSystem();
     cv.addTrusted(TestData::TEST_ROOT_CA);
     cv.addTrusted(TestData::TEST_IM_CA);
     cv.verifyPositive(TestData::TEST_LEAF, 3);
-    cv.verifyNegative(TestData::THIRD_PARTY_LEAF);
-}
-
-RUNNER_TEST(TCCH_0200_get_certificate_chain_all)
-{
-    remove_user_data(APP_UID);
-
-    ChainVerifier cv;
-    cv.enableSystem(true);
-    cv.addTrusted(TestData::TEST_ROOT_CA);
-    cv.addUntrusted(TestData::THIRD_PARTY_IM_CA);
-
-    cv.verifyPositive(TestData::THIRD_PARTY_LEAF, 3);
-    cv.verifyNegative(TestData::TEST_LEAF);
+    cv.verifyNegative(TestData::OCSP_AVAILABLE_IM);
 }
 
 RUNNER_TEST(TCCH_9999_deinit)
index 0e0cfca..4491458 100644 (file)
@@ -227,7 +227,7 @@ RUNNER_TEST(T30204_certificate_C_API)
 {
        int temp;
 
-       std::string certPem = TestData::getTestCertificateBase64(TestData::THIRD_PARTY_LEAF);
+       std::string certPem = TestData::getTestCertificateBase64(TestData::TEST_LEAF);
 
        char* password = NULL;
        ckmc_cert_s *cert2;
@@ -282,7 +282,7 @@ RUNNER_TEST(T30206_certificate_list_C_API)
 {
        int temp;
 
-       std::string certPem = TestData::getTestCertificateBase64(TestData::THIRD_PARTY_LEAF);
+       std::string certPem = TestData::getTestCertificateBase64(TestData::TEST_LEAF);
 
        char* password = NULL;
        ckmc_cert_s cert;
@@ -396,38 +396,6 @@ RUNNER_TEST(T30209_save_AES_keys_exportable_flag)
                        CKMCReadableError(temp));
 }
 
-RUNNER_TEST(T30210_certificate_with_DSA_key_C_API)
-{
-       int temp;
-
-       std::string certPem = TestData::getTestCertificateBase64(TestData::THIRD_PARTY_LEAF);
-
-       char* password = NULL;
-       ckmc_cert_s *cert2 = NULL;
-       ckmc_cert_s cert;
-
-       ckmc_policy_s test_policy;
-       test_policy.password = password;
-       test_policy.extractable = 1;
-
-       char* char_certPem = new char[certPem.length() + 1];
-       std::strcpy(char_certPem, certPem.c_str());
-       cert.raw_cert =  (unsigned char *)char_certPem;
-       cert.cert_size = certPem.length();
-       cert.data_format = CKMC_FORM_PEM;
-
-       CKM::Alias alias = "test-cert-1-DSA";
-       RUNNER_ASSERT_MSG(
-                       CKMC_ERROR_NONE == (temp = ckmc_save_cert(alias.c_str(), cert, test_policy)),
-                       CKMCReadableError(temp));
-
-       RUNNER_ASSERT_MSG(
-                       CKMC_ERROR_NONE == (temp = ckmc_get_cert(alias.c_str(), password, &cert2)),
-                       CKMCReadableError(temp));
-
-       ckmc_cert_free(cert2);
-}
-
 RUNNER_TEST(T30211_deinit_C_API)
 {
        int temp;
@@ -1123,26 +1091,16 @@ RUNNER_TEST(T3071_CAPI_init)
 
 RUNNER_TEST(T3074_CAPI_ckmc_ocsp_check)
 {
-       std::string ee = TestData::getTestCertificateBase64(TestData::OCSP_AVAILABLE_LEAF);
        std::string im = TestData::getTestCertificateBase64(TestData::OCSP_AVAILABLE_IM);
 
        ckmc_cert_s c_cert;
-       c_cert.raw_cert = reinterpret_cast<unsigned char *>(const_cast<char *>(ee.c_str()));
-       c_cert.cert_size = ee.size();
+       c_cert.raw_cert = reinterpret_cast<unsigned char *>(im.data());
+       c_cert.cert_size = im.size();
        c_cert.data_format = CKMC_FORM_PEM;
 
-       ckmc_cert_s c_cert1;
-       c_cert1.raw_cert = reinterpret_cast<unsigned char *>(const_cast<char *>(im.c_str()));
-       c_cert1.cert_size = im.size();
-       c_cert1.data_format = CKMC_FORM_PEM;
-
-       ckmc_cert_list_s untrustedcerts;
-       untrustedcerts.cert = &c_cert1;
-       untrustedcerts.next = NULL;
-
        ckmc_cert_list_s *cert_chain_list;
 
-       int     tmp = ckmc_get_cert_chain(&c_cert, &untrustedcerts, &cert_chain_list);
+       int     tmp = ckmc_get_cert_chain(&c_cert, NULL, &cert_chain_list);
        RUNNER_ASSERT_MSG(
                        CKMC_ERROR_NONE == tmp, CKMCReadableError(tmp));
 
@@ -1231,7 +1189,7 @@ RUNNER_TEST(T3082_CAPI__rsa_key_create_verify)
        ckmc_raw_buffer_s *signature;
 
        ckmc_key_s pubkey;
-       pubkey.raw_key = const_cast<unsigned char *>(reinterpret_cast<const unsigned char *>(pub.c_str()));
+       pubkey.raw_key = reinterpret_cast<unsigned char *>(pub.data());
        pubkey.key_size = pub.size();
        pubkey.key_type = CKMC_KEY_NONE;
        pubkey.password = NULL;
@@ -1245,7 +1203,7 @@ RUNNER_TEST(T3082_CAPI__rsa_key_create_verify)
        pripolicy.extractable = 1;
 
        ckmc_key_s prikey;
-       prikey.raw_key = const_cast<unsigned char *>(reinterpret_cast<const unsigned char *>(prv.c_str()));
+       prikey.raw_key = reinterpret_cast<unsigned char *>(prv.data());
        prikey.key_size = prv.size();
        prikey.key_type = CKMC_KEY_NONE;
        prikey.password = const_cast<char *>(key_passwd);
@@ -1484,7 +1442,7 @@ RUNNER_TEST(T3084_CAPI__ec_key_create_verify)
        ckmc_raw_buffer_s *signature;
 
        ckmc_key_s pubkey;
-       pubkey.raw_key = const_cast<unsigned char *>(reinterpret_cast<const unsigned char *>(pub.c_str()));
+       pubkey.raw_key = reinterpret_cast<unsigned char *>(pub.data());
        pubkey.key_size = pub.size();
        pubkey.key_type = CKMC_KEY_NONE;
        pubkey.password = NULL;
@@ -1494,7 +1452,7 @@ RUNNER_TEST(T3084_CAPI__ec_key_create_verify)
        pubpolicy.extractable = 1;
 
        ckmc_key_s prikey;
-       prikey.raw_key = const_cast<unsigned char *>(reinterpret_cast<const unsigned char *>(prv.c_str()));
+       prikey.raw_key = reinterpret_cast<unsigned char *>(prv.data());
        prikey.key_size = prv.size();
        prikey.key_type = CKMC_KEY_NONE;
        prikey.password = key_passwd;
@@ -1595,7 +1553,7 @@ RUNNER_TEST(T3085_CAPI__rsa_cert_create_verify_signature)
        ckmc_raw_buffer_s *signature;
 
        ckmc_cert_s cert;
-       cert.raw_cert = const_cast<unsigned char *>(reinterpret_cast<const unsigned char *>(pub.c_str()));
+       cert.raw_cert = reinterpret_cast<unsigned char *>(pub.data());
        cert.cert_size = pub.size();
        cert.data_format = CKMC_FORM_PEM;
 
@@ -1604,7 +1562,7 @@ RUNNER_TEST(T3085_CAPI__rsa_cert_create_verify_signature)
        certpolicy.extractable = 1;
 
        ckmc_key_s prikey;
-       prikey.raw_key = const_cast<unsigned char *>(reinterpret_cast<const unsigned char *>(prv.c_str()));
+       prikey.raw_key = reinterpret_cast<unsigned char *>(prv.data());
        prikey.key_size = prv.size();
        prikey.key_type = CKMC_KEY_NONE;
        prikey.password = key_passwd;
@@ -1659,7 +1617,7 @@ RUNNER_TEST(T3086_CAPI__dsa_ext_key_create_verify_with_negative)
 {
        int temp;
 
-       const std::string pub = "-----BEGIN PUBLIC KEY-----\n"
+       std::string pub = "-----BEGIN PUBLIC KEY-----\n"
                "MIIBtzCCASwGByqGSM44BAEwggEfAoGBALeveaD/EheW+ws1YuW77f344+brkEzm\n"
                "BVfFYHr7t+jwu6nQe341SoESJG+PCgrrhy76KNDCfveiwEoWufVHnI4bYBU/ClzP\n"
                "A3amf6c5yud45ZR/b6OiAuew6ohY0mQGnzqeio8BaCsZaJ6EziCSlkdIDJisSfPg\n"
@@ -1672,7 +1630,7 @@ RUNNER_TEST(T3086_CAPI__dsa_ext_key_create_verify_with_negative)
                "YMYCBhubtrVaLmc=\n"
                "-----END PUBLIC KEY-----";
 
-       const std::string priv = "-----BEGIN DSA PRIVATE KEY-----\n"
+       std::string priv = "-----BEGIN DSA PRIVATE KEY-----\n"
                "MIIBvAIBAAKBgQC3r3mg/xIXlvsLNWLlu+39+OPm65BM5gVXxWB6+7fo8Lup0Ht+\n"
                "NUqBEiRvjwoK64cu+ijQwn73osBKFrn1R5yOG2AVPwpczwN2pn+nOcrneOWUf2+j\n"
                "ogLnsOqIWNJkBp86noqPAWgrGWiehM4gkpZHSAyYrEnz4J5Vh6n+AMB1XQIVAOyN\n"
@@ -1696,7 +1654,7 @@ RUNNER_TEST(T3086_CAPI__dsa_ext_key_create_verify_with_negative)
        ckmc_raw_buffer_s *signature = NULL;
 
        ckmc_key_s pubkey;
-       pubkey.raw_key = const_cast<unsigned char *>(reinterpret_cast<const unsigned char *>(pub.c_str()));
+       pubkey.raw_key = reinterpret_cast<unsigned char *>(pub.data());
        pubkey.key_size = pub.size();
        pubkey.key_type = CKMC_KEY_NONE;
        pubkey.password = NULL;
@@ -1710,7 +1668,7 @@ RUNNER_TEST(T3086_CAPI__dsa_ext_key_create_verify_with_negative)
        pripolicy.extractable = 1;
 
        ckmc_key_s prikey;
-       prikey.raw_key = const_cast<unsigned char *>(reinterpret_cast<const unsigned char *>(priv.c_str()));
+       prikey.raw_key = reinterpret_cast<unsigned char *>(priv.data());
        prikey.key_size = priv.size();
        prikey.key_type = CKMC_KEY_NONE;
        prikey.password = NULL;
@@ -1881,7 +1839,7 @@ RUNNER_TEST(T3088_CAPI__ecdsa_cert_create_verify_signature)
        ckmc_raw_buffer_s *signature;
 
        ckmc_cert_s cert;
-       cert.raw_cert = const_cast<unsigned char *>(reinterpret_cast<const unsigned char *>(pub.c_str()));
+       cert.raw_cert = reinterpret_cast<unsigned char *>(pub.data());
        cert.cert_size = pub.size();
        cert.data_format = CKMC_FORM_PEM;
 
@@ -1890,7 +1848,7 @@ RUNNER_TEST(T3088_CAPI__ecdsa_cert_create_verify_signature)
        certpolicy.extractable = 1;
 
        ckmc_key_s prikey;
-       prikey.raw_key = const_cast<unsigned char *>(reinterpret_cast<const unsigned char *>(prv.c_str()));
+       prikey.raw_key = reinterpret_cast<unsigned char *>(prv.data());
        prikey.key_size = prv.size();
        prikey.key_type = CKMC_KEY_NONE;
        prikey.password = key_passwd;
@@ -1992,7 +1950,7 @@ RUNNER_TEST(T3092_CAPI_TYPE_KEY)
                "zQIDAQAB\n"
                "-----END PUBLIC KEY-----";
 
-       unsigned char *raw_key = const_cast<unsigned char *>(reinterpret_cast<const unsigned char *>(keyPem.c_str()));
+       unsigned char *raw_key = reinterpret_cast<unsigned char *>(keyPem.data());
        unsigned int key_size = keyPem.size();
        ckmc_key_type_e key_type = CKMC_KEY_NONE;
        char *password = const_cast< char *>("");
@@ -2021,7 +1979,7 @@ RUNNER_TEST(T3093_CAPI_TYPE_BUFFER)
                "zQIDAQAB\n"
                "-----END PUBLIC KEY-----";
 
-       unsigned char *data = const_cast<unsigned char *>(reinterpret_cast<const unsigned char *>(keyPem.c_str()));
+       unsigned char *data = reinterpret_cast<unsigned char *>(keyPem.data());
        unsigned int size = keyPem.size();
 
        ckmc_raw_buffer_s *buff;
@@ -2044,9 +2002,9 @@ RUNNER_TEST(T3093_CAPI_TYPE_BUFFER)
 
 RUNNER_TEST(T3094_CAPI_TYPE_CERT)
 {
-       std::string certPem = TestData::getTestCertificateBase64(TestData::THIRD_PARTY_LEAF);
+       std::string certPem = TestData::getTestCertificateBase64(TestData::TEST_LEAF);
 
-       unsigned char *raw_cert = const_cast<unsigned char *>(reinterpret_cast<const unsigned char *>(certPem.c_str()));
+       unsigned char *raw_cert = reinterpret_cast<unsigned char *>(certPem.data());
        unsigned int size = certPem.size();
        ckmc_data_format_e form = CKMC_FORM_PEM;
 
@@ -2075,7 +2033,7 @@ RUNNER_TEST(T3095_CAPI_TYPE_load_cert_file)
 {
        int ret;
 
-       std::string certStr = TestData::getTestCertificateBase64(TestData::THIRD_PARTY_LEAF);
+       std::string certStr = TestData::getTestCertificateBase64(TestData::TEST_LEAF);
 
        const char *file_name = "/tmp/ckmc_test_cert.pem";
        remove(file_name);
index 15e0a80..5d939ee 100644 (file)
@@ -223,7 +223,7 @@ RUNNER_TEST(T1012_certificate)
     int temp;
     auto manager = CKM::Manager::create();
 
-    auto cert = TestData::getTestCertificate(TestData::THIRD_PARTY_LEAF);
+    auto cert = TestData::getTestCertificate(TestData::TEST_LEAF);
     CKM::CertificateShPtr cert2;
     CKM::Alias alias = "myCert";
 
@@ -486,7 +486,7 @@ RUNNER_TEST(T1025_app_user_save_certificates_get_alias_pwd)
     auto manager = CKM::Manager::create();
 
     CKM::AliasPwdVector expected;
-    auto cert = TestData::getTestCertificate(TestData::THIRD_PARTY_LEAF);
+    auto cert = TestData::getTestCertificate(TestData::TEST_LEAF);
     std::string currentAlias;
 
     size_t beforeSaveAliasCount = count_aliases(ALIAS_CERT);
@@ -919,7 +919,7 @@ RUNNER_TEST(T12105_saveCertificate_empty_alias)
 {
     ScopedDBUnlock unlock(USER_APP, APP_PASS);
 
-    auto cert = TestData::getTestCertificate(TestData::THIRD_PARTY_LEAF);
+    auto cert = TestData::getTestCertificate(TestData::TEST_LEAF);
     CKM::Alias alias; //alias is not initialized
 
     int temp;
@@ -933,7 +933,7 @@ RUNNER_TEST(T12106_saveCertificate_foreign_label)
 {
     ScopedDBUnlock unlock(USER_APP, APP_PASS);
 
-    auto cert = TestData::getTestCertificate(TestData::THIRD_PARTY_LEAF);
+    auto cert = TestData::getTestCertificate(TestData::TEST_LEAF);
     CKM::Alias alias = "iamsomebodyelse alias";
 
     int temp;
@@ -1294,11 +1294,13 @@ RUNNER_TEST(T13122_get_chain_empty_cert)
 
 RUNNER_TEST(T13129_get_chain)
 {
-    auto cert = TestData::getTestCertificate(TestData::OCSP_AVAILABLE_LEAF);
-    auto cert1 = TestData::getTestCertificate(TestData::OCSP_AVAILABLE_IM);
+    auto cert = TestData::getTestCertificate(TestData::TEST_LEAF);
+    auto cert1 = TestData::getTestCertificate(TestData::TEST_IM_CA);
+    auto root = TestData::getTestCertificate(TestData::TEST_ROOT_CA);
 
     CKM::CertificateShPtrVector certVector = {cert1};
     CKM::CertificateShPtrVector certChain;
+    CKM::CertificateShPtrVector trusted = {root};
 
     int tmp;
     auto manager = CKM::Manager::create();
@@ -1308,7 +1310,7 @@ RUNNER_TEST(T13129_get_chain)
 
     tmp = manager->getCertificateChain(cert,
                                        EMPTY_CERT_VECTOR,
-                                       EMPTY_CERT_VECTOR,
+                                       trusted,
                                        true,
                                        certChain);
     RUNNER_ASSERT_MSG(CKM_API_ERROR_VERIFICATION_FAILED == tmp,
@@ -1318,7 +1320,7 @@ RUNNER_TEST(T13129_get_chain)
         0 == certChain.size(),
         "Wrong size of certificate chain.");
 
-    tmp = manager->getCertificateChain(cert, certVector, EMPTY_CERT_VECTOR, true, certChain);
+    tmp = manager->getCertificateChain(cert, certVector, trusted, true, certChain);
     RUNNER_ASSERT_MSG(CKM_API_SUCCESS == tmp, "Error=" << CKM::APICodeToString(tmp));
 
     RUNNER_ASSERT_MSG(
@@ -1328,12 +1330,11 @@ RUNNER_TEST(T13129_get_chain)
 
 RUNNER_TEST(T1313_get_chain_with_alias)
 {
-    auto cert = TestData::getTestCertificate(TestData::OCSP_AVAILABLE_LEAF);
-    auto cert1 = TestData::getTestCertificate(TestData::OCSP_AVAILABLE_IM);
+    auto cert = TestData::getTestCertificate(TestData::TEST_LEAF);
+    auto cert1 = TestData::getTestCertificate(TestData::TEST_IM_CA);
+    auto root = TestData::getTestCertificate(TestData::TEST_ROOT_CA);
 
     CKM::CertificateShPtrVector certChain;
-    CKM::AliasVector aliasVector;
-    CKM::Alias alias = "imcert";
 
     int tmp;
     auto manager = CKM::Manager::create();
@@ -1341,7 +1342,7 @@ RUNNER_TEST(T1313_get_chain_with_alias)
     RUNNER_ASSERT_MSG(NULL != cert.get(), "Certificate should not be empty");
     RUNNER_ASSERT_MSG(NULL != cert1.get(), "Certificate should not be empty");
 
-    tmp = manager->getCertificateChain(cert, aliasVector, EMPTY_ALIAS_VECTOR, true, certChain);
+    tmp = manager->getCertificateChain(cert, EMPTY_ALIAS_VECTOR, EMPTY_ALIAS_VECTOR, true, certChain);
     RUNNER_ASSERT_MSG(CKM_API_ERROR_VERIFICATION_FAILED == tmp,
                          "Error=" << CKM::APICodeToString(tmp));
 
@@ -1349,13 +1350,17 @@ RUNNER_TEST(T1313_get_chain_with_alias)
         0 == certChain.size(),
         "Wrong size of certificate chain.");
 
+    CKM::AliasVector aliasVector = { "imcert" };
     RUNNER_ASSERT_MSG(
-        CKM_API_SUCCESS == (tmp = manager->saveCertificate(alias, cert1, CKM::Policy())),
+        CKM_API_SUCCESS == (tmp = manager->saveCertificate(aliasVector[0], cert1, CKM::Policy())),
         "Error=" << CKM::APICodeToString(tmp));
 
-    aliasVector.push_back(alias);
+    CKM::AliasVector trustedAliasVector = { "rootcert" };
+    RUNNER_ASSERT_MSG(
+        CKM_API_SUCCESS == (tmp = manager->saveCertificate(trustedAliasVector[0], root, CKM::Policy())),
+        "Error=" << CKM::APICodeToString(tmp));
 
-    tmp = manager->getCertificateChain(cert, aliasVector, EMPTY_ALIAS_VECTOR, true, certChain);
+    tmp = manager->getCertificateChain(cert, aliasVector, trustedAliasVector, true, certChain);
     RUNNER_ASSERT_MSG(CKM_API_SUCCESS == tmp, "Error=" << CKM::APICodeToString(tmp));
 
     RUNNER_ASSERT_MSG(
@@ -1365,30 +1370,20 @@ RUNNER_TEST(T1313_get_chain_with_alias)
 
 RUNNER_TEST(T13141_ocsp_check_valid_chain)
 {
-    auto cert = TestData::getTestCertificate(TestData::OCSP_AVAILABLE_LEAF);
-    auto cert1 = TestData::getTestCertificate(TestData::OCSP_AVAILABLE_IM);
-    CKM::CertificateShPtrVector certVector = {cert1};
+    auto cert = TestData::getTestCertificate(TestData::OCSP_AVAILABLE_IM);
+
     CKM::CertificateShPtrVector certChain;
 
     int tmp;
     auto manager = CKM::Manager::create();
 
     RUNNER_ASSERT_MSG(NULL != cert.get(), "Certificate should not be empty");
-    RUNNER_ASSERT_MSG(NULL != cert1.get(), "Certificate should not be empty");
 
     tmp = manager->getCertificateChain(cert, EMPTY_CERT_VECTOR, EMPTY_CERT_VECTOR, true, certChain);
-    RUNNER_ASSERT_MSG(CKM_API_ERROR_VERIFICATION_FAILED == tmp,
-                         "Error=" << CKM::APICodeToString(tmp));
-
-    RUNNER_ASSERT_MSG(
-        0 == certChain.size(),
-        "Wrong size of certificate chain.");
-
-    tmp = manager->getCertificateChain(cert, certVector, EMPTY_CERT_VECTOR, true, certChain);
     RUNNER_ASSERT_MSG(CKM_API_SUCCESS == tmp, "Error=" << CKM::APICodeToString(tmp));
 
     RUNNER_ASSERT_MSG(
-        3 == certChain.size(),
+        2 == certChain.size(),
         "Wrong size of certificate chain.");
 
     int status;
@@ -1430,7 +1425,7 @@ RUNNER_TEST(T13143_ocsp_check_empty_ptrs)
 
 RUNNER_TEST(T13144_ocsp_check_root)
 {
-    auto root = TestData::getTestCertificate(TestData::THIRD_PARTY_ROOT_CA);
+    auto root = TestData::getTestCertificate(TestData::OCSP_ROOT_CA);
     CKM::CertificateShPtrVector certVector = {root};
 
     auto manager = CKM::Manager::create();