Add TC and measure performance about new API 16/97116/6
authorsangwan.kwon <sangwan.kwon@samsung.com>
Fri, 12 Aug 2016 08:27:37 +0000 (17:27 +0900)
committersangwan kwon <sangwan.kwon@samsung.com>
Tue, 22 Nov 2016 06:12:28 +0000 (22:12 -0800)
[ C++ API ]
- SignatureValidator::checkAll(bool checkOcsp,
                               bool checkReferences,
                               SignatureDataList &sigDataSet)
- SignatureValidator::checkListAll(bool checkOcsp,
                                   const UriList &uriList,
                                   SignatureDataList &sigDataSet)

Change-Id: If958819b421c5db33f75b3b8f20ce5dea5a257fa
Signed-off-by: sangwan.kwon <sangwan.kwon@samsung.com>
30 files changed:
src/vcore/XmlsecAdapter.cpp
tests/vcore/CMakeLists.txt
tests/vcore/resource/tpk-sdk-sample/mediaContent/author-signature.xml [new file with mode: 0644]
tests/vcore/resource/tpk-sdk-sample/mediaContent/bin/mediacontent [new file with mode: 0755]
tests/vcore/resource/tpk-sdk-sample/mediaContent/shared/res/mediacontent.png [new file with mode: 0755]
tests/vcore/resource/tpk-sdk-sample/mediaContent/shared/res/sample.3gp [new file with mode: 0755]
tests/vcore/resource/tpk-sdk-sample/mediaContent/shared/res/sample.jpg [new file with mode: 0755]
tests/vcore/resource/tpk-sdk-sample/mediaContent/shared/res/test1.wav [new file with mode: 0755]
tests/vcore/resource/tpk-sdk-sample/mediaContent/signature1.xml [new file with mode: 0644]
tests/vcore/resource/tpk-sdk-sample/mediaContent/tizen-manifest.xml [new file with mode: 0755]
tests/vcore/resource/tpk-sdk-sample/player/author-signature.xml [new file with mode: 0644]
tests/vcore/resource/tpk-sdk-sample/player/bin/player [new file with mode: 0755]
tests/vcore/resource/tpk-sdk-sample/player/res/sample.3gp [new file with mode: 0755]
tests/vcore/resource/tpk-sdk-sample/player/res/test0.3gp [new file with mode: 0755]
tests/vcore/resource/tpk-sdk-sample/player/res/test1.wav [new file with mode: 0755]
tests/vcore/resource/tpk-sdk-sample/player/res/test2.wav [new file with mode: 0755]
tests/vcore/resource/tpk-sdk-sample/player/shared/res/player.png [new file with mode: 0755]
tests/vcore/resource/tpk-sdk-sample/player/signature1.xml [new file with mode: 0644]
tests/vcore/resource/tpk-sdk-sample/player/tizen-manifest.xml [new file with mode: 0755]
tests/vcore/resource/tpk-sdk-sample/thumbNail/author-signature.xml [new file with mode: 0644]
tests/vcore/resource/tpk-sdk-sample/thumbNail/bin/thumbnailutil [new file with mode: 0755]
tests/vcore/resource/tpk-sdk-sample/thumbNail/shared/res/sample.3gp [new file with mode: 0755]
tests/vcore/resource/tpk-sdk-sample/thumbNail/shared/res/thumbnailutil.png [new file with mode: 0755]
tests/vcore/resource/tpk-sdk-sample/thumbNail/signature1.xml [new file with mode: 0644]
tests/vcore/resource/tpk-sdk-sample/thumbNail/tizen-manifest.xml [new file with mode: 0755]
tests/vcore/test-common.cpp
tests/vcore/test-common.h
tests/vcore/test-signature-validator.cpp
tests/vcore/test-util.cpp [new file with mode: 0644]
tests/vcore/test-util.h [new file with mode: 0644]

index 15d57c9..f39f89e 100644 (file)
@@ -317,6 +317,8 @@ void XmlSec::validateFile(XmlSecContext &context, xmlSecKeysMngrPtr mngrPtr)
                        if(xmlSecProxyCtxAdd(&(dsigCtx.get()->skipReferences),
                                                                 reinterpret_cast<const xmlChar *>(data.c_str())))
                                ThrowMsg(Exception::InternalError, "Failed to add proxy data.");
+                       else
+                               LogDebug("Add [" << data << "] to proxy.");
 
                }
        }
