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.");
}
}
#
SET(VCORE_TESTS_SOURCES
main.cpp
+ test-util.cpp
test-common.cpp
test-signature-validator.cpp
test-certificate.cpp
resource/attacked-tpk
resource/tpk-with-userdata
resource/attacked-tpk-with-userdata
+ resource/tpk-sdk-sample
DESTINATION
${CERT_SVC_TESTS}/apps
--- /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="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
--- /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>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
--- /dev/null
+<?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>
--- /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="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
--- /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>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
--- /dev/null
+<?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>
--- /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="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
--- /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>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
--- /dev/null
+<?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>
#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"
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 */
* 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)
*/
}
+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)
--- /dev/null
+/*
+ * 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
--- /dev/null
+/*
+ * 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