Add test case for tokenEndECKeyValue function in SignatureReader.cpp 30/317830/3 tizen
authortranthanhtung2001 <tran.tung@samsung.com>
Thu, 19 Sep 2024 06:20:41 +0000 (13:20 +0700)
committerDariusz Michaluk <d.michaluk@samsung.com>
Thu, 19 Sep 2024 10:44:24 +0000 (10:44 +0000)
Change-Id: I3b89c47398c21484163dc9e099a82a9b957158e4
Signed-off-by: tranthanhtung2001 <tran.tung@samsung.com>
unit-tests/CMakeLists.txt
unit-tests/resource/wgt_signature_has_key_value/signature_has_key_value.xml [new file with mode: 0644]
unit-tests/test_constant.cpp
unit-tests/test_constant.h
unit-tests/test_vcore_signature_reader.cpp

index 12fe79c..28b0aeb 100644 (file)
@@ -160,6 +160,7 @@ INSTALL(
         resource/wgt_url_empty
         resource/wgt_wrong_url
         resource/wgt_signature_has_imei_meid
+        resource/wgt_signature_has_key_value
     DESTINATION
         ${CERT_SVC_TESTS}/unit_test_data
 )
\ No newline at end of file
diff --git a/unit-tests/resource/wgt_signature_has_key_value/signature_has_key_value.xml b/unit-tests/resource/wgt_signature_has_key_value/signature_has_key_value.xml
new file mode 100644 (file)
index 0000000..107e102
--- /dev/null
@@ -0,0 +1,70 @@
+<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"  xmlns:digsig="http://wacapps.net/ns/digsig" 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>
+               <KeyValue>
+                       <ECKeyValue Id="EcKeyValue">
+                               <NamedCurve URI="urlNamedCurve"/>
+                               <PublicKey>123456789234</PublicKey>
+                       </ECKeyValue>
+               </KeyValue>
+               <X509Data>
+                       <X509Certificate>MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJRTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoXDTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMCSUUxEjAQBgNVBAoTCUJhbHRpbW9yZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFsdGltb3JlIEN5YmVyVHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKMEuyKrmD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjrIZ3AQSsBUnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeKmpYcqWe4PwzV9/lSEy/CG9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSuXmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9XbIGevOF6uvUA65ehD5f/xXtabz5OTZydc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjprl3RjM71oGDHweI12v/yejl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoIVDaGezq1BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT929hkTI7gQCvlYpNRhcL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3WgxjkzSswF07r51XgdIGn9w/xZchMB5hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsaY71k5h+3zvDyny67G7fyUIhzksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9HRCwBXbsdtTLSR9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp</X509Certificate>
+                       <X509Certificate>MIIFWjCCBEKgAwIBAgIQDxSWXyAgaZlP1ceseIlB4jANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJJRTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTIwMDcyMTIzMDAwMFoXDTI0MTAwODA3MDAwMFowTzELMAkGA1UEBhMCVVMxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEgMB4GA1UEAxMXTWljcm9zb2Z0IFJTQSBUTFMgQ0EgMDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCqYnfPmmOyBoTzkDb0mfMUUavqlQo7Rgb9EUEf/lsGWMk4bgj8T0RIzTqk970eouKVuL5RIMW/snBjXXgMQ8ApzWRJCZbar879BV8rKpHoAW4uGJssnNABf2n17j9TiFy6BWy+IhVnFILyLNK+W2M3zK9gheiWa2uACKhuvgCca5Vw/OQYErEdG7LBEzFnMzTmJcliW1iCdXby/vI/OxbfqkKD4zJtm45DJvC9Dh+hpzqvLMiK5uo/+aXSJY+SqhoIEpz+rErHw+uAlKuHFtEjSeeku8eR3+Z5ND9BSqc6JtLqb0bjOHPm5dSRrgt4nnil75bjc9j3lWXpBb9PXP9Sp/nPCK+nTQmZwHGjUnqlO9ebAVQD47ZisFonnDAmjrZNVqEXF3p7laEHrFMxttYuD81BdOzxAbL9Rb/8MeFGQjE2Qx65qgVfhH+RsYuuD9dUw/3wZAhq05yO6nk07AM9c+AbNtRoEcdZcLCHfMDcbkXKNs5DJncCqXAN6LhXVERCw/usG2MmCMLSIx9/kwt8bwhUmitOXc6fpT7SmFvRAtvxg84wUkg4Y/Gx++0j0z6StSeN0EJz150jaHG6WV4HUqaWTb98Tm90IgXAU4AW2GBOlzFPiU5IY9jt+eXC2Q6yC/ZpTL1LAcnL3Qa/OgLrHN0wiw1KFGD51WRPQ0Sh7QIDAQABo4IBJTCCASEwHQYDVR0OBBYEFLV2DDARzseSQk1Mx1wsyKkM6AtkMB8GA1UdIwQYMBaAFOWdWTCCR1jMrPoIVDaGezq1BE3wMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADA0BggrBgEFBQcBAQQoMCYwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTA6BgNVHR8EMzAxMC+gLaArhilodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vT21uaXJvb3QyMDI1LmNybDAqBgNVHSAEIzAhMAgGBmeBDAECATAIBgZngQwBAgIwCwYJKwYBBAGCNyoBMA0GCSqGSIb3DQEBCwUAA4IBAQCfK76SZ1vae4qt6P+dTQUO7bYNFUHR5hXcA2D59CJWnEj5na7aKzyowKvQupW4yMH9fGNxtsh6iJswRqOOfZYC4/giBO/gNsBvwr8uDW7t1nYoDYGHPpvnpxCM2mYfQFHq576/TmeYu1RZY29C4w8xYBlkAA8mDJfRhMCmehk7cN5FJtyWRj2cZj/hOoI45TYDBChXpOlLZKIYiG1giY16vhCRi6zmPzEwv+tk156N6cGSVm44jTQ/rs1sa0JSYjzUaYngoFdZC4OfxnIkQvUIA4TOFmPzNPEFdjcZsgbeEz4TcGHTBPK4R28F44qIMCtHRV55VMX53ev6P3hRddJb</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
index 27ca581..9b2f44a 100644 (file)
@@ -414,6 +414,9 @@ namespace PackageData {
 
        const std::string WgtSignatureHasImeiMeid =
                std::string(TESTAPP_RES_DIR) + "unit_test_data/wgt_signature_has_imei_meid";
+
+       const std::string WgtSignatureHasKeyValue =
+               std::string(TESTAPP_RES_DIR) + "unit_test_data/wgt_signature_has_key_value";
 }
 
 namespace SignatureTest {
index 21ec90e..d8fff6c 100644 (file)
@@ -127,6 +127,7 @@ namespace PackageData {
        extern const std::string WgtUrlEmpty;
        extern const std::string WgtWrongUrl;
        extern const std::string WgtSignatureHasImeiMeid;
+       extern const std::string WgtSignatureHasKeyValue;
 }
 
 namespace SignatureTest {
index e93a134..75d1796 100644 (file)
@@ -67,6 +67,21 @@ NEGATIVE_TEST_CASE(T_signature_has_both_imei_meid_attribute)
        BOOST_CHECK_THROW(xml.read(signatureData), SignatureReader::Exception::TargetRestriction);
 }
 
+NEGATIVE_TEST_CASE(T_signature_has_key_value_attribute)
+{
+       /* This test case will check tokenEndECKeyValue() function */
+
+       SignatureData signatureData;
+       SignatureReader xml;
+
+       std::string signatureHasKeyValue = PackageData::WgtSignatureHasKeyValue + "/signature_has_key_value.xml";
+
+       signatureData = SignatureData(signatureHasKeyValue, 1);
+       xml.initialize(signatureData, SIGNATURE_SCHEMA_PATH);
+
+       BOOST_CHECK_THROW(xml.read(signatureData), ParserSchemaException::CertificateLoaderError);
+}
+
 NEGATIVE_TEST_CASE(T_signature_reader_rsa_key_value_no_implement)
 {
        SignatureData signatureData;