index c02b3e4..0eefea7 100644 (file)
@@ -22,6 +22,7 @@
 #
 SET(VCORE_TESTS_SOURCES
     main.cpp
+    test-util.cpp
     test-common.cpp
     test-signature-validator.cpp
     test-certificate.cpp
@@ -68,6 +69,7 @@ INSTALL(
         resource/attacked-tpk
         resource/tpk-with-userdata
         resource/attacked-tpk-with-userdata
+        resource/tpk-sdk-sample
 
     DESTINATION
         ${CERT_SVC_TESTS}/apps
diff --git a/tests/vcore/resource/tpk-sdk-sample/mediaContent/author-signature.xml b/tests/vcore/resource/tpk-sdk-sample/mediaContent/author-signature.xml
new file mode 100644 (file)
index 0000000..e0b320d
--- /dev/null
@@ -0,0 +1,78 @@
+<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="bin%2Fmediacontent">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>GdLyvCCN095O5KB4OIFWV228XauTmHaaXLJD0hEJCp4=</DigestValue>
+</Reference>
+<Reference URI="shared%2Fres%2Fmediacontent.png">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>1d0oEZHqPn+QzNzGIHwj9ODby6x9ggFs9uOsav6jPNs=</DigestValue>
+</Reference>
+<Reference URI="shared%2Fres%2Fsample.3gp">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>WMfan++QSvRVetnCQ1b2n0l7/SoR/5oJeJ+4bFAW3tY=</DigestValue>
+</Reference>
+<Reference URI="shared%2Fres%2Fsample.jpg">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>aoqh829dDR4NaaEoc2aYfZ1R7Ezm4PMHng+LOdRs0iY=</DigestValue>
+</Reference>
+<Reference URI="shared%2Fres%2Ftest1.wav">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>lhUM4r77NnuRbxpA4j9B2nqxA3A7BAxFoLJC2ij1kMw=</DigestValue>
+</Reference>
+<Reference URI="tizen-manifest.xml">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>ZQX/cNtc9/2d/C0WfhMq2kLmhwJ93IP0olfH2YJNkPA=</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>
+g4KBWzQqwJszua6InEDAbNAh31PigdHjVFPLpA8YXNCMpmTNdHcdX2Mf0hmpzGnQBYz6At/yuDYS
+2mD6XijeRNMlZmz4F9pjl4lALyntlv/lfGfbbeG+LN1bJnwgznfmihdZ2/JmqGvtqv2u3gVppTCB
+de4EGLy4eK0ydU5ZF9U=
+</SignatureValue>
+<KeyInfo>
+<X509Data>
+<X509Certificate>
+MIIClTCCAX2gAwIBAgIGAVODJIU1MA0GCSqGSIb3DQEBBQUAMFYxGjAYBgNVBAoMEVRpemVuIEFz
+c29jaWF0aW9uMRowGAYDVQQLDBFUaXplbiBBc3NvY2lhdGlvbjEcMBoGA1UEAwwTVGl6ZW4gRGV2
+ZWxvcGVycyBDQTAeFw0xMjExMDEwMDAwMDBaFw0xOTAxMDEwMDAwMDBaMBExDzANBgNVBAMMBmF1
+dGhvcjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAqFd1i8Gps0Kb6WIAzCHSB1vbfjVbigOd
+kmOx/ESTS4XHPgA8LfqzjATrsASnCovZjxOkqlBEqENnwHirBAAKFGAfjiJWMrNtpBzpvGWYYe5W
+qqct0AxL8XjmMR2IQo0XjeTMT1MwLf7VsjINYeSiKr0YXDIQvjiHM4zxllfml08CAwEAAaMyMDAw
+DAYDVR0TAQH/BAIwADALBgNVHQ8EBAMCB4AwEwYDVR0lBAwwCgYIKwYBBQUHAwMwDQYJKoZIhvcN
+AQEFBQADggEBAG1lTFDWrlOobNHe1ZYXGFFfe0z6QHXXjdQcrbooZGgKYGLxuXrRFXkv101RNSu1
+XwCUhOsYVbHzDGHi/VngrbzYrFVPfNaF4HhfDHSKf+Fh0j0Hyyrkbx7jGzKKfykyUxb9ucHOgAp4
+MIM2RLIX2qqg/D/EHPZQjL4zEj8Ltya64CpiP56HvGZTjAz7W9dj1q+SuMWPiUrbNFjlibUTrlch
+sAg/dLdn9DE7vsb9evSkTXHBUh8F3l1f+Ejz8Rc8SQu3Vd3VMBPzwG97SLWWCGCSPCcMRl81jgv+
+knt+MQX2bqF9X5tmFva1zGER1YMhpP74xFW9/ge80Ys6PNpLOng=
+</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
diff --git a/tests/vcore/resource/tpk-sdk-sample/mediaContent/bin/mediacontent b/tests/vcore/resource/tpk-sdk-sample/mediaContent/bin/mediacontent
new file mode 100755 (executable)
index 0000000..c8d551c
Binary files /dev/null and b/tests/vcore/resource/tpk-sdk-sample/mediaContent/bin/mediacontent differ
diff --git a/tests/vcore/resource/tpk-sdk-sample/mediaContent/shared/res/mediacontent.png b/tests/vcore/resource/tpk-sdk-sample/mediaContent/shared/res/mediacontent.png
new file mode 100755 (executable)
index 0000000..9765b1b
Binary files /dev/null and b/tests/vcore/resource/tpk-sdk-sample/mediaContent/shared/res/mediacontent.png differ
diff --git a/tests/vcore/resource/tpk-sdk-sample/mediaContent/shared/res/sample.3gp b/tests/vcore/resource/tpk-sdk-sample/mediaContent/shared/res/sample.3gp
new file mode 100755 (executable)
index 0000000..d2f415d
Binary files /dev/null and b/tests/vcore/resource/tpk-sdk-sample/mediaContent/shared/res/sample.3gp differ
diff --git a/tests/vcore/resource/tpk-sdk-sample/mediaContent/shared/res/sample.jpg b/tests/vcore/resource/tpk-sdk-sample/mediaContent/shared/res/sample.jpg
new file mode 100755 (executable)
index 0000000..79cfb08
Binary files /dev/null and b/tests/vcore/resource/tpk-sdk-sample/mediaContent/shared/res/sample.jpg differ
diff --git a/tests/vcore/resource/tpk-sdk-sample/mediaContent/shared/res/test1.wav b/tests/vcore/resource/tpk-sdk-sample/mediaContent/shared/res/test1.wav
new file mode 100755 (executable)
index 0000000..b5cabca
Binary files /dev/null and b/tests/vcore/resource/tpk-sdk-sample/mediaContent/shared/res/test1.wav differ
diff --git a/tests/vcore/resource/tpk-sdk-sample/mediaContent/signature1.xml b/tests/vcore/resource/tpk-sdk-sample/mediaContent/signature1.xml
new file mode 100644 (file)
index 0000000..a5a4848
--- /dev/null
@@ -0,0 +1,80 @@
+<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>8oPuRx65wFZoEp1WfroSUTfPMCPURLK9gqVcSB1oURQ=</DigestValue>
+</Reference>
+<Reference URI="bin%2Fmediacontent">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>GdLyvCCN095O5KB4OIFWV228XauTmHaaXLJD0hEJCp4=</DigestValue>
+</Reference>
+<Reference URI="shared%2Fres%2Fmediacontent.png">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>1d0oEZHqPn+QzNzGIHwj9ODby6x9ggFs9uOsav6jPNs=</DigestValue>
+</Reference>
+<Reference URI="shared%2Fres%2Fsample.3gp">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>WMfan++QSvRVetnCQ1b2n0l7/SoR/5oJeJ+4bFAW3tY=</DigestValue>
+</Reference>
+<Reference URI="shared%2Fres%2Fsample.jpg">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>aoqh829dDR4NaaEoc2aYfZ1R7Ezm4PMHng+LOdRs0iY=</DigestValue>
+</Reference>
+<Reference URI="shared%2Fres%2Ftest1.wav">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>lhUM4r77NnuRbxpA4j9B2nqxA3A7BAxFoLJC2ij1kMw=</DigestValue>
+</Reference>
+<Reference URI="tizen-manifest.xml">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>ZQX/cNtc9/2d/C0WfhMq2kLmhwJ93IP0olfH2YJNkPA=</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>
+UTZGzuyvj5qJiM8k6ra0XRz2bhJkT9/TGJ6dpEiBCq0YCu+CWGn8MSgzC62dJeSQnY/IywQpDOJB
+ZWlz6/XU0vsl5F+reWRZGNig1BricUON+BhrVP3ei4FnjGtH32WM8h6fLhpsBz5NpGZcgmBTCFzQ
+rVptbDJ9d8MGZ9NJmrI=
+</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
diff --git a/tests/vcore/resource/tpk-sdk-sample/mediaContent/tizen-manifest.xml b/tests/vcore/resource/tpk-sdk-sample/mediaContent/tizen-manifest.xml
new file mode 100755 (executable)
index 0000000..93d6487
--- /dev/null
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<manifest xmlns="http://tizen.org/ns/packages" api-version="2.4" package="org.example.mediacontent" version="1.0.0">
+    <profile name="mobile"/>
+    <ui-application appid="org.example.mediacontent" exec="mediacontent" multiple="false" nodisplay="false" taskmanage="true" type="capp">
+        <label>mediacontent</label>
+        <icon>mediacontent.png</icon>
+    </ui-application>
+    <privileges>
+        <privilege>http://tizen.org/privilege/mediastorage</privilege>
+        <privilege>http://tizen.org/privilege/content.write</privilege>
+        <privilege>http://tizen.org/privilege/externalstorage</privilege>
+    </privileges>
+</manifest>
diff --git a/tests/vcore/resource/tpk-sdk-sample/player/author-signature.xml b/tests/vcore/resource/tpk-sdk-sample/player/author-signature.xml
new file mode 100644 (file)
index 0000000..a36b3de
--- /dev/null
@@ -0,0 +1,82 @@
+<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="bin%2Fplayer">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>4iIofyuIao2qwVNIuhUCpugxEr7Rxmjnj2r0SrGx0+s=</DigestValue>
+</Reference>
+<Reference URI="res%2Fsample.3gp">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>WMfan++QSvRVetnCQ1b2n0l7/SoR/5oJeJ+4bFAW3tY=</DigestValue>
+</Reference>
+<Reference URI="res%2Ftest0.3gp">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>XFDMdIG8gkJhmZ+gG8Tkfl+dOnjxSYJtmUC+Gyr5xgM=</DigestValue>
+</Reference>
+<Reference URI="res%2Ftest1.wav">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>lhUM4r77NnuRbxpA4j9B2nqxA3A7BAxFoLJC2ij1kMw=</DigestValue>
+</Reference>
+<Reference URI="res%2Ftest2.wav">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>v2+TQF3YD9JZmgCX8ow7Wn/avjr2o/vSKglhM3weZBU=</DigestValue>
+</Reference>
+<Reference URI="shared%2Fres%2Fplayer.png">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>1d0oEZHqPn+QzNzGIHwj9ODby6x9ggFs9uOsav6jPNs=</DigestValue>
+</Reference>
+<Reference URI="tizen-manifest.xml">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>V+kS3pGWRSUjCG1YRNghKWNpPOJOw/VQ1j8OKaO5nmg=</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>
+pUNlYyBuHgMsic5q+VDIvpEfw5vJ90GIOwa+N6FlHc8pbYSzmOXimqrDSWslesj2X65xDB+OEB0X
+QUYrRL3surBjr/8p+/5fNsxqK5VIRBbry9SEhs6mU9sqTwOJcA7ZtW0XyPD1Eee60g90mDvHniVI
+oRGvUISF0TtUX7M8d3w=
+</SignatureValue>
+<KeyInfo>
+<X509Data>
+<X509Certificate>
+MIIClTCCAX2gAwIBAgIGAVODJIU1MA0GCSqGSIb3DQEBBQUAMFYxGjAYBgNVBAoMEVRpemVuIEFz
+c29jaWF0aW9uMRowGAYDVQQLDBFUaXplbiBBc3NvY2lhdGlvbjEcMBoGA1UEAwwTVGl6ZW4gRGV2
+ZWxvcGVycyBDQTAeFw0xMjExMDEwMDAwMDBaFw0xOTAxMDEwMDAwMDBaMBExDzANBgNVBAMMBmF1
+dGhvcjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAqFd1i8Gps0Kb6WIAzCHSB1vbfjVbigOd
+kmOx/ESTS4XHPgA8LfqzjATrsASnCovZjxOkqlBEqENnwHirBAAKFGAfjiJWMrNtpBzpvGWYYe5W
+qqct0AxL8XjmMR2IQo0XjeTMT1MwLf7VsjINYeSiKr0YXDIQvjiHM4zxllfml08CAwEAAaMyMDAw
+DAYDVR0TAQH/BAIwADALBgNVHQ8EBAMCB4AwEwYDVR0lBAwwCgYIKwYBBQUHAwMwDQYJKoZIhvcN
+AQEFBQADggEBAG1lTFDWrlOobNHe1ZYXGFFfe0z6QHXXjdQcrbooZGgKYGLxuXrRFXkv101RNSu1
+XwCUhOsYVbHzDGHi/VngrbzYrFVPfNaF4HhfDHSKf+Fh0j0Hyyrkbx7jGzKKfykyUxb9ucHOgAp4
+MIM2RLIX2qqg/D/EHPZQjL4zEj8Ltya64CpiP56HvGZTjAz7W9dj1q+SuMWPiUrbNFjlibUTrlch
+sAg/dLdn9DE7vsb9evSkTXHBUh8F3l1f+Ejz8Rc8SQu3Vd3VMBPzwG97SLWWCGCSPCcMRl81jgv+
+knt+MQX2bqF9X5tmFva1zGER1YMhpP74xFW9/ge80Ys6PNpLOng=
+</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
diff --git a/tests/vcore/resource/tpk-sdk-sample/player/bin/player b/tests/vcore/resource/tpk-sdk-sample/player/bin/player
new file mode 100755 (executable)
index 0000000..4489d02
Binary files /dev/null and b/tests/vcore/resource/tpk-sdk-sample/player/bin/player differ
diff --git a/tests/vcore/resource/tpk-sdk-sample/player/res/sample.3gp b/tests/vcore/resource/tpk-sdk-sample/player/res/sample.3gp
new file mode 100755 (executable)
index 0000000..d2f415d
Binary files /dev/null and b/tests/vcore/resource/tpk-sdk-sample/player/res/sample.3gp differ
diff --git a/tests/vcore/resource/tpk-sdk-sample/player/res/test0.3gp b/tests/vcore/resource/tpk-sdk-sample/player/res/test0.3gp
new file mode 100755 (executable)
index 0000000..4a3d8ea
Binary files /dev/null and b/tests/vcore/resource/tpk-sdk-sample/player/res/test0.3gp differ
diff --git a/tests/vcore/resource/tpk-sdk-sample/player/res/test1.wav b/tests/vcore/resource/tpk-sdk-sample/player/res/test1.wav
new file mode 100755 (executable)
index 0000000..b5cabca
Binary files /dev/null and b/tests/vcore/resource/tpk-sdk-sample/player/res/test1.wav differ
diff --git a/tests/vcore/resource/tpk-sdk-sample/player/res/test2.wav b/tests/vcore/resource/tpk-sdk-sample/player/res/test2.wav
new file mode 100755 (executable)
index 0000000..7265cbd
Binary files /dev/null and b/tests/vcore/resource/tpk-sdk-sample/player/res/test2.wav differ
diff --git a/tests/vcore/resource/tpk-sdk-sample/player/shared/res/player.png b/tests/vcore/resource/tpk-sdk-sample/player/shared/res/player.png
new file mode 100755 (executable)
index 0000000..9765b1b
Binary files /dev/null and b/tests/vcore/resource/tpk-sdk-sample/player/shared/res/player.png differ
diff --git a/tests/vcore/resource/tpk-sdk-sample/player/signature1.xml b/tests/vcore/resource/tpk-sdk-sample/player/signature1.xml
new file mode 100644 (file)
index 0000000..0d9e3e6
--- /dev/null
@@ -0,0 +1,84 @@
+<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>VVWnsf5bsID6FccZpe7Cl01iEP9wjil/rLWciQFBdx4=</DigestValue>
+</Reference>
+<Reference URI="bin%2Fplayer">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>4iIofyuIao2qwVNIuhUCpugxEr7Rxmjnj2r0SrGx0+s=</DigestValue>
+</Reference>
+<Reference URI="res%2Fsample.3gp">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>WMfan++QSvRVetnCQ1b2n0l7/SoR/5oJeJ+4bFAW3tY=</DigestValue>
+</Reference>
+<Reference URI="res%2Ftest0.3gp">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>XFDMdIG8gkJhmZ+gG8Tkfl+dOnjxSYJtmUC+Gyr5xgM=</DigestValue>
+</Reference>
+<Reference URI="res%2Ftest1.wav">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>lhUM4r77NnuRbxpA4j9B2nqxA3A7BAxFoLJC2ij1kMw=</DigestValue>
+</Reference>
+<Reference URI="res%2Ftest2.wav">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>v2+TQF3YD9JZmgCX8ow7Wn/avjr2o/vSKglhM3weZBU=</DigestValue>
+</Reference>
+<Reference URI="shared%2Fres%2Fplayer.png">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>1d0oEZHqPn+QzNzGIHwj9ODby6x9ggFs9uOsav6jPNs=</DigestValue>
+</Reference>
+<Reference URI="tizen-manifest.xml">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>V+kS3pGWRSUjCG1YRNghKWNpPOJOw/VQ1j8OKaO5nmg=</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>
+JoX9l1p6JEzziIU1oMvassakfgPr09hxR8umNmEt+E5IRN45C/ogLkQoo6t2pL7je3pW/AJtdJrX
+PkI8jOD8vYqh8TDZf59mwl1E9+C6y6KRx8PI/iyQNIcAUnkex1GPqjk76cUkUKPGmrrDxEV/7bMh
+mhsjvErXxvFcV+u43c4=
+</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
diff --git a/tests/vcore/resource/tpk-sdk-sample/player/tizen-manifest.xml b/tests/vcore/resource/tpk-sdk-sample/player/tizen-manifest.xml
new file mode 100755 (executable)
index 0000000..c7c99d4
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<manifest xmlns="http://tizen.org/ns/packages" api-version="2.4" package="org.example.player" version="1.0.0">
+    <profile name="mobile"/>
+    <ui-application appid="org.example.player" exec="player" multiple="false" nodisplay="false" taskmanage="true" type="capp">
+        <label>player</label>
+        <icon>player.png</icon>
+    </ui-application>
+</manifest>
diff --git a/tests/vcore/resource/tpk-sdk-sample/thumbNail/author-signature.xml b/tests/vcore/resource/tpk-sdk-sample/thumbNail/author-signature.xml
new file mode 100644 (file)
index 0000000..f472cbc
--- /dev/null
@@ -0,0 +1,70 @@
+<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="bin%2Fthumbnailutil">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>V6OrQtGTTTUfkHz41HWTvPacVQqJUd6AT/6ITdLUWhU=</DigestValue>
+</Reference>
+<Reference URI="shared%2Fres%2Fsample.3gp">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>WMfan++QSvRVetnCQ1b2n0l7/SoR/5oJeJ+4bFAW3tY=</DigestValue>
+</Reference>
+<Reference URI="shared%2Fres%2Fthumbnailutil.png">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>1d0oEZHqPn+QzNzGIHwj9ODby6x9ggFs9uOsav6jPNs=</DigestValue>
+</Reference>
+<Reference URI="tizen-manifest.xml">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>rcGH7GmSGbWYF1i+T0kJCrIqFETI6Ql3lHIQEirQDyE=</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>
+eYsZB79WNF4++WK9EHuSalSMYamo4V0YAreuIxHg8IQnYQwU3jJXUyccSjheuOeMg/qEDj6j5WXH
+VO9iw0sFrWYAJE6GCtkRjgk/rfZ4t654zadCF8Oz7CG/moYHVjeBiNKc6Bne2ehL+74lc9Pu8Gm0
+9oHsryQuC27Knmq4ycU=
+</SignatureValue>
+<KeyInfo>
+<X509Data>
+<X509Certificate>
+MIIClTCCAX2gAwIBAgIGAVODJIU1MA0GCSqGSIb3DQEBBQUAMFYxGjAYBgNVBAoMEVRpemVuIEFz
+c29jaWF0aW9uMRowGAYDVQQLDBFUaXplbiBBc3NvY2lhdGlvbjEcMBoGA1UEAwwTVGl6ZW4gRGV2
+ZWxvcGVycyBDQTAeFw0xMjExMDEwMDAwMDBaFw0xOTAxMDEwMDAwMDBaMBExDzANBgNVBAMMBmF1
+dGhvcjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAqFd1i8Gps0Kb6WIAzCHSB1vbfjVbigOd
+kmOx/ESTS4XHPgA8LfqzjATrsASnCovZjxOkqlBEqENnwHirBAAKFGAfjiJWMrNtpBzpvGWYYe5W
+qqct0AxL8XjmMR2IQo0XjeTMT1MwLf7VsjINYeSiKr0YXDIQvjiHM4zxllfml08CAwEAAaMyMDAw
+DAYDVR0TAQH/BAIwADALBgNVHQ8EBAMCB4AwEwYDVR0lBAwwCgYIKwYBBQUHAwMwDQYJKoZIhvcN
+AQEFBQADggEBAG1lTFDWrlOobNHe1ZYXGFFfe0z6QHXXjdQcrbooZGgKYGLxuXrRFXkv101RNSu1
+XwCUhOsYVbHzDGHi/VngrbzYrFVPfNaF4HhfDHSKf+Fh0j0Hyyrkbx7jGzKKfykyUxb9ucHOgAp4
+MIM2RLIX2qqg/D/EHPZQjL4zEj8Ltya64CpiP56HvGZTjAz7W9dj1q+SuMWPiUrbNFjlibUTrlch
+sAg/dLdn9DE7vsb9evSkTXHBUh8F3l1f+Ejz8Rc8SQu3Vd3VMBPzwG97SLWWCGCSPCcMRl81jgv+
+knt+MQX2bqF9X5tmFva1zGER1YMhpP74xFW9/ge80Ys6PNpLOng=
+</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
diff --git a/tests/vcore/resource/tpk-sdk-sample/thumbNail/bin/thumbnailutil b/tests/vcore/resource/tpk-sdk-sample/thumbNail/bin/thumbnailutil
new file mode 100755 (executable)
index 0000000..f4c401a
Binary files /dev/null and b/tests/vcore/resource/tpk-sdk-sample/thumbNail/bin/thumbnailutil differ
diff --git a/tests/vcore/resource/tpk-sdk-sample/thumbNail/shared/res/sample.3gp b/tests/vcore/resource/tpk-sdk-sample/thumbNail/shared/res/sample.3gp
new file mode 100755 (executable)
index 0000000..d2f415d
Binary files /dev/null and b/tests/vcore/resource/tpk-sdk-sample/thumbNail/shared/res/sample.3gp differ
diff --git a/tests/vcore/resource/tpk-sdk-sample/thumbNail/shared/res/thumbnailutil.png b/tests/vcore/resource/tpk-sdk-sample/thumbNail/shared/res/thumbnailutil.png
new file mode 100755 (executable)
index 0000000..9765b1b
Binary files /dev/null and b/tests/vcore/resource/tpk-sdk-sample/thumbNail/shared/res/thumbnailutil.png differ
diff --git a/tests/vcore/resource/tpk-sdk-sample/thumbNail/signature1.xml b/tests/vcore/resource/tpk-sdk-sample/thumbNail/signature1.xml
new file mode 100644 (file)
index 0000000..8ff1713
--- /dev/null
@@ -0,0 +1,72 @@
+<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>PzKnRXnB+hx5IcGOq2SzPkiukAqfx0R1nNQngt6ZwbY=</DigestValue>
+</Reference>
+<Reference URI="bin%2Fthumbnailutil">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>V6OrQtGTTTUfkHz41HWTvPacVQqJUd6AT/6ITdLUWhU=</DigestValue>
+</Reference>
+<Reference URI="shared%2Fres%2Fsample.3gp">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>WMfan++QSvRVetnCQ1b2n0l7/SoR/5oJeJ+4bFAW3tY=</DigestValue>
+</Reference>
+<Reference URI="shared%2Fres%2Fthumbnailutil.png">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>1d0oEZHqPn+QzNzGIHwj9ODby6x9ggFs9uOsav6jPNs=</DigestValue>
+</Reference>
+<Reference URI="tizen-manifest.xml">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>rcGH7GmSGbWYF1i+T0kJCrIqFETI6Ql3lHIQEirQDyE=</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>
+UKM5vE+Ke0KrbVdpUuD5HIrqJOP8Ee6+nRWuGssHZI/8pJQ5mkjCWK7FJ6PXFxoq4xHTfUDiaLdK
+d31wP3/gAOEPnVoEJfU+o8yrHgz5isqf2PqpcmRaWXj4Kp2qwCFjNn+tbp/SA933QEL6Qa/zD4oc
+hx6xt7WHiDxm/YJa5aA=
+</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
diff --git a/tests/vcore/resource/tpk-sdk-sample/thumbNail/tizen-manifest.xml b/tests/vcore/resource/tpk-sdk-sample/thumbNail/tizen-manifest.xml
new file mode 100755 (executable)
index 0000000..40a2fb8
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<manifest xmlns="http://tizen.org/ns/packages" api-version="2.4" package="org.example.thumbnailutil" version="1.0.0">
+    <profile name="mobile"/>
+    <ui-application appid="org.example.thumbnailutil" exec="thumbnailutil" multiple="false" nodisplay="false" taskmanage="true" type="capp">
+        <label>thumbnailutil</label>
+        <icon>thumbnailutil.png</icon>
+    </ui-application>
+    <privileges>
+        <privilege>http://tizen.org/privilege/mediastorage</privilege>
+        <privilege>http://tizen.org/privilege/content.write</privilege>
+    </privileges>
+</manifest>
index 989c8da..750eac6 100644 (file)
 
 #include "test-common.h"
 
-const std::string TestData::widget_path = std::string(TESTAPP_RES_DIR) + "apps/wgt";
-const std::string TestData::widget_dist22_path = std::string(TESTAPP_RES_DIR) + "apps/wgt_dist22";
-const std::string TestData::widget_negative_hash_path = std::string(TESTAPP_RES_DIR) +
-               "apps/wgt_negative_hash";
-const std::string TestData::widget_negative_signature_path = std::string(
-                       TESTAPP_RES_DIR) + "apps/wgt_negative_signature";
-const std::string TestData::widget_negative_certificate_path = std::string(
-                       TESTAPP_RES_DIR) + "apps/wgt_negative_certificate";
-const std::string TestData::widget_partner_path = std::string(TESTAPP_RES_DIR) + "apps/wgt_partner";
-const std::string TestData::widget_platform_path = std::string(TESTAPP_RES_DIR) +
-               "apps/wgt_platform";
-const std::string TestData::widget_positive_link_path = std::string(TESTAPP_RES_DIR) +
-               "apps/wgt_positive_link";
-const std::string TestData::widget_negative_link_path = std::string(TESTAPP_RES_DIR) +
-               "apps/wgt_negative_link";
+const std::string TestData::widget_path =
+       std::string(TESTAPP_RES_DIR) + "apps/wgt";
+const std::string TestData::widget_dist22_path =
+       std::string(TESTAPP_RES_DIR) + "apps/wgt_dist22";
+const std::string TestData::widget_negative_hash_path =
+       std::string(TESTAPP_RES_DIR) + "apps/wgt_negative_hash";
+const std::string TestData::widget_negative_signature_path =
+       std::string(TESTAPP_RES_DIR) + "apps/wgt_negative_signature";
+const std::string TestData::widget_negative_certificate_path =
+       std::string(TESTAPP_RES_DIR) + "apps/wgt_negative_certificate";
+const std::string TestData::widget_partner_path =
+       std::string(TESTAPP_RES_DIR) + "apps/wgt_partner";
+const std::string TestData::widget_platform_path =
+       std::string(TESTAPP_RES_DIR) + "apps/wgt_platform";
+const std::string TestData::widget_positive_link_path =
+       std::string(TESTAPP_RES_DIR) + "apps/wgt_positive_link";
+const std::string TestData::widget_negative_link_path =
+       std::string(TESTAPP_RES_DIR) + "apps/wgt_negative_link";
 
-const std::string TestData::tpk_path = std::string(TESTAPP_RES_DIR) + "apps/tpk";
-const std::string TestData::attacked_tpk_path = std::string(TESTAPP_RES_DIR) + "apps/attacked-tpk";
-const std::string TestData::tpk_with_userdata_path = std::string(TESTAPP_RES_DIR) +
-               "apps/tpk-with-userdata";
+const std::string TestData::tpk_path =
+       std::string(TESTAPP_RES_DIR) + "apps/tpk";
+const std::string TestData::attacked_tpk_path =
+       std::string(TESTAPP_RES_DIR) + "apps/attacked-tpk";
+const std::string TestData::tpk_with_userdata_path =
+       std::string(TESTAPP_RES_DIR) + "apps/tpk-with-userdata";
 const std::string TestData::attacked_tpk_with_userdata_path = std::string(
-                       TESTAPP_RES_DIR) + "apps/attacked-tpk-with-userdata";
+       TESTAPP_RES_DIR) + "apps/attacked-tpk-with-userdata";
+
+const std::string TestData::tpk_sdk_sample_path[3] = {
+       std::string(TESTAPP_RES_DIR) + "apps/tpk-sdk-sample/thumbNail",
+       std::string(TESTAPP_RES_DIR) + "apps/tpk-sdk-sample/mediaContent",
+       std::string(TESTAPP_RES_DIR) + "apps/tpk-sdk-sample/player"};
 
 const std::string TestData::certEE =
        "MIIGXDCCBUSgAwIBAgIQKJK70TuBw91HAA0BqZSPETANBgkqhkiG9w0BAQsFADB3\n"
index 43d62fc..2699cd5 100644 (file)
@@ -27,12 +27,13 @@ extern const std::string widget_negative_certificate_path;
 extern const std::string widget_partner_path;
 extern const std::string widget_platform_path;
 extern const std::string widget_positive_link_path;
-extern const std::string widget_negative_link_path;;
+extern const std::string widget_negative_link_path;
 
 extern const std::string tpk_path;
 extern const std::string attacked_tpk_path;
 extern const std::string tpk_with_userdata_path;
 extern const std::string attacked_tpk_with_userdata_path;
+extern const std::string tpk_sdk_sample_path[3];
 
 extern const std::string certEE;   /* MBANK,    signed by SYMANTEC, expires 04 Feb 2016 */
 extern const std::string certIM;   /* SYMANTEC, signed by VERISIGN, expires 30 Oct 2023 */
index 07008f6..eaa29c3 100644 (file)
@@ -15,6 +15,7 @@
  *    limitations under the License.
  */
 #include <string>
+#include <vector>
 #include <iostream>
 
 #include <dpl/test/test_runner.h>
 #include <vcore/SignatureValidator.h>
 
 #include "test-common.h"
+#include "test-util.h"
 
 using namespace ValidationCore;
 
+namespace {
+
+std::vector<VCerr> runCheck(const std::string &contentPath,
+                                                                  bool checkOcsp,
+                                                                  bool checkReferences)
+{
+       SignatureFileInfoSet signatureSet;
+       SignatureFinder signatureFinder(contentPath);
+       RUNNER_ASSERT_MSG(
+               SignatureFinder::NO_ERROR == signatureFinder.find(signatureSet),
+               "SignatureFinder failed");
+
+       std::vector<VCerr> retVector;
+       for (auto &sig : signatureSet) {
+               SignatureValidator validator(sig);
+               SignatureData outData;
+               retVector.push_back(validator.check(contentPath,
+                                                                                       checkOcsp,
+                                                                                       checkReferences,
+                                                                                       outData));
+       }
+       return retVector;
+}
+
+std::vector<VCerr> runCheckList(const std::string &contentPath,
+                                                                          bool checkOcsp,
+                                                                          const UriList &uriList)
+{
+       SignatureFileInfoSet signatureSet;
+       SignatureFinder signatureFinder(contentPath);
+       RUNNER_ASSERT_MSG(
+               SignatureFinder::NO_ERROR == signatureFinder.find(signatureSet),
+               "SignatureFinder failed");
+
+       std::vector<VCerr> retVector;
+       for (auto &sig : signatureSet) {
+               SignatureValidator validator(sig);
+               SignatureData outData;
+               retVector.push_back(validator.checkList(checkOcsp,
+                                                                                               uriList,
+                                                                                               outData));
+       }
+       return retVector;
+}
+
+VCerr runCheckAll(const std::string &contentPath,
+                                                bool checkOcsp,
+                                                bool checkReferences)
+{
+       SignatureValidator validator(contentPath);
+       SignatureDataMap sigDataMap;
+       return validator.checkAll(checkOcsp, checkReferences, sigDataMap);
+}
+
+VCerr runCheckListAll(const std::string &contentPath,
+                                                        bool checkOcsp,
+                                                        const UriList &uriList)
+{
+       SignatureValidator validator(contentPath);
+       SignatureDataMap sigDataMap;
+       return validator.checkListAll(checkOcsp, uriList, sigDataMap);
+}
+
+} // anonymous namespace
+
 RUNNER_TEST_GROUP_INIT(T0010_SIGNATURE_VALIDATOR)
 
 RUNNER_TEST(T00101_finder)
@@ -633,6 +700,69 @@ RUNNER_TEST(T00161_positive_checkListAll)
         */
 }
 
