test_vcore_certificate_collection.cpp
test_vcore_api_cert.cpp
test_vcore_api_pkcs12.cpp
+ test_vcore_signature_data.cpp
test_cert_server_db.cpp
test_cert_server_logic.cpp
colour_log_formatter.cpp
data/signer_cert.pem
data/trusted_cert.pem
DESTINATION ${CERT_SVC_TESTS}/unit_test_data
+)
+
+INSTALL(
+ DIRECTORY
+ resource/wgt_valid
+ DESTINATION
+ ${CERT_SVC_TESTS}/unit_test_data
)
\ No newline at end of file
--- /dev/null
+<Signature xmlns="http://www.w3.org/2000/09/xmldsig#" Id="AuthorSignature">
+<SignedInfo>
+<CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></CanonicalizationMethod>
+<SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"></SignatureMethod>
+<Reference URI="config.xml">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>slamUlCPsGfRZvSlot9sIUMiPSjVSPOeJ0I7X1yxvmE=</DigestValue>
+</Reference>
+<Reference URI="css%2Fstyle.css">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>0/mhZV4kwFnSzCSp45AhFjWaQnaie61uW8VeXioOLQg=</DigestValue>
+</Reference>
+<Reference URI="icon.png">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>vPjxjOppORd6hn9Bw4sh06gqtDoJzoFbV/8e9FyIdvk=</DigestValue>
+</Reference>
+<Reference URI="index.html">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>OYW0ozIt+YihibhXb3mmAtIpmp5rJFNpS6n0bcbqPpI=</DigestValue>
+</Reference>
+<Reference URI="js%2Fmain.js">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>0oc6DiyrAj1HQFcu+27/BHCQKn3zBn9dKls96iQZ564=</DigestValue>
+</Reference>
+<Reference URI="#prop">
+<Transforms>
+<Transform Algorithm="http://www.w3.org/2006/12/xml-c14n11"></Transform>
+</Transforms>
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>lpo8tUDs054eLlBQXiDPVDVKfw30ZZdtkRs1jd7H5K8=</DigestValue>
+</Reference>
+</SignedInfo>
+<SignatureValue>
+DEDbUoxWn26xtZD+J+Qp71TzALREeTaalmbS1170MXpPiGjukYhD63KDEcHhYxU2cgAVUAcL2mD/
+ITe50rC8jy7dz2xqnUP2rIlFxIGRbciCs9fHx2CmqIq4yqvvdj7usy9o3SWsBxNaWshd7PJYQyjD
+XQXN5fgiNZtFQ/MuUuw=
+</SignatureValue>
+<KeyInfo>
+<X509Data>
+<X509Certificate>
+MIICuzCCAaOgAwIBAgIGAUpat3J5MA0GCSqGSIb3DQEBBQUAMFYxGjAYBgNVBAoMEVRpemVuIEFz
+c29jaWF0aW9uMRowGAYDVQQLDBFUaXplbiBBc3NvY2lhdGlvbjEcMBoGA1UEAwwTVGl6ZW4gRGV2
+ZWxvcGVycyBDQTAeFw0xMjExMDEwMDAwMDBaFw0xOTAxMDEwMDAwMDBaMDcxCzAJBgNVBAYTAmxk
+MQwwCgYDVQQIDANsZHMxDDAKBgNVBAcMA2xkczEMMAoGA1UEAwwDbGRzMIGfMA0GCSqGSIb3DQEB
+AQUAA4GNADCBiQKBgQCPihyYVpUCkUD6xcZVoyfF6N8BP7EW9fwNPAMTZA5hyCHWxquGgO5TC6bk
+JtIOcor8SLKa81wJ+vVe/EdbrRP3Lk8lqYl9linQ+yLA74XOTy9K9bUacOKv9tVN/BWYcRoneMKB
+hrawFCXFY+MAdCnw0dN61Vqg8HPu1Z6oFAlVPQIDAQABozIwMDAMBgNVHRMBAf8EAjAAMAsGA1Ud
+DwQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzANBgkqhkiG9w0BAQUFAAOCAQEAfUERPsFiaF54
+VZuhIrAzgWI53fPMATnkj4EDsIkeece8mnw0sbmrw/0ps7AsIpFib6Cv6kDZ3O7kpjg64/tKdEHR
+15Mh0UVyYBGuJeFF6SGpCWBqGAI7MuXPhjDwdL1VfWqOrzRQGC6yUVnGu72JNvvxf8VgfTaQlS6P
+vPU2TBmLC5auHdYcCIBVHfH9wTjVjNuIN0inmhj+zgFd6nqMdpzDQqTKj+fTMDZU7cFSNOAuJZcg
+M8iZH2btaezda3qdTcEhLiqFBbBlm4zSAY8atvGj4Kxh3iqXR1+dCxS/AdChvuAXNtO9j2yscTeS
+7znbGskeqeUY/VNXlpVwOyZ05w==
+</X509Certificate>
+<X509Certificate>
+MIIDOTCCAiGgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMRowGAYDVQQKDBFUaXplbiBBc3NvY2lh
+dGlvbjEaMBgGA1UECwwRVGl6ZW4gQXNzb2NpYXRpb24xHjAcBgNVBAMMFVRpemVuIERldmVsb3Bl
+cnMgUm9vdDAeFw0xMjAxMDEwMDAwMDBaFw0yNzAxMDEwMDAwMDBaMFYxGjAYBgNVBAoMEVRpemVu
+IEFzc29jaWF0aW9uMRowGAYDVQQLDBFUaXplbiBBc3NvY2lhdGlvbjEcMBoGA1UEAwwTVGl6ZW4g
+RGV2ZWxvcGVycyBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANVGhRGmMIUyBA7o
+PCz8Sxut6z6HNkF4oDIuzuKaMzRYPeWodwe9O0gmqAkToQHfwg2giRhE5GoPld0fq+OYMMwSasCu
+g8dwODx1eDeSYVuOLWRxpAmbTXOsSFi6VoWeyaPEm18JBHvZBsU5YQtgZ6Kp7MqzvQg3pXOxtajj
+vyHxiatJl+xXrHgcXC1wgyG3buty7u/Fi2mvKXJ0PRJcCjjK81dqe/Vr20sRUCrbk02zbm5ggFt/
+jIEhV8wbFRQpliobc7J4dSTKhFfrqGM8rdd54LYhD7gSI1CFSe16pUXfcVR7FhJztRaiGLnCrwBE
+dyTZ248+D4L/qR/D0axb3jcCAwEAAaMQMA4wDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOC
+AQEAnOXXQ/1O/QTDHyrmQDtFziqPY3xWlJBqJtEqXiT7Y+Ljpe66e+Ee/OjQMlZe8gu21/8cKklH
+95RxjopMWCVedXDUbWdvS2+CdyvVW/quT2E0tjqIzXDekUTYwwhlPWlGxvfj3VsxqSFq3p8Brl04
+1Gx5RKAGyKVsMfTLhbbwSWwApuBUxYfcNpKwLWGPXkysu+HctY03OKv4/xKBnVWiN8ex/Sgesi0M
++OBAOMdZMPK32uJBTeKFx1xZgTLIhk45V0hPOomPjZloiv0LSS11eyd451ufjW0iHRE7WlpR6EvI
+W6TFyZgMpQq+kg4hWl2SBTf3s2VI8Ygz7gj8TMlClg==
+</X509Certificate>
+</X509Data>
+</KeyInfo>
+<Object Id="prop"><SignatureProperties xmlns:dsp="http://www.w3.org/2009/xmldsig-properties"><SignatureProperty Id="profile" Target="#AuthorSignature"><dsp:Profile URI="http://www.w3.org/ns/widgets-digsig#profile"></dsp:Profile></SignatureProperty><SignatureProperty Id="role" Target="#AuthorSignature"><dsp:Role URI="http://www.w3.org/ns/widgets-digsig#role-author"></dsp:Role></SignatureProperty><SignatureProperty Id="identifier" Target="#AuthorSignature"><dsp:Identifier></dsp:Identifier></SignatureProperty></SignatureProperties></Object>
+</Signature>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets" id="http://yourdomain/TestApp" version="1.0.0" viewmodes="maximized">
+ <tizen:application id="N75lVtaOnD.TestApp" package="N75lVtaOnD" required_version="2.2"/>
+ <content src="index.html"/>
+ <feature name="http://tizen.org/feature/screen.size.all"/>
+ <icon src="icon.png"/>
+ <name>TestApp</name>
+ <tizen:profile name="wearable"/>
+</widget>
--- /dev/null
+* {
+ font-family: Verdana, Lucida Sans, Arial, Helvetica, sans-serif;
+}
+
+body {
+ margin: 0px auto;
+ background-color:#222;
+}
+
+.contents {
+ display: flex;
+ display: -webkit-flex;
+ box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ height:320px;
+}
+
+
+.content_text {
+ font-weight:bold;
+ font-size:5em;
+ color:#fff;
+}
\ No newline at end of file
--- /dev/null
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
+ <meta name="description" content="Tizen Wearable basic template generated by Samsung Wearable Web IDE"/>
+
+ <title>Tizen Wearable Web IDE - Tizen Wearable - Tizen Wearable basic Application</title>
+
+ <link rel="stylesheet" type="text/css" href="css/style.css"/>
+ <script src="js/main.js"></script>
+</head>
+
+<body>
+ <div class=contents>
+ <div style='margin:auto;'>
+ <span class=content_text id=textbox>Basic</span>
+ </div>
+ </div>
+</body>
+</html>
--- /dev/null
+
+window.onload = function () {
+ // TODO:: Do your initialization job
+
+ // add eventListener for tizenhwkey
+ document.addEventListener('tizenhwkey', function(e) {
+ if(e.keyName == "back")
+ try {
+ tizen.application.getCurrentApplication().exit();
+ } catch (ignore) {
+ }
+ });
+
+ // Sample code
+ var textbox = document.querySelector('.contents');
+ textbox.addEventListener("click", function(){
+ box = document.querySelector('#textbox');
+ box.innerHTML = box.innerHTML == "Basic" ? "Sample" : "Basic";
+ });
+
+};
--- /dev/null
+<Signature xmlns="http://www.w3.org/2000/09/xmldsig#" Id="DistributorSignature">
+<SignedInfo>
+<CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></CanonicalizationMethod>
+<SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"></SignatureMethod>
+<Reference URI="author-signature.xml">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>PTzNKgBBJEV/YtJgOP9lkUMVy+IQ3b9gVn5eorv4e3s=</DigestValue>
+</Reference>
+<Reference URI="config.xml">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>slamUlCPsGfRZvSlot9sIUMiPSjVSPOeJ0I7X1yxvmE=</DigestValue>
+</Reference>
+<Reference URI="css%2Fstyle.css">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>0/mhZV4kwFnSzCSp45AhFjWaQnaie61uW8VeXioOLQg=</DigestValue>
+</Reference>
+<Reference URI="icon.png">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>vPjxjOppORd6hn9Bw4sh06gqtDoJzoFbV/8e9FyIdvk=</DigestValue>
+</Reference>
+<Reference URI="index.html">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>OYW0ozIt+YihibhXb3mmAtIpmp5rJFNpS6n0bcbqPpI=</DigestValue>
+</Reference>
+<Reference URI="js%2Fmain.js">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>0oc6DiyrAj1HQFcu+27/BHCQKn3zBn9dKls96iQZ564=</DigestValue>
+</Reference>
+<Reference URI="#prop">
+<Transforms>
+<Transform Algorithm="http://www.w3.org/2006/12/xml-c14n11"></Transform>
+</Transforms>
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>u/jU3U4Zm5ihTMSjKGlGYbWzDfRkGphPPHx3gJIYEJ4=</DigestValue>
+</Reference>
+</SignedInfo>
+<SignatureValue>
+O946StYJMD1w5BSGQYpG4ULHC4AkHsAL7UATxj8UBqm1aYr9w70Cl9kBnvcu9UJ4qMLs1x3rpBlu
+oPh5Nx9pOIxe505x4v4Q+bKsh9sQcTbh9uwiyajD6ATvTmfh1w5YCCEbdRgCZ6UbTWw5PMMoNnoU
+YbgHcqkzfwdo8U5WN9o=
+</SignatureValue>
+<KeyInfo>
+<X509Data>
+<X509Certificate>
+MIICmzCCAgQCCQDXI7WLdVZwiTANBgkqhkiG9w0BAQUFADCBjzELMAkGA1UEBhMCS1IxDjAMBgNV
+BAgMBVN1d29uMQ4wDAYDVQQHDAVTdXdvbjEWMBQGA1UECgwNVGl6ZW4gVGVzdCBDQTEiMCAGA1UE
+CwwZVGl6ZW4gRGlzdHJpYnV0b3IgVGVzdCBDQTEkMCIGA1UEAwwbVGl6ZW4gUHVibGljIERpc3Ry
+aWJ1dG9yIENBMB4XDTEyMTAyOTEzMDMwNFoXDTIyMTAyNzEzMDMwNFowgZMxCzAJBgNVBAYTAktS
+MQ4wDAYDVQQIDAVTdXdvbjEOMAwGA1UEBwwFU3V3b24xFjAUBgNVBAoMDVRpemVuIFRlc3QgQ0Ex
+IjAgBgNVBAsMGVRpemVuIERpc3RyaWJ1dG9yIFRlc3QgQ0ExKDAmBgNVBAMMH1RpemVuIFB1Ymxp
+YyBEaXN0cmlidXRvciBTaWduZXIwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALtMvlc5hENK
+90ZdA+y66+Sy0enD1gpZDBh5T9RP0oRsptJv5jjNTseQbQi0SZOdOXb6J7iQdlBCtR343RpIEz8H
+mrBy7mSY7mgwoU4EPpp4CTSUeAuKcmvrNOngTp5Hv7Ngf02TTHOLK3hZLpGayaDviyNZB5PdqQdB
+hokKjzAzAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAvGp1gxxAIlFfhJH1efjb9BJK/rtRkbYn9+Ez
+GEbEULg1svsgnyWisFimI3uFvgI/swzr1eKVY3Sc8MQ3+Fdy3EkbDZ2+WAubhcEkorTWjzWz2fL1
+vKaYjeIsuEX6TVRUugHWudPzcEuQRLQf8ibZWjbQdBmpeQYBMg5x+xKLCJc=
+</X509Certificate>
+<X509Certificate>
+MIICtDCCAh2gAwIBAgIJAMDbehElPNKvMA0GCSqGSIb3DQEBBQUAMIGVMQswCQYDVQQGEwJLUjEO
+MAwGA1UECAwFU3V3b24xDjAMBgNVBAcMBVN1d29uMRYwFAYDVQQKDA1UaXplbiBUZXN0IENBMSMw
+IQYDVQQLDBpUVGl6ZW4gRGlzdHJpYnV0b3IgVGVzdCBDQTEpMCcGA1UEAwwgVGl6ZW4gUHVibGlj
+IERpc3RyaWJ1dG9yIFJvb3QgQ0EwHhcNMTIxMDI5MTMwMjUwWhcNMjIxMDI3MTMwMjUwWjCBjzEL
+MAkGA1UEBhMCS1IxDjAMBgNVBAgMBVN1d29uMQ4wDAYDVQQHDAVTdXdvbjEWMBQGA1UECgwNVGl6
+ZW4gVGVzdCBDQTEiMCAGA1UECwwZVGl6ZW4gRGlzdHJpYnV0b3IgVGVzdCBDQTEkMCIGA1UEAwwb
+VGl6ZW4gUHVibGljIERpc3RyaWJ1dG9yIENBMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDe
+OTS/3nXvkDEmsFCJIvRlQ3RKDcxdWJJp625pFqHdmoJBdV+x6jl1raGK2Y1sp2Gdvpjc/z92yzAp
+bE/UVLPh/tRNZPeGhzU4ejDDm7kzdr2f7Ia0U98K+OoY12ucwg7TYNItj9is7Cj4blGfuMDzd2ah
+2AgnCGlwNwV/pv+uVQIDAQABoxAwDjAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4GBACqJ
+KO33YdoGudwanZIxMdXuxnnD9R6u72ltKk1S4zPfMJJv482CRGCI4FK6djhlsI4i0Lt1SVIJEed+
+yc3qckGm19dW+4xdlkekon7pViEBWuyHw8OWv3RXtTum1+PGHjBJ2eYY4ZKIpz73U/1NC16sTB/0
+VhfnkHwPltmrpYVe
+</X509Certificate>
+</X509Data>
+</KeyInfo>
+<Object Id="prop"><SignatureProperties xmlns:dsp="http://www.w3.org/2009/xmldsig-properties"><SignatureProperty Id="profile" Target="#DistributorSignature"><dsp:Profile URI="http://www.w3.org/ns/widgets-digsig#profile"></dsp:Profile></SignatureProperty><SignatureProperty Id="role" Target="#DistributorSignature"><dsp:Role URI="http://www.w3.org/ns/widgets-digsig#role-distributor"></dsp:Role></SignatureProperty><SignatureProperty Id="identifier" Target="#DistributorSignature"><dsp:Identifier></dsp:Identifier></SignatureProperty></SignatureProperties></Object>
+</Signature>
\ No newline at end of file
{"email_", EMAIL_STORE},
{"wifi_", WIFI_STORE}
};
+
+
+namespace PackageData {
+ const std::string WgtValidPath =
+ std::string(TESTAPP_RES_DIR) + "unit_test_data/wgt_valid";
+}
\ No newline at end of file
extern const CertStoreType InvalidStore;
}
-extern const std::map<std::string, CertStoreType> storeTypeMap;
\ No newline at end of file
+extern const std::map<std::string, CertStoreType> storeTypeMap;
+
+namespace PackageData {
+ extern const std::string WgtValidPath;
+}
\ No newline at end of file
--- /dev/null
+/*
+ * 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.
+ */
+
+#include "vcore/CertStoreType.h"
+#include "vcore/Certificate.h"
+#include "vcore/SignatureData.h"
+#include "vcore/SignatureValidator.h"
+#include "test_constant.h"
+#include "test_common.h"
+#include "test_macros.h"
+#include <cstring>
+
+using namespace ValidationCore;
+using namespace std;
+
+CertStoreId::Type setAndGetVisibilityLevel(CertStoreId::Type certType)
+{
+ SignatureData signatureData;
+ CertStoreId::Set storeIdSet;
+ storeIdSet.add(certType);
+ signatureData.setStorageType(storeIdSet);
+
+ return signatureData.getVisibilityLevel();
+}
+
+BOOST_AUTO_TEST_SUITE(VCORE_SIGNARURE_DATA_TEST)
+
+POSITIVE_TEST_CASE(T_set_and_get_reference)
+{
+ SignatureData signatureData;
+ std::set<std::string> referenceSet;
+ referenceSet.insert("config.xml");
+ referenceSet.insert("icon.png");
+ signatureData.setReference(referenceSet);
+
+ std::set<std::string> result = signatureData.getReferenceSet();
+ BOOST_CHECK_EQUAL(result.size(), 2);
+}
+
+POSITIVE_TEST_CASE(T_set_and_get_storage_type)
+{
+ SignatureData signatureData;
+ CertStoreId::Set storeIdSet;
+ storeIdSet.add(CertStoreId::TIZEN_DEVELOPER);
+ signatureData.setStorageType(storeIdSet);
+
+ CertStoreId::Set result = signatureData.getStorageType();
+ BOOST_CHECK_EQUAL(result.typeToString(), "TIZEN_DEVELOPER ");
+}
+
+POSITIVE_TEST_CASE(T_set_and_get_visibility_level)
+{
+ BOOST_CHECK_EQUAL(
+ setAndGetVisibilityLevel(CertStoreId::VIS_PLATFORM),
+ CertStoreId::VIS_PLATFORM);
+
+ BOOST_CHECK_EQUAL(
+ setAndGetVisibilityLevel(CertStoreId::VIS_PARTNER),
+ CertStoreId::VIS_PARTNER);
+
+ BOOST_CHECK_EQUAL(
+ setAndGetVisibilityLevel(CertStoreId::VIS_PUBLIC),
+ CertStoreId::VIS_PUBLIC);
+
+ BOOST_CHECK_EQUAL(
+ setAndGetVisibilityLevel(CertStoreId::TIZEN_DEVELOPER),
+ 0);
+}
+
+NEGATIVE_TEST_CASE(T_get_imei_in_empty_list)
+{
+ SignatureData signatureData;
+ SignatureData::IMEIList result = signatureData.getIMEIList();
+ BOOST_CHECK_EQUAL(result.size(), 0);
+}
+
+NEGATIVE_TEST_CASE(T_get_meid_in_empty_list)
+{
+ SignatureData signatureData;
+ SignatureData::IMEIList result = signatureData.getMEIDList();
+ BOOST_CHECK_EQUAL(result.size(), 0);
+}
+
+POSITIVE_TEST_CASE(T_set_and_get_ext_signature_param)
+{
+ SignatureData signatureData;
+ const std::string key = "key";
+ std::string value;
+ signatureData.setExtSignatureParam(key, "abc1");
+
+ bool result = signatureData.getExtSignatureParam(key, value);
+ BOOST_CHECK(result);
+}
+
+NEGATIVE_TEST_CASE(T_get_ext_signature_param_empty)
+{
+ SignatureData signatureData;
+ const std::string key = "key";
+ std::string value;
+
+ bool result = signatureData.getExtSignatureParam(key, value);
+ BOOST_CHECK(!result);
+}
+
+POSITIVE_TEST_CASE(T_get_certificate_from_signature_data)
+{
+ SignatureFileInfoSet signatureSet;
+ SignatureFinder signatureFinder(PackageData::WgtValidPath);
+
+ SignatureFinder::Result result = signatureFinder.find(signatureSet);
+ BOOST_CHECK_EQUAL(result, SignatureFinder::NO_ERROR);
+ BOOST_CHECK_EQUAL(signatureSet.size(), 2);
+
+ for (auto &sig: signatureSet)
+ {
+ SignatureValidator validator(sig);
+ SignatureData outData;
+ ValidationCore::VCerr result;
+
+ result = validator.check(PackageData::WgtValidPath, true, true, outData);
+ BOOST_CHECK_EQUAL(result, E_SIG_NONE);
+
+ CertificatePtr cert1 = outData.getRootCaCertificatePtr();
+ BOOST_CHECK(cert1);
+ BOOST_CHECK(cert1->isRootCert());
+
+ CertificatePtr cert2 = outData.getEndEntityCertificatePtr();
+ BOOST_CHECK(cert2);
+ BOOST_CHECK(!cert2->isRootCert());
+ }
+}
+
+NEGATIVE_TEST_CASE(T_get_certificate_empty_from_signature_data)
+{
+ SignatureData outData;
+ CertificatePtr cert1 = outData.getRootCaCertificatePtr();
+ BOOST_CHECK(!cert1);
+ CertificatePtr cert2 = outData.getEndEntityCertificatePtr();
+ BOOST_CHECK(!cert2);
+}
+
+BOOST_AUTO_TEST_SUITE_END()
\ No newline at end of file