--- /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></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
+<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
--- /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 "test_constant.h"
+#include "test_common.h"
+#include "test_macros.h"
+#include "vcore/SignatureValidator.h"
+#include "vcore/Certificate.h"
+#include <cstring>
+
+using namespace ValidationCore;
+using namespace std;
+
+SignatureFileInfoSet getSignatureInfo(const std::string path)
+{
+ SignatureFinder signatureFinder(path);
+ SignatureFileInfoSet signatureSet;
+
+ SignatureFinder::Result result = signatureFinder.find(signatureSet);
+
+ BOOST_CHECK_EQUAL(result, SignatureFinder::NO_ERROR);
+ BOOST_CHECK_EQUAL(signatureSet.size(), 2);
+
+ return signatureSet;
+}
+
+BOOST_AUTO_TEST_SUITE(VCORE_SIGNARURE_VALIDATOR_TEST)
+
+POSITIVE_TEST_CASE(T_check_signature_from_valid_path)
+{
+ SignatureFileInfoSet signatureSet = getSignatureInfo(PackageData::WgtValidPath);
+
+ 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);
+
+ result = validator.check(PackageData::WgtValidPath, false, true, outData);
+ BOOST_CHECK_EQUAL(result, E_SIG_NONE);
+ }
+}
+
+NEGATIVE_TEST_CASE(T_check_from_valid_path_with_invalid_format)
+{
+ SignatureValidator validator(PackageData::WgtValidPath);
+ SignatureData outData;
+
+ ValidationCore::VCerr result =
+ validator.check(PackageData::WgtValidPath, true, true, outData);
+
+ BOOST_CHECK_EQUAL(result, E_SIG_INVALID_FORMAT);
+}
+
+POSITIVE_TEST_CASE(T_check_list_from_valid_path)
+{
+ UriList uriList;
+ uriList.emplace_back("author-signature.xml");
+ uriList.emplace_back("tizen-manifest.xml");
+
+ SignatureFileInfoSet signatureSet = getSignatureInfo(PackageData::WgtValidPath);
+
+ for (auto &sig: signatureSet)
+ {
+ SignatureValidator validator(sig);
+ SignatureData outData;
+ ValidationCore::VCerr result;
+
+ result = validator.checkList(true, uriList, outData);
+ BOOST_CHECK_EQUAL(result, E_SIG_NONE);
+
+ result = validator.checkList(false, uriList, outData);
+ BOOST_CHECK_EQUAL(result, E_SIG_NONE);
+ }
+}
+
+NEGATIVE_TEST_CASE(T_check_list_from_valid_path_with_invalid_format)
+{
+ UriList uriList;
+ uriList.emplace_back("author-signature.xml");
+ uriList.emplace_back("tizen-manifest.xml");
+
+ SignatureValidator validator(PackageData::WgtValidPath);
+ SignatureData outData;
+
+ ValidationCore::VCerr result = validator.checkList(false, uriList, outData);
+ BOOST_CHECK_EQUAL(result, E_SIG_INVALID_FORMAT);
+}
+
+
+POSITIVE_TEST_CASE(T_check_all_from_valid_path)
+{
+ SignatureValidator validator(PackageData::WgtValidPath);
+ SignatureDataMap sigDataMap;
+ ValidationCore::VCerr result;
+
+ result = validator.checkAll(true, true, sigDataMap);
+ BOOST_CHECK_EQUAL(result, E_SIG_NONE);
+
+ result = validator.checkAll(false, true, sigDataMap);
+ BOOST_CHECK_EQUAL(result, E_SIG_NONE);
+}
+
+NEGATIVE_TEST_CASE(T_check_all_from_path_no_dist_signature)
+{
+ SignatureValidator validator(PackageData::WgtNoDistPath);
+ SignatureDataMap sigDataMap;
+ ValidationCore::VCerr result;
+
+ result = validator.checkAll(true, true, sigDataMap);
+ BOOST_CHECK_EQUAL(result, E_SIG_UNKNOWN);
+
+}
+
+NEGATIVE_TEST_CASE(T_check_all_from_cert_invalid_path)
+{
+ SignatureValidator validator(PackageData::WgtInvalidCertPath);
+ SignatureDataMap sigDataMap;
+ ValidationCore::VCerr result;
+
+ result = validator.checkAll(true, true, sigDataMap);
+ BOOST_CHECK_EQUAL(result, E_SIG_INVALID_FORMAT);
+}
+
+POSITIVE_TEST_CASE(T_check_list_all_from_valid_path)
+{
+ UriList uriList;
+ uriList.emplace_back("author-signature.xml");
+ uriList.emplace_back("tizen-manifest.xml");
+
+ SignatureValidator validator(PackageData::WgtValidPath);
+ SignatureDataMap sigDataMap;
+ ValidationCore::VCerr result;
+
+ result = validator.checkListAll(true, uriList, sigDataMap);
+ BOOST_CHECK_EQUAL(result, E_SIG_NONE);
+
+ result = validator.checkListAll(false, uriList, sigDataMap);
+ BOOST_CHECK_EQUAL(result, E_SIG_NONE);
+}
+
+POSITIVE_TEST_CASE(T_check_list_all_from_valid_path_with_uri_list_null)
+{
+ UriList uriList;
+
+ SignatureValidator validator(PackageData::WgtValidPath);
+ SignatureDataMap sigDataMap;
+ ValidationCore::VCerr result;
+
+ result = validator.checkListAll(true, uriList, sigDataMap);
+ BOOST_CHECK_EQUAL(result, E_SIG_NONE);
+
+ result = validator.checkListAll(false, uriList, sigDataMap);
+ BOOST_CHECK_EQUAL(result, E_SIG_NONE);
+}
+
+NEGATIVE_TEST_CASE(T_check_list_all_from_path_no_dist_signature)
+{
+ UriList uriList;
+ uriList.emplace_back("author-signature.xml");
+ uriList.emplace_back("tizen-manifest.xml");
+
+ SignatureValidator validator(PackageData::WgtNoDistPath);
+ SignatureDataMap sigDataMap;
+ ValidationCore::VCerr result;
+
+ result = validator.checkListAll(true, uriList, sigDataMap);
+ BOOST_CHECK_EQUAL(result, E_SIG_UNKNOWN);
+}
+
+NEGATIVE_TEST_CASE(T_check_list_all_from_cert_invalid_path)
+{
+ UriList uriList;
+ uriList.emplace_back("author-signature.xml");
+ uriList.emplace_back("tizen-manifest.xml");
+ SignatureValidator validator(PackageData::WgtInvalidCertPath);
+ SignatureDataMap sigDataMap;
+ ValidationCore::VCerr result;
+
+ result = validator.checkListAll(true, uriList, sigDataMap);
+ BOOST_CHECK_EQUAL(result, E_SIG_INVALID_FORMAT);
+}
+
+POSITIVE_TEST_CASE(T_make_chain_by_signature)
+{
+ SignatureFileInfoSet signatureSet = getSignatureInfo(PackageData::WgtValidPath);
+
+ for (auto &sig: signatureSet)
+ {
+ SignatureValidator validator(sig);
+ ValidationCore::VCerr result;
+ CertificateList certList;
+
+ result = validator.makeChainBySignature(true, certList);
+ BOOST_CHECK_EQUAL(result, E_SIG_NONE);
+ BOOST_CHECK_EQUAL(certList.size(), 3);
+
+ result = validator.makeChainBySignature(false, certList);
+ BOOST_CHECK_EQUAL(result, E_SIG_NONE);
+ BOOST_CHECK_EQUAL(certList.size(), 2);
+ }
+
+}
+
+NEGATIVE_TEST_CASE(T_make_chain_by_signature_wrong_argument)
+{
+ ValidationCore::VCerr result;
+ CertificateList certList;
+
+ SignatureValidator validator(PackageData::WgtValidPath);
+
+ result = validator.makeChainBySignature(true, certList);
+ BOOST_CHECK_EQUAL(result, E_SIG_INVALID_FORMAT);
+}
+
+POSITIVE_TEST_CASE(T_error_to_string)
+{
+ SignatureValidator validator(PackageData::WgtValidPath);
+ std::string result;
+
+ result = validator.errorToString(E_SIG_NONE);
+ BOOST_CHECK_EQUAL(result, "Success.");
+
+ result = validator.errorToString(E_SIG_INVALID_FORMAT);
+ BOOST_CHECK_EQUAL(result, "Invalid format of signature file.");
+
+ result = validator.errorToString(E_SIG_INVALID_CERT);
+ BOOST_CHECK_EQUAL(result, "Invalid format of certificate in signature.");
+
+ result = validator.errorToString(E_SIG_INVALID_CHAIN);
+ BOOST_CHECK_EQUAL(result, "Invalid certificate chain with certificate in signature.");
+
+ const std::string InvalidSig =
+ "Invalid signature. Signed with wrong key, changed signature "
+ "file or changed package file.";
+
+ result = validator.errorToString(E_SIG_INVALID_SIG);
+ BOOST_CHECK_EQUAL(result, InvalidSig);
+
+ result = validator.errorToString(E_SIG_INVALID_REF);
+ BOOST_CHECK_EQUAL(result, "Invalid file reference. An unsinged file was found.");
+
+ result = validator.errorToString(E_SIG_CERT_EXPIRED);
+ BOOST_CHECK_EQUAL(result, "Certificate in signature was expired.");
+
+ result = validator.errorToString(E_SIG_CERT_NOT_YET);
+ BOOST_CHECK_EQUAL(result, "Certificate in signature is not valid yet.");
+
+ result = validator.errorToString(E_SIG_DISREGARDED);
+ BOOST_CHECK_EQUAL(result, "Signature validation can be disregarded in some cases.");
+
+ result = validator.errorToString(E_SIG_REVOKED);
+ BOOST_CHECK_EQUAL(result, "One of certificate was revoked in certificate chain.");
+
+ result = validator.errorToString(E_SIG_PLUGIN);
+ BOOST_CHECK_EQUAL(result, "Failed to load plugin for additional validation check.");
+
+ result = validator.errorToString(E_SIG_OUT_OF_MEM);
+ BOOST_CHECK_EQUAL(result, "Out of memory.");
+
+ result = validator.errorToString(E_SIG_UNKNOWN);
+ BOOST_CHECK_EQUAL(result, "Unknown error.");
+}
+
+BOOST_AUTO_TEST_SUITE_END()
\ No newline at end of file