+RUNNER_TEST(T00162_compare_time_between_check_and_checkAll)
+{
+       for(int i = 0; i < 3; i++) {
+               std::cout << "Start to validate : "
+                                 << TestData::tpk_sdk_sample_path[i] << std::endl;
+
+               Test::cmpFuncTime(
+                       [&]() { // func1
+                               auto retVector = runCheck(TestData::tpk_sdk_sample_path[i],
+                                                                                 true,
+                                                                                 true);
+
+                               for (auto &ret : retVector)
+                                       RUNNER_ASSERT_MSG(ret == E_SIG_NONE,
+                                                                         "sig validation should be success: "
+                                                                         << ret);
+                       },
+                       [&]() { // func2
+                               auto ret = runCheckAll(TestData::tpk_sdk_sample_path[i],
+                                                                          true,
+                                                                          true);
+
+                               RUNNER_ASSERT_MSG(ret == E_SIG_NONE,
+                                                                 "sig validation should be success: "
+                                                                 << ret);
+                       });
+       }
+}
+
+RUNNER_TEST(T00163_compare_time_between_checkList_and_checkListAll)
+{
+       UriList uriList;
+       uriList.emplace_back("bin/player");
+       uriList.emplace_back("res/sample.3gp");
+       uriList.emplace_back("res/test0.3gp");
+       uriList.emplace_back("res/test1.wav");
+       uriList.emplace_back("res/test2.wav");
+
+       std::cout << "Start to validate : "
+                         << TestData::tpk_sdk_sample_path[2] << std::endl;
+
+       Test::cmpFuncTime(
+               [&]() { // func1
+                       auto retVector = runCheckList(TestData::tpk_sdk_sample_path[2],
+                                                                                 true,
+                                                                                 uriList);
+
+                       for (auto &ret : retVector)
+                               RUNNER_ASSERT_MSG(ret == E_SIG_NONE,
+                                                                 "sig validation should be success: "
+                                                                 << ret);
+               },
+               [&]() { // func2
+                       auto ret = runCheckListAll(TestData::tpk_sdk_sample_path[2],
+                                                                          true,
+                                                                          uriList);
+
+                       RUNNER_ASSERT_MSG(ret == E_SIG_NONE,
+                                                         "sig validation should be success: "
+                                                         << ret);
+               });
+}
+
 RUNNER_TEST_GROUP_INIT(T0020_SigVal_errorstring)
 
 RUNNER_TEST(T0021)
diff --git a/tests/vcore/test-util.cpp b/tests/vcore/test-util.cpp
new file mode 100644 (file)
index 0000000..55bc4c7
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2016 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.
+ */
+/*
+ * @file        test-util.cpp
+ * @author      Sangwan Kwon (sangwan.kwon@samsung.com)
+ * @version     1.0
+ * @brief       Common utilities for test.
+ */
+#include "test-util.h"
+
+#include <iostream>
+#include <chrono>
+
+namespace Test {
+
+void cmpFuncTime(const std::function<void()> &func1,
+                                const std::function<void()> &func2)
+{
+       using namespace std::chrono;
+       auto start = system_clock::now();
+       func1();
+       auto end = system_clock::now();
+       auto mill = duration_cast<milliseconds>(end - start);
+       std::cout << "[Func1] Elapsed time : "
+                         << mill.count() << "ms" << std::endl;
+
+       start = system_clock::now();
+       func2();
+       end = system_clock::now();
+       mill = duration_cast<milliseconds>(end - start);
+       std::cout << "[Func2] Elapsed time : "
+                         << mill.count() << "ms" << std::endl;
+}
+
+} // namespace Test
diff --git a/tests/vcore/test-util.h b/tests/vcore/test-util.h
new file mode 100644 (file)
index 0000000..9c5346f
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2016 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.
+ */
+/*
+ * @file        test-util.h
+ * @author      Sangwan Kwon (sangwan.kwon@samsung.com)
+ * @version     1.0
+ * @brief       Common utilities for test.
+ */
+#pragma once
+
+#include <functional>
+
+namespace Test {
+
+void cmpFuncTime(const std::function<void()> &func1,
+                                const std::function<void()> &func2);
+
+} // namespace Test