Revision: 201031
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Wed, 18 Aug 2010 09:55:45 +0300
changeset 60 245df5276b97
parent 53 ae54820ef82c
child 63 819e5a99c9bd
child 67 3a625661d1ce
Revision: 201031 Kit: 201033
appinstall_plat/sifui_api/bwins/sifuiu.def
appinstall_plat/sifui_api/eabi/sifuiu.def
appinstall_plat/sifui_api/group/bld.inf
appinstall_plat/sifui_api/group/sifui.mmp
appinstall_plat/sifui_api/inc/sifui.h
appinstall_plat/sifui_api/inc/sifuidefs.h
appinstall_plat/sifui_api/inc/sifuierrorinfo.h
appinstall_plat/sifui_api/inc/sifuierrorinfo.inl
appinstall_plat/sifui_api/inc/sifuiinstallindicatordefinitions.h
appinstall_plat/sifui_api/inc/sifuiprivate.h
appinstall_plat/sifui_api/src/sifui.cpp
appinstall_plat/sifui_api/src/sifuierrorinfo.cpp
appinstall_plat/sifui_api/src/sifuiprivate.cpp
appinstall_plat/sw_installer_cr_keys/tsrc/swinstsettingschanger/main.cpp
appinstall_plat/sw_installer_cr_keys/tsrc/swinstsettingschanger/swinstsettingschanger.cpp
appinstall_plat/sw_installer_cr_keys/tsrc/swinstsettingschanger/swinstsettingschanger.h
appinstall_plat/sw_installer_cr_keys/tsrc/swinstsettingschanger/swinstsettingschanger.iby
appinstall_plat/sw_installer_cr_keys/tsrc/swinstsettingschanger/swinstsettingschanger.pro
appinstaller/AppinstUi/Plugin/CommonUI/Data/SWInstCommonUI.rss
appinstaller/AppinstUi/sifuidevicedialogplugin/inc/sifuidialog.h
appinstaller/AppinstUi/sifuidevicedialogplugin/inc/sifuidialogcertificatedetails.h
appinstaller/AppinstUi/sifuidevicedialogplugin/inc/sifuidialogcontentwidget.h
appinstaller/AppinstUi/sifuidevicedialogplugin/inc/sifuidialogdefinitions.h
appinstaller/AppinstUi/sifuidevicedialogplugin/inc/sifuidialoggrantcapabilities.h
appinstaller/AppinstUi/sifuidevicedialogplugin/inc/sifuidialoggrantcapabilitiescontent.h
appinstaller/AppinstUi/sifuidevicedialogplugin/inc/sifuidialogtitlewidget.h
appinstaller/AppinstUi/sifuidevicedialogplugin/rom/sifuidevicedialogplugin.iby
appinstaller/AppinstUi/sifuidevicedialogplugin/sifuidevicedialogplugin.pro
appinstaller/AppinstUi/sifuidevicedialogplugin/sifuidevicedialogplugin.qcrml
appinstaller/AppinstUi/sifuidevicedialogplugin/src/sifuidialog.cpp
appinstaller/AppinstUi/sifuidevicedialogplugin/src/sifuidialogcontentwidget.cpp
appinstaller/AppinstUi/sifuidevicedialogplugin/src/sifuidialoggrantcapabilities.cpp
appinstaller/AppinstUi/sifuidevicedialogplugin/src/sifuidialoggrantcapabilitiescontent.cpp
appinstaller/AppinstUi/sifuidevicedialogplugin/src/sifuidialogtitlewidget.cpp
appinstaller/AppinstUi/sifuiinstallindicatorplugin/inc/sifuiinstallindicator.h
appinstaller/AppinstUi/sifuiinstallindicatorplugin/rom/sifuiinstallindicatorplugin.iby
appinstaller/AppinstUi/sifuiinstallindicatorplugin/sifuiinstallindicatorplugin.qcrml
appinstaller/AppinstUi/sifuiinstallindicatorplugin/src/sifuiinstallindicator.cpp
appinstaller/AppinstUi/sisxsifplugin/group/sisxsifplugin.mmp
appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifpluginactiveimpl.h
appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifpluginerrors.h
appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifpluginuihandler.h
appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifpluginuihandlerbase.h
appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginactiveimpl.cpp
appinstaller/AppinstUi/sisxsifplugin/src/sisxsifplugininstallparams.cpp
appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginuihandler.cpp
appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginuihandlerbase.cpp
appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginuihandlersilent.cpp
appinstaller/AppinstUi/sisxsifplugin/tsrc/testinstaller/activerunner.cpp
appinstaller/AppinstUi/sisxsifplugin/tsrc/testinstaller/activerunner.h
appinstaller/AppinstUi/sisxsifplugin/tsrc/testinstaller/activerunner_symbian.cpp
appinstaller/AppinstUi/sisxsifplugin/tsrc/testinstaller/activerunner_symbian.h
appinstaller/AppinstUi/sisxsifplugin/tsrc/testinstaller/testinstaller.cpp
appinstaller/AppinstUi/sisxsifplugin/tsrc/testinstaller/testinstaller.h
appinstaller/AppinstUi/sisxsifplugin/tsrc/testinstaller/testinstaller.pro
iaupdate/IAD/backgroundchecker/group/iaupdatebg.mmp
iaupdate/IAD/backgroundchecker/inc/iaupdatebgconst.h
iaupdate/IAD/backgroundchecker/inc/iaupdatebginternalfilehandler.h
iaupdate/IAD/backgroundchecker/inc/iaupdatebgnotifyhandler.h
iaupdate/IAD/backgroundchecker/inc/iaupdatebgrefreshtimer.h
iaupdate/IAD/backgroundchecker/inc/iaupdatebgremindertimer.h
iaupdate/IAD/backgroundchecker/src/iaupdatbgnotifyhandler.cpp
iaupdate/IAD/backgroundchecker/src/iaupdatebginternalfilehandler.cpp
iaupdate/IAD/backgroundchecker/src/iaupdatebgrefreshtimer.cpp
iaupdate/IAD/backgroundchecker/src/iaupdatebgremindertimer.cpp
iaupdateapi_stub/conf/CI_iaupdate.confml
iaupdateapi_stub/group/bld.inf
installationservices/refswinstallationplugin/inc/sifrefinstaller.iby
installationservices/refswinstallationplugin/inc/tsifrefinstaller.iby
installationservices/swcomponentregistry/inc/screntries.h
installationservices/swcomponentregistry/inc/screntries_internal.h
installationservices/swcomponentregistry/test/tscr/inc/appmanagersteps.h
installationservices/swcomponentregistry/test/tscr/inc/tscrdefs.h
installationservices/swcomponentregistry/test/tscr/source/appmanagersteps.cpp
installationservices/swcomponentregistry/test/tscr/source/tscrserver.cpp
installationservices/swi/bwins/sisregistryclient_v2U.def
installationservices/swi/eabi/sisregistryclient_v2U.def
installationservices/swi/group/apprscparser.mmp
installationservices/swi/group/bld.inf
installationservices/swi/group/daemon.mmp
installationservices/swi/group/export/group/bld.inf
installationservices/swi/group/sisregistryserver.mmp
installationservices/swi/group/swisidchecker.mmp
installationservices/swi/inc/swi.iby
installationservices/swi/inc/swi/sisregistrysession.h
installationservices/swi/inc/swi_ncp.iby
installationservices/swi/inc/switextshell.iby
installationservices/swi/inc/tswitextshell.iby
installationservices/swi/source/apprscparser/apprscparser.cpp
installationservices/swi/source/apprscparser/apprscparser.h
installationservices/swi/source/daemon/daemon.cpp
installationservices/swi/source/daemon/daemon.h
installationservices/swi/source/daemon/daemonbehaviour.cpp
installationservices/swi/source/daemon/daemonbehaviour.h
installationservices/swi/source/daemon/daemoninstaller.cpp
installationservices/swi/source/daemon/daemoninstaller.h
installationservices/swi/source/daemon/drivewatcher.cpp
installationservices/swi/source/daemon/drivewatcher.h
installationservices/swi/source/daemon/main.cpp
installationservices/swi/source/sisfile/siscompressed.cpp
installationservices/swi/source/sisfile/sisdata.cpp
installationservices/swi/source/sislauncher/common/sislauncherclientserver.h
installationservices/swi/source/sislauncher/server/sislauncherserver.cpp
installationservices/swi/source/sislauncher/server/sislauncherserver.h
installationservices/swi/source/sislauncher/server/sislaunchersession.cpp
installationservices/swi/source/sisregistry/client/sisregistrysession.cpp
installationservices/swi/source/sisregistry/common/sisregistryclientserver.h
installationservices/swi/source/sisregistry/server/sisregistryserver.cpp
installationservices/swi/source/sisregistry/server/sisregistryserver.h
installationservices/swi/source/sisregistry/server/sisregistryserverconst.h
installationservices/swi/source/sisregistry/server/sisregistryserversession.cpp
installationservices/swi/source/sisregistry/server/sisregistryserversession.h
installationservices/swi/source/sisregistry/server/sisregistryutil.cpp
installationservices/swi/source/sisregistry/server/sisregistryutil.h
installationservices/swi/test/eabi/swicaptests_usifU.def
installationservices/swi/test/swicaptests/registrycaptest.cpp
installationservices/swi/test/swicaptests/registrycaptest.h
installationservices/swi/test/swicaptests/swicaptests.cpp
installationservices/swi/test/swicaptests/swilaunchercaptest.cpp
installationservices/swi/test/swicaptests/swilaunchercaptest.h
installationservices/swi/test/tdaemon/dummyswidaemon_armv5.exe
installationservices/swi/test/tdaemon/dummyswidaemon_winscw.exe
installationservices/swi/test/tdaemon/scripts/batchfiles/setupforemmcformat_post.bat
installationservices/swi/test/tdaemon/scripts/batchfiles/setupforemmcformat_pre.bat
installationservices/swi/test/tdaemon/scripts/tdaemon.ini
installationservices/swi/test/tdaemon/scripts/tdaemon_winscw.script
installationservices/swi/test/tdaemon/steps/daemonstep.cpp
installationservices/swi/test/tdaemon/steps/daemonstep.h
installationservices/swi/test/tdaemon/tdaemon.cpp
installationservices/swi/test/testexes/packages/eclipsingdllupgradepu_on_c_and_emmc.pkg
installationservices/swi/test/testexes/packages/eclipsingdllupgradesa_on_c_and_emmc.pkg
installationservices/swi/test/testexes/packages/emmc_format_base_distributed.pkg
installationservices/swi/test/testexes/packages/emmc_format_base_distributed_NR.pkg
installationservices/swi/test/testexes/packages/emmc_format_base_on_c_and_t.pkg
installationservices/swi/test/testexes/packages/emmc_format_base_on_c_and_t_NR.pkg
installationservices/swi/test/testexes/packages/emmc_format_base_on_c_drive.pkg
installationservices/swi/test/testexes/packages/emmc_format_base_on_emmc.pkg
installationservices/swi/test/testexes/packages/emmc_format_pu_on_emmc.pkg
installationservices/swi/test/testexes/packages/emmc_format_sp_distributed.pkg
installationservices/swi/test/testexes/packages/emmc_format_sp_emmc.pkg
installationservices/swi/test/testexes/packages/emmc_format_sp_on_c.pkg
installationservices/swi/test/testexes/prepareexes.pl
installationservices/swi/test/testexes/tswiappregintegration/base02/01-strings.rls
installationservices/swi/test/testexes/tswiappregintegration/base02/02-strings.rls
installationservices/swi/test/testexes/tswiappregintegration/base02/03-strings.rls
installationservices/swi/test/testexes/tswiappregintegration/base02/04-strings.rls
installationservices/swi/test/testexes/tswiappregintegration/base02/rsc-strings.rls
installationservices/swi/test/testexes/tswiappregintegration/base02/swiappregintegration_base02_loc.rss
installationservices/swi/test/testexes/tswiappregintegration/base02/swiappregintegration_base02_reg.rss
installationservices/swi/test/testexes/tswiappregintegration/bld.inf
installationservices/swi/test/testexes/tswiappregintegration/case12/01-strings.rls
installationservices/swi/test/testexes/tswiappregintegration/case12/rsc-strings.rls
installationservices/swi/test/testexes/tswiappregintegration/case12/swiappregintegration12_loc.rss
installationservices/swi/test/testexes/tswiappregintegration/case12/swiappregintegration12_reg.rss
installationservices/swi/test/testexes/tswiappregintegration/fotaupdateUDA1_reg.rss
installationservices/swi/test/testexes/tswiappregintegration/fotaupdateUDA2_reg.rss
installationservices/swi/test/testexes/tswiappregintegration/tswiappregintegration01.mmp
installationservices/swi/test/testexes/tswiappregintegration/tswiappregintegration12.mmp
installationservices/swi/test/testexes/tswiappregintegration/tswiappregintegration_base02.mmp
installationservices/swi/test/tsisfile/steps/basestep.cpp
installationservices/swi/test/tsisregistrytest/Scripts/batchfiles/tsisregistrytest_tcb_post.bat
installationservices/swi/test/tsisregistrytest/Scripts/batchfiles/tsisregistrytest_tcb_pre.bat
installationservices/swi/test/tsisregistrytest/Scripts/data/addappregdata.sis
installationservices/swi/test/tsisregistrytest/Scripts/tsisregistrytest.ini
installationservices/swi/test/tsisregistrytest/Scripts/tsisregistrytest.script
installationservices/swi/test/tsisregistrytest/Scripts/tsisregistrytest_tcb.script
installationservices/swi/test/tsisregistrytest/sessionstep.cpp
installationservices/swi/test/tsisregistrytest/sessionstep.h
installationservices/swi/test/tsisregistrytest/tsisregistrytest.cpp
installationservices/swi/test/tsisregistrytest/tsisregistryteststep.h
installationservices/swi/test/tuiscriptadaptors/scripts/batchfiles/testfotaupdate1_post.bat
installationservices/swi/test/tuiscriptadaptors/scripts/batchfiles/testfotaupdate1_pre.bat
installationservices/swi/test/tuiscriptadaptors/scripts/batchfiles/testfotaupdate2_pre.bat
installationservices/swi/test/tuiscriptadaptors/scripts/testfotaupdate.ini
installationservices/swi/test/tuiscriptadaptors/scripts/testfotaupdate1.script
installationservices/swi/test/tuiscriptadaptors/scripts/testpreinstalled.script
installationservices/swi/test/tuiscriptadaptors/scripts/tswidaemonstub.script
installationservices/swi/test/tuiscriptadaptors/sisregistryaccess_client.cpp
installationservices/swi/test/tuiscriptadaptors/sisregistryaccess_client.h
installationservices/swi/test/tuiscriptadaptors/sisregistryaccess_common.h
installationservices/swi/test/tuiscriptadaptors/sisregistryaccess_server_session.cpp
installationservices/swiconfig/usif/scr/scr.db
installationservices/swinstallationfw/bwins/sifnotificationu.def
installationservices/swinstallationfw/eabi/sifnotificationu.def
installationservices/swinstallationfw/group/sifserver.mmp
installationservices/swinstallationfw/inc/sif.iby
installationservices/swinstallationfw/inc/sifnotification.h
installationservices/swinstallationfw/source/sifcommon.cpp
installationservices/swinstallationfw/source/sifnotifierdata.cpp
installationservices/swinstallationfw/test/tusif/scripts/tnotifier.ini
installationservices/swinstallationfw/test/tusif/source/tsifcommonunitteststep.cpp
installationservices/swinstallationfw/test/tusif/source/tsifnotifierteststep.cpp
installationservices/switestfw/test/autotesting/apr_bld.inf
installationservices/switestfw/test/autotesting/runswiromtests_9.6.bat
installationservices/switestfw/test/autotesting/test_spec_apr_9.5.txt
installationservices/switestfw/testcertificates/group/bld.inf
installationservices/switestfw/testcertificates/swi/pctools/test/tdumpcertstore/certificates/first.der
installationservices/switestfw/testcertificates/swi/pctools/test/tdumpcertstore/certificates/root5ca.der
installationservices/switestfw/testcertificates/swi/pctools/test/tdumpcertstore/certificates/second.der
installationservices/switestfw/testcertificates/swi/pctools/test/tdumpcertstore/certificates/sucert.der
installationservices/switestfw/testcertificates/swi/pctools/test/tdumpcertstore/certificates/symbian-test-chain-rsa.der
installationservices/switestfw/testcertificates/swi/pctools/test/tdumpcertstore/certificates/symbian-test-dsa.der
installationservices/switestfw/testcertificates/swi/pctools/test/tdumpcertstore/certificates/symbian-test-expired-rsa.der
installationservices/switestfw/testcertificates/swi/pctools/test/tdumpcertstore/certificates/symbian-test-rsa.der
installationservices/switestfw/testcertificates/swi/pctools/test/tdumpcertstore/certificates/symbian-test-tcb-rsa.der
installationservices/switestfw/testcertificates/swi/pctools/test/tdumpcertstore/certificates/symbiantestrootcadiffserial.der
installationservices/switestfw/testcertificates/swi/pctools/test/tdumpcertstore/certificates/symbiantestrsaca.der
installationservices/switestfw/testcertificates/swi/sistools/test/tinterpretsis/certs/default.cer
installationservices/switestfw/testcertificates/swi/sistools/test/tinterpretsis/certs/signing.cer
installationservices/switestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdatah004/cert-gen.cer
installationservices/switestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdatah004/good-r5.key.pem
installationservices/switestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdatah004/good-r5.pem
installationservices/switestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdatai001/good-r5.key.pem
installationservices/switestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdatai001/good-r5.pem
installationservices/switestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdatai002/good-r5.key.pem
installationservices/switestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdatai002/good-r5.pem
installationservices/switestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdatai003/good-r5.key.pem
installationservices/switestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdatai003/good-r5.pem
installationservices/switestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdataj001/good-r5.key.pem
installationservices/switestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdataj001/good-r5.pem
installationservices/switestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdataj002/good-r5.key.pem
installationservices/switestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdataj002/good-r5.pem
installationservices/switestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdataj003/good-r5.key.pem
installationservices/switestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdataj003/good-r5.pem
installationservices/switestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdataj004/good-r5.key.pem
installationservices/switestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdataj004/good-r5.pem
installationservices/switestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdataj005/good-r5.key.pem
installationservices/switestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdataj005/good-r5.pem
installationservices/switestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdataj006/good-r5.key.pem
installationservices/switestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdataj006/good-r5.pem
installationservices/switestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdataj007/good-r5.key.pem
installationservices/switestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdataj007/good-r5.pem
installationservices/switestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdataj008/good-r5.key.pem
installationservices/switestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdataj008/good-r5.pem
installationservices/switestfw/testcertificates/swi/sistools/test/tsignsis/kanji_cer.cer
installationservices/switestfw/testcertificates/swi/sistools/test/tsignsis/signingdata/emptylinescert.key.pem
installationservices/switestfw/testcertificates/swi/sistools/test/tsignsis/signingdata/emptylinescert.pem
installationservices/switestfw/testcertificates/swi/sistools/test/tsignsis/signingdata/good-r5.key.pem
installationservices/switestfw/testcertificates/swi/sistools/test/tsignsis/signingdata/good-r5.pem
installationservices/switestfw/testcertificates/swi/test/tautosigning/createsis/cert-gen.cer
installationservices/switestfw/testcertificates/swi/test/tautosigning/createsis/cert.cer
installationservices/switestfw/testcertificates/swi/test/tautosigning/data/Root5RSA.cer
installationservices/switestfw/testcertificates/swi/test/tautosigning/data/TestCARSA.cer
installationservices/switestfw/testcertificates/swi/test/tdevcerts/SymbianTestRootCARSA_OCSP/SymbianTestRootCARSA/certs/01.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/SymbianTestRootCARSA_OCSP/SymbianTestRootCARSA/certs/revoked_user_caps.cert.der
installationservices/switestfw/testcertificates/swi/test/tdevcerts/SymbianTestRootCARSA_OCSP/SymbianTestRootCARSA/certs/revoked_user_caps.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/SymbianTestRootCARSA_OCSP/SymbianTestRootCARSA/certs/revoked_user_caps.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/SymbianTestRootCARSA_OCSP/SymbianTestRootCARSA/certs/revoked_user_caps.req.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/SymbianTestRootCARSA_OCSP/SymbianTestRootCARSA/private/ca.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/SymbianTestRootCARSA_OCSP/SymbianTestRootCARSA/private/ca.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/01_loader_capabilities_chain_0.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/01_loader_capabilities_user_caps.0.0.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/02_protected_vid_mismatch_bad_single_vid.0.0.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/02_protected_vid_mismatch_chain_0.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/03_protected_vid_match_chain_0.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/03_protected_vid_match_single_vid1.0.0.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/04_protpuid_constr_sid_mismatch_chain_0.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/04_protpuid_constr_sid_mismatch_single_sid1.0.0.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/05_protpuid_nonconstr_sid_match_chain_0.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/05_protpuid_nonconstr_sid_match_unconstrained.0.0.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/06_nonprotpuid_constr_sid_match_chain_0.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/06_nonprotpuid_constr_sid_match_single_sid1.0.0.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/aggregate_01_bad_single_dev.0.1.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/aggregate_01_chain_0.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/aggregate_01_single_dev1.0.0.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/aggregate_02_bad_single_sid.0.1.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/aggregate_02_chain_0.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/aggregate_02_single_sid1.0.0.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/aggregate_03_bad_single_vid.0.1.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/aggregate_03_chain_0.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/aggregate_03_single_vid1.0.0.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/aggregate_04_chain_0.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/aggregate_04_empty_caps.0.1.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/aggregate_04_user_caps.0.0.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/aggregate_05_chain_0.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/aggregate_05_chain_1.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/aggregate_05_empty_devs.1.0.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/aggregate_05_multi_dev.0.0.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/aggregate_06_chain_0.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/aggregate_06_chain_1.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/aggregate_06_empty_sids.1.0.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/aggregate_06_multi_sid.0.0.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/aggregate_07_chain_0.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/aggregate_07_chain_1.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/aggregate_07_empty_vids.1.0.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/aggregate_07_multi_vid.0.0.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/aggregate_08_chain_0.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/aggregate_08_chain_1.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/aggregate_08_system_caps.1.0.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/aggregate_08_user_caps.0.0.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/backuprestore_01_chain_0.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/backuprestore_01_system_caps.0.0.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/backuprestore_02_chain_0.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/backuprestore_02_single_dev1.0.3.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/backuprestore_02_single_sid1.0.2.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/backuprestore_02_single_vid1.0.1.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/backuprestore_02_user_caps.0.0.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/backuprestore_03_chain_0.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/backuprestore_03_multi_vid.0.1.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/backuprestore_03_single_sid1.0.2.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/backuprestore_03_user_caps.0.0.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/corrupt_01_chain_0.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/corrupt_01_corrupt_dev.0.0.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/corrupt_02_chain_0.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/corrupt_02_corrupt_sid.0.0.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/corrupt_03_chain_0.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/corrupt_03_corrupt_vid.0.0.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/corrupt_04_chain_0.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/corrupt_04_corrupt_caps.0.0.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/devcertwarn_chain_0.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/devcertwarn_system_caps.0.1.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/devcertwarn_unconstrained.0.0.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/devcertwarn_unconstrained.0.2.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_01_chain_0.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_01_single_dev1.0.0.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_02_chain_0.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_02_single_sid1.0.0.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_03_chain_0.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_03_single_vid1.0.0.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_04_chain_0.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_04_user_caps.0.0.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_05_chain_0.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_05_system_caps.0.0.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_06_chain_0.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_06_chain_1.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_06_single_dev1.0.0.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_06_user_caps.1.0.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_07_chain_0.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_07_comb1.0.0.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_08_all_caps.0.0.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_08_chain_0.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_08_system_caps.0.1.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_09_chain_0.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_09_single_sid1.0.0.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_10_chain_0.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_10_single_vid1.0.0.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_11_chain_0.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_11_single_sid1.0.0.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_11_single_vid1.0.1.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_12_chain_0.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_12_user_caps.0.0.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_13_chain_0.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_13_system_caps.0.1.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_13_unconstrained.0.0.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_13_unconstrained.0.2.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/mismatch_01_chain_0.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/mismatch_01_empty_devs.0.0.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/mismatch_02_chain_0.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/mismatch_02_empty_sids.0.0.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/mismatch_03_chain_0.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/mismatch_03_empty_sids.0.0.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/mismatch_04_chain_0.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/mismatch_04_empty_caps.0.0.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/mismatch_05_bad_single_dev.0.0.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/mismatch_05_chain_0.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/mismatch_06_bad_single_sid.0.0.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/mismatch_06_chain_0.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/mismatch_07_bad_single_vid.0.0.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/mismatch_07_chain_0.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/mismatch_08_all_caps.0.0.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/mismatch_08_chain_0.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/mismatch_08_system_caps.0.1.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/mismatch_09_chain_0.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/mismatch_09_user_caps.0.0.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/mismatch_10_chain_0.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/mismatch_10_unconstrained.0.0.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/mismatch_10_unconstrained.0.2.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/mismatch_10_user_caps.0.1.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/ocsp_02_chain_0.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/ocsp_02_single_sid1.0.0.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/ocsp_03_chain_0.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/ocsp_03_comb1.0.0.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/01_loader_capabilities_user_caps.0.0.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/02_protected_vid_mismatch_bad_single_vid.0.0.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/03_protected_vid_match_single_vid1.0.0.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/04_protpuid_constr_sid_mismatch_single_sid1.0.0.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/05_protpuid_nonconstr_sid_match_unconstrained.0.0.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/06_nonprotpuid_constr_sid_match_single_sid1.0.0.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/aggregate_01_bad_single_dev.0.1.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/aggregate_01_single_dev1.0.0.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/aggregate_02_bad_single_sid.0.1.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/aggregate_02_single_sid1.0.0.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/aggregate_03_bad_single_vid.0.1.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/aggregate_03_single_vid1.0.0.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/aggregate_04_empty_caps.0.1.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/aggregate_04_user_caps.0.0.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/aggregate_05_empty_devs.1.0.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/aggregate_05_multi_dev.0.0.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/aggregate_06_empty_sids.1.0.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/aggregate_06_multi_sid.0.0.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/aggregate_07_empty_vids.1.0.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/aggregate_07_multi_vid.0.0.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/aggregate_08_system_caps.1.0.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/aggregate_08_user_caps.0.0.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/backuprestore_01_system_caps.0.0.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/backuprestore_02_single_dev1.0.3.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/backuprestore_02_single_sid1.0.2.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/backuprestore_02_single_vid1.0.1.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/backuprestore_02_user_caps.0.0.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/backuprestore_03_multi_vid.0.1.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/backuprestore_03_single_sid1.0.2.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/backuprestore_03_user_caps.0.0.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/corrupt_01_corrupt_dev.0.0.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/corrupt_02_corrupt_sid.0.0.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/corrupt_03_corrupt_vid.0.0.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/corrupt_04_corrupt_caps.0.0.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/devcertwarn_system_caps.0.1.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/devcertwarn_unconstrained.0.0.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/devcertwarn_unconstrained.0.2.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/match_01_single_dev1.0.0.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/match_02_single_sid1.0.0.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/match_03_single_vid1.0.0.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/match_04_user_caps.0.0.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/match_05_system_caps.0.0.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/match_06_single_dev1.0.0.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/match_06_user_caps.1.0.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/match_07_comb1.0.0.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/match_08_all_caps.0.0.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/match_08_system_caps.0.1.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/match_09_single_sid1.0.0.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/match_10_single_vid1.0.0.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/match_11_single_sid1.0.0.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/match_11_single_vid1.0.1.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/match_12_user_caps.0.0.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/match_13_system_caps.0.1.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/match_13_unconstrained.0.0.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/match_13_unconstrained.0.2.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/mismatch_01_empty_devs.0.0.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/mismatch_02_empty_sids.0.0.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/mismatch_03_empty_sids.0.0.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/mismatch_04_empty_caps.0.0.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/mismatch_05_bad_single_dev.0.0.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/mismatch_06_bad_single_sid.0.0.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/mismatch_07_bad_single_vid.0.0.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/mismatch_08_all_caps.0.0.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/mismatch_08_system_caps.0.1.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/mismatch_09_user_caps.0.0.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/mismatch_10_unconstrained.0.0.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/mismatch_10_unconstrained.0.2.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/mismatch_10_user_caps.0.1.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/ocsp_02_single_sid1.0.0.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/ocsp_03_comb1.0.0.key.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/ocsp/revoked_user_caps.cert.pem
installationservices/switestfw/testcertificates/swi/test/tdevcerts/ocsp/revoked_user_caps.key.pem
installationservices/switestfw/testcertificates/swi/test/testexes/certs/default.cer
installationservices/switestfw/testcertificates/swi/test/testexes/certs/signing.cer
installationservices/switestfw/testcertificates/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev1/SymbianTestRootCARSATRev/certs/01.pem
installationservices/switestfw/testcertificates/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev1/SymbianTestRootCARSATRev/certs/02.pem
installationservices/switestfw/testcertificates/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev1/SymbianTestRootCARSATRev/certs/certTrev1.cert.der
installationservices/switestfw/testcertificates/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev1/SymbianTestRootCARSATRev/certs/certTrev1.cert.pem
installationservices/switestfw/testcertificates/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev1/SymbianTestRootCARSATRev/certs/certTrev1.key.pem
installationservices/switestfw/testcertificates/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev1/SymbianTestRootCARSATRev/certs/certTrev1.req.pem
installationservices/switestfw/testcertificates/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev1/SymbianTestRootCARSATRev/certs/certTrev2.cert.der
installationservices/switestfw/testcertificates/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev1/SymbianTestRootCARSATRev/certs/certTrev2.cert.pem
installationservices/switestfw/testcertificates/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev1/SymbianTestRootCARSATRev/certs/certTrev2.key.pem
installationservices/switestfw/testcertificates/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev1/SymbianTestRootCARSATRev/certs/certTrev2.req.pem
installationservices/switestfw/testcertificates/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev1/SymbianTestRootCARSATRev/private/ca.key.pem
installationservices/switestfw/testcertificates/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev1/SymbianTestRootCARSATRev/private/ca.pem
installationservices/switestfw/testcertificates/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev2/SymbianTestRootCARSATRev/certs/01.pem
installationservices/switestfw/testcertificates/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev2/SymbianTestRootCARSATRev/certs/02.pem
installationservices/switestfw/testcertificates/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev2/SymbianTestRootCARSATRev/certs/certTrev1.cert.der
installationservices/switestfw/testcertificates/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev2/SymbianTestRootCARSATRev/certs/certTrev1.cert.pem
installationservices/switestfw/testcertificates/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev2/SymbianTestRootCARSATRev/certs/certTrev1.key.pem
installationservices/switestfw/testcertificates/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev2/SymbianTestRootCARSATRev/certs/certTrev1.req.pem
installationservices/switestfw/testcertificates/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev2/SymbianTestRootCARSATRev/certs/certTrev2.cert.der
installationservices/switestfw/testcertificates/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev2/SymbianTestRootCARSATRev/certs/certTrev2.cert.pem
installationservices/switestfw/testcertificates/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev2/SymbianTestRootCARSATRev/certs/certTrev2.key.pem
installationservices/switestfw/testcertificates/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev2/SymbianTestRootCARSATRev/certs/certTrev2.req.pem
installationservices/switestfw/testcertificates/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev2/SymbianTestRootCARSATRev/private/ca.key.pem
installationservices/switestfw/testcertificates/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev2/SymbianTestRootCARSATRev/private/ca.pem
installationservices/switestfw/testcertificates/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev3/SymbianTestRootCARSATRev/private/ca.key.pem
installationservices/switestfw/testcertificates/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev3/SymbianTestRootCARSATRev/private/ca.pem
installationservices/switestfw/testcertificates/swi/test/trevocation/ocsp/responder1/01.pem
installationservices/switestfw/testcertificates/swi/test/trevocation/ocsp/responder1/02.pem
installationservices/switestfw/testcertificates/swi/test/trevocation/ocsp/responder1/certTrev1.cert.der
installationservices/switestfw/testcertificates/swi/test/trevocation/ocsp/responder1/certTrev1.cert.pem
installationservices/switestfw/testcertificates/swi/test/trevocation/ocsp/responder1/certTrev1.key.pem
installationservices/switestfw/testcertificates/swi/test/trevocation/ocsp/responder1/certTrev1.req.pem
installationservices/switestfw/testcertificates/swi/test/trevocation/ocsp/responder1/certTrev2.cert.der
installationservices/switestfw/testcertificates/swi/test/trevocation/ocsp/responder1/certTrev2.cert.pem
installationservices/switestfw/testcertificates/swi/test/trevocation/ocsp/responder1/certTrev2.key.pem
installationservices/switestfw/testcertificates/swi/test/trevocation/ocsp/responder1/certTrev2.req.pem
installationservices/switestfw/testcertificates/swi/test/trevocation/ocsp/responder2/01.pem
installationservices/switestfw/testcertificates/swi/test/trevocation/ocsp/responder2/02.pem
installationservices/switestfw/testcertificates/swi/test/trevocation/ocsp/responder2/certTrev1.cert.der
installationservices/switestfw/testcertificates/swi/test/trevocation/ocsp/responder2/certTrev1.cert.pem
installationservices/switestfw/testcertificates/swi/test/trevocation/ocsp/responder2/certTrev1.key.pem
installationservices/switestfw/testcertificates/swi/test/trevocation/ocsp/responder2/certTrev1.req.pem
installationservices/switestfw/testcertificates/swi/test/trevocation/ocsp/responder2/certTrev2.cert.der
installationservices/switestfw/testcertificates/swi/test/trevocation/ocsp/responder2/certTrev2.cert.pem
installationservices/switestfw/testcertificates/swi/test/trevocation/ocsp/responder2/certTrev2.key.pem
installationservices/switestfw/testcertificates/swi/test/trevocation/ocsp/responder2/certTrev2.req.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/files/badcert.cer
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/files/default.cer
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/files/dsacert1.cer
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/files/dsacert1.der
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/files/dsacert2.cer
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/files/dsacert2.der
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/files/mycert.cer
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/files/rsacert1.cer
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/files/rsacert1.der
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/files/rsacert2.cer
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/files/rsacert2.der
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/CertificatesNotInStore/ebook_key.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/CertificatesNotInStore/pool_key.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/CertificatesNotInStore/selfsigned_cert.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/CertificatesNotInStore/selfsigned_key.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/Root5CA/ca.key.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/Root5CA/ca.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/Root5CA/cert_chain_dsa_len1/chain_dsa_len1.cert.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/Root5CA/cert_chain_dsa_len1/dsaparam.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/Root5CA/cert_chain_dsa_len1/first.dsa.cer
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/Root5CA/cert_chain_dsa_len2/chain_dsa_len2.cert.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/Root5CA/cert_chain_dsa_len2/dsaparam.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/Root5CA/cert_chain_dsa_len2/second.dsa.cer
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/Root5CA/cert_chain_dsa_len3/chain_dsa_len3.cert.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/Root5CA/cert_chain_dsa_len3/dsaparam.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/Root5CA/cert_chain_dsa_len3/third.dsa.cer
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/Root5CA/cert_chain_rsa_len1/chain_rsa_len1.cert.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/Root5CA/cert_chain_rsa_len1/first.rsa.cer
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/Root5CA/cert_chain_rsa_len2/chain_rsa_len2.cert.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/Root5CA/cert_chain_rsa_len2/second.rsa.cer
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/Root5CA/cert_chain_rsa_len3/chain_rsa_len3.cert.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/Root5CA/cert_chain_rsa_len3/third.rsa.cer
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCADSA/ca.key.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCADSA/ca.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCADSA/cert_chain_dsa_len1/chain_dsa_len1.cert.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCADSA/cert_chain_dsa_len1/dsaparam.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCADSA/cert_chain_dsa_len1/first.dsa.cer
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCADSA/cert_chain_dsa_len2/chain_dsa_len2.cert.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCADSA/cert_chain_dsa_len2/dsaparam.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCADSA/cert_chain_dsa_len2/second.dsa.cer
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCADSA/cert_chain_dsa_len3/chain_dsa_len3.cert.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCADSA/cert_chain_dsa_len3/dsaparam.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCADSA/cert_chain_dsa_len3/third.dsa.cer
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCADSA/cert_chain_rsa_len1/chain_rsa_len1.cert.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCADSA/cert_chain_rsa_len1/first.rsa.cer
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCADSA/cert_chain_rsa_len2/chain_rsa_len2.cert.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCADSA/cert_chain_rsa_len2/second.rsa.cer
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCADSA/cert_chain_rsa_len3/chain_rsa_len3.cert.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCADSA/cert_chain_rsa_len3/third.rsa.cer
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCADSA/dsaparam.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCADiffSerial/cacert.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCADiffSerial/cakey.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCADiffSerial/careq.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCADiffSerial/cert_chain_rsa_len1/chain_rsa_len1.cert.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCADiffSerial/cert_chain_rsa_len1/first.rsa.cer
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCADiffSerial/cert_chain_rsa_len2/chain_rsa_len2.cert.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCADiffSerial/cert_chain_rsa_len2/second.rsa.cer
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCARSA/ca.key.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCARSA/ca.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCARSA/cert_chain_dsa_len1/chain_dsa_len1.cert.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCARSA/cert_chain_dsa_len1/dsaparam.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCARSA/cert_chain_dsa_len1/first.dsa.cer
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCARSA/cert_chain_dsa_len2/chain_dsa_len2.cert.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCARSA/cert_chain_dsa_len2/dsaparam.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCARSA/cert_chain_dsa_len2/second.dsa.cer
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCARSA/cert_chain_dsa_len3/chain_dsa_len3.cert.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCARSA/cert_chain_dsa_len3/dsaparam.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCARSA/cert_chain_dsa_len3/third.dsa.cer
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCARSA/cert_chain_rsa_len1/chain_rsa_len1.cert.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCARSA/cert_chain_rsa_len1/first.rsa.cer
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCARSA/cert_chain_rsa_len2/chain_rsa_len2.cert.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCARSA/cert_chain_rsa_len2/second.rsa.cer
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCARSA/cert_chain_rsa_len3/chain_rsa_len3.cert.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCARSA/cert_chain_rsa_len3/third.rsa.cer
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCARSA/dsaparam.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootExpiredCARSA/cacert.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootExpiredCARSA/cakey.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootExpiredCARSA/careq.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootTCBCARSA/cacert.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootTCBCARSA/cakey.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootTCBCARSA/careq.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/extendedkeyusage/alternativesigningoid_eku.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/extendedkeyusage/certificatereq.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/extendedkeyusage/ekuprivatekey.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/extendedkeyusage/no_eku.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/extendedkeyusage/serverauth_eku.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/extendedkeyusage/standardsigningoid_eku.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/sucert/sucert.der
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/sucert/sucert.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/sucert/sucertkey.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/symbiantestallcapabilitiesca/cakey.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/symbiantestallcapabilitiesca/careq.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/symbiantestallcapabilitiesca/symbiantestallcapabilitiesca.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/symbiantestrootcanotinstore/cacert.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/symbiantestrootcanotinstore/cakey.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/symbiantestrootcanotinstore/careq.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/symbiantestrootcanotinstore/cert_chain_rsa_len1/chain_rsa_len1.cert.pem
installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/symbiantestrootcanotinstore/cert_chain_rsa_len1/first.rsa.cer
installationservices/switestfw/testcertificates/swi/test/writableswicertstore/certs/capabilities/cacert.der
installationservices/switestfw/testcertificates/swi/test/writableswicertstore/certs/capabilities/cakey.pem
installationservices/switestfw/testcertificates/swi/test/writableswicertstore/certs/capabilities/careq.pem
installationservices/switestfw/testcertificates/swi/test/writableswicertstore/certs/chain/cacert.der
installationservices/switestfw/testcertificates/swi/test/writableswicertstore/certs/chain/cacert.pem
installationservices/switestfw/testcertificates/swi/test/writableswicertstore/certs/chain/cakey.pem
installationservices/switestfw/testcertificates/swi/test/writableswicertstore/certs/chain/intermediate/cacert.der
installationservices/switestfw/testcertificates/swi/test/writableswicertstore/certs/chain/intermediate/cakey.pem
installationservices/switestfw/testcertificates/swi/test/writableswicertstore/certs/expired/cacert.der
installationservices/switestfw/testcertificates/swi/test/writableswicertstore/certs/mandatory/cacert.der
installationservices/switestfw/testcertificates/swi/test/writableswicertstore/certs/mandatory/cakey.pem
installationservices/switestfw/testcertificates/swi/test/writableswicertstore/certs/mandatory/careq.pem
installationservices/switestfw/testcertificates/swi/test/writableswicertstore/certs/renewed/cacert.der
installationservices/switestfw/testcertificates/usif/root5ca.pem
installationservices/switestfw/testcertificates/usif/root5ca_key.pem
installationservices/swtransactionservices/group/stsserver.mmp
ncdengine/engine/accesspointmanager/inc/catalogsaccesspointmanagerimpl.h
ncdengine/engine/group/ncddevicemgmt.mmp
ncdengine/engine/transport/inc/catalogshttpdownload.h
ncdengine/engine/transport/inc/catalogshttpdownloadmanagerimpl.h
ncdengine/engine/transport/inc/catalogshttptypes.h
ncdengine/engine/transport/src/catalogshttpdownload.cpp
ncdengine/engine/transport/src/catalogshttpdownloadmanagerimpl.cpp
secureswitools/swianalysistoolkit/group/apply_tools2_variants.xml
secureswitools/swianalysistoolkit/group/bld.inf
secureswitools/swianalysistoolkit/group/dumpchainvaliditytool.mmp
secureswitools/swianalysistoolkit/group/dumpinstallfilestatustool.mmp
secureswitools/swianalysistoolkit/group/dumpswicertstoretool.mmp
secureswitools/swianalysistoolkit/source/common/utf8_wrapper.h
secureswitools/swisistools/group/bld.inf
secureswitools/swisistools/group/dbmanager.mmp
secureswitools/swisistools/group/dumpsislib.mmp
secureswitools/swisistools/group/interpretsis.mmp
secureswitools/swisistools/group/interpretsislib.mmp
secureswitools/swisistools/group/scrtool.mmp
secureswitools/swisistools/source/common/util.cpp
secureswitools/swisistools/source/common/util.h
secureswitools/swisistools/source/dbmanager/dblayer.cpp
secureswitools/swisistools/source/dbmanager/dblayer.h
secureswitools/swisistools/source/dbmanager/dbprocessor.cpp
secureswitools/swisistools/source/dbmanager/dbprocessor.h
secureswitools/swisistools/source/dbmanager/sqlite/sqlite-3.6.1.so
secureswitools/swisistools/source/dumpsis/main.cpp
secureswitools/swisistools/source/dumpsis/options.cpp
secureswitools/swisistools/source/dumpsis/options.h
secureswitools/swisistools/source/dumpsislib/dumpsis.cpp
secureswitools/swisistools/source/interpretsis/commandparser.cpp
secureswitools/swisistools/source/interpretsis/main.cpp
secureswitools/swisistools/source/interpretsislib/adornedutilities.cpp
secureswitools/swisistools/source/interpretsislib/adornedutilities.h
secureswitools/swisistools/source/interpretsislib/configmanager.cpp
secureswitools/swisistools/source/interpretsislib/dbhelper.cpp
secureswitools/swisistools/source/interpretsislib/deserialiser.h
secureswitools/swisistools/source/interpretsislib/errors.h
secureswitools/swisistools/source/interpretsislib/expressionevaluator.cpp
secureswitools/swisistools/source/interpretsislib/installablefile.cpp
secureswitools/swisistools/source/interpretsislib/installer.cpp
secureswitools/swisistools/source/interpretsislib/installer.h
secureswitools/swisistools/source/interpretsislib/is_utils.cpp
secureswitools/swisistools/source/interpretsislib/is_utils.h
secureswitools/swisistools/source/interpretsislib/rommanager.cpp
secureswitools/swisistools/source/interpretsislib/serialiser.h
secureswitools/swisistools/source/interpretsislib/sisfile.cpp
secureswitools/swisistools/source/interpretsislib/sisregistry.cpp
secureswitools/swisistools/source/interpretsislib/sisregistry.h
secureswitools/swisistools/source/interpretsislib/sisregistryobject.cpp
secureswitools/swisistools/source/interpretsislib/stringutils.cpp
secureswitools/swisistools/source/interpretsislib/stringutils.h
secureswitools/swisistools/source/interpretsislib/utils_posix.cpp
secureswitools/swisistools/source/interpretsislib/utils_win32.cpp
secureswitools/swisistools/source/interpretsislib/xmlgenerator.cpp
secureswitools/swisistools/source/interpretsislib/xmlgenerator.h
secureswitools/swisistools/source/rscparser/aplappinforeader.cpp
secureswitools/swisistools/source/rscparser/aplapplistitem.cpp
secureswitools/swisistools/source/rscparser/apsecutils.cpp
secureswitools/swisistools/source/rscparser/apsecutils.h
secureswitools/swisistools/source/rscparser/dirparse.cpp
secureswitools/swisistools/source/rscparser/parse.cpp
secureswitools/swisistools/source/scrtool/data/preprovision.dtd
secureswitools/swisistools/source/scrtool/main.cpp
secureswitools/swisistools/source/signsis/parameter.cpp
secureswitools/swisistools/source/signsislib/sissignature.cpp
secureswitools/swisistools/source/sisxlibrary/siscapabilities.cpp
secureswitools/swisistools/source/sisxlibrary/siscontents.cpp
secureswitools/swisistools/source/sisxlibrary/sisexpression.cpp
secureswitools/swisistools/source/sisxlibrary/sisinfo.cpp
secureswitools/swisistools/source/sisxlibrary/sisstring.cpp
secureswitools/swisistools/source/sisxlibrary/sisstring.h
secureswitools/swisistools/source/sisxlibrary/utility.cpp
secureswitools/swisistools/source/sisxlibrary/utility.h
secureswitools/swisistools/source/sisxlibrary/utility_interface.h
secureswitools/swisistools/source/sisxlibrary/utility_linux.cpp
secureswitools/swisistools/source/sisxlibrary/utility_windows.cpp
secureswitools/swisistools/source/sisxlibrary/utils.cpp
secureswitools/swisistools/source/xmlparser/xerces/lib/libxerces_linux.a
secureswitools/swisistools/source/xmlparser/xmlparser.cpp
secureswitools/swisistools/source/xmlparser/xmlparser.h
secureswitools/swisistools/test/tdumpsis/testdumpsis.pl
secureswitools/swisistools/test/tinterpretsisinteg/check.pl
secureswitools/swisistools/test/tinterpretsisinteg/testinterpretsis.bat
secureswitools/swisistools/test/tscrtool/data/preprovision.dtd
--- a/appinstall_plat/sifui_api/bwins/sifuiu.def	Tue Jul 06 14:23:31 2010 +0300
+++ b/appinstall_plat/sifui_api/bwins/sifuiu.def	Wed Aug 18 09:55:45 2010 +0300
@@ -4,23 +4,30 @@
 	?ShowConfirmationL@CSifUi@@QAEHABVCSifUiAppInfo@@@Z @ 3 NONAME ; int CSifUi::ShowConfirmationL(class CSifUiAppInfo const &)
 	?ShowCompleteL@CSifUi@@QAEXXZ @ 4 NONAME ; void CSifUi::ShowCompleteL(void)
 	?ExternalizeL@CSifUiAppInfo@@QBEXAAVRWriteStream@@@Z @ 5 NONAME ; void CSifUiAppInfo::ExternalizeL(class RWriteStream &) const
-	?ShowProgressL@CSifUi@@QAEXABVCSifUiAppInfo@@H@Z @ 6 NONAME ; void CSifUi::ShowProgressL(class CSifUiAppInfo const &, int)
-	?NewLC@CSifUiCertificateInfo@@SAPAV1@AAVCCertificateInfo@Swi@@@Z @ 7 NONAME ; class CSifUiCertificateInfo * CSifUiCertificateInfo::NewLC(class Swi::CCertificateInfo &)
-	?Bitmaps@CSifUiAppInfo@@QBEPBVCApaMaskedBitmap@@XZ @ 8 NONAME ; class CApaMaskedBitmap const * CSifUiAppInfo::Bitmaps(void) const
-	?IncreaseProgressBarValueL@CSifUi@@QAEXH@Z @ 9 NONAME ; void CSifUi::IncreaseProgressBarValueL(int)
-	?ShowFailedL@CSifUi@@QAEXHABVTDesC16@@0@Z @ 10 NONAME ; void CSifUi::ShowFailedL(int, class TDesC16 const &, class TDesC16 const &)
-	?ExternalizeL@CSifUiCertificateInfo@@QBEXAAVRWriteStream@@@Z @ 11 NONAME ; void CSifUiCertificateInfo::ExternalizeL(class RWriteStream &) const
-	?IsCancelled@CSifUi@@QAEHXZ @ 12 NONAME ; int CSifUi::IsCancelled(void)
-	?Name@CSifUiAppInfo@@QBEABVTDesC16@@XZ @ 13 NONAME ; class TDesC16 const & CSifUiAppInfo::Name(void) const
+	?NewLC@CSifUiCertificateInfo@@SAPAV1@AAVCCertificateInfo@Swi@@@Z @ 6 NONAME ; class CSifUiCertificateInfo * CSifUiCertificateInfo::NewLC(class Swi::CCertificateInfo &)
+	?Bitmaps@CSifUiAppInfo@@QBEPBVCApaMaskedBitmap@@XZ @ 7 NONAME ; class CApaMaskedBitmap const * CSifUiAppInfo::Bitmaps(void) const
+	?IncreaseProgressBarValueL@CSifUi@@QAEXH@Z @ 8 NONAME ; void CSifUi::IncreaseProgressBarValueL(int)
+	?ShowFailedL@CSifUi@@QAEXHABVTDesC16@@0@Z @ 9 NONAME ; void CSifUi::ShowFailedL(int, class TDesC16 const &, class TDesC16 const &)
+	?ExternalizeL@CSifUiCertificateInfo@@QBEXAAVRWriteStream@@@Z @ 10 NONAME ; void CSifUiCertificateInfo::ExternalizeL(class RWriteStream &) const
+	?IsCancelled@CSifUi@@QAEHXZ @ 11 NONAME ; int CSifUi::IsCancelled(void)
+	?Name@CSifUiAppInfo@@QBEABVTDesC16@@XZ @ 12 NONAME ; class TDesC16 const & CSifUiAppInfo::Name(void) const
+	?NewLC@CSifUiErrorInfo@@SAPAV1@W4TErrorCategory@Usif@@HHABVTDesC16@@1@Z @ 13 NONAME ; class CSifUiErrorInfo * CSifUiErrorInfo::NewLC(enum Usif::TErrorCategory, int, int, class TDesC16 const &, class TDesC16 const &)
 	?NewL@CSifUi@@SAPAV1@XZ @ 14 NONAME ; class CSifUi * CSifUi::NewL(void)
 	?NewL@CSifUiAppInfo@@SAPAV1@ABV1@@Z @ 15 NONAME ; class CSifUiAppInfo * CSifUiAppInfo::NewL(class CSifUiAppInfo const &)
 	?Version@CSifUiAppInfo@@QBEABVTVersion@@XZ @ 16 NONAME ; class TVersion const & CSifUiAppInfo::Version(void) const
-	?SetCertificateInfoL@CSifUi@@QAEXABV?$RPointerArray@VCSifUiCertificateInfo@@@@@Z @ 17 NONAME ; void CSifUi::SetCertificateInfoL(class RPointerArray<class CSifUiCertificateInfo> const &)
-	?Size@CSifUiAppInfo@@QBEHXZ @ 18 NONAME ; int CSifUiAppInfo::Size(void) const
-	?SetMemorySelectionL@CSifUi@@QAEXABV?$RArray@H@@@Z @ 19 NONAME ; void CSifUi::SetMemorySelectionL(class RArray<int> const &)
-	?NewLC@CSifUiAppInfo@@SAPAV1@ABVTDesC16@@0ABVTVersion@@HPBVCApaMaskedBitmap@@@Z @ 20 NONAME ; class CSifUiAppInfo * CSifUiAppInfo::NewLC(class TDesC16 const &, class TDesC16 const &, class TVersion const &, int, class CApaMaskedBitmap const *)
-	?Vendor@CSifUiAppInfo@@QBEABVTDesC16@@XZ @ 21 NONAME ; class TDesC16 const & CSifUiAppInfo::Vendor(void) const
-	?SetButtonVisible@CSifUi@@QAEXW4TOptionalButton@1@H@Z @ 22 NONAME ; void CSifUi::SetButtonVisible(enum CSifUi::TOptionalButton, int)
-	?SelectedDrive@CSifUi@@QAEHAAH@Z @ 23 NONAME ; int CSifUi::SelectedDrive(int &)
-	?NewLC@CSifUi@@SAPAV1@XZ @ 24 NONAME ; class CSifUi * CSifUi::NewLC(void)
+	?NewL@CSifUiErrorInfo@@SAPAV1@W4TErrorCategory@Usif@@HHABVTDesC16@@1@Z @ 17 NONAME ; class CSifUiErrorInfo * CSifUiErrorInfo::NewL(enum Usif::TErrorCategory, int, int, class TDesC16 const &, class TDesC16 const &)
+	?SetCertificateInfoL@CSifUi@@QAEXABV?$RPointerArray@VCSifUiCertificateInfo@@@@@Z @ 18 NONAME ; void CSifUi::SetCertificateInfoL(class RPointerArray<class CSifUiCertificateInfo> const &)
+	?Size@CSifUiAppInfo@@QBEHXZ @ 19 NONAME ; int CSifUiAppInfo::Size(void) const
+	?SetMemorySelectionL@CSifUi@@QAEXABV?$RArray@H@@@Z @ 20 NONAME ; void CSifUi::SetMemorySelectionL(class RArray<int> const &)
+	?NewLC@CSifUiAppInfo@@SAPAV1@ABVTDesC16@@0ABVTVersion@@HPBVCApaMaskedBitmap@@@Z @ 21 NONAME ; class CSifUiAppInfo * CSifUiAppInfo::NewLC(class TDesC16 const &, class TDesC16 const &, class TVersion const &, int, class CApaMaskedBitmap const *)
+	?Vendor@CSifUiAppInfo@@QBEABVTDesC16@@XZ @ 22 NONAME ; class TDesC16 const & CSifUiAppInfo::Vendor(void) const
+	?ShowGrantCapabilitiesL@CSifUi@@QAEHABVTCapabilitySet@@@Z @ 23 NONAME ; int CSifUi::ShowGrantCapabilitiesL(class TCapabilitySet const &)
+	?ShowProgressL@CSifUi@@QAEXABVCSifUiAppInfo@@HW4TInstallingPhase@1@@Z @ 24 NONAME ; void CSifUi::ShowProgressL(class CSifUiAppInfo const &, int, enum CSifUi::TInstallingPhase)
+	?ShowPreparingL@CSifUi@@QAEXXZ @ 25 NONAME ; void CSifUi::ShowPreparingL(void)
+	?SetButtonVisible@CSifUi@@QAEXW4TOptionalButton@1@H@Z @ 26 NONAME ; void CSifUi::SetButtonVisible(enum CSifUi::TOptionalButton, int)
+	?ShowSingleSelectionL@CSifUi@@QAEHABVTDesC16@@ABVMDesC16Array@@AAH@Z @ 27 NONAME ; int CSifUi::ShowSingleSelectionL(class TDesC16 const &, class MDesC16Array const &, int &)
+	?ShowFailedL@CSifUi@@QAEXABVCSifUiErrorInfo@@@Z @ 28 NONAME ; void CSifUi::ShowFailedL(class CSifUiErrorInfo const &)
+	?ShowMultiSelectionL@CSifUi@@QAEHABVTDesC16@@ABVMDesC16Array@@AAV?$RArray@H@@@Z @ 29 NONAME ; int CSifUi::ShowMultiSelectionL(class TDesC16 const &, class MDesC16Array const &, class RArray<int> &)
+	?SelectedDrive@CSifUi@@QAEHAAH@Z @ 30 NONAME ; int CSifUi::SelectedDrive(int &)
+	?NewLC@CSifUi@@SAPAV1@XZ @ 31 NONAME ; class CSifUi * CSifUi::NewLC(void)
 
--- a/appinstall_plat/sifui_api/eabi/sifuiu.def	Tue Jul 06 14:23:31 2010 +0300
+++ b/appinstall_plat/sifui_api/eabi/sifuiu.def	Wed Aug 18 09:55:45 2010 +0300
@@ -2,33 +2,42 @@
 	_ZN13CSifUiAppInfo4NewLERK7TDesC16S2_RK8TVersioniPK16CApaMaskedBitmap @ 1 NONAME
 	_ZN13CSifUiAppInfo4NewLERKS_ @ 2 NONAME
 	_ZN13CSifUiAppInfo5NewLCERK7TDesC16S2_RK8TVersioniPK16CApaMaskedBitmap @ 3 NONAME
-	_ZN21CSifUiCertificateInfo4NewLERN3Swi16CCertificateInfoE @ 4 NONAME
-	_ZN21CSifUiCertificateInfo5NewLCERN3Swi16CCertificateInfoE @ 5 NONAME
-	_ZN6CSifUi11IsCancelledEv @ 6 NONAME
-	_ZN6CSifUi11ShowFailedLEiRK7TDesC16S2_ @ 7 NONAME
-	_ZN6CSifUi13SelectedDriveERi @ 8 NONAME
-	_ZN6CSifUi13ShowCompleteLEv @ 9 NONAME
-	_ZN6CSifUi13ShowProgressLERK13CSifUiAppInfoi @ 10 NONAME
-	_ZN6CSifUi16SetButtonVisibleENS_15TOptionalButtonEi @ 11 NONAME
-	_ZN6CSifUi17ShowConfirmationLERK13CSifUiAppInfo @ 12 NONAME
-	_ZN6CSifUi19SetCertificateInfoLERK13RPointerArrayI21CSifUiCertificateInfoE @ 13 NONAME
-	_ZN6CSifUi19SetMemorySelectionLERK6RArrayIiE @ 14 NONAME
-	_ZN6CSifUi25IncreaseProgressBarValueLEi @ 15 NONAME
-	_ZN6CSifUi4NewLEv @ 16 NONAME
-	_ZN6CSifUi5NewLCEv @ 17 NONAME
-	_ZNK13CSifUiAppInfo12ExternalizeLER12RWriteStream @ 18 NONAME
-	_ZNK13CSifUiAppInfo4NameEv @ 19 NONAME
-	_ZNK13CSifUiAppInfo4SizeEv @ 20 NONAME
-	_ZNK13CSifUiAppInfo6VendorEv @ 21 NONAME
-	_ZNK13CSifUiAppInfo7BitmapsEv @ 22 NONAME
-	_ZNK13CSifUiAppInfo7VersionEv @ 23 NONAME
-	_ZNK21CSifUiCertificateInfo12ExternalizeLER12RWriteStream @ 24 NONAME
-	_ZTI13CSifUiAppInfo @ 25 NONAME
-	_ZTI13CSifUiPrivate @ 26 NONAME
-	_ZTI21CSifUiCertificateInfo @ 27 NONAME
-	_ZTI6CSifUi @ 28 NONAME
-	_ZTV13CSifUiAppInfo @ 29 NONAME
-	_ZTV13CSifUiPrivate @ 30 NONAME
-	_ZTV21CSifUiCertificateInfo @ 31 NONAME
-	_ZTV6CSifUi @ 32 NONAME
+	_ZN15CSifUiErrorInfo4NewLEN4Usif14TErrorCategoryEiiRK7TDesC16S4_ @ 4 NONAME
+	_ZN15CSifUiErrorInfo5NewLCEN4Usif14TErrorCategoryEiiRK7TDesC16S4_ @ 5 NONAME
+	_ZN21CSifUiCertificateInfo4NewLERN3Swi16CCertificateInfoE @ 6 NONAME
+	_ZN21CSifUiCertificateInfo5NewLCERN3Swi16CCertificateInfoE @ 7 NONAME
+	_ZN6CSifUi11IsCancelledEv @ 8 NONAME
+	_ZN6CSifUi11ShowFailedLERK15CSifUiErrorInfo @ 9 NONAME
+	_ZN6CSifUi11ShowFailedLEiRK7TDesC16S2_ @ 10 NONAME
+	_ZN6CSifUi13SelectedDriveERi @ 11 NONAME
+	_ZN6CSifUi13ShowCompleteLEv @ 12 NONAME
+	_ZN6CSifUi13ShowProgressLERK13CSifUiAppInfoiNS_16TInstallingPhaseE @ 13 NONAME
+	_ZN6CSifUi14ShowPreparingLEv @ 14 NONAME
+	_ZN6CSifUi16SetButtonVisibleENS_15TOptionalButtonEi @ 15 NONAME
+	_ZN6CSifUi17ShowConfirmationLERK13CSifUiAppInfo @ 16 NONAME
+	_ZN6CSifUi19SetCertificateInfoLERK13RPointerArrayI21CSifUiCertificateInfoE @ 17 NONAME
+	_ZN6CSifUi19SetMemorySelectionLERK6RArrayIiE @ 18 NONAME
+	_ZN6CSifUi19ShowMultiSelectionLERK7TDesC16RK12MDesC16ArrayR6RArrayIiE @ 19 NONAME
+	_ZN6CSifUi20ShowSingleSelectionLERK7TDesC16RK12MDesC16ArrayRi @ 20 NONAME
+	_ZN6CSifUi22ShowGrantCapabilitiesLERK14TCapabilitySet @ 21 NONAME
+	_ZN6CSifUi25IncreaseProgressBarValueLEi @ 22 NONAME
+	_ZN6CSifUi4NewLEv @ 23 NONAME
+	_ZN6CSifUi5NewLCEv @ 24 NONAME
+	_ZNK13CSifUiAppInfo12ExternalizeLER12RWriteStream @ 25 NONAME
+	_ZNK13CSifUiAppInfo4NameEv @ 26 NONAME
+	_ZNK13CSifUiAppInfo4SizeEv @ 27 NONAME
+	_ZNK13CSifUiAppInfo6VendorEv @ 28 NONAME
+	_ZNK13CSifUiAppInfo7BitmapsEv @ 29 NONAME
+	_ZNK13CSifUiAppInfo7VersionEv @ 30 NONAME
+	_ZNK21CSifUiCertificateInfo12ExternalizeLER12RWriteStream @ 31 NONAME
+	_ZTI13CSifUiAppInfo @ 32 NONAME
+	_ZTI13CSifUiPrivate @ 33 NONAME
+	_ZTI15CSifUiErrorInfo @ 34 NONAME
+	_ZTI21CSifUiCertificateInfo @ 35 NONAME
+	_ZTI6CSifUi @ 36 NONAME
+	_ZTV13CSifUiAppInfo @ 37 NONAME
+	_ZTV13CSifUiPrivate @ 38 NONAME
+	_ZTV15CSifUiErrorInfo @ 39 NONAME
+	_ZTV21CSifUiCertificateInfo @ 40 NONAME
+	_ZTV6CSifUi @ 41 NONAME
 
--- a/appinstall_plat/sifui_api/group/bld.inf	Tue Jul 06 14:23:31 2010 +0300
+++ b/appinstall_plat/sifui_api/group/bld.inf	Wed Aug 18 09:55:45 2010 +0300
@@ -25,6 +25,9 @@
 ../inc/sifui.h                  MW_LAYER_PLATFORM_EXPORT_PATH( sifui.h )
 ../inc/sifuiappinfo.h           MW_LAYER_PLATFORM_EXPORT_PATH( sifuiappinfo.h )
 ../inc/sifuicertificateinfo.h   MW_LAYER_PLATFORM_EXPORT_PATH( sifuicertificateinfo.h )
+../inc/sifuierrorinfo.h         MW_LAYER_PLATFORM_EXPORT_PATH( sifuierrorinfo.h )
+../inc/sifuierrorinfo.inl       MW_LAYER_PLATFORM_EXPORT_PATH( sifuierrorinfo.inl )
+../inc/sifuiinstallindicatordefinitions.h MW_LAYER_PLATFORM_EXPORT_PATH( sifuiinstallindicatordefinitions.h )
 ../rom/sifui.iby                CORE_MW_LAYER_IBY_EXPORT_PATH( sifui.iby )
 
 PRJ_MMPFILES
--- a/appinstall_plat/sifui_api/group/sifui.mmp	Tue Jul 06 14:23:31 2010 +0300
+++ b/appinstall_plat/sifui_api/group/sifui.mmp	Wed Aug 18 09:55:45 2010 +0300
@@ -32,6 +32,7 @@
 SOURCE          sifuiprivate.cpp
 SOURCE          sifuicertificateinfo.cpp
 SOURCE          sifuiappinfo.cpp
+SOURCE          sifuierrorinfo.cpp
 
 USERINCLUDE     ../inc
 MW_LAYER_SYSTEMINCLUDE
--- a/appinstall_plat/sifui_api/inc/sifui.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/appinstall_plat/sifui_api/inc/sifui.h	Wed Aug 18 09:55:45 2010 +0300
@@ -16,21 +16,23 @@
 */
 
 
-/********************************************************
- *                                                      *
- *   WARNING - WORK-IN-PROGRESS - THIS API MAY CHANGE   *
- *                                                      *
- ********************************************************/
+/**************************************************************
+ *                                                            *
+ *   WARNING - WORK-IN-PROGRESS - THIS API MAY STILL CHANGE   *
+ *                                                            *
+ **************************************************************/
 
 #ifndef C_SIFUI_H
 #define C_SIFUI_H
 
 #include <e32base.h>                            // CBase
+#include <bamdesca.h>                           // MDesCArray
 
 class CSifUiPrivate;
 class CApaMaskedBitmap;
 class CSifUiCertificateInfo;
 class CSifUiAppInfo;
+class CSifUiErrorInfo;
 
 namespace Swi {
     class CAppInfo;
@@ -67,27 +69,59 @@
         ~CSifUi();
 
     public:     // new functions
-        /**
-         * Displays main installation confirmation query and waits for user response.
-         * Returns ETrue if user accepted the query. The next ShowProgressL() call
-         * changes the dialog to installation progress note. And finally, ShowFailedL()
-         * or ShowCompleteL() changes the dialog to the final error or complete note.
-         * If the installation confirmation query should contain memory selection option,
-         * then set the selectable drives with SetMemorySelectionL() first. User selected
-         * drive can be retrieved with SelectedDrive().
-         * @param aAppInfo - application information (name, size, version, vendor, icon)
-         * @return TBools - ETrue if user accepted the query, EFalse otherwise
-         */
-        IMPORT_C TBool ShowConfirmationL( const CSifUiAppInfo& aAppInfo );
+
+        //=================================================
+        // Preparing note method
+        //=================================================
 
         /**
-         * Defines memory selection alternatives for the main installation
-         * confirmation query displayed with ShowConfirmationL() function.
+         * Displays installation dialog with "Preparing" text and indefinite progress bar.
+         * No buttons are available. Use ShowConfirmationL() method to update the dialog
+         * content to the installation confirmation query.
+         */
+        IMPORT_C void ShowPreparingL();
+
+
+        //=================================================
+        // Install confirmation query methods
+        //=================================================
+
+        /**
+         * Defines memory selection alternatives for the ShowConfirmationL() installation
+         * confirmation query. Use SelectedDrive() method to get the selected drive number
+         * after ShowConfirmationL() call.
          * @param aDriveNumbers - options for memory selection
          */
         IMPORT_C void SetMemorySelectionL( const RArray<TInt>& aDriveNumbers );
 
         /**
+         * Defines certificate details for the ShowConfirmationL() installation
+         * confirmation query. If certificates are not set, then application is
+         * untrusted.
+         * @param aCertificates - certificate details
+         */
+        IMPORT_C void SetCertificateInfoL(
+                const RPointerArray<CSifUiCertificateInfo>& aCertificates );
+
+        /**
+         * Displays installation confirmation query and waits for user response.
+         * Returns ETrue if the user accepted the query. The next ShowProgressL() call
+         * changes the dialog content to installation progress note. And finally,
+         * ShowCompleteL() or ShowFailedL() call changes the dialog content to the
+         * complete or error note.
+         * If preparing installation note needs to be displayed before confirmation query,
+         * then call ShowPreparingL() before any other functions.
+         * If the installation confirmation query should contain memory selection option,
+         * then set the selectable drives with SetMemorySelectionL() first. User selected
+         * drive can be retrieved with SelectedDrive() after ShowConfirmationL() returns.
+         * If the installation confirmation query should contain certificate details, then
+         * set the certificate details using SetCertificateInfoL() first.
+         * @param aAppInfo - application information (name, size, version, vendor, icon)
+         * @return TBools - ETrue if the user accepted the query, EFalse otherwise
+         */
+        IMPORT_C TBool ShowConfirmationL( const CSifUiAppInfo& aAppInfo );
+
+        /**
          * Gets the selected drive where new component should be installed.
          * Use RFs::DriveToChar() to convert the drive number to drive letter.
          * @param aDriveNumber - selected drive number
@@ -95,25 +129,33 @@
          */
         IMPORT_C TInt SelectedDrive( TInt& aDriveNumber );
 
-        /**
-         * Defines certificate details for the main installation confirmation
-         * query displayed with ShowConfirmationL() function.
-         * @param aCertificates - certificate details
-         */
-        IMPORT_C void SetCertificateInfoL(
-                const RPointerArray<CSifUiCertificateInfo>& aCertificates );
+
+        //=================================================
+        // Progress note methods
+        //=================================================
 
         /**
-         * Displays main installation progress note. If the progress note or main
-         * confirmation query is already displayed, then updates the dialog content.
-         * Use IncreaseProgressBarValueL() to increase the progress bar value.
+         * Installing phases in progress notes. Indicated in progress note title text.
+         */
+        enum TInstallingPhase {
+            EInstalling,
+            EDownloading,
+            ECheckingCerts
+        };
+
+        /**
+         * Displays installation progress note. Changes confirmation query content
+         * to progress note. If the progress note is already displayed, then updates
+         * the dialog content. Use IncreaseProgressBarValueL() method to increase the
+         * progress bar value.
          * Dialog remains on the screen after progress bar shows full 100% value.
-         * Use ShowFailedL() or ShowCompleteL() to replace the dialog content
-         * with the final error or complete note.
+         * Use ShowCompleteL() or ShowFailedL() methods to show the result.
          * @param aAppInfo - application information (name, size, version, vendor, icon)
          * @param aProgressBarFinalValue - final value of the progress bar
+         * @param aPhase - defines new title text for the progress note dialog
          */
-        IMPORT_C void ShowProgressL( const CSifUiAppInfo& aAppInfo, TInt aProgressBarFinalValue );
+        IMPORT_C void ShowProgressL( const CSifUiAppInfo& aAppInfo, TInt aProgressBarFinalValue,
+                TInstallingPhase aPhase = EInstalling );
 
         /**
          * Updates the progress bar value displayed in progress note. Initially progress bar
@@ -131,15 +173,46 @@
          */
         IMPORT_C TBool IsCancelled();
 
+
+        //=================================================
+        // Final complete and error notes
+        //=================================================
+
+        /**
+         * Displays installation complete note and waits for the user to close it.
+         * Installation complete note contains "Show" button to show installed
+         * applications in application library. Use SetButtonVisible() method to
+         * hide the "Show" button when necessary.
+         */
+        IMPORT_C void ShowCompleteL();
+
+        /**
+         * Displays installation error note and waits for user to close it.
+         * Installation error note contains "Details" button to show the detailed
+         * error message (when available). Also SetButtonVisible() method can be
+         * used to hide the "Details" button if necessary.
+         * @param aErrorCategory - error category
+         * @param aErrorMessage - localized error message to be displayed
+         * @param aErrorDetails - localized error message details (if any)
+         * @param aErrorCode - error code
+         * @param aErrorCode - error code
+         */
+        IMPORT_C void ShowFailedL( const CSifUiErrorInfo& aErrorInfo );
+
+
+        //=================================================
+        // Buttons in progress/complete/error notes
+        //=================================================
+
         /**
          * Toolbar buttons in progress and complete notes that can be disabled/hidden.
          */
         enum TOptionalButton
             {
-            EHideProgressButton,
-            ECancelProgressButton,
-            EShowInAppLibButton,
-            EErrorDetailsButton
+            EHideProgressButton,        // "Hide" button in progress note
+            ECancelProgressButton,      // "Cancel" button in progress note
+            EShowInAppLibButton,        // "Show" button in complete note
+            EErrorDetailsButton         // "Details" button in error note
             };
 
         /**
@@ -152,22 +225,57 @@
          */
         IMPORT_C void SetButtonVisible( TOptionalButton aButton, TBool aIsVisible );
 
+
+        //=================================================
+        // Other query dialogs
+        //=================================================
+
         /**
-         * Displays main installation complete note. Installation complete note contains
-         * button to launch the application libaray to show the recently installed apps.
+         * Displays dialog requesting capabilities for the application being installed
+         * and waits for user response. Returns ETrue if the user granted the capabilities.
+         * Other dialogs (like progress note) are not affected.
+         * @param aCapabilities - requested user capabilities
+         * @return TBool - ETrue if the user granted the capabilities, EFalse otherwise
          */
-        IMPORT_C void ShowCompleteL();
+        IMPORT_C TBool ShowGrantCapabilitiesL( const TCapabilitySet& aCapabilities );
 
         /**
-         * Displays main installation error note. Installation error note contains button
-         * to see detailed error message when available.
-         * @param aErrorCode - error code
-         * @param aErrorMessage - localized error message to be displayed
-         * @param aErrorDetails - localized error message details (if any)
+         * Displays a selection dialog with radio-buttons in a pop-up window,
+         * and waits for user response. Other displayed installation dialogs
+         * (like progress note) are not affected. Returns boolean that indicates
+         * if the user cancelled the query. Selected item index is returned in
+         * aSelectedIndex parameter (KErrNotFound if cancelled).
+         * @param aTitle - selection dialog title
+         * @param aSelectableItems - array of selectable items
+         * @param aSelectedIndex - returns selected item index
+         * @return TBool - ETrue if the user accepted the query, EFalse otherwise
          */
+        IMPORT_C TBool ShowSingleSelectionL( const TDesC& aTitle,
+            const MDesCArray& aSelectableItems, TInt& aSelectedIndex );
+
+        /**
+         * Displays a multi-selection dialog with checkboxes in a pop-up window,
+         * and waits for user response. Other displayed installation dialogs
+         * (like progress note) are not affected. Returns user selected indices,
+         * in aSelectedIndexes array (empty if cancelled).
+         * @param aTitle - multi-selection dialog title
+         * @param aSelectableItems - array of selectable items
+         * @param aSelectedIndexes - returns the selected item indices
+         * @return TBool - ETrue if the user accepted the query, EFalse otherwise
+         */
+        IMPORT_C TBool ShowMultiSelectionL( const TDesC& aTitle,
+            const MDesCArray& aSelectableItems, RArray<TInt>& aSelectedIndexes );
+
+
+        //=================================================
+        // DEPRECATED METHODS
+        //=================================================
+
+        // DEPRECATED, WILL BE REMOVED, DO NOT USE
         IMPORT_C void ShowFailedL( TInt aErrorCode, const TDesC& aErrorMessage,
             const TDesC& aErrorDetails = KNullDesC );
 
+
     private:    // new functions
         CSifUi();
         void ConstructL();
--- a/appinstall_plat/sifui_api/inc/sifuidefs.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/appinstall_plat/sifui_api/inc/sifuidefs.h	Wed Aug 18 09:55:45 2010 +0300
@@ -24,7 +24,6 @@
 // Symbian code needs descriptor constants, as Qt code uses QString constants.
 
 _LIT( KSifUiDeviceDialog, "com.nokia.sifui/1.0" );
-_LIT( KSifUiInstallIndicatorType, "com.nokia.sifui.indi/1.0" );
 
 enum TSifUiDeviceDialogType
     {
@@ -56,12 +55,13 @@
 _LIT( KSifUiApplicationSize, "size" );              // integer
 _LIT( KSifUiApplicationDetails, "details" );        // descriptor array
 _LIT( KSifUiMemorySelection, "mem" );               // descriptor (comma separated drive letters)
-_LIT( KSifUiCertificates, "cert" );                 // binary
+_LIT( KSifUiCertificates, "cert" );                 // binary (CSifUiCertificateInfo)
 
 // Variant map keys for "progress note" dialog parameters
 _LIT( KSifUiProgressNoteText, "txt" );              // string
 _LIT( KSifUiProgressNoteFinalValue, "fin" );        // integer
 _LIT( KSifUiProgressNoteValue, "val" );             // integer
+_LIT( KSifUiProgressNotePhase, "phase" );           // enum CSifUi::TInstallingPhase
 
 // Variant map keys for "progress note" and "installation complete note" buttons
 _LIT( KSifUiProgressNoteIsHideButtonHidden, "hidebtn" );        // boolean
@@ -70,9 +70,14 @@
 _LIT( KSifUiErrorNoteIsDetailsButtonHidden, "errdtlbtn" );      // boolean
 
 // Variant map keys for "error" dialog parameters
-_LIT( KSifUiErrorCode, "err" );                     // integer
-_LIT( KSifUiErrorMessage, "msg" );                  // string
-_LIT( KSifUiErrorDetails, "det" );                  // string
+_LIT( KSifUiErrorCategory, "errcat" );              // enum Usif::TErrorCategory
+_LIT( KSifUiErrorCode, "errcode" );                 // integer
+_LIT( KSifUiErrorCodeExtended, "errext" );          // integer
+_LIT( KSifUiErrorMessage, "errmsg" );               // string
+_LIT( KSifUiErrorDetails, "errdet" );               // string
+
+// Variant map keys for "grant capabilities" dialog parameters
+_LIT( KSifUiGrantCapabilities, "grcap" );           // binary (TCapabilitySet)
 
 #endif  // SIFUIDEFS_H
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appinstall_plat/sifui_api/inc/sifuierrorinfo.h	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,115 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  CSifUiErrorInfo for installation error details
+*
+*/
+
+#ifndef C_SIFUIERRORINFO_H
+#define C_SIFUIERRORINFO_H
+
+#include <e32base.h>                            // CBase
+#include <usif/usiferror.h>                     // Usif::TErrorCategory
+
+
+/**
+ * CSifUiErrorInfo is a container class for installation error details.
+ *
+ * @lib sifui.lib
+ * @since 10.1
+ */
+class CSifUiErrorInfo : public CBase
+    {
+    public:     // constructors and destructor
+        /**
+         * Creates new CSifUiErrorInfo object and pushes it to cleanup stack.
+         * @param aErrorCategory - error category
+         * @param aErrorCode - error code
+         * @param aExtendedErrorCode - extended error code
+         * @param aErrorMessage - error message
+         * @param aErrorMessageDetails - detailed error message
+         * @returns CSifUiErrorInfo* -- new CSifUiErrorInfo object
+         */
+        IMPORT_C static CSifUiErrorInfo* NewLC( Usif::TErrorCategory aErrorCategory,
+                TInt aErrorCode, TInt aExtendedErrorCode,
+                const TDesC& aErrorMessage, const TDesC& aErrorMessageDetails );
+
+        /**
+         * Creates new CSifUiErrorInfo object.
+         * @param aErrorCategory - error category
+         * @param aErrorCode - error code
+         * @param aExtendedErrorCode - extended error code
+         * @param aErrorMessage - error message
+         * @param aErrorMessageDetails - detailed error message
+         * @returns CSifUiErrorInfo* -- new CSifUiErrorInfo object
+         */
+        IMPORT_C static CSifUiErrorInfo* NewL( Usif::TErrorCategory aErrorCategory,
+                TInt aErrorCode, TInt aExtendedErrorCode,
+                const TDesC& aErrorMessage, const TDesC& aErrorMessageDetails );
+
+        /**
+         * Destructor.
+         */
+        ~CSifUiErrorInfo();
+
+    public:     // new functions
+
+        /**
+         * Error category.
+         * @returns Usif::TErrorCategory - error category
+         */
+        inline Usif::TErrorCategory ErrorCategory() const;
+
+        /**
+         * Error code.
+         * @returns TInt - error code
+         */
+        inline TInt ErrorCode() const;
+
+        /**
+         * Extended error code.
+         * @returns TInt - extended error code
+         */
+        inline TInt ExtendedErrorCode() const;
+
+        /**
+         * Error message.
+         * @returns const TDesC& - error message
+         */
+        inline const TDesC& ErrorMessage() const;
+
+        /**
+         * Error message details.
+         * @returns const TDesC& - additional error message details
+         */
+        inline const TDesC& ErrorMessageDetails() const;
+
+    private:    // new functions
+        CSifUiErrorInfo();
+        void ConstructL( Usif::TErrorCategory aErrorCategory,
+                TInt aErrorCode, TInt aExtendedErrorCode,
+                const TDesC& aErrorMessage, const TDesC& aErrorMessageDetails );
+
+    private:    // data
+        Usif::TErrorCategory iErrorCategory;
+        TInt iErrorCode;
+        TInt iExtendedErrorCode;
+        HBufC* iErrorMessage;
+        HBufC* iErrorMessageDetails;
+    };
+
+
+#include "sifuierrorinfo.inl"
+
+#endif  // C_SIFUIERRORINFO_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appinstall_plat/sifui_api/inc/sifuierrorinfo.inl	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,70 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  CSifUiErrorInfo for installation error details
+*
+*/
+
+// ---------------------------------------------------------------------------
+// CSifUiErrorInfo::ErrorCategory()
+// ---------------------------------------------------------------------------
+//
+inline Usif::TErrorCategory CSifUiErrorInfo::ErrorCategory() const
+    {
+    return iErrorCategory;
+    }
+
+// ---------------------------------------------------------------------------
+// CSifUiErrorInfo::ErrorCode()
+// ---------------------------------------------------------------------------
+//
+inline TInt CSifUiErrorInfo::ErrorCode() const
+    {
+    return iErrorCode;
+    }
+
+// ---------------------------------------------------------------------------
+// CSifUiErrorInfo::ExtendedErrorCode()
+// ---------------------------------------------------------------------------
+//
+inline TInt CSifUiErrorInfo::ExtendedErrorCode() const
+    {
+    return iExtendedErrorCode;
+    }
+
+// ---------------------------------------------------------------------------
+// CSifUiErrorInfo::ErrorMessage()
+// ---------------------------------------------------------------------------
+//
+inline const TDesC& CSifUiErrorInfo::ErrorMessage() const
+    {
+    if( iErrorMessage )
+        {
+        return *iErrorMessage;
+        }
+    return KNullDesC;
+    }
+
+// ---------------------------------------------------------------------------
+// CSifUiErrorInfo::ErrorMessageDetails()
+// ---------------------------------------------------------------------------
+//
+inline const TDesC& CSifUiErrorInfo::ErrorMessageDetails() const
+    {
+    if( iErrorMessageDetails )
+        {
+        return *iErrorMessageDetails;
+        }
+    return KNullDesC;
+    }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appinstall_plat/sifui_api/inc/sifuiinstallindicatordefinitions.h	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,40 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Variant map key names for SW install progress notifications
+*               in status menu (universal indicator plugin).
+*/
+
+#ifndef SIFUIINSTALLINDICATORDEFINITIONS_H
+#define SIFUIINSTALLINDICATORDEFINITIONS_H
+
+// Indicator type string for CHbIndicatorSymbian::Activate():
+_LIT( KSifUiInstallIndicatorType, "com.nokia.sifui.indi/1.0" );
+
+// Parameter names for variant map:
+_LIT( KSifUiInstallIndicatorAppName, "name" );      // string
+_LIT( KSifUiInstallIndicatorPhase, "phase" );       // int CSifUi::TInstallingPhase
+_LIT( KSifUiInstallIndicatorProgress, "prog" );     // int (0..100), shown as percentage
+
+// CHbIndicatorSymbian::Activate() takes one CHbSymbianVariant parameter. Use
+// CHbSymbianVariant::EVariantMap type and the above parameter names to pass
+// application name, installing phase, and progress bar value to notification
+// dialog. Usually it is necessary to pass all these details when opening the
+// notification dialog. Later, notification dialog details can be updated by
+// calling CHbIndicatorSymbian::Activate() again. If only application name
+// should be updated, then also CHbSymbianVariant::EDes type can be used.
+// And if only progress bar value should be updated, then also
+// CHbSymbianVariant::EInt type can be used.
+
+#endif  // SIFUIINSTALLINDICATORDEFINITIONS_H
+
--- a/appinstall_plat/sifui_api/inc/sifuiprivate.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/appinstall_plat/sifui_api/inc/sifuiprivate.h	Wed Aug 18 09:55:45 2010 +0300
@@ -46,17 +46,23 @@
         ~CSifUiPrivate();
 
     public:     // new functions
+        void ShowPreparingL();
+        void SetMemorySelectionL( const RArray<TInt>& aDriveNumbers );
+        void SetCertificateInfoL( const RPointerArray<CSifUiCertificateInfo>& aCertificates );
         TBool ShowConfirmationL( const CSifUiAppInfo& aAppInfo );
-        void SetMemorySelectionL( const RArray<TInt>& aDriveNumbers );
         TInt SelectedDrive( TInt& aDriveNumber );
-        void SetCertificateInfoL( const RPointerArray<CSifUiCertificateInfo>& aCertificates );
-        void ShowProgressL( const CSifUiAppInfo& aAppInfo, TInt aProgressBarFinalValue );
+        void ShowProgressL( const CSifUiAppInfo& aAppInfo, TInt aProgressBarFinalValue,
+                CSifUi::TInstallingPhase aPhase );
         void IncreaseProgressBarValueL( TInt aIncrement );
         TBool IsCancelled();
+        void ShowCompleteL();
+        void ShowFailedL( const CSifUiErrorInfo& aErrorInfo );
         void SetButtonVisible( CSifUi::TOptionalButton aButton, TBool aIsVisible );
-        void ShowCompleteL();
-        void ShowFailedL( TInt aErrorCode, const TDesC& aErrorMessage,
-                const TDesC& aErrorDetails );
+        TBool ShowGrantCapabilitiesL( const TCapabilitySet& aCapabilities );
+        TBool ShowSingleSelectionL( const TDesC& aTitle, const MDesCArray& aSelectableItems,
+            TInt& aSelectedIndex );
+        TBool ShowMultiSelectionL( const TDesC& aTitle, const MDesCArray& aSelectableItems,
+            RArray<TInt>& aSelectedIndexes );
 
     protected:  // from CActive
         void DoCancel();
@@ -77,6 +83,7 @@
         void ChangeNoteTypeL( TInt aType );
         void AddParamL( const TDesC& aKey, TInt aValue );
         void AddParamL( const TDesC& aKey, const TDesC& aValue );
+        void AddParamBinaryL( const TDesC& aKey, const CBufBase& aBinary );
         void AddParamListL( const TDesC& aKey, const MDesCArray& aList );
         void AddParamsAppInfoL( const CSifUiAppInfo& aAppInfo );
         void AddParamsCertificatesL();
@@ -111,6 +118,7 @@
         TChar iSelectedDrive;
         TInt iProgressBarFinalValue;
         TInt iProgressBarCurrentValue;
+        CSifUi::TInstallingPhase iInstallingPhase;
         TBool iNoHideProgressButton;
         TBool iNoCancelProgressButton;
         TBool iNoShowInAppLibButton;
--- a/appinstall_plat/sifui_api/src/sifui.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/appinstall_plat/sifui_api/src/sifui.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -17,6 +17,7 @@
 
 #include "sifui.h"                              // CSifUi
 #include "sifuiprivate.h"                       // CSifUiPrivate
+#include "sifuierrorinfo.h"                     // CSifUiErrorInfo
 
 
 // ======== MEMBER FUNCTIONS ========
@@ -54,12 +55,12 @@
     }
 
 // ---------------------------------------------------------------------------
-// CSifUi::ShowConfirmationL()
+// CSifUi::ShowPreparingL()
 // ---------------------------------------------------------------------------
 //
-EXPORT_C TBool CSifUi::ShowConfirmationL( const CSifUiAppInfo& aAppInfo )
+EXPORT_C void CSifUi::ShowPreparingL()
     {
-    return iPrivate->ShowConfirmationL( aAppInfo );
+    iPrivate->ShowPreparingL();
     }
 
 // ---------------------------------------------------------------------------
@@ -72,15 +73,6 @@
     }
 
 // ---------------------------------------------------------------------------
-// CSifUi::SelectedDrive()
-// ---------------------------------------------------------------------------
-//
-EXPORT_C TInt CSifUi::SelectedDrive( TInt& aDriveNumber )
-    {
-    return iPrivate->SelectedDrive( aDriveNumber );
-    }
-
-// ---------------------------------------------------------------------------
 // CSifUi::SetCertificateInfoL()
 // ---------------------------------------------------------------------------
 //
@@ -91,13 +83,31 @@
     }
 
 // ---------------------------------------------------------------------------
+// CSifUi::ShowConfirmationL()
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TBool CSifUi::ShowConfirmationL( const CSifUiAppInfo& aAppInfo )
+    {
+    return iPrivate->ShowConfirmationL( aAppInfo );
+    }
+
+// ---------------------------------------------------------------------------
+// CSifUi::SelectedDrive()
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TInt CSifUi::SelectedDrive( TInt& aDriveNumber )
+    {
+    return iPrivate->SelectedDrive( aDriveNumber );
+    }
+
+// ---------------------------------------------------------------------------
 // CSifUi::ShowProgressL()
 // ---------------------------------------------------------------------------
 //
 EXPORT_C void CSifUi::ShowProgressL( const CSifUiAppInfo& aAppInfo,
-        TInt aProgressBarFinalValue )
+        TInt aProgressBarFinalValue, TInstallingPhase aPhase )
     {
-    iPrivate->ShowProgressL( aAppInfo, aProgressBarFinalValue );
+    iPrivate->ShowProgressL( aAppInfo, aProgressBarFinalValue, aPhase );
     }
 
 // ---------------------------------------------------------------------------
@@ -119,15 +129,6 @@
     }
 
 // ---------------------------------------------------------------------------
-// CSifUi::SetButtonVisible()
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CSifUi::SetButtonVisible( TOptionalButton aButton, TBool aIsVisible )
-    {
-    iPrivate->SetButtonVisible( aButton, aIsVisible );
-    }
-
-// ---------------------------------------------------------------------------
 // CSifUi::ShowCompleteL()
 // ---------------------------------------------------------------------------
 //
@@ -140,10 +141,62 @@
 // CSifUi::ShowFailedL()
 // ---------------------------------------------------------------------------
 //
+EXPORT_C void CSifUi::ShowFailedL( const CSifUiErrorInfo& aErrorInfo )
+    {
+    iPrivate->ShowFailedL( aErrorInfo );
+    }
+
+// ---------------------------------------------------------------------------
+// CSifUi::SetButtonVisible()
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CSifUi::SetButtonVisible( TOptionalButton aButton, TBool aIsVisible )
+    {
+    iPrivate->SetButtonVisible( aButton, aIsVisible );
+    }
+
+// ---------------------------------------------------------------------------
+// CSifUi::ShowGrantCapabilitiesL()
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TBool CSifUi::ShowGrantCapabilitiesL( const TCapabilitySet& aCapabilities )
+    {
+    return iPrivate->ShowGrantCapabilitiesL( aCapabilities );
+    }
+
+// ---------------------------------------------------------------------------
+// CSifUi::ShowSingleSelectionL()
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TBool CSifUi::ShowSingleSelectionL( const TDesC& aTitle,
+            const MDesCArray& aSelectableItems, TInt& aSelectedIndex )
+    {
+    return iPrivate->ShowSingleSelectionL( aTitle, aSelectableItems, aSelectedIndex );
+    }
+
+// ---------------------------------------------------------------------------
+// CSifUi::ShowMultiSelectionL()
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TBool CSifUi::ShowMultiSelectionL( const TDesC& aTitle,
+            const MDesCArray& aSelectableItems, RArray<TInt>& aSelectedIndexes )
+    {
+    return iPrivate->ShowMultiSelectionL( aTitle, aSelectableItems, aSelectedIndexes );
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSifUi::ShowFailedL()
+// ---------------------------------------------------------------------------
+//
+// TODO: This function is deprecated, remove it completely.
 EXPORT_C void CSifUi::ShowFailedL( TInt aErrorCode, const TDesC& aErrorMessage,
         const TDesC& aErrorDetails )
     {
-    iPrivate->ShowFailedL( aErrorCode, aErrorMessage, aErrorDetails );
+    CSifUiErrorInfo* errorInfo = CSifUiErrorInfo::NewLC( Usif::EUnknown, aErrorCode,
+            0, aErrorMessage, aErrorDetails );
+    iPrivate->ShowFailedL( *errorInfo );
+    CleanupStack::PopAndDestroy( errorInfo );
     }
 
 // ---------------------------------------------------------------------------
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appinstall_plat/sifui_api/src/sifuierrorinfo.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,82 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  CSifUiErrorInfo for installation error details
+*
+*/
+
+#include "sifuierrorinfo.h"         // CSifUiErrorInfo
+
+
+// ---------------------------------------------------------------------------
+// CSifUiErrorInfo::NewLC()
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CSifUiErrorInfo* CSifUiErrorInfo::NewLC( Usif::TErrorCategory aErrorCategory,
+        TInt aErrorCode, TInt aExtendedErrorCode, const TDesC& aErrorMessage,
+        const TDesC& aErrorMessageDetails )
+    {
+    CSifUiErrorInfo* self = new (ELeave) CSifUiErrorInfo;
+    CleanupStack::PushL( self );
+    self->ConstructL( aErrorCategory, aErrorCode, aExtendedErrorCode,
+            aErrorMessage, aErrorMessageDetails );
+    return self;
+    }
+
+// ---------------------------------------------------------------------------
+// CSifUiErrorInfo::NewL()
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CSifUiErrorInfo* CSifUiErrorInfo::NewL( Usif::TErrorCategory aErrorCategory,
+        TInt aErrorCode, TInt aExtendedErrorCode, const TDesC& aErrorMessage,
+        const TDesC& aErrorMessageDetails )
+    {
+    CSifUiErrorInfo* self = CSifUiErrorInfo::NewLC( aErrorCategory, aErrorCode,
+            aExtendedErrorCode, aErrorMessage, aErrorMessageDetails );
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+// ---------------------------------------------------------------------------
+// CSifUiErrorInfo::~CSifUiErrorInfo()
+// ---------------------------------------------------------------------------
+//
+CSifUiErrorInfo::~CSifUiErrorInfo()
+    {
+    delete iErrorMessage;
+    delete iErrorMessageDetails;
+    }
+
+// ---------------------------------------------------------------------------
+// CSifUiErrorInfo::CSifUiErrorInfo()
+// ---------------------------------------------------------------------------
+//
+CSifUiErrorInfo::CSifUiErrorInfo()
+    {
+    }
+
+// ---------------------------------------------------------------------------
+// CSifUiErrorInfo::ConstructL()
+// ---------------------------------------------------------------------------
+//
+void CSifUiErrorInfo::ConstructL( Usif::TErrorCategory aErrorCategory,
+        TInt aErrorCode, TInt aExtendedErrorCode, const TDesC& aErrorMessage,
+        const TDesC& aErrorMessageDetails )
+    {
+    iErrorCategory = aErrorCategory;
+    iErrorCode = aErrorCode;
+    iExtendedErrorCode = aExtendedErrorCode;
+    iErrorMessage = aErrorMessage.AllocL();
+    iErrorMessageDetails = aErrorMessageDetails.AllocL();
+    }
+
--- a/appinstall_plat/sifui_api/src/sifuiprivate.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/appinstall_plat/sifui_api/src/sifuiprivate.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -18,6 +18,8 @@
 #include "sifuiprivate.h"                       // CSifUiPrivate
 #include "sifuicertificateinfo.h"               // CSifUiCertificateInfo
 #include "sifuiappinfo.h"                       // CSifUiAppInfo
+#include "sifuierrorinfo.h"                     // CSifUiErrorInfo
+#include "sifuiinstallindicatordefinitions.h"   // indicator type label and parameter names
 #include <hb/hbcore/hbsymbianvariant.h>         // CHbSymbianVariantMap
 #include <hb/hbwidgets/hbdevicenotificationdialogsymbian.h> // CHbDeviceNotificationDialogSymbian
 #include <apgicnfl.h>                           // CApaMaskedBitmap
@@ -25,7 +27,7 @@
 #include <e32property.h>                        // RProperty
 
 const TInt KDriveLettersLen = 32;
-const TInt KCertificateBufferGranularity = 1024;
+const TInt KBufferGranularity = 1024;
 const TInt KProgFull = 100;                     // 100%
 
 const TUid KInstallIndicatorCategory = { 0x20022FC5 };
@@ -33,6 +35,19 @@
 
 _LIT( KSifUiDefaultApplicationIcon, "qtg_large_application" );
 
+// TODO: replace with proper logging
+#ifdef _DEBUG
+#define FLOG(x)         RDebug::Print(x);
+#define FLOG_1(x,y)     RDebug::Print(x, y);
+#define FLOG_2(x,y,z)   RDebug::Print(x, y, z);
+#define FLOG_3(x,y,z,v) RDebug::Print(x, y, z, v);
+#else
+#define FLOG(x)
+#define FLOG_1(x,y)
+#define FLOG_2(x,y,z)
+#define FLOG_3(x,y,z,v)
+#endif
+
 
 // ======== MEMBER FUNCTIONS ========
 
@@ -42,6 +57,8 @@
 //
 CSifUiPrivate* CSifUiPrivate::NewL()
     {
+    FLOG( _L("CSifUiPrivate::NewL") );
+
     CSifUiPrivate* self = new( ELeave ) CSifUiPrivate();
     CleanupStack::PushL( self );
     self->ConstructL();
@@ -55,6 +72,8 @@
 //
 CSifUiPrivate::~CSifUiPrivate()
     {
+    FLOG( _L("CSifUiPrivate::~CSifUiPrivate") );
+
     Cancel();
     delete iWait;
     delete iDeviceDialog;
@@ -66,22 +85,12 @@
     }
 
 // ---------------------------------------------------------------------------
-// CSifUiPrivate::ShowConfirmationL()
+// CSifUiPrivate::ShowPreparingL()
 // ---------------------------------------------------------------------------
 //
-TBool CSifUiPrivate::ShowConfirmationL( const CSifUiAppInfo& aAppInfo )
+void CSifUiPrivate::ShowPreparingL()
     {
-    ChangeNoteTypeL( ESifUiConfirmationQuery );
-
-    AddParamsAppInfoL( aAppInfo );
-    if( iSelectableDrives )
-        {
-        AddParamL( KSifUiMemorySelection, *iSelectableDrives );
-        }
-    AddParamsCertificatesL();
-
-    UpdateDialogAndWaitForResponseL();
-    return( iDialogReturnValue == KErrNone );
+    // TODO: implement
     }
 
 // ---------------------------------------------------------------------------
@@ -90,6 +99,8 @@
 //
 void CSifUiPrivate::SetMemorySelectionL( const RArray<TInt>& aDriveNumbers )
     {
+    FLOG( _L("CSifUiPrivate::SetMemorySelectionL") );
+
     if( iSelectableDrives )
         {
         delete iSelectableDrives;
@@ -105,6 +116,8 @@
             {
             TChar driveLetter;
             TInt err = RFs::DriveToChar( aDriveNumbers[ index ], driveLetter );
+            FLOG_3( _L("CSifUiPrivate::SetMemorySelectionL, index %d, drive %d, err %d"),
+                    index, aDriveNumbers[ index ], err );
             if( !err )
                 {
                 driveList.Append( driveLetter );
@@ -113,19 +126,7 @@
             }
         iSelectableDrives = driveList.AllocL();
         }
-    }
-
-// ---------------------------------------------------------------------------
-// CSifUiPrivate::SelectedDrive()
-// ---------------------------------------------------------------------------
-//
-TInt CSifUiPrivate::SelectedDrive( TInt& aDriveNumber )
-    {
-    if( iSelectedDriveSet )
-        {
-        return RFs::CharToDrive( iSelectedDrive, aDriveNumber );
-        }
-    return KErrNotFound;
+    FLOG_1( _L("CSifUiPrivate::SetMemorySelectionL, iSelectableDrives=%S"), iSelectableDrives );
     }
 
 // ---------------------------------------------------------------------------
@@ -135,6 +136,8 @@
 void CSifUiPrivate::SetCertificateInfoL(
         const RPointerArray<CSifUiCertificateInfo>& aCertificates )
     {
+    FLOG( _L("CSifUiPrivate::SetCertificateInfoL") );
+
     if( iCertificateBuffer )
         {
         delete iCertificateBuffer;
@@ -142,7 +145,7 @@
         }
     if( aCertificates.Count() )
         {
-        iCertificateBuffer = CBufFlat::NewL( KCertificateBufferGranularity );
+        iCertificateBuffer = CBufFlat::NewL( KBufferGranularity );
         RBufWriteStream writeStream( *iCertificateBuffer );
         CleanupClosePushL( writeStream );
 
@@ -158,17 +161,60 @@
     }
 
 // ---------------------------------------------------------------------------
+// CSifUiPrivate::ShowConfirmationL()
+// ---------------------------------------------------------------------------
+//
+TBool CSifUiPrivate::ShowConfirmationL( const CSifUiAppInfo& aAppInfo )
+    {
+    FLOG( _L("CSifUiPrivate::ShowConfirmationL") );
+
+    ChangeNoteTypeL( ESifUiConfirmationQuery );
+
+    AddParamsAppInfoL( aAppInfo );
+    if( iSelectableDrives )
+        {
+        AddParamL( KSifUiMemorySelection, *iSelectableDrives );
+        }
+    AddParamsCertificatesL();
+
+    UpdateDialogAndWaitForResponseL();
+    return( iDialogReturnValue == KErrNone );
+    }
+
+// ---------------------------------------------------------------------------
+// CSifUiPrivate::SelectedDrive()
+// ---------------------------------------------------------------------------
+//
+TInt CSifUiPrivate::SelectedDrive( TInt& aDriveNumber )
+    {
+    FLOG( _L("CSifUiPrivate::SelectedDrive") );
+
+    if( iSelectedDriveSet )
+        {
+        TInt err = RFs::CharToDrive( iSelectedDrive, aDriveNumber );
+        FLOG_2( _L("CSifUiPrivate::SelectedDrive, aDriveNumber=%d, err=%d"), aDriveNumber, err );
+        return err;
+        }
+    FLOG( _L("CSifUiPrivate::SelectedDrive, KErrNotFound") );
+    return KErrNotFound;
+    }
+
+// ---------------------------------------------------------------------------
 // CSifUiPrivate::ShowProgressL()
 // ---------------------------------------------------------------------------
 //
 void CSifUiPrivate::ShowProgressL( const CSifUiAppInfo& aAppInfo,
-        TInt aProgressBarFinalValue )
+        TInt aProgressBarFinalValue, CSifUi::TInstallingPhase aPhase )
     {
+    FLOG( _L("CSifUiPrivate::ShowProgressL") );
+
     ChangeNoteTypeL( ESifUiProgressNote );
 
     AddParamsAppInfoL( aAppInfo );
     AddParamL( KSifUiProgressNoteFinalValue, aProgressBarFinalValue );
     iProgressBarFinalValue = aProgressBarFinalValue;
+    AddParamL( KSifUiProgressNotePhase, aPhase );
+    iInstallingPhase = aPhase;
     AddParamsHiddenButtonsL();
 
     UpdateDialogOrIndicatorWithoutWaitingL();
@@ -180,6 +226,8 @@
 //
 void CSifUiPrivate::IncreaseProgressBarValueL( TInt aNewValue )
     {
+    FLOG_1( _L("CSifUiPrivate::IncreaseProgressBarValueL, aNewValue=%d"), aNewValue );
+
     ChangeNoteTypeL( ESifUiProgressNote );
 
     AddParamL( KSifUiProgressNoteValue, aNewValue );
@@ -199,11 +247,48 @@
     }
 
 // ---------------------------------------------------------------------------
+// CSifUiPrivate::ShowCompleteL()
+// ---------------------------------------------------------------------------
+//
+void CSifUiPrivate::ShowCompleteL()
+    {
+    FLOG( _L("CSifUiPrivate::ShowCompleteL") );
+
+    ChangeNoteTypeL( ESifUiCompleteNote );
+
+    AddParamsHiddenButtonsL();
+
+    CompleteDialogOrIndicatorAndWaitForResponseL( KErrNone );
+    }
+
+// ---------------------------------------------------------------------------
+// CSifUiPrivate::ShowFailedL()
+// ---------------------------------------------------------------------------
+//
+void CSifUiPrivate::ShowFailedL( const CSifUiErrorInfo& aErrorInfo )
+    {
+    FLOG_1( _L("CSifUiPrivate::ShowFailedL, aErrorCode=%d"), aErrorInfo.ErrorCode() );
+
+    ChangeNoteTypeL( ESifUiErrorNote );
+
+    AddParamL( KSifUiErrorCategory, aErrorInfo.ErrorCategory() );
+    AddParamL( KSifUiErrorCode, aErrorInfo.ErrorCode() );
+    AddParamL( KSifUiErrorCodeExtended, aErrorInfo.ExtendedErrorCode() );
+    AddParamL( KSifUiErrorMessage, aErrorInfo.ErrorMessage() );
+    AddParamL( KSifUiErrorDetails, aErrorInfo.ErrorMessageDetails() );
+    AddParamsHiddenButtonsL();
+
+    CompleteDialogOrIndicatorAndWaitForResponseL( aErrorInfo.ErrorCode() );
+    }
+
+// ---------------------------------------------------------------------------
 // CSifUiPrivate::SetButtonVisible()
 // ---------------------------------------------------------------------------
 //
 void CSifUiPrivate::SetButtonVisible( CSifUi::TOptionalButton aButton, TBool aIsVisible )
     {
+    FLOG( _L("CSifUiPrivate::SetButtonVisible") );
+
     switch( aButton )
         {
         case CSifUi::EHideProgressButton:
@@ -224,35 +309,50 @@
     }
 
 // ---------------------------------------------------------------------------
-// CSifUiPrivate::ShowCompleteL()
+// CSifUiPrivate::ShowGrantCapabilitiesL()
 // ---------------------------------------------------------------------------
 //
-void CSifUiPrivate::ShowCompleteL()
+TBool CSifUiPrivate::ShowGrantCapabilitiesL( const TCapabilitySet& aCapabilities )
     {
-    ChangeNoteTypeL( ESifUiCompleteNote );
+    CBufFlat* buffer = CBufFlat::NewL( KBufferGranularity );
+    CleanupStack::PushL( buffer );
 
-    AddParamsHiddenButtonsL();
+    RBufWriteStream writeStream( *buffer );
+    CleanupClosePushL( writeStream );
+    TPckg<TCapabilitySet> capabilitySetPackage( aCapabilities );
+    writeStream.WriteL( capabilitySetPackage );
+    writeStream.CommitL();
+    CleanupStack::PopAndDestroy( &writeStream );
 
-    CompleteDialogOrIndicatorAndWaitForResponseL( KErrNone );
+    AddParamBinaryL( KSifUiGrantCapabilities, *buffer );
+    UpdateDialogAndWaitForResponseL();
+
+    CleanupStack::PopAndDestroy( buffer );
+    return( iDialogReturnValue == KErrNone );
     }
 
 // ---------------------------------------------------------------------------
-// CSifUiPrivate::ShowFailedL()
+// CSifUiPrivate::ShowSingleSelectionL()
 // ---------------------------------------------------------------------------
 //
-void CSifUiPrivate::ShowFailedL( TInt aErrorCode, const TDesC& aErrorMessage,
-        const TDesC& aErrorDetails )
+TBool CSifUiPrivate::ShowSingleSelectionL( const TDesC& /*aTitle*/,
+        const MDesCArray& /*aSelectableItems*/, TInt& aSelectedIndex )
     {
-    ChangeNoteTypeL( ESifUiErrorNote );
+    // TODO: implement
+    aSelectedIndex = 0;
+    return ETrue;
+    }
 
-    AddParamL( KSifUiErrorCode, aErrorCode );
-    AddParamL( KSifUiErrorMessage, aErrorMessage );
-    if( aErrorDetails != KNullDesC )
-        {
-        AddParamL( KSifUiErrorDetails, aErrorDetails );
-        }
-
-    CompleteDialogOrIndicatorAndWaitForResponseL( aErrorCode );
+// ---------------------------------------------------------------------------
+// CSifUiPrivate::ShowMultiSelectionL()
+// ---------------------------------------------------------------------------
+//
+TBool CSifUiPrivate::ShowMultiSelectionL( const TDesC& /*aTitle*/,
+        const MDesCArray& /*aSelectableItems*/, RArray<TInt>& aSelectedIndexes )
+    {
+    // TODO: implement
+    aSelectedIndexes.Reset();
+    return ETrue;
     }
 
 // ---------------------------------------------------------------------------
@@ -261,6 +361,8 @@
 //
 void CSifUiPrivate::DoCancel()
     {
+    FLOG( _L("CSifUiPrivate::DoCancel") );
+
     if( iWait && iWait->IsStarted() && iWait->CanStopNow() )
         {
         iWaitCompletionCode = KErrCancel;
@@ -274,6 +376,8 @@
 //
 void CSifUiPrivate::RunL()
     {
+    FLOG_1( _L("CSifUiPrivate::RunL, iStatus.Int()=%d"), iStatus.Int() );
+
     if( iWait )
         {
         iWait->AsyncStop();
@@ -286,11 +390,14 @@
 //
 void CSifUiPrivate::DataReceived( CHbSymbianVariantMap& aData )
     {
+    FLOG( _L("CSifUiPrivate::DataReceived") );
+
     const CHbSymbianVariant* selectedDriveVariant = aData.Get( KSifUiSelectedMemory );
     if( selectedDriveVariant )
         {
         iSelectedDrive = *( selectedDriveVariant->Value<TChar>() );
         iSelectedDriveSet = ETrue;
+        FLOG_1( _L("CSifUiPrivate::DataReceived, iSelectedDrive=%d"), (TUint)iSelectedDrive );
         }
 
     const CHbSymbianVariant* variant = aData.Get( KSifUiQueryReturnValue );
@@ -332,6 +439,8 @@
 //
 void CSifUiPrivate::DeviceDialogClosed( TInt aCompletionCode )
     {
+    FLOG_1( _L("CSifUiPrivate::DeviceDialogClosed, aCompletionCode=%d"), aCompletionCode );
+
     iIsDisplayingDialog = EFalse;
     WaitedResponseReceived( aCompletionCode );
     }
@@ -343,9 +452,12 @@
 void CSifUiPrivate::IndicatorUserActivated( const TDesC& aType,
         CHbSymbianVariantMap& /*aData*/ )
     {
+    FLOG( _L("CSifUiPrivate::IndicatorUserActivated") );
+
     if( aType == KSifUiInstallIndicatorType )
         {
         CloseInstallIndicator();
+        iIsFirstTimeToDisplay = ETrue;
         TRAP_IGNORE( DisplayDeviceDialogL() );
         }
     }
@@ -442,6 +554,20 @@
     }
 
 // ---------------------------------------------------------------------------
+// CSifUiPrivate::AddParamBinaryL()
+// ---------------------------------------------------------------------------
+//
+void CSifUiPrivate::AddParamBinaryL( const TDesC& aKey, const CBufBase& aBinary )
+    {
+    CHbSymbianVariant* variant = NULL;
+    const TPtrC8 ptr( const_cast<CBufBase&>( aBinary ).Ptr( 0 ).Ptr(), aBinary.Size() );
+    variant = CHbSymbianVariant::NewL( &ptr, CHbSymbianVariant::EBinary );
+    CleanupStack::PushL( variant );
+    User::LeaveIfError( VariantMapL()->Add( aKey, variant ) );
+    CleanupStack::Pop( variant );
+    }
+
+// ---------------------------------------------------------------------------
 // CSifUiPrivate::AddParamsAppInfoL()
 // ---------------------------------------------------------------------------
 //
@@ -449,9 +575,13 @@
     {
     AddParamL( KSifUiApplicationName, aAppInfo.Name() );
     const TVersion& version( aAppInfo.Version() );
-    if( version.iBuild || version.iMajor || version.iMinor )
+    if( version.iMajor || version.iMinor )
         {
-        AddParamL( KSifUiApplicationVersion, version.Name() );
+        TVersionName versionName;
+        versionName.AppendNum( version.iMajor );
+        versionName.Append( TChar('.') );
+        versionName.AppendNum( version.iMinor );
+        AddParamL( KSifUiApplicationVersion, versionName );
         }
     if( aAppInfo.Vendor().Length() )
         {
@@ -482,13 +612,7 @@
     {
     if( iCertificateBuffer )
         {
-        const TPtrC8 dataPtr( iCertificateBuffer->Ptr( 0 ).Ptr(),
-                iCertificateBuffer->Size() );
-        CHbSymbianVariant* certificates = CHbSymbianVariant::NewL( &dataPtr,
-                CHbSymbianVariant::EBinary );
-        CleanupStack::PushL( certificates );
-        User::LeaveIfError( VariantMapL()->Add( KSifUiCertificates, certificates ) );
-        CleanupStack::Pop( certificates );
+        AddParamBinaryL( KSifUiCertificates, *iCertificateBuffer );
         }
     }
 
@@ -537,8 +661,17 @@
         AddParamsAppInfoL( *iAppInfo );
         }
     AddParamsCertificatesL();
+    if( iProgressBarFinalValue )
+        {
+        AddParamL( KSifUiProgressNoteFinalValue, iProgressBarFinalValue );
+        }
+    if( iProgressBarCurrentValue )
+        {
+        AddParamL( KSifUiProgressNoteValue, iProgressBarCurrentValue );
+        }
+    AddParamL( KSifUiProgressNotePhase, iInstallingPhase );
+    AddParamsHiddenButtonsL();
     // TODO: AddParamsIconL();
-    AddParamsHiddenButtonsL();
     }
 
 // ---------------------------------------------------------------------------
@@ -553,19 +686,7 @@
         iIndicator->SetObserver( this );
         }
 
-    if( iAppInfo && iAppInfo->Name().Length() )
-        {
-        CHbSymbianVariant* param = NULL;
-        TPtrC appName = iAppInfo->Name();
-        param = CHbSymbianVariant::NewL( &appName, CHbSymbianVariant::EDes );
-        CleanupStack::PushL( param );
-        iIndicator->Activate( KSifUiInstallIndicatorType, param );
-        CleanupStack::PopAndDestroy( param );
-        }
-    else
-        {
-        iIndicator->Activate( KSifUiInstallIndicatorType );
-        }
+    UpdateInstallIndicatorProgressL();
     }
 
 // ---------------------------------------------------------------------------
@@ -574,15 +695,36 @@
 //
 void CSifUiPrivate::UpdateInstallIndicatorProgressL()
     {
+    CHbSymbianVariantMap* parameters = CHbSymbianVariantMap::NewL();
+    CleanupStack::PushL( parameters );
+
+    CHbSymbianVariant* param = NULL;
+
+    if( iAppInfo && iAppInfo->Name().Length() )
+        {
+        TPtrC appName = iAppInfo->Name();
+        param = CHbSymbianVariant::NewL( &appName, CHbSymbianVariant::EDes );
+        parameters->Add( KSifUiInstallIndicatorAppName, param );
+        }
+    if( iInstallingPhase )
+        {
+        param = CHbSymbianVariant::NewL( &iInstallingPhase, CHbSymbianVariant::EInt );
+        parameters->Add( KSifUiInstallIndicatorPhase, param );
+        }
     if( iProgressBarFinalValue )
         {
-        CHbSymbianVariant* param = NULL;
         TInt progressPercent = KProgFull * iProgressBarCurrentValue / iProgressBarFinalValue;
         param = CHbSymbianVariant::NewL( &progressPercent, CHbSymbianVariant::EInt );
-        CleanupStack::PushL( param );
-        iIndicator->Activate( KSifUiInstallIndicatorType, param );
-        CleanupStack::PopAndDestroy( param );
+        parameters->Add( KSifUiInstallIndicatorProgress, param );
         }
+
+    // TODO: should both install indicator and device dialog use the same variant map?
+
+    param = CHbSymbianVariant::NewL( parameters, CHbSymbianVariant::EVariantMap );
+    CleanupStack::Pop( parameters );
+    CleanupStack::PushL( param );
+    iIndicator->Activate( KSifUiInstallIndicatorType, param );
+    CleanupStack::PopAndDestroy( param );
     }
 
 // ---------------------------------------------------------------------------
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appinstall_plat/sw_installer_cr_keys/tsrc/swinstsettingschanger/main.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,25 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  SW installation settings changer application.
+*
+*/
+
+#include "swinstsettingschanger.h"
+
+int main(int argc, char *argv[])
+{
+    SwInstSettingsChanger app(argc, argv);
+    return app.exec();
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appinstall_plat/sw_installer_cr_keys/tsrc/swinstsettingschanger/swinstsettingschanger.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,132 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  SW installation settings changer application.
+*
+*/
+
+#include "swinstsettingschanger.h"
+#include <hbmainwindow.h>
+#include <hbview.h>
+#include <QGraphicsLinearLayout>
+#include <hbcombobox.h>
+#include <hbtextedit.h>
+#include <hbcheckbox.h>
+#include <hbpushbutton.h>
+#include <centralrepository.h>
+#include <SWInstallerInternalCRKeys.h>
+
+
+SwInstSettingsChanger::SwInstSettingsChanger(int& argc, char* argv[]) : HbApplication(argc, argv),
+    mMainWindow(0), mMainView(0), mOcspProcedure(0), mDefaultUrl(0), mAllowUntrusted(0)
+{
+    mMainWindow = new HbMainWindow();
+    mMainView = new HbView();
+    mMainView->setTitle(tr("SWInstSettings"));
+
+    QGraphicsLinearLayout *layout = new QGraphicsLinearLayout(Qt::Vertical);
+
+    HbPushButton *readButton = new HbPushButton("Read");
+    connect(readButton, SIGNAL(clicked()), this, SLOT(handleRead()));
+    layout->addItem(readButton);
+
+    HbPushButton *saveButton = new HbPushButton("Save");
+    connect(saveButton, SIGNAL(clicked()), this, SLOT(handleSave()));
+    layout->addItem(saveButton);
+
+    mOcspProcedure = new HbComboBox;
+    mOcspProcedure->setEditable(false);
+    QStringList ocspProcedureList;
+    ocspProcedureList << "Off" << "On" << "Must";
+    mOcspProcedure->setItems(ocspProcedureList);
+    layout->addItem(mOcspProcedure);
+
+    mDefaultUrl = new HbTextEdit;
+    layout->addItem(mDefaultUrl);
+
+    mAllowUntrusted = new HbCheckBox;
+    mAllowUntrusted->setText(tr("KSWInstallerAllowUntrusted"));
+    layout->addItem(mAllowUntrusted);
+
+    HbPushButton *closeButton = new HbPushButton("Close");
+    connect(closeButton, SIGNAL(clicked()), qApp, SLOT(quit()));
+    layout->addItem(closeButton);
+
+    mMainView->setLayout(layout);
+    mMainWindow->addView(mMainView);
+    mMainWindow->show();
+
+    handleRead();
+}
+
+SwInstSettingsChanger::~SwInstSettingsChanger()
+{
+    delete mMainView;
+    delete mMainWindow;
+}
+
+void SwInstSettingsChanger::handleRead()
+{
+    QT_TRAP_THROWING( DoHandleReadL() );
+}
+
+void SwInstSettingsChanger::handleSave()
+{
+    QT_TRAP_THROWING( DoHandleSaveL() );
+}
+
+void SwInstSettingsChanger::DoHandleReadL()
+{
+    CRepository* repository = CRepository::NewL( KCRUidSWInstallerSettings );
+    CleanupStack::PushL( repository );
+
+    TInt ocspProcedure = 0;
+    User::LeaveIfError( repository->Get( KSWInstallerOcspProcedure, ocspProcedure ) );
+    mOcspProcedure->setCurrentIndex( ocspProcedure );
+
+    HBufC* ocspUrlBuf = HBufC::NewLC( NCentralRepositoryConstants::KMaxUnicodeStringLength );
+    TPtr ocspUrl( ocspUrlBuf->Des() );
+    User::LeaveIfError( repository->Get( KSWInstallerOcspDefaultURL, ocspUrl ) );
+    QString defaultUrl = QString::fromUtf16(ocspUrl.Ptr(), ocspUrl.Length());
+    mDefaultUrl->setPlainText( defaultUrl );
+    CleanupStack::PopAndDestroy( ocspUrlBuf );
+
+    TInt allowUntrusted = 0;
+    User::LeaveIfError( repository->Get( KSWInstallerAllowUntrusted, allowUntrusted ) );
+    mAllowUntrusted->setChecked( allowUntrusted );
+
+    CleanupStack::PopAndDestroy( repository );
+}
+
+void SwInstSettingsChanger::DoHandleSaveL()
+{
+    CRepository* repository = CRepository::NewL( KCRUidSWInstallerSettings );
+    CleanupStack::PushL( repository );
+
+    TInt ocspProcedure = mOcspProcedure->currentIndex();
+    User::LeaveIfError( repository->Set( KSWInstallerOcspProcedure, ocspProcedure ) );
+
+    HBufC* ocspUrlBuf = HBufC::NewLC( NCentralRepositoryConstants::KMaxUnicodeStringLength );
+    TPtr ocspUrl( ocspUrlBuf->Des() );
+    QString string = mDefaultUrl->toPlainText();
+    TPtrC ptr( reinterpret_cast<const TText*>( string.constData() ) );
+    ocspUrl.Copy( ptr );
+    User::LeaveIfError( repository->Set( KSWInstallerOcspDefaultURL, ocspUrl ) );
+    CleanupStack::PopAndDestroy( ocspUrlBuf );
+
+    TInt allowUntrusted = mAllowUntrusted->isChecked();
+    User::LeaveIfError( repository->Set( KSWInstallerAllowUntrusted, allowUntrusted ) );
+
+    CleanupStack::PopAndDestroy( repository );
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appinstall_plat/sw_installer_cr_keys/tsrc/swinstsettingschanger/swinstsettingschanger.h	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,55 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  SW installation settings changer application.
+*
+*/
+
+#ifndef SWINSTSETTINGSCHANGER_H
+#define SWINSTSETTINGSCHANGER_H
+
+#include <hbapplication.h>
+
+class HbMainWindow;
+class HbView;
+class HbComboBox;
+class HbTextEdit;
+class HbCheckBox;
+
+
+class SwInstSettingsChanger : public HbApplication
+{
+    Q_OBJECT
+
+public:     // constructor and destructor
+    SwInstSettingsChanger(int& argc, char* argv[]);
+    ~SwInstSettingsChanger();
+
+private slots:  // new functions
+    void handleRead();
+    void handleSave();
+
+private:    // new functions
+    void DoHandleReadL();
+    void DoHandleSaveL();
+
+private:    // data
+    HbMainWindow *mMainWindow;
+    HbView       *mMainView;
+    HbComboBox   *mOcspProcedure;
+    HbTextEdit   *mDefaultUrl;
+    HbCheckBox   *mAllowUntrusted;
+};
+
+#endif  // SWINSTSETTINGSCHANGER_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appinstall_plat/sw_installer_cr_keys/tsrc/swinstsettingschanger/swinstsettingschanger.iby	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,24 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  SW installation settings changer application.
+*
+*/
+
+#ifndef __SWINSTSETTINGSCHANGER_IBY__
+#define __SWINSTSETTINGSCHANGER_IBY__
+
+file=ABI_DIR/BUILD_DIR/swinstsettingschanger.exe SHARED_LIB_DIR/swinstsettingschanger.exe
+HB_UPGRADABLE_APP_REG_RSC( swinstsettingschanger )
+
+#endif  // __SWINSTSETTINGSCHANGER_IBY__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appinstall_plat/sw_installer_cr_keys/tsrc/swinstsettingschanger/swinstsettingschanger.pro	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,33 @@
+#
+# Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+# 
+# Description:  SW installation settings changer application.
+#
+
+TEMPLATE = app
+TARGET = swinstsettingschanger
+CONFIG += hb
+DEPENDPATH += .
+INCLUDEPATH += .
+LIBS += -lcentralrepository
+
+HEADERS += swinstsettingschanger.h
+SOURCES += main.cpp swinstsettingschanger.cpp
+
+symbian {
+    TARGET.CAPABILITY = CAP_APPLICATION
+}
+
+BLD_INF_RULES.prj_exports += \
+  "$${LITERAL_HASH}include <platform_paths.hrh>" \
+  "swinstsettingschanger.iby CORE_APP_LAYER_IBY_EXPORT_PATH(swinstsettingschanger.iby)"
--- a/appinstaller/AppinstUi/Plugin/CommonUI/Data/SWInstCommonUI.rss	Tue Jul 06 14:23:31 2010 +0300
+++ b/appinstaller/AppinstUi/Plugin/CommonUI/Data/SWInstCommonUI.rss	Wed Aug 18 09:55:45 2010 +0300
@@ -23,8 +23,8 @@
 #include <avkon.rh>
 #include <avkon.mbg>
 #include <avkon.loc>
-#include <CommonDialogs.hrh> 
-#include <CommonDialogs.rh> 
+//#include <CommonDialogs.hrh> 
+//#include <CommonDialogs.rh> 
 
 #include <appinstui.loc>
 
@@ -237,11 +237,13 @@
 //    Defines a memory selection dialog
 //
 //------------------------------------------------------------------------------
+/*
 RESOURCE MEMORYSELECTIONDIALOG r_swcommon_memory_selection_dialog
     {
     softkey_1 = text_softkey_select;
     softkey_2 = text_softkey_cancel;
     }
+*/
 
 //------------------------------------------------------------------------------
 //
--- a/appinstaller/AppinstUi/sifuidevicedialogplugin/inc/sifuidialog.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/appinstaller/AppinstUi/sifuidevicedialogplugin/inc/sifuidialog.h	Wed Aug 18 09:55:45 2010 +0300
@@ -66,8 +66,9 @@
     bool constructDialog(const QVariantMap &parameters);
     bool updateFromParameters(const QVariantMap &parameters);
     void updateButtons(const QVariantMap &parameters);
+    void prepareForErrorDetails(const QVariantMap &parameters);
+    bool displayAdditionalQuery(const QVariantMap &parameters);
     void sendResult(SifUiDeviceDialogReturnValue value);
-    void monitorIndicatorActivity();
 
 private slots:
     void handleAccepted();
@@ -76,6 +77,8 @@
     void handleHidePressed();
     void handleShowInstalled();
     void handleErrorDetails();
+    void handleCapabilitiesGranted();
+    void handleCapabilitiesDenied();
 
 private:
     Q_DISABLE_COPY(SifUiDialog)
@@ -87,10 +90,12 @@
     SifUiDeviceDialogType mDialogType;
     SifUiDialogTitleWidget *mTitle;
     SifUiDialogContentWidget *mContent;
-    int mInstallError;
-    QVariantMap mResultMap;
+    QString mErrorDetails;
+    int mErrorCode;
+    int mExtendedErrorCode;
     HbAction *mPrimaryAction;
     HbAction *mSecondaryAction;
+    QVariantMap mResultMap;
     HbIndicator *mIndicator;
 
     QTM_PREPEND_NAMESPACE(QValueSpaceSubscriber) *mSubscriber;
--- a/appinstaller/AppinstUi/sifuidevicedialogplugin/inc/sifuidialogcertificatedetails.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/appinstaller/AppinstUi/sifuidevicedialogplugin/inc/sifuidialogcertificatedetails.h	Wed Aug 18 09:55:45 2010 +0300
@@ -51,4 +51,4 @@
     const QList<SifUiDialogCertificateInfo*> &mCertificates;
 };
 
-#endif // SIFUICERTIFICSIFUIDIALOGCERTIFICATEDETAILS_HATES_H
+#endif // SIFUIDIALOGCERTIFICATEDETAILS_H
--- a/appinstaller/AppinstUi/sifuidevicedialogplugin/inc/sifuidialogcontentwidget.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/appinstaller/AppinstUi/sifuidevicedialogplugin/inc/sifuidialogcontentwidget.h	Wed Aug 18 09:55:45 2010 +0300
@@ -20,6 +20,7 @@
 
 #include <hbwidget.h>
 #include <sifuidialogdefinitions.h>
+#include <qmobilityglobal.h>            // QTM namespace macros
 
 class HbLabel;
 class QGraphicsLinearLayout;
@@ -28,6 +29,11 @@
 class HbProgressBar;
 class CFbsBitmap;
 
+QTM_BEGIN_NAMESPACE
+class QValueSpacePublisher;
+class QValueSpaceSubscriber;
+QTM_END_NAMESPACE
+
 
 class SifUiDialogContentWidget : public HbWidget
 {
@@ -40,6 +46,7 @@
     void constructFromParameters(const QVariantMap &parameters);
     void updateFromParameters(const QVariantMap &parameters);
     void changeType(SifUiDeviceDialogType type);
+    QString applicationName() const;
 
 signals:
     void memorySelectionChanged(const QChar &driveLetter);
@@ -60,6 +67,8 @@
     bool updateMemorySelection(const QVariantMap &parameters);
     bool updateProgressBar(const QVariantMap &parameters);
     bool updateErrorText(const QVariantMap &parameters);
+    void saveSelectedDriveAsDefault(const QChar& drive);
+    QChar readDefaultSelectedDrive();
 
 private:    // data
     HbLabel *mAppIcon;
@@ -74,6 +83,8 @@
     HbLabel *mErrorText;
     CFbsBitmap *mBitmap;
     CFbsBitmap *mMask;
+    QTM_PREPEND_NAMESPACE(QValueSpacePublisher) *mPublisher;
+    QTM_PREPEND_NAMESPACE(QValueSpaceSubscriber) *mSubscriber;
 };
 
 #endif // SIFUIDIALOGCONTENTWIDGET_H
--- a/appinstaller/AppinstUi/sifuidevicedialogplugin/inc/sifuidialogdefinitions.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/appinstaller/AppinstUi/sifuidevicedialogplugin/inc/sifuidialogdefinitions.h	Wed Aug 18 09:55:45 2010 +0300
@@ -27,6 +27,13 @@
     SifUiErrorNote = 4
     };
 
+enum SifUiInstallingPhase
+    {
+    SifUiInstalling = 0,
+    SifUiDownloading = 1,
+    SifUiCheckingCerts = 2
+    };
+
 enum SifUiDeviceDialogReturnValue
     {
     SifUiContinue = 0,
@@ -56,6 +63,7 @@
 const QString KSifUiProgressNoteText = "txt";           // string
 const QString KSifUiProgressNoteFinalValue = "fin";     // integer
 const QString KSifUiProgressNoteValue = "val";          // integer
+const QString KSifUiProgressNotePhase = "phase";        // enum SifUiInstallingPhase
 
 // Variant map keys for "progress note" and "installation complete note" buttons
 const QString KSifUiProgressNoteIsHideButtonHidden = "hidebtn";     // boolean
@@ -64,9 +72,14 @@
 const QString KSifUiErrorNoteIsDetailsButtonHidden = "errdtlbtn";   // boolean
 
 // Variant map keys for "error" dialog parameters
-const QString KSifUiErrorCode = "err";                  // integer
-const QString KSifUiErrorMessage = "msg";               // string
-const QString KSifUiErrorDetails = "det";               // string
+const QString KSifUiErrorCategory = "errcat";           // enum Usif::TErrorCategory
+const QString KSifUiErrorCode = "errcode";              // integer
+const QString KSifUiErrorCodeExtended = "errext";       // integer
+const QString KSifUiErrorMessage = "errmsg";            // string
+const QString KSifUiErrorDetails = "errdet";            // string
+
+// Variant map keys for "grant capabilities" dialog parameters
+const QString KSifUiGrantCapabilities = "grcap";        // binary (TCapabilitySet)
 
 #endif // SIFUIDIALOGDEFINITIONS_H
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appinstaller/AppinstUi/sifuidevicedialogplugin/inc/sifuidialoggrantcapabilities.h	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,46 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Grant capabilities dialog in SifUi
+*
+*/
+
+#ifndef SIFUIDIALOGGRANTCAPABILITIES_H
+#define SIFUIDIALOGGRANTCAPABILITIES_H
+
+#include <HbDialog>
+
+
+/**
+ * SifUi dialog requesting the user to grant capabilities
+ * for the application being installed.
+ */
+class SifUiDialogGrantCapabilities : public HbDialog
+{
+    Q_OBJECT
+
+public:     // constructor and destructor
+    SifUiDialogGrantCapabilities(const QString& applicationName,
+        const QVariant &capabilities, QGraphicsItem *parent = 0);
+    virtual ~SifUiDialogGrantCapabilities();
+
+signals:
+    void accepted();
+    void rejected();
+
+private slots:
+    void handleAccepted();
+    void handleRejected();
+};
+
+#endif // SIFUIDIALOGGRANTCAPABILITIES_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appinstaller/AppinstUi/sifuidevicedialogplugin/inc/sifuidialoggrantcapabilitiescontent.h	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,55 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Content widget for grant capabilities dialog in SifUi
+*
+*/
+
+#ifndef SIFUIDIALOGGRANTCAPABILITIESCONTENT_H
+#define SIFUIDIALOGGRANTCAPABILITIESCONTENT_H
+
+#include <HbWidget>
+
+
+/**
+ * Content widget for SifUiDialogGrantCapabilities dialog.
+ */
+class SifUiDialogGrantCapabilitiesContent : public HbWidget
+{
+    Q_OBJECT
+
+public:     // constructor and destructor
+    SifUiDialogGrantCapabilitiesContent(const QString& applicationName,
+        const QVariant &capabilities, QGraphicsItem *parent = 0);
+    virtual ~SifUiDialogGrantCapabilitiesContent();
+
+signals:
+    void accepted();
+    void rejected();
+
+private slots:
+    void viewDetails();
+
+private:    // new functions
+    void setCapabilities(const QVariant &capabilities);
+#ifdef Q_OS_SYMBIAN
+    void setCapabilitiesSymbianL( const TDesC8& aBuf );
+    QString capabilityName( const TCapability aCapability );
+#endif
+
+private:    // data
+    QStringList mCapabilities;
+    bool mIsCapabilitiesValid;
+};
+
+#endif // SIFUIDIALOGGRANTCAPABILITIESCONTENT_H
--- a/appinstaller/AppinstUi/sifuidevicedialogplugin/inc/sifuidialogtitlewidget.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/appinstaller/AppinstUi/sifuidevicedialogplugin/inc/sifuidialogtitlewidget.h	Wed Aug 18 09:55:45 2010 +0300
@@ -41,7 +41,7 @@
 
 private:
     Q_DISABLE_COPY(SifUiDialogTitleWidget)
-    QString defaultTitle(SifUiDeviceDialogType type);
+    QString defaultTitle(SifUiDeviceDialogType type, SifUiInstallingPhase phase);
     void updateTitle(const QVariantMap &parameters);
     void updateCertificates(const QVariantMap &parameters);
     QList<SifUiDialogCertificateInfo*> *getCertificates(QByteArray array);
--- a/appinstaller/AppinstUi/sifuidevicedialogplugin/rom/sifuidevicedialogplugin.iby	Tue Jul 06 14:23:31 2010 +0300
+++ b/appinstaller/AppinstUi/sifuidevicedialogplugin/rom/sifuidevicedialogplugin.iby	Wed Aug 18 09:55:45 2010 +0300
@@ -20,5 +20,6 @@
 
 file=ABI_DIR\UREL\sifuidevicedialogplugin.dll SHARED_LIB_DIR\sifuidevicedialogplugin.dll UNPAGED
 data=DATAZ_\pluginstub\sifuidevicedialogplugin.qtplugin \resource\plugins\devicedialogs\sifuidevicedialogplugin.qtplugin
+data=DATAZ_\resource\qt\crml\sifuidevicedialogplugin.qcrml \resource\qt\crml\sifuidevicedialogplugin.qcrml
 
 #endif  // SIFUIDEVICEDIALOGPLUGIN_IBY
--- a/appinstaller/AppinstUi/sifuidevicedialogplugin/sifuidevicedialogplugin.pro	Tue Jul 06 14:23:31 2010 +0300
+++ b/appinstaller/AppinstUi/sifuidevicedialogplugin/sifuidevicedialogplugin.pro	Wed Aug 18 09:55:45 2010 +0300
@@ -32,14 +32,18 @@
     inc/sifuidialogtitlewidget.h \
     inc/sifuidialogcontentwidget.h \
     inc/sifuidialogcertificateinfo.h \
-    inc/sifuidialogcertificatedetails.h
+    inc/sifuidialogcertificatedetails.h \
+    inc/sifuidialoggrantcapabilities.h \
+    inc/sifuidialoggrantcapabilitiescontent.h
 
 SOURCES += src/sifuidevicedialogplugin.cpp \
     src/sifuidialog.cpp \
     src/sifuidialogtitlewidget.cpp \
     src/sifuidialogcontentwidget.cpp \
     src/sifuidialogcertificateinfo.cpp \
-    src/sifuidialogcertificatedetails.cpp
+    src/sifuidialogcertificatedetails.cpp \
+    src/sifuidialoggrantcapabilities.cpp \
+    src/sifuidialoggrantcapabilitiescontent.cpp
 
 symbian: {
     TARGET.EPOCALLOWDLLDATA = 1
@@ -52,6 +56,10 @@
     pluginstub.path = /resource/plugins/devicedialogs
     DEPLOYMENT += pluginstub
 
+    crmlFiles.sources = sifuidevicedialogplugin.qcrml
+    crmlFiles.path = /resource/qt/crml
+    DEPLOYMENT += crmlFiles
+
     LIBS += -lfbscli -lPlatformEnv -lestor
 }
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appinstaller/AppinstUi/sifuidevicedialogplugin/sifuidevicedialogplugin.qcrml	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<repository target="RProperty" uidValue="0x20022FC5">
+    <key ref="/KCRUIDSifUiDefaults/KCRUIDSifUiDefaultDrive" int="0x2002C3AC"/>
+</repository>
--- a/appinstaller/AppinstUi/sifuidevicedialogplugin/src/sifuidialog.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/appinstaller/AppinstUi/sifuidevicedialogplugin/src/sifuidialog.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -15,9 +15,10 @@
 *
 */
 
-#include "sifuidialog.h"
-#include "sifuidialogtitlewidget.h"
-#include "sifuidialogcontentwidget.h"
+#include "sifuidialog.h"                    // SifUiDialog
+#include "sifuidialogtitlewidget.h"         // SifUiDialogTitleWidget
+#include "sifuidialogcontentwidget.h"       // SifUiDialogContentWidget
+#include "sifuidialoggrantcapabilities.h"   // SifUiDialogGrantCapabilities
 #include "sifuiinstallindicatorparams.h"
 #include <QFile>
 #include <hblabel.h>
@@ -44,8 +45,9 @@
 SifUiDialog::SifUiDialog(const QVariantMap &parameters) : HbDialog(),
     mCommonTranslator(0), mSifUITranslator(0), mLastDialogError(KErrNone),
     mShowEventReceived(false), mDialogType(SifUiUnspecifiedDialog),
-    mTitle(0), mContent(0), mResultMap(), mPrimaryAction(0),
-    mSecondaryAction(0), mIndicator(0), mSubscriber(0)
+    mTitle(0), mContent(0), mErrorDetails(), mErrorCode(KErrNone),
+    mExtendedErrorCode(KErrNone), mPrimaryAction(0), mSecondaryAction(0),
+    mResultMap(), mIndicator(0), mSubscriber(0)
 {
     mCommonTranslator = new HbTranslator(KTranslationsPath, KCommonTranslationsFile);
     mSifUITranslator = new HbTranslator(KTranslationsPath, KSifUiTranslationsFile);
@@ -183,9 +185,9 @@
 
     Q_ASSERT(mContent == 0);
     mContent = new SifUiDialogContentWidget(this);
-    mContent->constructFromParameters(parameters);
     connect(mContent, SIGNAL(memorySelectionChanged(const QChar &)),
             this, SLOT(handleMemorySelectionChanged(const QChar &)));
+    mContent->constructFromParameters(parameters);
     setContentWidget(mContent);
 
     updateButtons(parameters);
@@ -200,24 +202,20 @@
 bool SifUiDialog::updateFromParameters(const QVariantMap &parameters)
 {
     SifUiDeviceDialogType prevDialogType = mDialogType;
-    mDialogType = dialogType(parameters);
-    if (mTitle)
-        {
-        mTitle->updateFromParameters(parameters);
-        }
-    if (mContent)
-        {
-        mContent->updateFromParameters(parameters);
+    if (!displayAdditionalQuery(parameters)) {
+        mDialogType = dialogType(parameters);
+        if (mTitle)
+            {
+            mTitle->updateFromParameters(parameters);
+            }
+        if (mContent)
+            {
+            mContent->updateFromParameters(parameters);
+            }
+        if (prevDialogType != mDialogType) {
+            updateButtons(parameters);
         }
-    if (prevDialogType != mDialogType) {
-        updateButtons(parameters);
-    }
-    if (parameters.contains(KSifUiErrorCode)) {
-        bool ok = false;
-        int errorCode = parameters.value(KSifUiErrorCode).toInt(&ok);
-        if (ok) {
-            mInstallError = errorCode;
-        }
+        prepareForErrorDetails(parameters);
     }
     return true;
 }
@@ -300,13 +298,55 @@
 }
 
 // ----------------------------------------------------------------------------
+// SifUiDialog::prepareForErrorDetails()
+// ----------------------------------------------------------------------------
+//
+void SifUiDialog::prepareForErrorDetails(const QVariantMap &parameters)
+{
+    if (parameters.contains(KSifUiErrorDetails)) {
+        mErrorDetails = parameters.value(KSifUiErrorDetails).toString();
+    }
+    if (parameters.contains(KSifUiErrorCode)) {
+        bool ok = false;
+        int errorCode = parameters.value(KSifUiErrorCode).toInt(&ok);
+        if (ok) {
+            mErrorCode = errorCode;
+        }
+    }
+    if (parameters.contains(KSifUiErrorCodeExtended)) {
+        bool ok = false;
+        int errorCode = parameters.value(KSifUiErrorCodeExtended).toInt(&ok);
+        if (ok) {
+            mExtendedErrorCode = errorCode;
+        }
+    }
+}
+
+// ----------------------------------------------------------------------------
+// SifUiDialog::displayAdditionalQuery()
+// ----------------------------------------------------------------------------
+//
+bool SifUiDialog::displayAdditionalQuery(const QVariantMap &parameters)
+{
+    if (parameters.contains(KSifUiGrantCapabilities)) {
+        SifUiDialogGrantCapabilities *dlg = new SifUiDialogGrantCapabilities(
+            mContent->applicationName(), parameters.value(KSifUiGrantCapabilities));
+        connect(dlg, SIGNAL(accepted()), this, SLOT(handleCapabilitiesGranted()));
+        connect(dlg, SIGNAL(declined()), this, SLOT(handleCapabilitiesDenied()));
+        dlg->setAttribute(Qt::WA_DeleteOnClose, true);
+        dlg->open();
+        return true;
+    }
+    return false;
+}
+
+// ----------------------------------------------------------------------------
 // SifUiDialog::sendResult()
 // ----------------------------------------------------------------------------
 //
 void SifUiDialog::sendResult(SifUiDeviceDialogReturnValue value)
 {
-    QVariant returnValue(value);
-    mResultMap.insert(KSifUiQueryReturnValue, returnValue);
+    mResultMap[KSifUiQueryReturnValue] = QVariant(value);
     emit deviceDialogData(mResultMap);
 }
 
@@ -336,8 +376,8 @@
 //
 void SifUiDialog::handleMemorySelectionChanged(const QChar &driveLetter)
 {
-    QVariant memorySelection(driveLetter);
-    mResultMap.insert(KSifUiSelectedMemory, memorySelection);
+    mResultMap[KSifUiSelectedMemory] = QVariant(driveLetter);
+    emit deviceDialogData(mResultMap);
 }
 
 // ----------------------------------------------------------------------------
@@ -364,12 +404,7 @@
         bool result = request->send();
         if (result) {
             closeDeviceDialog(false);
-        } else {
-            // TODO: proper error handling
-            int error = request->lastError();
-            QString messageText = tr("Unable to open AppLib. Error %1").arg(error);
-            HbMessageBox::warning(messageText);
-        }
+        } // else error silently ignored
         delete request;
     }
 
@@ -382,13 +417,33 @@
 //
 void SifUiDialog::handleErrorDetails()
 {
-    // TODO: show proper error details dialog
-    QString messageText;
-    messageText = tr("Error code %1").arg(mInstallError);
+    QString messageText = mErrorDetails;
 
     if (QFile::exists(KSwiErrorsFile)) {
-        messageText.append(KSwiErrorFormat.arg(mInstallError));
+        messageText.append(KSwiErrorFormat.arg(mErrorCode));
+        if (mExtendedErrorCode) {
+            messageText.append(KSwiErrorFormat.arg(mExtendedErrorCode));
+        }
     }
+
     HbMessageBox::warning(messageText);
 }
 
+// ----------------------------------------------------------------------------
+// SifUiDialog::handleCapabilitiesGranted()
+// ----------------------------------------------------------------------------
+//
+void SifUiDialog::handleCapabilitiesGranted()
+{
+    sendResult(SifUiContinue);
+}
+
+// ----------------------------------------------------------------------------
+// SifUiDialog::handleCapabilitiesDenied()
+// ----------------------------------------------------------------------------
+//
+void SifUiDialog::handleCapabilitiesDenied()
+{
+    sendResult(SifUiCancel);
+}
+
--- a/appinstaller/AppinstUi/sifuidevicedialogplugin/src/sifuidialogcontentwidget.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/appinstaller/AppinstUi/sifuidevicedialogplugin/src/sifuidialogcontentwidget.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -24,12 +24,15 @@
 #include <hbprogressbar.h>
 #include <QPixmap>
 #include <qsysteminfo.h>                    // QSystemStorageInfo
-QTM_USE_NAMESPACE
+#include <qvaluespacepublisher.h>           // QValueSpacePublisher
+#include <qvaluespacesubscriber.h>          // QValueSpaceSubscriber
 #if defined(Q_OS_SYMBIAN)
 #include <driveinfo.h>                      // DriveInfo
 #include <fbs.h>                            // CFbsBitmap
 #endif  // Q_OS_SYMBIAN
 
+QTM_USE_NAMESPACE
+
 const char KSifUiDefaultApplicationIcon[] = "qtg_large_application";
 const char KSifUiErrorIcon[] = "qtg_large_warning";
 
@@ -40,12 +43,29 @@
 const int KAppSizeIndex = 1;
 
 enum TSifUiDriveName {
-    EUnknown,
     EPhoneMemory,
     EMassStorage,
-    EMemoryCard
+    EMemoryCard,
+    EOtherDrive
 };
 
+const char KInitialDefaultDrive = 'C';
+
+// Path and value name for QValueSpacePublisher/QValueSpaceSubscriber.
+const QString KSifUiCenRepPath = "/KCRUIDSifUiDefaults";
+const QString KSifUiCenRepDefaultDrive = "KCRUIDSifUiDefaultDrive";
+
+// TODO: replace with proper logging
+#ifdef _DEBUG
+#define FLOG1(x)        qDebug() << (x)
+#define FLOG2(x,y)      qDebug() << (x) << (y)
+#define FLOG3(x,y,z)    qDebug() << (x) << (y) << (z)
+#else
+#define FLOG1(x)
+#define FLOG2(x,y)
+#define FLOG3(x,y,z)
+#endif
+
 
 // ======== LOCAL FUNCTIONS ========
 
@@ -90,7 +110,7 @@
         return EMemoryCard;
     }
 #endif  // Q_OS_SYMBIAN
-    return EUnknown;
+    return EOtherDrive;
 }
 
 
@@ -105,7 +125,7 @@
         mAppIcon(0), mAppName(0), mAppSize(0),
         mMainLayout(0), mAppDetailsLayout(0), mStackedWidget(0),
         mMemorySelection(0), mProgressBar(0), mErrorText(0),
-        mBitmap(0), mMask(0)
+        mBitmap(0), mMask(0), mPublisher(0), mSubscriber(0)
 {
 }
 
@@ -125,6 +145,8 @@
 //
 void SifUiDialogContentWidget::constructFromParameters(const QVariantMap &parameters)
 {
+    FLOG1("SifUiDialogContentWidget::constructFromParameters");
+
     Q_ASSERT(mMainLayout == 0);
     mMainLayout = new QGraphicsLinearLayout(Qt::Vertical);
 
@@ -158,8 +180,6 @@
 
     Q_ASSERT(mMemorySelection == 0);
     mMemorySelection = new HbComboBox;
-    connect(mMemorySelection, SIGNAL(currentIndexChanged(int)),
-            this, SLOT(handleMemorySelectionChange(int)));
     mStackedWidget->addWidget(mMemorySelection);
 
     Q_ASSERT(mProgressBar == 0);
@@ -187,6 +207,8 @@
 //
 void SifUiDialogContentWidget::updateFromParameters(const QVariantMap &parameters)
 {
+    FLOG1("SifUiDialogContentWidget::updateFromParameters");
+
     // Application icon
     updateAppIcon(parameters);
 
@@ -232,6 +254,8 @@
 //
 void SifUiDialogContentWidget::changeType(SifUiDeviceDialogType type)
 {
+    FLOG2("SifUiDialogContentWidget::changeType", type);
+
     switch (type) {
         case SifUiConfirmationQuery:
             mStackedWidget->setCurrentWidget(mMemorySelection);
@@ -240,7 +264,6 @@
             mStackedWidget->setCurrentWidget(mProgressBar);
             break;
         case SifUiCompleteNote:
-            // TODO: remove mStackedWidget?
             break;
         case SifUiErrorNote:
             mStackedWidget->setCurrentWidget(mErrorText);
@@ -251,15 +274,27 @@
 }
 
 // ----------------------------------------------------------------------------
+// SifUiDialogContentWidget::applicationName()
+// ----------------------------------------------------------------------------
+//
+QString SifUiDialogContentWidget::applicationName() const
+{
+    if (mAppName) {
+        return mAppName->plainText();
+    }
+    return QString();
+}
+
+// ----------------------------------------------------------------------------
 // SifUiDialogContentWidget::handleMemorySelectionChange()
 // ----------------------------------------------------------------------------
 //
 void SifUiDialogContentWidget::handleMemorySelectionChange(int selectedIndex)
 {
-    QChar selectedDrive = mDriveLetterList[selectedIndex][0];
+    FLOG2("SifUiDialogContentWidget::handleMemorySelectionChange", selectedIndex);
 
-    // TODO: save selected drive to cenrep
-
+    QChar selectedDrive = mDriveLetterList[selectedIndex][0];
+    saveSelectedDriveAsDefault( selectedDrive );
     emit memorySelectionChanged( selectedDrive );
 }
 
@@ -278,7 +313,9 @@
             //: confirmation query. %1 is the application name and %2 is the version number.
             //: Version number consist of major, minor, and build numbers.
             //: For example: "Chess (v 1.01(123))".
-            appName = hbTrId("txt_installer_list_appname_version").arg(nameParam, versionParam);
+            // TODO: use hbTrId when arg() starts to work with limited length arguments like "%[99]1"
+            //appName = hbTrId("txt_installer_list_appname_version").arg(nameParam, versionParam);
+            appName = QString("%1 (v %2)").arg(nameParam, versionParam);
         } else {
             appName = nameParam;
         }
@@ -294,8 +331,9 @@
 {
     QString appSize = "";
     if (parameters.contains(KSifUiApplicationSize)) {
-        uint size = parameters.value(KSifUiApplicationSize).toUInt();
-        if (size > 0) {
+        bool ok = false;
+        uint size = parameters.value(KSifUiApplicationSize).toUInt(&ok);
+        if (ok) {
             if (size > KSifUiMega) {
                 //: Application size in SW install confirmation query, %1 is in megabytes
                 appSize = hbTrId("txt_installer_list_appsize_mb").arg(size/KSifUiMega);
@@ -375,6 +413,7 @@
 {
     Q_ASSERT(mAppIcon != 0);
 
+    // TODO: proper icon handling
     if (parameters.contains(KSifUiDialogType) &&
         (parameters.value(KSifUiDialogType).toInt() == SifUiErrorNote)) {
         mAppIcon->setIcon(HbIcon(KSifUiErrorIcon));
@@ -433,13 +472,18 @@
         QString drives = parameters.value(KSifUiMemorySelection).toString();
         mDriveLetterList = drives.split(",");
 
+        QChar defaultDrive = readDefaultSelectedDrive();
+        int defaultDriveIndex = 0;
+
         QStringList driveList;
         QSystemStorageInfo info;
         QStringList volumeList = info.logicalDrives();
         foreach (QString volume, volumeList) {
             if (mDriveLetterList.contains(volume)) {
                 qlonglong size = info.availableDiskSpace(volume);
-                switch (driveName(volume[0])) {
+
+                QChar driveLetter(volume[0]);
+                switch (driveName(driveLetter)) {
                 case EPhoneMemory:
                     if (size > KSifUiMega) {
                         //: Drive name for internal phone memory with megabytes of free space.
@@ -448,7 +492,7 @@
                         //TODO: enable when available
                         //driveList.append(hbTrId("txt_installer_device_memory_mb")
                         //    .arg(volume).arg(size/KSifUiMega));
-                        driveList.append(tr("%1: Device (%L2 MB free)"
+                        driveList.append(tr("%1: Phone mem. (%L2 MB)"
                             ).arg(volume).arg(size/KSifUiMega));
                     } else {
                         //: Drive name for internal phone memory with kilobytes of free space.
@@ -457,10 +501,11 @@
                         //TODO: enable when available
                         //driveList.append(hbTrId("txt_installer_device_memory_kb")
                         //    .arg(volume).arg(size/KSifUiKilo));
-                        driveList.append(tr("%1: Device (%L2 kB free)"
+                        driveList.append(tr("%1: Phone mem. (%L2 kB)"
                             ).arg(volume).arg(size/KSifUiKilo));
                     }
                     break;
+
                 case EMassStorage:
                     if (size > KSifUiMega) {
                         //: Drive name for mass storage with megabytes of free space.
@@ -469,7 +514,7 @@
                         // TODO: enable when available
                         //driveList.append(hbTrId("txt_installer_mass_storage_mb")
                         //    .arg(volume).arg(size/KSifUiMega));
-                        driveList.append(tr("%1: Mass.mem (%L2 MB free)"
+                        driveList.append(tr("%1: Mass.mem (%L2 MB)"
                             ).arg(volume).arg(size/KSifUiMega));
                     } else {
                         //: Drive name for mass storage with kilobytes of free space.
@@ -478,10 +523,11 @@
                         // TODO: enable when available
                         //driveList.append(hbTrId("txt_installer_mass_storage_kb")
                         //    .arg(volume).arg(size/KSifUiKilo));
-                        driveList.append(tr("%1: Mass.mem (%L2 kB free)"
+                        driveList.append(tr("%1: Mass.mem (%L2 kB)"
                             ).arg(volume).arg(size/KSifUiKilo));
                     }
                     break;
+
                 case EMemoryCard:
                     if (size > KSifUiMega) {
                         //: Drive name for memory card with megabytes of free space.
@@ -490,7 +536,7 @@
                         // TODO: enable when available
                         //driveList.append(hbTrId("txt_installer_memory_card_mb")
                         //    .arg(volume).arg(size/KSifUiMega));
-                        driveList.append(tr("%1: Mem.card (%L2 MB free)"
+                        driveList.append(tr("%1: Mem.card (%L2 MB)"
                             ).arg(volume).arg(size/KSifUiMega));
                     } else {
                         //: Drive name for memory card with kilobytes of free space.
@@ -499,21 +545,47 @@
                         // TODO: enable when available
                         //driveList.append(hbTrId("txt_installer_memory_card_kb")
                         //    .arg(volume).arg(size/KSifUiKilo));
-                        driveList.append(tr("%1: Mem.card (%L2 kB free)"
+                        driveList.append(tr("%1: Mem.card (%L2 kB)"
                             ).arg(volume).arg(size/KSifUiKilo));
                     }
                     break;
+
+                case EOtherDrive:
                 default:
+                    if (size > KSifUiMega) {
+                        //: Generic drive name for other removable drives, like
+                        //: USB memories attached via USB OTG adapter.
+                        // TODO: proper localisation needed
+                        driveList.append(tr("%1: Drive (%L2 MB)"
+                            ).arg(volume).arg(size/KSifUiMega));
+                    } else {
+                        //: Generic drive name for other removable drives, like
+                        //: USB memories attached via USB OTG adapter.
+                        // TODO: proper localisation needed
+                        driveList.append(tr("%1: Drive (%L2 kB)"
+                            ).arg(volume).arg(size/KSifUiKilo));
+                    }
                     break;
                 }
+
+                if (driveLetter == defaultDrive) {
+                    defaultDriveIndex = driveList.count() - 1;
+                }
             }
         }
 
+        disconnect(mMemorySelection, SIGNAL(currentIndexChanged(int)),
+            this, SLOT(handleMemorySelectionChange(int)));
         mMemorySelection->setItems(driveList);
+        if (defaultDriveIndex) {
+            FLOG2("SifUiDialogContentWidget::updateMemorySelection, setCurrentIndex",
+                defaultDriveIndex);
+            mMemorySelection->setCurrentIndex(defaultDriveIndex);
+        }
+        connect(mMemorySelection, SIGNAL(currentIndexChanged(int)),
+            this, SLOT(handleMemorySelectionChange(int)));
         mStackedWidget->setCurrentWidget(mMemorySelection);
 
-        // TODO: set selected item, read the default from cenrep
-
         return true;
     }
     return false;
@@ -532,9 +604,12 @@
     }
     if (parameters.contains(KSifUiProgressNoteValue)) {
         int newValue = mProgressBar->progressValue();
-        newValue += parameters.value(KSifUiProgressNoteValue).toInt();
-        mProgressBar->setProgressValue(newValue);
-        progressBarChanged = true;
+        bool ok = false;
+        newValue += parameters.value(KSifUiProgressNoteValue).toInt(&ok);
+        if (ok) {
+            mProgressBar->setProgressValue(newValue);
+            progressBarChanged = true;
+        }
     }
     if (progressBarChanged) {
         mStackedWidget->setCurrentWidget(mProgressBar);
@@ -548,16 +623,9 @@
 //
 bool SifUiDialogContentWidget::updateErrorText(const QVariantMap &parameters)
 {
-    if (parameters.contains(KSifUiErrorCode)) {
-        // TODO: proper error texts
-        bool ok = false;
-        int errorCode = parameters.value(KSifUiErrorCode).toInt(&ok);
-        QString errorText;
-        if (ok) {
-            errorText = tr("Error %1").arg(errorCode);
-        } else {
-            errorText = tr("No error code.");
-        }
+    // TODO: move default error messages (category based) here
+    if (parameters.contains(KSifUiErrorMessage)) {
+        QString errorText = parameters.value(KSifUiErrorMessage).toString();
         mErrorText->setPlainText(errorText);
         mStackedWidget->setCurrentWidget(mErrorText);
         return true;
@@ -565,5 +633,45 @@
     return false;
 }
 
+// ----------------------------------------------------------------------------
+// SifUiDialogContentWidget::saveSelectedDriveAsDefault()
+// ----------------------------------------------------------------------------
+//
+void SifUiDialogContentWidget::saveSelectedDriveAsDefault(const QChar& drive)
+{
+    if (drive != readDefaultSelectedDrive()) {
+        if (!mPublisher) {
+            mPublisher = new QValueSpacePublisher(KSifUiCenRepPath, this);
+        }
+        FLOG2("SifUiDialogContentWidget::saveSelectedDriveAsDefault", drive);
+        // QValueSpacePublisher supports integer and byte array types in Symbian
+        int asciiValue = drive.toAscii();
+        mPublisher->setValue(KSifUiCenRepDefaultDrive, asciiValue);
+        mPublisher->sync();
+    }
+}
 
+// ----------------------------------------------------------------------------
+// SifUiDialogContentWidget::readDefaultSelectedDrive()
+// ----------------------------------------------------------------------------
+//
+QChar SifUiDialogContentWidget::readDefaultSelectedDrive()
+{
+    QChar selectedDrive = KInitialDefaultDrive;
 
+    if (!mSubscriber) {
+        mSubscriber = new QValueSpaceSubscriber(KSifUiCenRepPath, this);
+    }
+    QVariant variant = mSubscriber->value(KSifUiCenRepDefaultDrive);
+    if (variant.isValid() && !variant.isNull()) {
+        bool ok = false;
+        int asciiValue = variant.toInt(&ok);
+        if (ok) {
+            selectedDrive = QChar(asciiValue);
+        }
+    }
+
+    FLOG2("SifUiDialogContentWidget::readDefaultSelectedDrive", selectedDrive);
+    return selectedDrive;
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appinstaller/AppinstUi/sifuidevicedialogplugin/src/sifuidialoggrantcapabilities.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,73 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Grant capabilities dialog in SifUi
+*
+*/
+
+#include <sifuidialoggrantcapabilities.h>   // SifUiDialogGrantCapabilities
+#include <sifuidialoggrantcapabilitiescontent.h> // SifUiDialogGrantCapabilitiesContent
+#include <HbLabel>
+
+
+// ----------------------------------------------------------------------------
+// SifUiDialogGrantCapabilities::SifUiDialogGrantCapabilities()
+// ----------------------------------------------------------------------------
+//
+SifUiDialogGrantCapabilities::SifUiDialogGrantCapabilities(const QString& applicationName,
+    const QVariant &capabilities, QGraphicsItem *parent) : HbDialog(parent)
+{
+    setTimeout(HbPopup::NoTimeout);
+    setDismissPolicy(HbPopup::NoDismiss);
+    setModal(true);
+
+    // TODO: localized UI string needed
+    //HbLabel *title = new HbLabel(hbTrId("txt_permissions_needed"));
+    HbLabel *title = new HbLabel(QString("Permissions needed"));
+    setHeadingWidget(title);
+
+    SifUiDialogGrantCapabilitiesContent *content =
+        new SifUiDialogGrantCapabilitiesContent(applicationName, capabilities);
+    connect(content, SIGNAL(accepted()), this, SLOT(handleAccepted()));
+    connect(content, SIGNAL(rejected()), this, SLOT(handleRejected()));
+    setContentWidget(content);
+}
+
+// ----------------------------------------------------------------------------
+// SifUiDialogGrantCapabilities::~SifUiDialogGrantCapabilities()
+// ----------------------------------------------------------------------------
+//
+SifUiDialogGrantCapabilities::~SifUiDialogGrantCapabilities()
+{
+}
+
+// ----------------------------------------------------------------------------
+// SifUiDialogGrantCapabilities::handleAccepted()
+// ----------------------------------------------------------------------------
+//
+void SifUiDialogGrantCapabilities::handleAccepted()
+{
+    emit accepted();
+    close();
+}
+
+// ----------------------------------------------------------------------------
+// SifUiDialogGrantCapabilities::handleRejected()
+// ----------------------------------------------------------------------------
+//
+void SifUiDialogGrantCapabilities::handleRejected()
+{
+    emit rejected();
+    close();
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appinstaller/AppinstUi/sifuidevicedialogplugin/src/sifuidialoggrantcapabilitiescontent.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,246 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Grant capabilities dialog in SifUi
+*
+*/
+
+#include <sifuidialoggrantcapabilitiescontent.h> // SifUiDialogGrantCapabilitiesContent
+#include <QGraphicsLinearLayout>
+#include <HbLabel>
+#include <HbPushButton>
+#include <HbScrollArea>
+#include <HbAction>
+#include <HbDialog>
+#ifdef Q_OS_SYMBIAN
+#include <s32mem.h>                     // TMemBuf
+#endif // Q_OS_SYMBIAN
+
+const QString KDetailsTextHtmlBeginList = "<html>%1<ul>";
+const QString KDetailsTextHtmlListItem = "<li>%1</li>";
+const QString KDetailsTextHtmlEndList = "</ul></html>";
+
+
+// ----------------------------------------------------------------------------
+// SifUiDialogGrantCapabilitiesContent::~SifUiDialogGrantCapabilitiesContent()
+// ----------------------------------------------------------------------------
+//
+SifUiDialogGrantCapabilitiesContent::SifUiDialogGrantCapabilitiesContent(
+    const QString& applicationName, const QVariant &capabilities, QGraphicsItem *parent)
+    : HbWidget(parent), mCapabilities(), mIsCapabilitiesValid(false)
+{
+    QGraphicsLinearLayout *layout = new QGraphicsLinearLayout(Qt::Vertical);
+
+    HbLabel *label = new HbLabel();
+    //TODO: localized UI string needed
+    //label->setPlainText(hbTrId("txt_").arg(applicationName));
+    label->setPlainText(tr("Application \"%1\" uses capabilities it is not signed for.")
+        .arg(applicationName));
+    label->setTextWrapping(Hb::TextWordWrap);
+    layout->addItem(label);
+    layout->addStretch();
+
+    //TODO: localized UI string needed
+    //HbPushButton *details = new HbPushButton(hbTrId("txt_"));
+    HbPushButton *details = new HbPushButton(tr("View details"));
+    connect(details, SIGNAL(clicked()), this, SLOT(viewDetails()));
+    layout->addItem(details);
+    layout->addStretch();
+
+    HbPushButton *accept = new HbPushButton;
+    //TODO: localized UI string needed
+    //accept->setText(hbTrId("txt_"));
+    accept->setText(tr("I trust the app"));
+    //TODO: localized UI string needed
+    //accept->setAdditionalText(hbTrId("txt_"));
+    accept->setAdditionalText(tr("Grant all permissions"));
+    connect(accept, SIGNAL(clicked()), this, SIGNAL(accepted()));
+    layout->addItem(accept);
+
+    HbPushButton *deny = new HbPushButton;
+    //TODO: localized UI string needed
+    //deny->setText(hbTrId("txt_"));
+    deny->setText(tr("I do not trust"));
+    //TODO: localized UI string needed
+    //deny->setAdditionalText(hbTrId("txt_"));
+    deny->setAdditionalText(tr("Cancel installation"));
+    connect(deny, SIGNAL(clicked()), this, SIGNAL(rejected()));
+    layout->addItem(deny);
+
+    setLayout(layout);
+    setCapabilities(capabilities);
+}
+
+// ----------------------------------------------------------------------------
+// SifUiDialogGrantCapabilitiesContent::~SifUiDialogGrantCapabilitiesContent()
+// ----------------------------------------------------------------------------
+//
+SifUiDialogGrantCapabilitiesContent::~SifUiDialogGrantCapabilitiesContent()
+{
+}
+
+// ----------------------------------------------------------------------------
+// SifUiDialogGrantCapabilitiesContent::viewDetails()
+// ----------------------------------------------------------------------------
+//
+void SifUiDialogGrantCapabilitiesContent::viewDetails()
+{
+    HbDialog *detailsDialog= new HbDialog();
+    detailsDialog->setAttribute(Qt::WA_DeleteOnClose, true);
+    detailsDialog->setTimeout(HbPopup::NoTimeout);
+    detailsDialog->setDismissPolicy(HbDialog::NoDismiss);
+    detailsDialog->setModal(true);
+
+    // TODO: localised UI string needed
+    QString detailsTitle = tr("Permission details");
+    detailsDialog->setHeadingWidget(new HbLabel(detailsTitle));
+
+    HbScrollArea *scrollArea = new HbScrollArea(this);
+
+    // TODO: localized UI string needed
+    QString detailsText = KDetailsTextHtmlBeginList.arg("The application has requested permissions to:");
+    QStringListIterator capaIter(mCapabilities);
+    while (capaIter.hasNext()) {
+        detailsText.append(KDetailsTextHtmlListItem.arg(capaIter.next()));
+    }
+    detailsText.append(KDetailsTextHtmlEndList);
+
+    HbLabel *detailsTextLabel = new HbLabel;
+    detailsTextLabel->setHtml(detailsText);
+    detailsTextLabel->setTextWrapping(Hb::TextWordWrap);
+
+    scrollArea->setContentWidget(detailsTextLabel);
+    scrollArea->setVerticalScrollBarPolicy(HbScrollArea::ScrollBarAsNeeded);
+    detailsDialog->setContentWidget(scrollArea);
+
+    HbAction *closeAction = new HbAction(hbTrId("txt_common_button_ok"));
+    detailsDialog->addAction(closeAction);
+
+    detailsDialog->show();
+}
+
+// ----------------------------------------------------------------------------
+// SifUiDialogGrantCapabilitiesContent::setCapabilities()
+// ----------------------------------------------------------------------------
+//
+void SifUiDialogGrantCapabilitiesContent::setCapabilities(const QVariant &capabilities)
+{
+#ifdef Q_OS_SYMBIAN
+    QByteArray byteArray = capabilities.toByteArray();
+    const TPtrC8 ptr(reinterpret_cast<const TText8*>(byteArray.constData()), byteArray.length());
+    QT_TRAP_THROWING(setCapabilitiesSymbianL(ptr));
+#endif  // Q_OS_SYMBIAN
+
+    if (!mIsCapabilitiesValid) {
+        emit rejected();
+    }
+}
+
+#ifdef Q_OS_SYMBIAN
+// ----------------------------------------------------------------------------
+// SifUiDialogGrantCapabilitiesContent::setCapabilitiesSymbianL()
+// ----------------------------------------------------------------------------
+//
+void SifUiDialogGrantCapabilitiesContent::setCapabilitiesSymbianL( const TDesC8& aBuf )
+{
+    TMemBuf buf;
+    TUint8* ptr = const_cast<TUint8*>(aBuf.Ptr());
+    buf.Set(ptr, ptr + aBuf.Size(), MStreamBuf::ERead);
+    RReadStream readStream(&buf);
+    CleanupClosePushL(readStream);
+    TCapabilitySet capabilitySet;
+    TPckg<TCapabilitySet> capabilitySetPackage( capabilitySet );
+    readStream.ReadL(capabilitySetPackage);
+    CleanupStack::PopAndDestroy(&readStream);
+
+    mIsCapabilitiesValid = true;
+    for( TInt i = 0; i < ECapability_HardLimit && mIsCapabilitiesValid; i++ ) {
+        const TCapability capability( static_cast<TCapability>(i) );
+        if( capabilitySet.HasCapability(capability) ) {
+            QT_TRYCATCH_LEAVING( mCapabilities.append(capabilityName(capability)) );
+        }
+    }
+}
+
+// ----------------------------------------------------------------------------
+// SifUiDialogGrantCapabilitiesContent::capabilityName()
+// ----------------------------------------------------------------------------
+//
+QString SifUiDialogGrantCapabilitiesContent::capabilityName( const TCapability aCapability )
+{
+    QString name;
+
+    switch( aCapability ) {
+    case ECapabilityPowerMgmt:
+        // TODO: is this user-grantable?
+        name = tr("ECapabilityPowerMgmt");
+        break;
+    case ECapabilityReadDeviceData:
+        // TODO: is this user-grantable?
+        name = tr("ECapabilityReadDeviceData");
+        break;
+    case ECapabilityWriteDeviceData:
+        // TODO: is this user-grantable?
+        name = tr("ECapabilityWriteDeviceData");
+        break;
+    case ECapabilityTrustedUI:
+        // TODO: is this user-grantable?
+        name = tr("ECapabilityTrustedUI");
+        break;
+    case ECapabilityProtServ:
+        // TODO: is this user-grantable?
+        name = tr("ECapabilityProtServ");
+        break;
+    case ECapabilitySwEvent:
+        // TODO: is this user-grantable?
+        name = tr("ECapabilitySwEvent");
+        break;
+    case ECapabilityNetworkServices:
+        // TODO: localized UI string needed
+        name = tr("Make network connections or phone calls");
+        break;
+    case ECapabilityLocalServices:
+        // TODO: localized UI string needed
+        name = tr("Connect using local connectivity");
+        break;
+    case ECapabilityReadUserData:
+        // TODO: localized UI string needed
+        name = tr("Read user's personal data");
+        break;
+    case ECapabilityWriteUserData:
+        // TODO: localized UI string needed
+        name = tr("Modify user's personal data");
+        break;
+    case ECapabilityLocation:
+        // TODO: localized UI string needed
+        name = tr("Access the location information");
+        break;
+    case ECapabilitySurroundingsDD:
+        // TODO: is this user-grantable?
+        name = tr("ECapabilitySurroundingsDD");
+        break;
+    case ECapabilityUserEnvironment:
+        // TODO: localized UI string needed
+        name = tr("Access user environment");
+        break;
+
+    // Other capabilities are not user-grantable
+    default:
+        mIsCapabilitiesValid = false;
+        break;
+    }
+
+    return name;
+}
+#endif  // Q_OS_SYMBIAN
+
--- a/appinstaller/AppinstUi/sifuidevicedialogplugin/src/sifuidialogtitlewidget.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/appinstaller/AppinstUi/sifuidevicedialogplugin/src/sifuidialogtitlewidget.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -23,7 +23,7 @@
 #include <hbpushbutton.h>
 #include <hbmessagebox.h>
 
-const char KSifUiCertTrusted[]    = "qtg_small_secure";
+const char KSifUiCertTrusted[]    = "qtg_small_lock";
 const char KSifUiCertNotTrusted[] = "qtg_small_untrusted";
 
 
@@ -75,7 +75,8 @@
 // SifUiDialogTitleWidget::defaultTitle()
 // ----------------------------------------------------------------------------
 //
-QString SifUiDialogTitleWidget::defaultTitle(SifUiDeviceDialogType type)
+QString SifUiDialogTitleWidget::defaultTitle(SifUiDeviceDialogType type,
+        SifUiInstallingPhase phase)
 {
     QString title;
     switch (type) {
@@ -85,9 +86,21 @@
             title = hbTrId("txt_installer_title_install");
             break;
         case SifUiProgressNote:
-            //: Progress note title. Installation is going on and progress bar
-            //: shows how it proceeds.
-            title = hbTrId("txt_installer_title_installing");
+            switch (phase) {
+                case SifUiCheckingCerts:
+                    //: Progress note title. Installer validates certificates online.
+                    //: This may take some time.
+                    //TODO: localised UI string needed
+                    title = hbTrId("Checking certificate validity");
+                    break;
+                case SifUiInstalling:
+                case SifUiDownloading:
+                default:
+                    //: Progress note title. Installation is going on and progress bar
+                    //: shows how it proceeds.
+                    title = hbTrId("txt_installer_title_installing");
+                    break;
+            }
             break;
         case SifUiCompleteNote:
             //: Installation complete note title. Indicates that installation
@@ -116,7 +129,15 @@
         titleText = parameters.value(KSifUiDialogTitle).toString();
     } else {
         SifUiDeviceDialogType type = SifUiDialog::dialogType(parameters);
-        titleText = defaultTitle(type);
+        SifUiInstallingPhase progressPhase = SifUiInstalling;
+        if (parameters.contains(KSifUiProgressNotePhase)) {
+            bool ok = false;
+            int i = parameters.value(KSifUiProgressNotePhase).toInt(&ok);
+            if (ok) {
+                progressPhase = static_cast<SifUiInstallingPhase>(i);
+            }
+        }
+        titleText = defaultTitle(type, progressPhase);
     }
     if (mTitle) {
         if (titleText != mTitle->plainText()) {
--- a/appinstaller/AppinstUi/sifuiinstallindicatorplugin/inc/sifuiinstallindicator.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/appinstaller/AppinstUi/sifuiinstallindicatorplugin/inc/sifuiinstallindicator.h	Wed Aug 18 09:55:45 2010 +0300
@@ -26,11 +26,11 @@
 QTM_END_NAMESPACE
 
 // Variant map keys for parameters
-const QString KSifUiInstallIndicatorAppNameKey = "name";    // QString
-const QString KSifUiInstallIndicatorPhaseKey = "phase";     // int (enum Phase)
-const QString KSifUiInstallIndicatorProgressKey = "prog";   // int (0..100)
-const QString KSifUiInstallIndicatorCompleteKey = "done";   // int (KErrNone or error code)
-const QString KSifUiInstallIndicatorIconKey = "icon";       // TBD
+const QString KSifUiInstallIndicatorAppName = "name";       // QString
+const QString KSifUiInstallIndicatorPhase = "phase";        // int (enum Phase)
+const QString KSifUiInstallIndicatorProgress = "prog";      // int (0..100)
+const QString KSifUiInstallIndicatorComplete = "done";      // int (KErrNone or error code)
+const QString KSifUiInstallIndicatorIcon = "icon";          // TODO: TBD
 
 
 /**
--- a/appinstaller/AppinstUi/sifuiinstallindicatorplugin/rom/sifuiinstallindicatorplugin.iby	Tue Jul 06 14:23:31 2010 +0300
+++ b/appinstaller/AppinstUi/sifuiinstallindicatorplugin/rom/sifuiinstallindicatorplugin.iby	Wed Aug 18 09:55:45 2010 +0300
@@ -19,8 +19,8 @@
 #define SIFUIINSTALLINDICATORPLUGIN_IBY
 
 file=ABI_DIR\UREL\sifuiinstallindicatorplugin.dll SHARED_LIB_DIR\sifuiinstallindicatorplugin.dll UNPAGED
-data=\epoc32\data\z\resource\plugins\indicators\sifuiinstallindicatorplugin.qtplugin \resource\plugins\indicators\sifuiinstallindicatorplugin.qtplugin
-data=\epoc32\data\z\resource\qt\crml\sifuiinstallindicatorplugin.qcrml \resource\qt\crml\sifuiinstallindicatorplugin.qcrml
+data=DATAZ_\resource\plugins\indicators\sifuiinstallindicatorplugin.qtplugin \resource\plugins\indicators\sifuiinstallindicatorplugin.qtplugin
+data=DATAZ_\resource\qt\crml\sifuiinstallindicatorplugin.qcrml \resource\qt\crml\sifuiinstallindicatorplugin.qcrml
 
 #endif  // SIFUIINSTALLINDICATORPLUGIN_IBY
 
--- a/appinstaller/AppinstUi/sifuiinstallindicatorplugin/sifuiinstallindicatorplugin.qcrml	Tue Jul 06 14:23:31 2010 +0300
+++ b/appinstaller/AppinstUi/sifuiinstallindicatorplugin/sifuiinstallindicatorplugin.qcrml	Wed Aug 18 09:55:45 2010 +0300
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <repository target="RProperty" uidValue="0x20022FC5">
-<key int="0x2002E690" ref="/SifUiInstallIndicator/Status"></key>
+    <key ref="/SifUiInstallIndicator/Status" int="0x2002E690"/>
 </repository>
--- a/appinstaller/AppinstUi/sifuiinstallindicatorplugin/src/sifuiinstallindicator.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/appinstaller/AppinstUi/sifuiinstallindicatorplugin/src/sifuiinstallindicator.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -114,7 +114,7 @@
                     data = tr("Installed");
                 }
             } else {
-                switch(mPhase) {
+                switch (mPhase) {
                     case Installing:
                         //: Indicates that application installation is ongoing.
                         // TODO: localized UI string needed
@@ -140,10 +140,19 @@
             if (mIsComplete) {
                 data = mAppName;
             } else {
-                if (!mAppName.isEmpty()) {
-                    //: Application name %1 followed by installation progress %L2
-                    // TODO: localized UI string needed
-                    data = tr("%1 (%L2 %)").arg(mAppName).arg(mProgress);
+                switch (mPhase) {
+                    case Installing:
+                    case Downloading:
+                        if (!mAppName.isEmpty()) {
+                            //: Application name %1 followed by installation progress %L2
+                            // TODO: localized UI string needed
+                            data = tr("%1 (%L2 %)").arg(mAppName).arg(mProgress);
+                        }
+                        break;
+                    case CheckingCerts:
+                    default:
+                        data = mAppName;
+                        break;
                 }
             }
             break;
@@ -195,19 +204,19 @@
             QMapIterator<QString,QVariant> iter(map);
             while (iter.hasNext()) {
                 iter.next();
-                if (iter.key() == KSifUiInstallIndicatorAppNameKey) {
+                if (iter.key() == KSifUiInstallIndicatorAppName) {
                     mAppName = iter.value().toString();
-                } else if (iter.key() == KSifUiInstallIndicatorPhaseKey) {
+                } else if (iter.key() == KSifUiInstallIndicatorPhase) {
                     int value = Installing;
                     getIntValue(iter.value(), value);
                     mPhase = static_cast<Phase>(value);
-                } else if (iter.key() == KSifUiInstallIndicatorProgressKey) {
+                } else if (iter.key() == KSifUiInstallIndicatorProgress) {
                     getIntValue(iter.value(), mProgress);
-                } else if (iter.key() == KSifUiInstallIndicatorCompleteKey) {
+                } else if (iter.key() == KSifUiInstallIndicatorComplete) {
                     mIsComplete = true;
                     mErrorCode = KErrNone;
                     getIntValue(iter.value(), mErrorCode);
-                } else if (iter.key() == KSifUiInstallIndicatorIconKey) {
+                } else if (iter.key() == KSifUiInstallIndicatorIcon) {
                     // TODO: icon?
                 } else {
                     // ignore other types
--- a/appinstaller/AppinstUi/sisxsifplugin/group/sisxsifplugin.mmp	Tue Jul 06 14:23:31 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/group/sisxsifplugin.mmp	Wed Aug 18 09:55:45 2010 +0300
@@ -59,5 +59,8 @@
 LIBRARY         featmgr.lib             // FeatureManager
 LIBRARY         pkixcertbase.lib        // CPKIXValidationResultBase
 LIBRARY         x509.lib                // TValidationStatus
+LIBRARY         centralrepository.lib   // CRepository
+LIBRARY         HbWidgets.lib           // CHbDeviceMessageBoxSymbian
+LIBRARY         syslangutil.lib         // GetInstalledLanguages
 
 SMPSAFE
--- a/appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifpluginactiveimpl.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifpluginactiveimpl.h	Wed Aug 18 09:55:45 2010 +0300
@@ -35,10 +35,11 @@
 
 namespace Usif
 {
+    class CComponentEntry;
     class CSisxSifPluginUiHandlerBase;
     class CSisxSifPluginInstallParams;
     class CSisxSifPluginErrorHandler;
-
+    
     /**
      *  SISX SIF plugin active implementation
      *  Universal Software Install Framework (USIF) plugin for native SISX
@@ -97,12 +98,16 @@
         void SetFileL( const TDesC& aFileName );
         void SetFile( RFile& aFileHandle );
         TComponentId GetLastInstalledComponentIdL();
+        void GetComponentAndUidL( TComponentId aComponentId, CComponentEntry& aEntry, TUid& aUid ) const;
         TBool RequiresUserCapabilityL( const CComponentInfo::CNode& aRootNode );
+        void SetInstallPrefsRevocationServerUriL( const TDesC& aUri );
+        void UpdateInstallPrefsForPerformingOcspL();
         void StartInstallingL();
         void StartSilentInstallingL();
         void StartSilentUninstallingL();
         void FinalizeInstallationL();
         void UpdateStartupListL();
+        void FillDeviceSupportedLanguagesL();
 
     private:    // data
         RFs iFs;
@@ -134,6 +139,7 @@
             ERunningOperation,
             EPostprocessing
             } iPhase;
+        RArray<TInt> iDeviceSupportedLanguages;
         };
 
 }   // namespace Usif
--- a/appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifpluginerrors.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifpluginerrors.h	Wed Aug 18 09:55:45 2010 +0300
@@ -20,10 +20,16 @@
 
 enum TSisxSifPluginErrors
     {
-    ETrustedUICapabilityRequired = 1,       // TrustedUI capability required
-    ENeedsAllowUntrustedParameter = 2,      // AllowUntrusted parameter needed
-    ENeedsGrantCapabilitiesParameter = 3,   // GrantCapabilities parameter needed
-    EAllFilesCapabilityRequired = 4         // AllFiles capability required
+    ESifUiTrustedUICapabilityRequired = 1,      // TrustedUI capability required.
+    ESifUIAllFilesCapabilityRequired = 2,       // AllFiles capability required.
+    ESifUiNeedsAllowUntrustedParameter = 3,     // Cannot install untrusted package without AllowUntrusted parameter.
+    ESifUiNeedsPackageInfoParameter = 4,        // Cannot install package displaying infos without PackageInfo parameter.
+    ESifUiNeedsAllowAppBreakDependencyParameter = 5, // Uninstall breaks dependencies. Cannot uninstall without AllowAppBreakDependency parameter.
+    ESifUiNeedsAllowAppShutdownParameter = 6,   // Application is running. Cannot uninstall without AllowAppShutdown parameter.
+    ESifUiNeedsAllowIncompatibleParameter = 7,  // Cannot install incompatible package without AllowIncompatible parameter.
+    ESifUiNeedsAllowOverwriteParameter = 8,     // Cannot overwrite existing file which is not part of any package without AllowOverwrite parameter.
+    ESifUiNeedsGrantCapabilitiesParameter = 9,  // Cannot install package requesting user capabilities without GrantCapabilities parameter.
+    ESifUiCannotOverwriteFile = 99              // Cannot overwrite file
     };
 
 #endif // SISXSIFPLUGINERRORS_H
--- a/appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifpluginuihandler.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifpluginuihandler.h	Wed Aug 18 09:55:45 2010 +0300
@@ -24,6 +24,7 @@
 class CSifUi;
 class CSifUiAppInfo;
 class CSisxSifUiSelectionCache;
+enum CSifUi::TInstallingPhase;
 
 
 namespace Usif
@@ -101,20 +102,16 @@
         void AddCertificatesL( RPointerArray<Swi::CCertificateInfo>& aCertificates,
                 RPointerArray<CPKIXValidationResultBase>& aPkixResults );
         CSifUiAppInfo* GetAppInfoLC( const Swi::CAppInfo& aAppInfo );
+        void ShowProgressL( const Swi::CAppInfo& aAppInfo, TInt aProgressBarFinalValue,
+                CSifUi::TInstallingPhase aPhase );
+        TBool ShowConfirmationL( const Swi::CAppInfo& aAppInfo );
 
     private:    // data
-        enum TMode
-            {
-            EModeUndefined,
-            EModeInstall,
-            EModeUninstall
-            } iMode;
         CSifUi* iSifUi;
         CSisxSifUiSelectionCache* iSelectionCache;
         CApaMaskedBitmap* iLogo;
         TBool iQuestionIncompatibleDisplayed;
         RArray<TInt> iSelectableDrives;
-        TInt iProgressBarFinalValue;
         };
 
 }   // namespace Usif
--- a/appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifpluginuihandlerbase.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifpluginuihandlerbase.h	Wed Aug 18 09:55:45 2010 +0300
@@ -28,6 +28,7 @@
 
 namespace Usif
 {
+    class CComponentEntry;
     class CSisxSifPluginInstallParams;
     class CSisxSifPluginErrorHandler;
 
@@ -50,13 +51,21 @@
         void SetInstallParamsL( const CSisxSifPluginInstallParams& aInstallParams );
         void SetMaxInstalledSize( TInt aSize );
         void SetDriveSelectionRequired( TBool aIsRequired );
+        TBool IsOcspMandatoryL() const;
+
+        // functions to publish operation progress
         void PublishStartL( const CComponentInfo::CNode& aRootNode );
-        void PublishProgressL( TSifOperationPhase aPhase, TSifOperationSubPhase aSubPhase,
-                TInt aCurrentProgress, TInt aTotal );
-        void PublishCompletionL( const CSisxSifPluginErrorHandler& aError );
+        void PublishStartL( const CComponentEntry& aEntry );
+        void PublishProgressL( TSifOperationSubPhase aSubPhase );
+        void PublishCompletionL();
 
     protected:  // new functions
-        void SetDisplayErrorL( Swi::TErrorDialog aType, const TDesC& aParam );
+        void SetErrorL( TInt aErrorCode, TInt aExtErrorCode );
+        void SetErrorL( TInt aErrorCode, TInt aExtErrorCode, const TDesC& aErrMsgDetails );
+        void SetErrorSwiErrorL( Swi::TErrorDialog aType, const TDesC& aParam );
+        void SetOcspErrorL( Swi::TRevocationDialogMessage aMessage );
+        TBool ShowQuestionL( const TDesC& aText ) const;
+        void ShowQuestionWithContinueL( const TDesC& aText ) const;
 
     protected:	// data
         RFs& iFs;
@@ -64,8 +73,13 @@
         TInt iMaxInstalledSize;
         TBool iIsDriveSelectionRequired;
         CSisxSifPluginInstallParams* iInstallParams;
+
+        // members for publishing operation progress
+        CPublishSifOperationInfo* iPublishSifOperationInfo;
+        TSifOperationPhase iOperationPhase;
         HBufC* iGlobalComponentId;
-        CPublishSifOperationInfo* iPublishSifOperationInfo;
+        TInt iProgressBarCurrentValue;
+        TInt iProgressBarFinalValue;
         };
 
 }   // namespace Usif
--- a/appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginactiveimpl.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginactiveimpl.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -30,8 +30,11 @@
 #include <swi/sisregistrysession.h>         // RSisRegistrySession
 #include "sisregistrywritablesession.h"     // RSisRegistryWritableSession
 #include <e32property.h>                    // RProperty
+#include <centralrepository.h>              // CRepository
 #include <sacls.h>                          // KUidSwiLatestInstallation
+#include <SWInstallerInternalCRKeys.h>      // KCRUidSWInstallerSettings
 #include <featmgr.h>                        // FeatureManager
+#include <syslangutil.h>                    // GetInstalledLanguages
 
 // TODO: replace with proper logging
 #ifdef _DEBUG
@@ -80,6 +83,7 @@
     delete iAsyncLauncher;
     delete iUiHandler;
     delete iInstallPrefs;
+    iDeviceSupportedLanguages.Reset();
     iInputParams = NULL;    // not owned
     iOutputParams = NULL;   // not owned
     delete iInstallParams;
@@ -158,6 +162,7 @@
         case EUninstall:
             __ASSERT_DEBUG( iPhase == ERunningOperation, Panic( ESisxSifInternalError ) );
             UpdateStartupListL();
+            iUiHandler->PublishCompletionL();
             CompleteClientRequest( KErrNone );
             break;
 
@@ -346,7 +351,7 @@
 	if( !aSecurityContext.HasCapability( ECapabilityTrustedUI ) )
 		{
 		FLOG( _L( "CSisxSifPluginActiveImpl::Uninstall, missing ECapabilityTrustedUI") );
-		iErrorHandler->SetExtendedErrorCode( ETrustedUICapabilityRequired );
+		iErrorHandler->SetExtendedErrorCode( ESifUiTrustedUICapabilityRequired );
 		CompleteClientRequest( KErrPermissionDenied );
 		return;
 		}
@@ -589,7 +594,7 @@
         if( !aSecurityContext.HasCapability( ECapabilityTrustedUI ) )
             {
             FLOG( _L("CSisxSifPluginActiveImpl::Install, missing ECapabilityTrustedUI") );
-            iErrorHandler->SetExtendedErrorCode( ETrustedUICapabilityRequired );
+            iErrorHandler->SetExtendedErrorCode( ESifUiTrustedUICapabilityRequired );
             CompleteClientRequest( KErrPermissionDenied );
             return;
             }
@@ -629,25 +634,13 @@
     {
     CommonRequestPreambleL( aInputParams, aOutputParams, aStatus );
 
-    RSoftwareComponentRegistry scrSession;
-    User::LeaveIfError( scrSession.Connect() );
-    CleanupClosePushL( scrSession );
+    TUid uid;
+    CComponentEntry *entry = CComponentEntry::NewLC();
+    GetComponentAndUidL( aComponentId, *entry, uid );
+    iUiHandler->PublishStartL( *entry );
+    CleanupStack::PopAndDestroy( entry );
 
-    CPropertyEntry* propertyEntry = scrSession.GetComponentPropertyL( aComponentId, KCompUid );
-    CleanupStack::PushL( propertyEntry );
-    CIntPropertyEntry* intPropertyEntry = dynamic_cast< CIntPropertyEntry* >( propertyEntry );
-    FLOG_2( _L("CSisxSifPluginActiveImpl::DoUninstallL, component %d, property 0x%08x"),
-            aComponentId, intPropertyEntry );
-    if( !intPropertyEntry )
-        {
-        FLOG( _L("CSisxSifPluginActiveImpl: UID property not found ERROR") );
-        User::Leave( KErrNotFound );
-        }
-
-    TUid objectId = TUid::Uid( intPropertyEntry->IntValue() );
-    CleanupStack::PopAndDestroy( 2, &scrSession );      // propertyEntry, scrSession
-
-    iAsyncLauncher->UninstallL( *iUiHandler, objectId, iStatus );
+    iAsyncLauncher->UninstallL( *iUiHandler, uid, iStatus );
 
     iOperation = EUninstall;
     iPhase = ERunningOperation;
@@ -711,13 +704,12 @@
         {
         iErrorHandler->FillOutputParamsL( *iOutputParams );
         }
+    iUiHandler->PublishCompletionL();
 
     if( aError != KErrNone && aError != KErrCancel )
         {
         iUiHandler->DisplayFailedL( *iErrorHandler );
         }
-
-    iUiHandler->PublishCompletionL( *iErrorHandler );
     }
 
 // ---------------------------------------------------------------------------
@@ -773,6 +765,45 @@
     }
 
 // ---------------------------------------------------------------------------
+// CSisxSifPluginActiveImpl::GetComponentAndUidL()
+// ---------------------------------------------------------------------------
+//
+void CSisxSifPluginActiveImpl::GetComponentAndUidL( TComponentId aComponentId,
+        CComponentEntry& aEntry, TUid& aUid ) const
+    {
+    FLOG_1( _L("CSisxSifPluginActiveImpl::GetComponentAndUidL, component %d"), aComponentId );
+
+    RSoftwareComponentRegistry scrSession;
+    User::LeaveIfError( scrSession.Connect() );
+    CleanupClosePushL( scrSession );
+
+    if( scrSession.GetComponentL( aComponentId, aEntry ) )
+        {
+        FLOG( _L("CSisxSifPluginActiveImpl::GetComponentAndUidL, entry found") );
+
+        CPropertyEntry* propertyEntry = scrSession.GetComponentPropertyL( aComponentId, KCompUid );
+        CleanupStack::PushL( propertyEntry );
+
+        CIntPropertyEntry* intPropertyEntry = dynamic_cast< CIntPropertyEntry* >( propertyEntry );
+        if( !intPropertyEntry )
+            {
+            FLOG( _L("CSisxSifPluginActiveImpl::GetComponentUidL, UID property not found") );
+            User::Leave( KErrNotFound );
+            }
+        aUid = TUid::Uid( intPropertyEntry->IntValue() );
+
+        CleanupStack::PopAndDestroy( propertyEntry );
+        }
+    else
+        {
+        FLOG( _L("CSisxSifPluginActiveImpl::GetComponentAndUidL, entry not found") );
+        User::Leave( KErrNotFound );
+        }
+
+    CleanupStack::PopAndDestroy( &scrSession );
+    }
+
+// ---------------------------------------------------------------------------
 // CSisxSifPluginActiveImpl::RequiresUserCapabilityL()
 // ---------------------------------------------------------------------------
 //
@@ -795,6 +826,65 @@
     }
 
 // ---------------------------------------------------------------------------
+// CSisxSifPluginActiveImpl::SetInstallPrefsRevocationServerUriL()
+// ---------------------------------------------------------------------------
+//
+void CSisxSifPluginActiveImpl::SetInstallPrefsRevocationServerUriL( const TDesC& aUri )
+    {
+    if( aUri.Length() )
+        {
+        HBufC8* uriBuf = HBufC8::NewLC( aUri.Length() );
+        TPtr8 uri( uriBuf->Des() );
+        uri.Copy( aUri );
+        iInstallPrefs->SetRevocationServerUriL( uri );
+        CleanupStack::PopAndDestroy( uriBuf );
+        }
+    else
+        {
+        iInstallPrefs->SetRevocationServerUriL( KNullDesC8 );
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// CSisxSifPluginActiveImpl::UpdateInstallPrefsForPerformingOcspL()
+// ---------------------------------------------------------------------------
+//
+void CSisxSifPluginActiveImpl::UpdateInstallPrefsForPerformingOcspL()
+    {
+    if( IsSilentMode() )
+        {
+        TBool performOcsp( iInstallParams->PerformOCSP() != ENotAllowed );
+        iInstallPrefs->SetPerformRevocationCheck( performOcsp );
+
+        if( performOcsp )
+            {
+            SetInstallPrefsRevocationServerUriL( iInstallParams->OCSPUrl() );
+            }
+        }
+    else
+        {
+        CRepository* cenRep = CRepository::NewLC( KCRUidSWInstallerSettings );
+
+        TInt ocspProcedure = ESWInstallerOcspProcedureOff;
+        (void)cenRep->Get( KSWInstallerOcspProcedure, ocspProcedure );
+        TBool performOcsp( ocspProcedure != ESWInstallerOcspProcedureOff );
+        iInstallPrefs->SetPerformRevocationCheck( performOcsp );
+
+        if( performOcsp )
+            {
+            HBufC* ocspUrlBuf = HBufC::NewLC(
+                    NCentralRepositoryConstants::KMaxUnicodeStringLength );
+            TPtr ocspUrl( ocspUrlBuf->Des() );
+            (void)cenRep->Get( KSWInstallerOcspDefaultURL, ocspUrl );
+            SetInstallPrefsRevocationServerUriL( ocspUrl );
+            CleanupStack::PopAndDestroy( ocspUrlBuf );
+            }
+
+        CleanupStack::PopAndDestroy( cenRep );
+        }
+    }
+
+// ---------------------------------------------------------------------------
 // CSisxSifPluginActiveImpl::StartInstallingL()
 // ---------------------------------------------------------------------------
 //
@@ -808,13 +898,18 @@
 
 	iUiHandler->PublishStartL( rootNode );
 
+	UpdateInstallPrefsForPerformingOcspL();
+	FillDeviceSupportedLanguagesL();
+
     if( iFileHandle )
         {
-        iAsyncLauncher->InstallL( *iUiHandler, *iFileHandle, *iInstallPrefs, iStatus );
+        iAsyncLauncher->InstallL( *iUiHandler, *iFileHandle, *iInstallPrefs,
+                iDeviceSupportedLanguages, iStatus );
         }
     else if( iFileName )
         {
-        iAsyncLauncher->InstallL( *iUiHandler, *iFileName, *iInstallPrefs, iStatus );
+        iAsyncLauncher->InstallL( *iUiHandler, *iFileName, *iInstallPrefs,
+                iDeviceSupportedLanguages, iStatus );
         }
     else
         {
@@ -879,8 +974,8 @@
         iOutputParams->AddIntL( KSifOutParam_ComponentId, componentId );
         }
 
+    iUiHandler->PublishCompletionL();
 	iUiHandler->DisplayCompleteL();
-    iUiHandler->PublishCompletionL( *iErrorHandler );
     }
 
 // ---------------------------------------------------------------------------
@@ -921,3 +1016,30 @@
         }
     }
 
+// ---------------------------------------------------------------------------
+// CSisxSifPluginActiveImpl::FillDeviceSupportedLanguagesL()
+// ---------------------------------------------------------------------------
+//
+void CSisxSifPluginActiveImpl::FillDeviceSupportedLanguagesL()
+    {
+    FLOG( _L("CSisxSifPluginActiveImpl::FillDeviceSupportedLanguagesL, begin") );
+
+    CArrayFixFlat<TInt>* installedLanguages = NULL;
+    TInt err = SysLangUtil::GetInstalledLanguages( installedLanguages, &iFs );
+    CleanupStack::PushL( installedLanguages );
+    User::LeaveIfError( err );
+    if( installedLanguages )
+        {
+        iDeviceSupportedLanguages.Reset();
+        for( TInt index = 0; index < installedLanguages->Count(); index++ )
+            {
+            TInt language = (*installedLanguages)[ index ];
+            FLOG_1( _L("CSisxSifPluginActiveImpl::FillDeviceSupportedLanguagesL: %d"), language );
+            iDeviceSupportedLanguages.AppendL( language );
+            }
+        }
+    CleanupStack::PopAndDestroy( installedLanguages );
+
+    FLOG( _L("CSisxSifPluginActiveImpl::FillDeviceSupportedLanguagesL, end") );
+    }
+
--- a/appinstaller/AppinstUi/sisxsifplugin/src/sisxsifplugininstallparams.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/src/sisxsifplugininstallparams.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -308,9 +308,8 @@
 void CSisxSifPluginInstallParams::GetStringParamL( const COpaqueNamedParams& aParams,
         const TDesC& aParamName, HBufC*& aBuf )
     {
-    TPtr value( NULL, 0 );
-    TRAPD( err, value = aParams.StringByNameL( aParamName ) );
-    if( !err && value.Length() )
+    TPtrC value( aParams.StringByNameL( aParamName ) );
+    if( value.Length() )
         {
         if( aBuf )
             {
--- a/appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginuihandler.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginuihandler.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -23,6 +23,7 @@
 #include <sifui.h>                      // CSifUi
 #include <sifuiappinfo.h>               // CSifUiAppInfo
 #include <sifuicertificateinfo.h>       // CSifUiCertificateInfo
+#include <sifuierrorinfo.h>             // CSifUiErrorInfo
 #include <bautils.h>                    // BaflUtils
 #include <driveinfo.h>                  // DriveInfo
 #include <featmgr.h>                    // FeatureManager
@@ -78,11 +79,32 @@
 // ---------------------------------------------------------------------------
 //
 TBool CSisxSifPluginUiHandler::DisplayTextL( const Swi::CAppInfo& /*aAppInfo*/,
-        Swi::TFileTextOption /*aOption*/, const TDesC& /*aText*/ )
+        Swi::TFileTextOption aOption, const TDesC& aText )
     {
     FLOG( _L("CSisxSifPluginUiHandler::DisplayTextL") );
+    TBool okToContinue = EFalse;
 
-    return ETrue;
+    switch( aOption )
+        {
+        case Swi::EInstFileTextOptionContinue:
+            ShowQuestionWithContinueL( aText );
+            okToContinue = ETrue;
+            break;
+        case Swi::EInstFileTextOptionSkipOneIfNo:
+            okToContinue = ShowQuestionL( aText );
+            break;
+        case Swi::EInstFileTextOptionAbortIfNo:
+        case Swi::EInstFileTextOptionExitIfNo:
+            okToContinue = ShowQuestionL( aText );
+            break;
+        case Swi::EInstFileTextOptionForceAbort:
+            ShowQuestionWithContinueL( aText );
+            break;
+        default:
+            break;
+        }
+
+    return okToContinue;
     }
 
 // ---------------------------------------------------------------------------
@@ -93,19 +115,24 @@
         Swi::TErrorDialog aType, const TDesC& aParam )
     {
     FLOG( _L("CSisxSifPluginUiHandler::DisplayErrorL") );
-    SetDisplayErrorL( aType, aParam );
+    SetErrorSwiErrorL( aType, aParam );
     }
 
 // ---------------------------------------------------------------------------
-// CSisxSifPluginUiHandler::
+// CSisxSifPluginUiHandler::DisplayDependencyBreakL()
 // ---------------------------------------------------------------------------
 //
 TBool CSisxSifPluginUiHandler::DisplayDependencyBreakL( const Swi::CAppInfo& /*aAppInfo*/,
         const RPointerArray<TDesC>& /*aComponents*/ )
     {
     FLOG( _L("CSisxSifPluginUiHandler::DisplayDependencyBreakL") );
+    TBool okToContinue = EFalse;
 
-    return ETrue;
+    // TODO: localized UI string needed
+    _LIT( KText, "Removal may stop other applications working. Continue?" );
+    okToContinue = ShowQuestionL( KText );
+
+    return okToContinue;
     }
 
 // ---------------------------------------------------------------------------
@@ -116,8 +143,7 @@
         const RPointerArray<TDesC>& /*aAppNames*/ )
     {
     FLOG( _L("CSisxSifPluginUiHandler::DisplayApplicationsInUseL") );
-
-    return ETrue;
+    return ETrue;   // silently accepted
     }
 
 // ---------------------------------------------------------------------------
@@ -128,23 +154,30 @@
         Swi::TQuestionDialog aQuestion, const TDesC& /*aDes*/ )
     {
     FLOG( _L("CSisxSifPluginUiHandler::DisplayQuestionL") );
+    TBool okToContinue = EFalse;
 
-    TBool result = ETrue;
     switch( aQuestion )
         {
         case Swi::EQuestionIncompatible:
             if( !iQuestionIncompatibleDisplayed )
                 {
-                // TODO: show dialog
+                _LIT( KText, "Application not compatible with phone. Continue anyway?" );
+                okToContinue = ShowQuestionL( KText );
                 iQuestionIncompatibleDisplayed = ETrue;
                 }
+            else
+                {
+                okToContinue = ETrue;   // already accepted once
+                }
             break;
+
         case Swi::EQuestionOverwriteFile:
         default:
-            // silently accepted
+            okToContinue = ETrue;   // silently accepted
             break;
         }
-    return result;
+
+    return okToContinue;
     }
 
 // ---------------------------------------------------------------------------
@@ -157,7 +190,7 @@
     {
     FLOG( _L("CSisxSifPluginUiHandler::DisplayInstallL") );
 
-    iMode = EModeInstall;
+    iOperationPhase = EInstalling;
     return ETrue;
     }
 
@@ -166,11 +199,14 @@
 // ---------------------------------------------------------------------------
 //
 TBool CSisxSifPluginUiHandler::DisplayGrantCapabilitiesL( const Swi::CAppInfo& /*aAppInfo*/,
-        const TCapabilitySet& /*aCapabilitySet*/ )
+        const TCapabilitySet& aCapabilitySet )
     {
     FLOG( _L("CSisxSifPluginUiHandler::DisplayGrantCapabilitiesL") );
+    TBool okToContinue = EFalse;
 
-    return ETrue;
+    okToContinue = iSifUi->ShowGrantCapabilitiesL( aCapabilitySet );
+
+    return okToContinue;
     }
 
 // ---------------------------------------------------------------------------
@@ -259,35 +295,30 @@
         return EFalse;
         }
 
-    TSifOperationPhase phase = ( iMode == EModeInstall ? EInstalling : EUninstalling );
     switch( aEvent )
         {
         case Swi::EEventSetProgressBarFinalValue:
             iProgressBarFinalValue = aValue;
-            if( iMode == EModeInstall )
+            if( iOperationPhase == EInstalling )
                 {
-                CSifUiAppInfo *appInfo = GetAppInfoLC( aAppInfo );
-                iSifUi->ShowProgressL( *appInfo, aValue );
-                CleanupStack::PopAndDestroy( appInfo );
+                ShowProgressL( aAppInfo, iProgressBarFinalValue, CSifUi::EInstalling );
                 }
             break;
 
         case Swi::EEventUpdateProgressBar:
-            if( iMode == EModeInstall )
+            if( iOperationPhase == EInstalling )
                 {
                 iSifUi->IncreaseProgressBarValueL( aValue );
                 }
-            PublishProgressL( phase, EFileOperation, aValue, iProgressBarFinalValue );
-            break;
-
-        case Swi::EEventOcspCheckEnd:
-            // TODO: do something
+            iProgressBarCurrentValue += aValue;
+            PublishProgressL( EFileOperation );
             break;
 
         case Swi::EEventDevCert:
             // TODO: show "developer certificate" warning note
             break;
 
+        case Swi::EEventOcspCheckEnd:
         case Swi::EEventAbortedInstall:
         case Swi::EEventAbortedUnInstall:
         case Swi::EEventCompletedInstall:
@@ -305,13 +336,33 @@
 // CSisxSifPluginUiHandler::HandleCancellableInstallEventL()
 // ---------------------------------------------------------------------------
 //
-void CSisxSifPluginUiHandler::HandleCancellableInstallEventL( const Swi::CAppInfo& /*aAppInfo*/,
-        Swi::TInstallCancellableEvent /*aEvent*/, Swi::MCancelHandler& /*aCancelHandler*/,
-        TInt /*aValue*/,const TDesC& /*aDes*/ )
+void CSisxSifPluginUiHandler::HandleCancellableInstallEventL( const Swi::CAppInfo& aAppInfo,
+        Swi::TInstallCancellableEvent aEvent, Swi::MCancelHandler& aCancelHandler,
+        TInt aValue, const TDesC& /*aDes*/ )
     {
-    FLOG( _L("CSisxSifPluginUiHandler::HandleCancellableInstallEventL") );
+    FLOG_2( _L("CSisxSifPluginUiHandler::HandleCancellableInstallEventL: aEvent %d, aValue %d"), aEvent, aValue );
 
-    // TODO: Swi::EEventOcspCheckStart
+    if( iSifUi->IsCancelled() )
+        {
+        aCancelHandler.HandleCancel();
+        }
+    else
+        {
+        switch( aEvent )
+            {
+            case Swi::EEventOcspCheckStart:
+                ShowProgressL( aAppInfo, aValue, CSifUi::ECheckingCerts );
+                iProgressBarCurrentValue += aValue;
+                PublishProgressL( EOCSPCheck );
+                break;
+
+            case Swi::EEventRemovingFiles:
+            case Swi::EEventCopyingFiles:
+            case Swi::EEventShuttingDownApps:
+            default:
+                break;
+            }
+        }
     }
 
 // ---------------------------------------------------------------------------
@@ -336,11 +387,7 @@
     switch( aSigValidationResult )
         {
         case Swi::EValidationSucceeded:
-            {
-            CSifUiAppInfo *appInfo = GetAppInfoLC( aAppInfo );
-            result = iSifUi->ShowConfirmationL( *appInfo );
-            CleanupStack::PopAndDestroy( appInfo );
-            }
+            result = ShowConfirmationL( aAppInfo );
             break;
 
         case Swi::ESignatureSelfSigned:
@@ -353,9 +400,7 @@
         case Swi::EMandatorySignatureMissing:
             if( aInstallAnyway )
                 {
-                CSifUiAppInfo *appInfo = GetAppInfoLC( aAppInfo );
-                result = iSifUi->ShowConfirmationL( *appInfo );
-                CleanupStack::PopAndDestroy( appInfo );
+                result = ShowConfirmationL( aAppInfo );
                 }
             break;
 
@@ -371,12 +416,28 @@
 // ---------------------------------------------------------------------------
 //
 TBool CSisxSifPluginUiHandler::DisplayOcspResultL( const Swi::CAppInfo& /*aAppInfo*/,
-        Swi::TRevocationDialogMessage /*aMessage*/, RPointerArray<TOCSPOutcome>& /*aOutcomes*/,
-        RPointerArray<Swi::CCertificateInfo>& /*aCertificates*/, TBool /*aWarningOnly*/ )
+        Swi::TRevocationDialogMessage aMessage, RPointerArray<TOCSPOutcome>& /*aOutcomes*/,
+        RPointerArray<Swi::CCertificateInfo>& /*aCertificates*/, TBool aWarningOnly )
     {
     FLOG( _L("CSisxSifPluginUiHandler::DisplayOcspResultL") );
+    TBool okToContinue = EFalse;
 
-    return ETrue;
+    if( aWarningOnly && !IsOcspMandatoryL() )
+        {
+        // TODO: localised UI string needed, see R_SISXUI_OCSP_SECURITY_WARNING
+        _LIT( KText, "Installation security warning. Unable to verify supplier. Continue anyway?" );
+        if( ShowQuestionL( KText ) )
+            {
+            okToContinue = ETrue;
+            }
+        }
+
+    if( !okToContinue )
+        {
+        SetOcspErrorL( aMessage );
+        }
+
+    return okToContinue;
     }
 
 // ---------------------------------------------------------------------------
@@ -411,7 +472,7 @@
     {
     FLOG( _L("CSisxSifPluginUiHandler::DisplayUninstallL") );
 
-    iMode = EModeUninstall;
+    iOperationPhase = EUninstalling;
     return ETrue;       // uninstall is always silent
     }
 
@@ -434,7 +495,6 @@
     FLOG( _L("CSisxSifPluginUiHandler::DisplayCompleteL") );
 
     iSifUi->ShowCompleteL();
-    iMode = EModeUndefined;
     }
 
 // ---------------------------------------------------------------------------
@@ -445,8 +505,11 @@
     {
     FLOG_1( _L("CSisxSifPluginUiHandler::DisplayFailedL, error code %d"), aError.ErrorCode() );
 
-    // TODO: add error details
-    iSifUi->ShowFailedL( aError.ErrorCode(), aError.ErrorMessage() );
+    CSifUiErrorInfo* errorInfo = CSifUiErrorInfo::NewLC( aError.ErrorCategory(),
+        aError.ErrorCode(), aError.ExtendedErrorCode(), aError.ErrorMessage(),
+        aError.ErrorMessageDetails() );
+    iSifUi->ShowFailedL( *errorInfo );
+    CleanupStack::PopAndDestroy( errorInfo );
     }
 
 // ---------------------------------------------------------------------------
@@ -542,3 +605,26 @@
     return appInfo;
     }
 
+// ---------------------------------------------------------------------------
+// CSisxSifPluginUiHandler::ShowProgressL()
+// ---------------------------------------------------------------------------
+//
+void CSisxSifPluginUiHandler::ShowProgressL( const Swi::CAppInfo& aAppInfo,
+        TInt aProgressBarFinalValue, CSifUi::TInstallingPhase aPhase )
+    {
+    CSifUiAppInfo *appInfo = GetAppInfoLC( aAppInfo );
+    iSifUi->ShowProgressL( *appInfo, aProgressBarFinalValue, aPhase );
+    CleanupStack::PopAndDestroy( appInfo );
+    }
+
+// ---------------------------------------------------------------------------
+// CSisxSifPluginUiHandler::ShowConfirmationL()
+// ---------------------------------------------------------------------------
+//
+TBool CSisxSifPluginUiHandler::ShowConfirmationL( const Swi::CAppInfo& aAppInfo )
+    {
+    CSifUiAppInfo *appInfo = GetAppInfoLC( aAppInfo );
+    TBool result = iSifUi->ShowConfirmationL( *appInfo );
+    CleanupStack::PopAndDestroy( appInfo );
+    return result;
+    }
--- a/appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginuihandlerbase.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginuihandlerbase.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -19,6 +19,10 @@
 #include "sisxsifplugininstallparams.h"     // CSisxSifPluginInstallParams
 #include "sisxsifpluginerrorhandler.h"      // CSisxSifPluginErrorHandler
 #include "sisxsifcleanuputils.h"            // CleanupResetAndDestroyPushL
+#include <centralrepository.h>              // CRepository
+#include <SWInstallerInternalCRKeys.h>      // KCRUidSWInstallerSettings
+#include <hb/hbwidgets/hbdevicemessageboxsymbian.h> // CHbDeviceMessageBoxSymbian
+#include <usif/scr/screntries.h>            // CComponentEntry
 
 using namespace Usif;
 
@@ -42,8 +46,8 @@
 CSisxSifPluginUiHandlerBase::~CSisxSifPluginUiHandlerBase()
     {
     delete iInstallParams;
+    delete iPublishSifOperationInfo;
     delete iGlobalComponentId;
-    delete iPublishSifOperationInfo;
     }
 
 // ---------------------------------------------------------------------------
@@ -80,6 +84,19 @@
     }
 
 // ---------------------------------------------------------------------------
+// CSisxSifPluginUiHandlerBase::IsOcspMandatoryL()
+// ---------------------------------------------------------------------------
+//
+TBool CSisxSifPluginUiHandlerBase::IsOcspMandatoryL() const
+    {
+    CRepository* cenRep = CRepository::NewLC( KCRUidSWInstallerSettings );
+    TInt ocspProcedure = ESWInstallerOcspProcedureOff;
+    User::LeaveIfError( cenRep->Get( KSWInstallerOcspProcedure, ocspProcedure ) );
+    CleanupStack::PopAndDestroy( cenRep );
+    return ( ocspProcedure == ESWInstallerOcspProcedureMust );
+    }
+
+// ---------------------------------------------------------------------------
 // CSisxSifPluginUiHandlerBase::PublishStartL()
 // ---------------------------------------------------------------------------
 //
@@ -110,7 +127,38 @@
 
     CSifOperationStartData* data = CSifOperationStartData::NewLC( *iGlobalComponentId,
             aRootNode.ComponentName(), appNames, appIcons, aRootNode.MaxInstalledSize(),
-            KNullDesC, KNullDesC, aRootNode.SoftwareTypeName() );
+            KNullDesC, KNullDesC, aRootNode.SoftwareTypeName(), iOperationPhase );
+
+    if( !iPublishSifOperationInfo )
+        {
+        iPublishSifOperationInfo = CPublishSifOperationInfo::NewL();
+        }
+    iPublishSifOperationInfo->PublishStartL( *data );
+
+    CleanupStack::PopAndDestroy( 3, &appNames );    // data, appIcons, appNames
+    }
+
+// ---------------------------------------------------------------------------
+// CSisxSifPluginUiHandlerBase::PublishStartL()
+// ---------------------------------------------------------------------------
+//
+void CSisxSifPluginUiHandlerBase::PublishStartL( const CComponentEntry& aEntry )
+    {
+    RPointerArray<HBufC> appNames;
+    CleanupResetAndDestroyPushL( appNames );
+    RPointerArray<HBufC> appIcons;
+    CleanupResetAndDestroyPushL( appIcons );
+
+    if( iGlobalComponentId )
+        {
+        delete iGlobalComponentId;
+        iGlobalComponentId = NULL;
+        }
+    iGlobalComponentId = aEntry.GlobalId().AllocL();
+
+    CSifOperationStartData* data = CSifOperationStartData::NewLC( *iGlobalComponentId,
+            aEntry.Name(), appNames, appIcons, aEntry.ComponentSize(),
+            KNullDesC, KNullDesC, aEntry.SoftwareType(), iOperationPhase );
 
     if( !iPublishSifOperationInfo )
         {
@@ -125,12 +173,11 @@
 // CSisxSifPluginUiHandlerBase::PublishProgressL()
 // ---------------------------------------------------------------------------
 //
-void CSisxSifPluginUiHandlerBase::PublishProgressL( TSifOperationPhase aPhase,
-        TSifOperationSubPhase aSubPhase, TInt aCurrentProgress, TInt aTotal )
+void CSisxSifPluginUiHandlerBase::PublishProgressL( TSifOperationSubPhase aSubPhase )
     {
     User::LeaveIfNull( iPublishSifOperationInfo );
     CSifOperationProgressData* data = CSifOperationProgressData::NewLC( *iGlobalComponentId,
-            aPhase, aSubPhase, aCurrentProgress, aTotal );
+            iOperationPhase, aSubPhase, iProgressBarCurrentValue, iProgressBarFinalValue );
     iPublishSifOperationInfo->PublishProgressL( *data );
     CleanupStack::PopAndDestroy( data );
     }
@@ -139,25 +186,103 @@
 // CSisxSifPluginUiHandlerBase::PublishCompletionL()
 // ---------------------------------------------------------------------------
 //
-void CSisxSifPluginUiHandlerBase::PublishCompletionL( const CSisxSifPluginErrorHandler& aError )
+void CSisxSifPluginUiHandlerBase::PublishCompletionL()
     {
     User::LeaveIfNull( iPublishSifOperationInfo );
     CSifOperationEndData* data = CSifOperationEndData::NewLC( *iGlobalComponentId,
-            aError.ErrorCategory(), aError.ErrorCode(), aError.ErrorMessage(),
-            aError.ErrorMessageDetails() );
+            iErrorHandler.ErrorCategory(), iErrorHandler.ErrorCode(),
+            iErrorHandler.ErrorMessage(), iErrorHandler.ErrorMessageDetails() );
     iPublishSifOperationInfo->PublishCompletionL( *data );
     CleanupStack::PopAndDestroy( data );
     }
 
 // ---------------------------------------------------------------------------
-// CSisxSifPluginUiHandlerBase::SetDisplayErrorL()
+// CSisxSifPluginUiHandlerBase::SetErrorL()
 // ---------------------------------------------------------------------------
 //
-void CSisxSifPluginUiHandlerBase::SetDisplayErrorL( Swi::TErrorDialog aType, const TDesC& aParam )
+void CSisxSifPluginUiHandlerBase::SetErrorL( TInt aErrorCode, TInt aExtErrorCode )
     {
-    iErrorHandler.SetExtendedErrorCode( aType );
+    iErrorHandler.SetErrorCode( aErrorCode );
+    iErrorHandler.SetExtendedErrorCode( aExtErrorCode );
 
+    // TODO: localized UI strings needed
+    switch( iErrorHandler.ErrorCategory() )
+        {
+        case ELowMemory:
+            // txt_error_info_there_is_not_enough_memory_currentl
+            iErrorHandler.SetErrorMessage( _L("There is not enough memory currently.") );
+            break;
+        case ELowDiskSpace:
+            // txt_error_info_there_is_not_enough_space_currently
+            iErrorHandler.SetErrorMessage( _L("There is not enough space currently in this drive.") );
+            break;
+        case ENetworkUnavailable:
+            // txt_error_info_network_is_unavailable_currently
+            iErrorHandler.SetErrorMessage( _L("Network  is unavailable currently.") );
+            break;
+        case EInstallerBusy:
+            // txt_error_info_installer_is_busy_currently
+            iErrorHandler.SetErrorMessage( _L("Installer is busy currently.") );
+            break;
+        case ECorruptedPackage:
+            // txt_error_info_installation_package_is_corrupted
+            iErrorHandler.SetErrorMessage( _L("Installation package is corrupted. You may want to try again.") );
+            break;
+        case EApplicationNotCompatible:
+            // txt_error_info_application_is_not_compatible_with
+            iErrorHandler.SetErrorMessage( _L("Application is not compatible with this device.") );
+            break;
+        case ESecurityError:
+            // txt_error_info_there_is_a_security_issue_with_this
+            iErrorHandler.SetErrorMessage( _L("There is a security issue with this application.") );
+            break;
+        case EUnexpectedError:
+        case EUnknown:
+            // txt_error_info_an_unexpected_error_occurred
+            iErrorHandler.SetErrorMessage( _L("An unexpected error occurred.") );
+            break;
+        case EUserCancelled:
+            if( iOperationPhase == EInstalling )
+                {
+                // txt_error_info_application_not_installed
+                iErrorHandler.SetErrorMessage( _L("Application not installed.") );
+                }
+            else
+                {
+                // txt_error_info_application_not_deleted
+                iErrorHandler.SetErrorMessage( _L("Application not deleted. ") );
+                }
+            break;
+        case EUninstallationBlocked:
+            // txt_error_info_application_cannot_be_deleted
+            iErrorHandler.SetErrorMessage( _L("Application cannot be deleted.") );
+            break;
+        case ENone:
+        default:
+            break;
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// CSisxSifPluginUiHandlerBase::SetErrorL()
+// ---------------------------------------------------------------------------
+//
+void CSisxSifPluginUiHandlerBase::SetErrorL( TInt aErrorCode, TInt aExtErrorCode,
+    const TDesC& aErrMsgDetails )
+    {
+    SetErrorL( aErrorCode, aExtErrorCode );
+    iErrorHandler.SetErrorMessageDetails( aErrMsgDetails );
+    }
+
+// ---------------------------------------------------------------------------
+// CSisxSifPluginUiHandlerBase::SetErrorSwiErrorL()
+// ---------------------------------------------------------------------------
+//
+void CSisxSifPluginUiHandlerBase::SetErrorSwiErrorL( Swi::TErrorDialog aType,
+        const TDesC& /*aParam*/ )
+    {
     // TODO: localised detailed error messages
+    // TODO: append aParam when message supports parameters
     TBuf<512> details;
     switch( aType )
         {
@@ -195,7 +320,8 @@
             details.Copy(_L("EUiInsufficientSpaceOnDrive"));
             break;
         case Swi::EUiCapabilitiesCannotBeGranted:
-            details.Copy(_L("EUiCapabilitiesCannotBeGranted"));
+            // aParam contains list of capability names
+            details.Copy(_L("Cannot grant capabilities requested by the application."));
             break;
         case Swi::EUiUnknownFile:
             details.Copy(_L("EUiUnknownFile"));
@@ -231,10 +357,95 @@
             break;
         }
 
-    if( aParam.Length() )
+    SetErrorL( KErrGeneral, aType, details );
+    }
+
+// ---------------------------------------------------------------------------
+// CSisxSifPluginUiHandlerBase::SetOcspErrorL()
+// ---------------------------------------------------------------------------
+//
+void CSisxSifPluginUiHandlerBase::SetOcspErrorL( Swi::TRevocationDialogMessage aMessage )
+    {
+    // TODO: localised error strings needed
+    iErrorHandler.SetErrorMessage( _L("Unable to check certificate validity online." ) );
+    iErrorHandler.SetExtendedErrorCode( aMessage );
+    switch( aMessage )
         {
-        details.Append( _L("\n") );
-        details.Append( aParam );
+        case Swi::EInvalidRevocationServerUrl:
+            iErrorHandler.SetErrorCode( KErrGeneral );
+            iErrorHandler.SetErrorMessageDetails( _L("Invalid server URL. Check settings.") );
+            break;
+        case Swi::EUnableToObtainCertificateStatus:
+            iErrorHandler.SetErrorCode( KErrGeneral );
+            iErrorHandler.SetErrorMessageDetails( _L("Unable to obtain certificate status. Try again later.") );
+            break;
+        case Swi::EResponseSignatureValidationFailure:
+            iErrorHandler.SetErrorCode( KErrGeneral );
+            iErrorHandler.SetErrorMessageDetails( _L("Response signature validation failure. Check settings.") );
+            break;
+        case Swi::EInvalidRevocationServerResponse:
+            iErrorHandler.SetErrorCode( KErrGeneral );
+            iErrorHandler.SetErrorMessageDetails( _L("The OCSP server reply is invalid. Check settings.") );
+            break;
+        case Swi::EInvalidCertificateStatusInformation:
+        case Swi::ECertificateStatusIsUnknownSelfSigned:
+            iErrorHandler.SetErrorCode( KErrGeneral );
+            iErrorHandler.SetErrorMessageDetails( _L("Invalid certificate status information. Try again later.") );
+            break;
+        case Swi::ECertificateStatusIsUnknown:
+            iErrorHandler.SetErrorCode( KErrGeneral );
+            iErrorHandler.SetErrorMessageDetails( _L("Unknown certificate. Try again later.") );
+            break;
+        case Swi::ECertificateStatusIsRevoked:
+            iErrorHandler.SetErrorCode( KErrAccessDenied );
+            iErrorHandler.SetErrorMessageDetails( _L("The certificate has been revoked.") );
+            break;
+        default:
+            break;
         }
     }
 
+// ---------------------------------------------------------------------------
+// CSisxSifPluginUiHandlerBase::ShowQuestionL()
+// ---------------------------------------------------------------------------
+//
+TBool CSisxSifPluginUiHandlerBase::ShowQuestionL( const TDesC& aText ) const
+    {
+    TBool questionAccepted = EFalse;
+
+    CHbDeviceMessageBoxSymbian *note = NULL;
+    note = CHbDeviceMessageBoxSymbian::NewL( CHbDeviceMessageBoxSymbian::EQuestion );
+    CleanupStack::PushL( note );
+
+    note->SetTextL( aText );
+    note->SetTimeout( 0 );
+    if( note->ExecL() == CHbDeviceMessageBoxSymbian::EAcceptButton )
+        {
+        questionAccepted = ETrue;
+        }
+
+    CleanupStack::PopAndDestroy( note );
+    return questionAccepted;
+    }
+
+// ---------------------------------------------------------------------------
+// CSisxSifPluginUiHandlerBase::ShowQuestionWithContinueL()
+// ---------------------------------------------------------------------------
+//
+void CSisxSifPluginUiHandlerBase::ShowQuestionWithContinueL( const TDesC& aText ) const
+    {
+    CHbDeviceMessageBoxSymbian *note = NULL;
+    note = CHbDeviceMessageBoxSymbian::NewL( CHbDeviceMessageBoxSymbian::EQuestion );
+    CleanupStack::PushL( note );
+
+    note->SetTextL( aText );
+    note->SetTimeout( 0 );
+    note->SetButton( CHbDeviceMessageBoxSymbian::EAcceptButton, EFalse );
+    note->SetButton( CHbDeviceMessageBoxSymbian::ERejectButton, ETrue );
+    // TODO: localized UI string needed
+    note->SetButtonTextL( CHbDeviceMessageBoxSymbian::ERejectButton, _L("Continue") );
+    (void)note->ExecL();
+
+    CleanupStack::PopAndDestroy( note );
+    }
+
--- a/appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginuihandlersilent.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginuihandlersilent.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -20,6 +20,7 @@
 #include "sisxsifpluginerrorhandler.h"      // CSisxSifPluginErrorHandler
 #include "sisxsifplugin.pan"                // Panic codes
 #include "sisxsifcleanuputils.h"            // CleanupResetAndDestroyPushL
+#include "sisxsifpluginerrors.h"            // Error codes
 
 using namespace Usif;
 
@@ -54,9 +55,10 @@
 // ---------------------------------------------------------------------------
 //
 TBool CSisxSifPluginUiHandlerSilent::DisplayTextL( const Swi::CAppInfo& /*aAppInfo*/,
-        Swi::TFileTextOption /*aOption*/, const TDesC& /*aText*/ )
+        Swi::TFileTextOption aOption, const TDesC& aText )
     {
 	TBool okToContinue = EFalse;
+
 	if( iInstallParams )
 		{
 		switch( iInstallParams->PackageInfo() )
@@ -65,13 +67,33 @@
 				okToContinue = ETrue;
 				break;
 			case EUserConfirm:
-				// TODO: EPolicyUserConfirm
+			    switch( aOption )
+			        {
+			        case Swi::EInstFileTextOptionContinue:
+			            ShowQuestionWithContinueL( aText );
+                        okToContinue = ETrue;
+			            break;
+			        case Swi::EInstFileTextOptionSkipOneIfNo:
+			            okToContinue = ShowQuestionL( aText );
+			            break;
+			        case Swi::EInstFileTextOptionAbortIfNo:
+			        case Swi::EInstFileTextOptionExitIfNo:
+			            okToContinue = ShowQuestionL( aText );
+			            break;
+			        case Swi::EInstFileTextOptionForceAbort:
+			            ShowQuestionWithContinueL( aText );
+			            break;
+			        default:
+			            break;
+			        }
 				break;
 			case ENotAllowed:
 			default:
+		        SetErrorL( KErrPermissionDenied, ESifUiNeedsPackageInfoParameter, aText );
 				break;
 			}
 		}
+
     return okToContinue;
     }
 
@@ -82,7 +104,7 @@
 void CSisxSifPluginUiHandlerSilent::DisplayErrorL( const Swi::CAppInfo& /*aAppInfo*/,
         Swi::TErrorDialog aType, const TDesC& aParam )
     {
-    SetDisplayErrorL( aType, aParam );
+    SetErrorSwiErrorL( aType, aParam );
     }
 
 // ---------------------------------------------------------------------------
@@ -93,6 +115,7 @@
         const RPointerArray<TDesC>& /*aComponents*/ )
     {
 	TBool okToContinue = EFalse;
+
 	if( iInstallParams )
 		{
 		switch( iInstallParams->AllowAppBreakDependency() )
@@ -103,9 +126,11 @@
 			case EUserConfirm:
 			case ENotAllowed:
 			default:
+			    SetErrorL( KErrPermissionDenied, ESifUiNeedsAllowAppBreakDependencyParameter );
 				break;
 			}
 		}
+
     return okToContinue;
     }
 
@@ -117,6 +142,7 @@
         const RPointerArray<TDesC>& /*aAppNames*/ )
     {
 	TBool okToContinue = EFalse;
+
 	if( iInstallParams )
 		{
 		switch( iInstallParams->AllowAppShutdown() )
@@ -127,9 +153,11 @@
 			case EUserConfirm:
 			case ENotAllowed:
 			default:
+			    SetErrorL( KErrPermissionDenied, ESifUiNeedsAllowAppShutdownParameter );
 				break;
 			}
 		}
+
     return okToContinue;
     }
 
@@ -138,9 +166,10 @@
 // ---------------------------------------------------------------------------
 //
 TBool CSisxSifPluginUiHandlerSilent::DisplayQuestionL( const Swi::CAppInfo& /*aAppInfo*/,
-        Swi::TQuestionDialog aQuestion, const TDesC& /*aDes*/ )
+        Swi::TQuestionDialog aQuestion, const TDesC& aDes )
     {
 	TBool okToContinue = EFalse;
+
     switch( aQuestion )
         {
         case Swi::EQuestionIncompatible:
@@ -157,6 +186,10 @@
 						break;
 					}
         		}
+        	if( !okToContinue )
+        	    {
+                SetErrorL( KErrPermissionDenied, ESifUiNeedsAllowIncompatibleParameter, aDes );
+        	    }
             break;
 
         case Swi::EQuestionOverwriteFile:
@@ -173,11 +206,17 @@
 						break;
 					}
         		}
+        	if( !okToContinue )
+        	    {
+                SetErrorL( KErrPermissionDenied, ESifUiNeedsAllowOverwriteParameter, aDes );
+                }
         	break;
 
         default:
+            SetErrorL( KErrNotSupported, KErrNotSupported, aDes );
             break;
         }
+
     return okToContinue;
     }
 
@@ -189,6 +228,7 @@
         const CApaMaskedBitmap* /*aLogo*/,
         const RPointerArray<Swi::CCertificateInfo>& /*aCertificates*/ )
     {
+    iOperationPhase = EInstalling;
     return ETrue;
     }
 
@@ -200,6 +240,7 @@
         const TCapabilitySet& /*aCapabilitySet*/ )
     {
 	TBool okToContinue = EFalse;
+
 	if( iInstallParams )
 		{
 		switch( iInstallParams->GrantCapabilities() )
@@ -210,9 +251,11 @@
 			case EUserConfirm:
 			case ENotAllowed:
 			default:
+			    SetErrorL( KErrPermissionDenied, ESifUiNeedsGrantCapabilitiesParameter );
 				break;
 			}
 		}
+
     return okToContinue;
     }
 
@@ -338,8 +381,31 @@
 // ---------------------------------------------------------------------------
 //
 TBool CSisxSifPluginUiHandlerSilent::HandleInstallEventL( const Swi::CAppInfo& /*aAppInfo*/,
-        Swi::TInstallEvent /*aEvent*/, TInt /*aValue*/, const TDesC& /*aDes*/ )
+        Swi::TInstallEvent aEvent, TInt aValue, const TDesC& /*aDes*/ )
     {
+    switch( aEvent )
+        {
+        case Swi::EEventSetProgressBarFinalValue:
+            iProgressBarFinalValue = aValue;
+            break;
+
+        case Swi::EEventUpdateProgressBar:
+            iProgressBarCurrentValue += aValue;
+            PublishProgressL( EFileOperation );
+            break;
+
+        case Swi::EEventDevCert:
+        case Swi::EEventOcspCheckEnd:
+        case Swi::EEventAbortedInstall:
+        case Swi::EEventAbortedUnInstall:
+        case Swi::EEventCompletedInstall:
+        case Swi::EEventCompletedUnInstall:
+        case Swi::EEventCompletedNoMessage:
+        case Swi::EEventLeave:
+        default:
+            break;
+        }
+
     return ETrue;
     }
 
@@ -348,9 +414,21 @@
 // ---------------------------------------------------------------------------
 //
 void CSisxSifPluginUiHandlerSilent::HandleCancellableInstallEventL(
-        const Swi::CAppInfo& /*aAppInfo*/, Swi::TInstallCancellableEvent /*aEvent*/,
+        const Swi::CAppInfo& /*aAppInfo*/, Swi::TInstallCancellableEvent aEvent,
         Swi::MCancelHandler& /*aCancelHandler*/, TInt /*aValue*/, const TDesC& /*aDes*/ )
     {
+    switch( aEvent )
+        {
+        case Swi::EEventOcspCheckStart:
+            PublishProgressL( EOCSPCheck );
+            break;
+
+        case Swi::EEventRemovingFiles:
+        case Swi::EEventCopyingFiles:
+        case Swi::EEventShuttingDownApps:
+        default:
+            break;
+        }
     }
 
 // ---------------------------------------------------------------------------
@@ -407,24 +485,33 @@
 // ---------------------------------------------------------------------------
 //
 TBool CSisxSifPluginUiHandlerSilent::DisplayOcspResultL( const Swi::CAppInfo& /*aAppInfo*/,
-        Swi::TRevocationDialogMessage /*aMessage*/, RPointerArray<TOCSPOutcome>& /*aOutcomes*/,
+        Swi::TRevocationDialogMessage aMessage, RPointerArray<TOCSPOutcome>& /*aOutcomes*/,
         RPointerArray<Swi::CCertificateInfo>& /*aCertificates*/, TBool aWarningOnly )
     {
 	TBool okToContinue = EFalse;
-	// TODO: KSWInstallerOcspProcedure setting (off/on/must)
-	if( iInstallParams && aWarningOnly )
+
+	if( aWarningOnly && !IsOcspMandatoryL() )
 		{
-		switch( iInstallParams->IgnoreOCSPWarnings() )
-			{
-			case EAllowed:
-				okToContinue = ETrue;
-				break;
-			case EUserConfirm:
-			case ENotAllowed:
-			default:
-				break;
-			}
+	    if( iInstallParams )
+	        {
+            switch( iInstallParams->IgnoreOCSPWarnings() )
+                {
+                case EAllowed:
+                    okToContinue = ETrue;
+                    break;
+                case EUserConfirm:
+                case ENotAllowed:
+                default:
+                    break;
+                }
+	        }
 		}
+
+	if( !okToContinue )
+	    {
+	    SetOcspErrorL( aMessage );
+	    }
+
     return okToContinue;
     }
 
@@ -433,9 +520,12 @@
 // ---------------------------------------------------------------------------
 //
 void CSisxSifPluginUiHandlerSilent::DisplayCannotOverwriteFileL( const Swi::CAppInfo& /*aAppInfo*/,
-        const Swi::CAppInfo& /*aInstalledAppInfo*/, const TDesC& /*aFileName*/ )
+        const Swi::CAppInfo& /*aInstalledAppInfo*/, const TDesC& aFileName )
     {
-	// TODO: error handling
+    // TODO: localized UI string needed: "The package tries to overwrite file '%1' it does not own."
+	TName detailsString;
+	detailsString.Format( _L("The package tries to overwrite file '%S' it does not own."), &aFileName );
+    SetErrorL( KErrPermissionDenied, ESifUiCannotOverwriteFile, detailsString );
     }
 
 // ---------------------------------------------------------------------------
@@ -447,6 +537,7 @@
         TVersion /*aWantedVersionTo*/, TVersion /*aInstalledVersion*/ )
     {
 	TBool okToContinue = EFalse;
+
 	if( iInstallParams )
 		{
 		switch( iInstallParams->AllowAppBreakDependency() )
@@ -460,6 +551,12 @@
 				break;
 			}
 		}
+
+	if( !okToContinue )
+	    {
+        SetErrorL( KErrSifMissingDependencies, 0, KNullDesC );
+	    }
+
     return okToContinue;
     }
 
@@ -469,6 +566,7 @@
 //
 TBool CSisxSifPluginUiHandlerSilent::DisplayUninstallL( const Swi::CAppInfo& /*aAppInfo*/ )
     {
+    iOperationPhase = EUninstalling;
     return ETrue;
     }
 
--- a/appinstaller/AppinstUi/sisxsifplugin/tsrc/testinstaller/activerunner.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/tsrc/testinstaller/activerunner.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -32,10 +32,10 @@
     delete d_ptr;
 }
 
-void ActiveRunner::install(const QString &fileName, bool silent, bool openfile)
+void ActiveRunner::install(const QString &fileName, bool silent, bool openfile, bool ocsp)
 {
     if (d_ptr) {
-        d_ptr->Install(fileName, silent, openfile);
+        d_ptr->Install(fileName, silent, openfile, ocsp);
     }
 }
 
--- a/appinstaller/AppinstUi/sisxsifplugin/tsrc/testinstaller/activerunner.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/tsrc/testinstaller/activerunner.h	Wed Aug 18 09:55:45 2010 +0300
@@ -37,7 +37,7 @@
     void opFailed(int error);
 
 public:     // new functions
-    void install(const QString &fileName, bool silent, bool openfile);
+    void install(const QString &fileName, bool silent, bool openfile, bool ocsp);
     void remove(const Usif::TComponentId& aComponentId, bool silent);
     void remove(const TUid& aUid, const TDesC8& aMime, bool silent);
 
--- a/appinstaller/AppinstUi/sisxsifplugin/tsrc/testinstaller/activerunner_symbian.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/tsrc/testinstaller/activerunner_symbian.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -18,6 +18,8 @@
 #include "activerunner_symbian.h"
 #include "activerunner.h"
 
+_LIT( KDefaultOcspResponderUrl, "http://4fil30423.noe.nokia.com:45000/" );
+
 
 ActiveRunnerPrivate::ActiveRunnerPrivate( ActiveRunner *aRunner ) :
         CActive( CActive::EPriorityStandard ), q_ptr( aRunner )
@@ -48,9 +50,9 @@
     return err;
     }
 
-TInt ActiveRunnerPrivate::Install( const QString& aFileName, bool aSilent, bool aOpenFile )
+TInt ActiveRunnerPrivate::Install( const QString& aFileName, bool aSilent, bool aOpenFile, bool aOcsp )
     {
-    TRAPD( err, DoInstallL( aFileName, aSilent, aOpenFile ) );
+    TRAPD( err, DoInstallL( aFileName, aSilent, aOpenFile, aOcsp ) );
     return err;
     }
 
@@ -114,7 +116,7 @@
         }
     }
 
-void ActiveRunnerPrivate::DoInstallL( const QString& aFileName, bool aSilent, bool aOpenFile )
+void ActiveRunnerPrivate::DoInstallL( const QString& aFileName, bool aSilent, bool aOpenFile, bool aOcsp )
     {
     if( iFileName )
         {
@@ -145,36 +147,31 @@
 
     if( iUseSif )
         {
+        delete iArguments;
+        iArguments = NULL;
+        iArguments = Usif::COpaqueNamedParams::NewL();
+
+        delete iResults;
+        iResults = NULL;
+        iResults = Usif::COpaqueNamedParams::NewL();
+
         if( aSilent )
             {
-            delete iArguments;
-            iArguments = NULL;
-            iArguments = Usif::COpaqueNamedParams::NewL();
-            iArguments->AddIntL( Usif::KSifInParam_InstallSilently, 1 );
-
-            delete iResults;
-            iResults = NULL;
-            iResults = Usif::COpaqueNamedParams::NewL();
+            iArguments->AddIntL( Usif::KSifInParam_InstallSilently, ETrue );
+            }
+        if( aOcsp )
+            {
+            iArguments->AddIntL( Usif::KSifInParam_PerformOCSP, Usif::EAllowed );
+            iArguments->AddStringL( Usif::KSifInParam_OCSPUrl, KDefaultOcspResponderUrl );
+            }
 
-            if( aOpenFile )
-                {
-                iSoftwareInstall.Install( fileHandle, *iArguments, *iResults, iStatus );
-                }
-            else
-                {
-                iSoftwareInstall.Install( fileName, *iArguments, *iResults, iStatus );
-                }
+        if( aOpenFile )
+            {
+            iSoftwareInstall.Install( fileHandle, *iArguments, *iResults, iStatus );
             }
         else
             {
-            if( aOpenFile )
-                {
-                iSoftwareInstall.Install( fileHandle, iStatus );
-                }
-            else
-                {
-                iSoftwareInstall.Install( fileName, iStatus );
-                }
+            iSoftwareInstall.Install( fileName, *iArguments, *iResults, iStatus );
             }
         }
     else
@@ -201,7 +198,7 @@
                 }
             else
                 {
-                iSWInstLauncher.Install( iStatus, fileName );
+                iSWInstLauncher.Install( iStatus, fileName  );
                 }
             }
         }
--- a/appinstaller/AppinstUi/sisxsifplugin/tsrc/testinstaller/activerunner_symbian.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/tsrc/testinstaller/activerunner_symbian.h	Wed Aug 18 09:55:45 2010 +0300
@@ -34,7 +34,7 @@
 
 public:     // new functions
     TInt Initialize( bool aUseSif );
-    TInt Install( const QString& aFileName, bool aSilent, bool aOpenFile );
+    TInt Install( const QString& aFileName, bool aSilent, bool aOpenFile, bool aOcsp );
     TInt Remove( const Usif::TComponentId& aComponentId, bool aSilent );
     TInt Remove( const TUid& aUid, const TDesC8& aMime, bool aSilent );
 
@@ -45,7 +45,7 @@
 
 private:    // new functions
     void DoInitializeL( bool aUseSif );
-    void DoInstallL( const QString& aFileName, bool aSilent, bool aOpenFile );
+    void DoInstallL( const QString& aFileName, bool aSilent, bool aOpenFile, bool aOcsp );
     void DoRemoveL( const Usif::TComponentId& aComponentId, bool aSilent );
     void DoRemoveL( const TUid& aUid, const TDesC8& aMime, bool aSilent );
 
--- a/appinstaller/AppinstUi/sisxsifplugin/tsrc/testinstaller/testinstaller.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/tsrc/testinstaller/testinstaller.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -42,7 +42,7 @@
 
 TestInstaller::TestInstaller(int& argc, char* argv[]) : HbApplication(argc, argv),
     mMainWindow(0), mInstallView(0), mRemoveView(0),
-    mUseSilentInstall(false), mUseSilentUninstall(false), mUseRFileInstall(false),
+    mUseSilentInstall(false), mUseSilentUninstall(false), mUseRFileInstall(false), mOcsp(false),
     mInstallDirectories(0), mInstallableFiles(0), mRemovableApps(0),
     mCurrentDirPath(), mCurrentFile(), mRunner(0)
 {
@@ -72,15 +72,21 @@
             this, SLOT(installableFileChanged(int)));
     installLayout->addItem(mInstallableFiles);
 
+    QGraphicsLinearLayout *checkboxesLayout = new QGraphicsLinearLayout(Qt::Horizontal);
     HbCheckBox *silentInstallCheckBox = new HbCheckBox;
     silentInstallCheckBox->setText(tr("Silent"));
     connect(silentInstallCheckBox, SIGNAL(stateChanged(int)),
             this, SLOT(silentInstallCheckChanged(int)));
-    installLayout->addItem(silentInstallCheckBox);
+    checkboxesLayout->addItem(silentInstallCheckBox);
     HbCheckBox *rfileCheckBox = new HbCheckBox;
     rfileCheckBox->setText(tr("Use RFile"));
     connect(rfileCheckBox, SIGNAL(stateChanged(int)), this, SLOT(rfileCheckChanged(int)));
-    installLayout->addItem(rfileCheckBox);
+    checkboxesLayout->addItem(rfileCheckBox);
+    HbCheckBox *ocspCheckBox = new HbCheckBox;
+    ocspCheckBox->setText(tr("OCSP"));
+    connect(ocspCheckBox, SIGNAL(stateChanged(int)), this, SLOT(ocspCheckChanged(int)));
+    checkboxesLayout->addItem(ocspCheckBox);
+    installLayout->addItem(checkboxesLayout);
     installLayout->addStretch();
 
     HbPushButton *installNew = new HbPushButton(tr("Install using new API"));
@@ -181,6 +187,12 @@
     mUseRFileInstall = (s == Qt::Checked);
 }
 
+void TestInstaller::ocspCheckChanged(int state)
+{
+    Qt::CheckState s = static_cast<Qt::CheckState>(state);
+    mOcsp = (s == Qt::Checked);
+}
+
 void TestInstaller::installableDirChanged(int /*index*/)
 {
     if (mInstallDirectories) {
@@ -388,7 +400,7 @@
 void TestInstaller::doInstall(const QString &fileName)
 {
     if (mRunner) {
-        mRunner->install(fileName, mUseSilentInstall, mUseRFileInstall);
+        mRunner->install(fileName, mUseSilentInstall, mUseRFileInstall, mOcsp );
     }
 }
 
--- a/appinstaller/AppinstUi/sisxsifplugin/tsrc/testinstaller/testinstaller.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/tsrc/testinstaller/testinstaller.h	Wed Aug 18 09:55:45 2010 +0300
@@ -43,6 +43,7 @@
     void silentInstallCheckChanged(int state);
     void silentRemoveCheckChanged(int state);
     void rfileCheckChanged(int state);
+    void ocspCheckChanged(int state);
     void installableDirChanged(int index);
     void installableFileChanged(int index);
     void installUsingNewApi();
@@ -75,6 +76,7 @@
     bool         mUseSilentInstall;
     bool         mUseSilentUninstall;
     bool         mUseRFileInstall;
+    bool         mOcsp;
     HbComboBox   *mInstallDirectories;
     HbComboBox   *mInstallableFiles;
     HbComboBox   *mRemovableApps;
--- a/appinstaller/AppinstUi/sisxsifplugin/tsrc/testinstaller/testinstaller.pro	Tue Jul 06 14:23:31 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/tsrc/testinstaller/testinstaller.pro	Wed Aug 18 09:55:45 2010 +0300
@@ -37,7 +37,7 @@
         /epoc32/include/platform/mw \
         /epoc32/include/mw/hb/hbcore \
         /epoc32/include/mw/hb/hbwidgets
-    LIBS += -lHbCore -lHbWidgets -lxqservice -lsif -lscrclient -lswinstcli
+    LIBS += -lHbCore -lHbWidgets -lxqservice -lsif -lscrclient -lswinstcli -lefsrv 
 
 	HEADERS += activerunner_symbian.h
 	SOURCES += activerunner_symbian.cpp
--- a/iaupdate/IAD/backgroundchecker/group/iaupdatebg.mmp	Tue Jul 06 14:23:31 2010 +0300
+++ b/iaupdate/IAD/backgroundchecker/group/iaupdatebg.mmp	Wed Aug 18 09:55:45 2010 +0300
@@ -41,11 +41,11 @@
 SOURCEPATH          ../src
 SOURCE              iaupdatebgmain.cpp
 SOURCE              iaupdatebgrefreshtimer.cpp
-//SOURCE              iaupdatebgremindertimer.cpp
 SOURCE              iaupdatebgcontrollerfile.cpp
 SOURCE              iaupdatebgfirsttimehandler.cpp
 SOURCE              iaupdatebginternalfilehandler.cpp
-SOURCE              iaupdatebgsoftnotification.cpp
+SOURCE              iaupdatebgsoftnotification.cpp 
+SOURCE              iaupdatbgnotifyhandler.cpp
 
 
 LIBRARY             euser.lib 
--- a/iaupdate/IAD/backgroundchecker/inc/iaupdatebgconst.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/iaupdate/IAD/backgroundchecker/inc/iaupdatebgconst.h	Wed Aug 18 09:55:45 2010 +0300
@@ -30,14 +30,11 @@
 const TInt KUpdateAvailableReminderInterval = 1; //60*24*7; //one week in minutes
 const TInt KFirstTimeDialogDelay = 1; //60*24*2; //two days in minutes
 const TInt KFirstTimeDialogReminderInterval = 4; //60*24*7*4; //four weeks in minutes
-const TInt KRefreshTimerReminderTimerGap = 1; // 1min, if the refresh timer is about to expire in 1 mins, then we don't show redminer timer anymore
 const TInt HalfHourInMinuts = 5;//30;
 const TInt KFirstSecondRetryInterval = 1; //30mins
 const TInt KThirdFourthRetryInterval = 2; //one day in minutes
 #else
 
-const TInt KRefreshTimerReminderTimerGap = 60*24; //one day.If the refresh timer is about to expire in one day, then we don't show reminder timer anymore
-                                               // this is to avoid the soft notifications coming too close to eachother.
 const TInt KDelayForUserToAcceptDisclaimer = 10; //10 minutes
 const TInt HalfHourInMinuts = 30;
 const TInt KFirstSecondRetryInterval = 30; //30mins
@@ -45,7 +42,6 @@
 #endif //_DEMO
 
 const TInt StartNow = 0;
-const TInt KSoftNotificationPriority = 1000; //minimum soft notifier priority
 const TInt KMaxRetry = 4; //Max times of retry when refresh fails for some reason
 const TInt StartAfterOneMin = 1; //1mins
 
--- a/iaupdate/IAD/backgroundchecker/inc/iaupdatebginternalfilehandler.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/iaupdate/IAD/backgroundchecker/inc/iaupdatebginternalfilehandler.h	Wed Aug 18 09:55:45 2010 +0300
@@ -71,7 +71,11 @@
     TInt RetryTimes();
     
     void SetRetryTimes( TInt aRetry );
-
+    
+    TInt NrOfIndicatorEntries();
+    
+    void  SetNrOfIndicatorEntries( TInt aEntries );
+    
 protected:
 
     CIAUpdateBGInternalFileHandler();
@@ -111,7 +115,9 @@
     TInt iSNID;
     
     TInt iRetryTimes;
-     
+    
+    TInt iNrOfIndicatiorEntries;
+    
     };
         
 #endif // IAUPDATEBGINTERNAL_FILE_HANDLER
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/iaupdate/IAD/backgroundchecker/inc/iaupdatebgnotifyhandler.h	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,115 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   This file contains the header file of the CIAUpdateBGNotifyhandler
+*                class 
+*
+*/
+
+
+#ifndef __IAUPDATEBGNOTIFYHANDLER_H__
+#define __IAUPDATEBGNOTIFYHHANDLER_H__
+
+// INCLUDES
+#include <e32base.h>
+#include <e32property.h>
+
+// FORWARD DECLARATIONS
+
+// CLASS DECLARATIONS
+
+/**
+*  Observer
+*/
+class MIAUpdateBGNotifyObserver
+{
+public: // Observer API
+    /**
+    * Called by CIAUpdateBGNotifyHandler when indicator is to
+    * be removed 
+    */ 
+    virtual void HandleIndicatorRemoveL() = 0;
+};
+/**
+*
+*/
+
+class CIAUpdateBGNotifyHandler : public CActive
+    {
+public:
+
+    /**
+    * Construct a CIAUpdateBGNotifyHandler using two phase construction,
+    * and return a pointer to the created object
+    * @return A pointer to the created instance of CIAUpdateBGNotifyHandler
+    */
+    static CIAUpdateBGNotifyHandler* NewL();
+    
+    /**
+    * Construct a CIAUpdateBGNotifyHandler using two phase construction,
+    * and return a pointer to the created object
+    * @return A pointer to the created instance of CIAUpdateBGNotifyHandler
+    */
+    static CIAUpdateBGNotifyHandler* NewLC();
+    
+    /**
+    * Destructor
+    */
+    ~CIAUpdateBGNotifyHandler();
+
+public: // new functions
+    
+    /**
+    *
+    */
+    void StartListeningL( MIAUpdateBGNotifyObserver* iObserver );
+    
+private: // CActive
+
+    /**
+     * @see CActive::DoCancel
+     */
+    void DoCancel();
+
+    /**
+     * @see CActive::RunL
+     */
+    void RunL();
+   
+    /**
+     * @see CActive::RunError
+     */ 
+    TInt RunError( TInt aError );
+
+private:
+
+    /**
+    * C++ constructor 
+    */
+    CIAUpdateBGNotifyHandler();
+    
+    /**
+     * Perform the second phase construction of a CIAUpdateBGNotifyHandler object
+     */
+    void ConstructL();
+    
+private: //data
+
+    RProperty iProperty;
+    
+    MIAUpdateBGNotifyObserver* iObserver;
+    
+    };
+
+
+#endif // __IAUPDATEBGNOTIFYHANDLER_H__
--- a/iaupdate/IAD/backgroundchecker/inc/iaupdatebgrefreshtimer.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/iaupdate/IAD/backgroundchecker/inc/iaupdatebgrefreshtimer.h	Wed Aug 18 09:55:45 2010 +0300
@@ -32,6 +32,8 @@
 #include "iaupdatebgsoftnotification.h"
 #include "iaupdatebgcheckermode.h"
 
+#include "iaupdatebgnotifyhandler.h"
+
 // FORWARD DECLARATIONS
 class CIAUpdate;
 class CIAUpdateParameters;
@@ -49,7 +51,8 @@
 class CIAUpdateBGTimer : public CTimer, 
                  public MIAUpdateObserver, 
                  public MCenRepNotifyHandlerCallback, 
-                 public MIAUpdateBGSoftNotificationCallBack 
+                 public MIAUpdateBGSoftNotificationCallBack,
+                 public MIAUpdateBGNotifyObserver
             
     {
     public:
@@ -82,6 +85,10 @@
     public: //MReminderTimerCallBack
 
         void ReminderTimerCallBack();
+    
+    private: // From MIAUpdateBGNotifyObserver   
+
+         void HandleIndicatorRemoveL();
         
     private:
     
@@ -135,6 +142,10 @@
 
         TInt SetModeL( TIAUpdateBGMode aMode );
         
+        TInt NrOfIndicatorEntries();
+
+        TInt SetNrOfIndicatorEntriesL( TInt aEntries );
+        
         TInt RetryTimesL();
 
         TInt SetRetryTimesL( TInt aRetry );
@@ -173,6 +184,8 @@
         CIAUpdateBGInternalFileHandler* iInternalFile;
         TIAUpdateBGMode iMode;
         CIAUpdateBGSoftNotification* iSoftNotification;
+        
+        CIAUpdateBGNotifyHandler* iIndicatorNotifyHandler;
     };        
 
 #endif //IAUPDATEBGREFRESHTIMER_H
--- a/iaupdate/IAD/backgroundchecker/inc/iaupdatebgremindertimer.h	Tue Jul 06 14:23:31 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,73 +0,0 @@
-/*
-* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:   The main header file of background timer
-*
-*/
-
-
-
-
-#ifndef IAUPDATEBGREMINDERTIMER_H
-#define IAUPDATEBGREMINDERTIMER_H
-
-#include <e32base.h>
-#include "iaupdatebginternalfilehandler.h"
-
-
-// INCLUDE FILES 
-class MIAUpdateBGReminderTimerCallBack
-    {
-    public:
-        virtual void ReminderTimerCallBack() = 0;
-    };
-
-
-class CIAUpdateBGReminderTimer : public CTimer
-            
-    {
-    public:
-
-         static CIAUpdateBGReminderTimer* NewL( MIAUpdateBGReminderTimerCallBack* aCallback );  
-        
-         virtual ~CIAUpdateBGReminderTimer();   
-          
-         void StartReminderTimerL( TTimeIntervalMinutes& aTimetoWait );
-         
-         void CancelReminderTimerL();
-         
-    private:
-    
-        CIAUpdateBGReminderTimer( MIAUpdateBGReminderTimerCallBack* aCallback );
-
-        void ConstructL();  
-        
-        void RunL();
-  
-        void DoCancel();
-
-        TInt RunError(TInt aError);
-        
-        void StartL( TTimeIntervalMinutes aWaitTime );
-        
-        TTimeIntervalMicroSeconds32 ConvertToMicroseconds( TTimeIntervalMinutes aInterval );
-
-    private:
-
-        TTime iNextRemindTime;
-        TInt iRuns;
-        CIAUpdateBGInternalFileHandler* iInternalFile;
-        MIAUpdateBGReminderTimerCallBack* iCallback; 
-    };        
-
-#endif //IAUPDATEBGREMINDERTIMER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/iaupdate/IAD/backgroundchecker/src/iaupdatbgnotifyhandler.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,197 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   This module contains the implementation of CIAUpdateBGNotifyHandler class 
+*                member functions.
+*
+*/
+
+
+//INCLUDES
+#include <e32property.h>
+
+#include "iaupdatebgnotifyhandler.h"
+#include "iaupdateuids.h"
+#include "iaupdatebglogger.h"
+
+//CONSTANTS (-> to iaupdaeuids.h)
+#define KIAUpdateBgcUid1 0x200211f4    // Bg checker UID
+const TUint32 KIAUpdateBGNotifyIndicatorRemove = 0x00000003;
+
+const TUid KPSUid = { KIAUpdateBgcUid1 };
+
+//MACROS
+_LIT_SECURITY_POLICY_PASS( KReadPolicy );
+_LIT_SECURITY_POLICY_C1( KWritePolicy, ECapabilityWriteDeviceData );
+
+
+// ================= MEMBER FUNCTIONS =======================
+
+// ---------------------------------------------------------------------------
+// CIAUpdateBGNotifyHandler::NewL
+// Two-phased constructor.
+// ---------------------------------------------------------------------------
+//
+CIAUpdateBGNotifyHandler* CIAUpdateBGNotifyHandler::NewL()
+    {
+    CIAUpdateBGNotifyHandler* self = CIAUpdateBGNotifyHandler::NewLC();
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+// -----------------------------------------------------------------------------
+// CIAUpdateBGNotifyHandler::NewLC
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CIAUpdateBGNotifyHandler* CIAUpdateBGNotifyHandler::NewLC()
+    {
+    CIAUpdateBGNotifyHandler* self = new( ELeave ) CIAUpdateBGNotifyHandler();
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    return self;
+    }
+
+
+
+// ---------------------------------------------------------------------------
+//  CIAUpdateBGNotifyHandler::ConstructL
+// ---------------------------------------------------------------------------
+//
+void CIAUpdateBGNotifyHandler::ConstructL()
+    {
+    FLOG("[IAUPDATE] CIAUpdateBGNotifyHandler::ConstructL() begin");
+    CActiveScheduler::Add( this );
+    TInt err = RProperty::Define( KPSUid, 
+                                  KIAUpdateBGNotifyIndicatorRemove, 
+                                  RProperty::EInt,
+                                  KReadPolicy,
+                                  KWritePolicy );	
+    if ( err != KErrAlreadyExists )
+        {		
+        User::LeaveIfError( err );	
+        }
+    
+    // If not definined, set initial (dummy) value
+    if ( err == KErrNone )
+        {
+        RProperty::Set(KPSUid, KIAUpdateBGNotifyIndicatorRemove, 0);
+        }
+    
+    FLOG("[IAUPDATE] CIAUpdateBGNotifyHandler::ConstructL() end");   
+    }    
+
+// ---------------------------------------------------------------------------
+// CIAUpdateBGNotifyHandler::CIAUpdateBGNotifyHandler
+// constructor
+// ---------------------------------------------------------------------------
+//
+CIAUpdateBGNotifyHandler::CIAUpdateBGNotifyHandler()  
+: CActive( CActive::EPriorityStandard )
+    {
+
+    }
+
+// ---------------------------------------------------------------------------
+// CIAUpdateBGNotifyHandler::~CIAUpdateBGNotifyHandler
+// Destructor
+// ---------------------------------------------------------------------------
+//
+CIAUpdateBGNotifyHandler::~CIAUpdateBGNotifyHandler()
+    {
+    FLOG("[IAUPDATE] CIAUpdateBGNotifyHandler::~CIAUpdateBGNotifyHandler() begin");
+    
+    Cancel();
+    iProperty.Close();
+  
+    FLOG("[IAUPDATE] CIAUpdateBGNotifyHandler::~CIAUpdateBGNotifyHandler() end");    
+    }
+
+// ---------------------------------------------------------------------------
+// CIAUpdateBGNotifyHandler::StartListeningL()
+// 
+// ---------------------------------------------------------------------------
+// 
+void CIAUpdateBGNotifyHandler::StartListeningL( MIAUpdateBGNotifyObserver* aObserver )
+    {
+    
+    //#define KIAHelloWorldUiUid1 0xA000017F
+    //const TUid KPSUid1 = { KIAUpdateUiUid1 };
+    
+    FLOG("[IAUPDATE] CIAUpdateBGNotifyHandler::StartListeningL() begin");
+    
+    if ( !iObserver )
+        {
+    	iObserver = aObserver;
+    	User::LeaveIfError( 
+    	        iProperty.Attach( KPSUid, KIAUpdateBGNotifyIndicatorRemove ) );
+        }
+ 
+   	Cancel();
+	iProperty.Subscribe( iStatus );
+    SetActive();
+    
+    FLOG("[IAUPDATE] CIAUpdateBGNotifyHandler::StartListeningL() end");
+    }
+
+// -----------------------------------------------------------------------------
+// CIAUpdateBGNotifyHandler::DoCancel
+// 
+// -----------------------------------------------------------------------------
+//
+void CIAUpdateBGNotifyHandler::DoCancel()
+    {
+    FLOG("[IAUPDATE] CIAUpdateBGNotifyHandler::DoCancel() begin");
+    
+    iProperty.Cancel();
+    
+    
+    FLOG("[IAUPDATE] CIAUpdateBGNotifyHandler::DoCancel() end");
+    }
+
+// -----------------------------------------------------------------------------
+// CIAUpdateBGNotifyHandler::RunL
+// 
+// -----------------------------------------------------------------------------
+//
+void CIAUpdateBGNotifyHandler::RunL()
+    {
+    FLOG("[IAUPDATE] CIAUpdateBGNotifyHandler::RunL() begin");
+   	iProperty.Subscribe( iStatus );
+    SetActive();
+    
+    /* No need to read value so far
+    TInt value = 0;
+	User::LeaveIfError( RProperty::Get( KPSUid, 
+                                        KIAUpdateUiRefresh, 
+                                        wgId ) );
+    */
+    
+    iObserver->HandleIndicatorRemoveL();
+    
+    FLOG("[IAUPDATE] CIAUpdateBGNotifyHandler::RunL() end");
+    }
+
+
+// -----------------------------------------------------------------------------
+// CIAUpdateBGNotifyHandler::RunError
+// 
+// -----------------------------------------------------------------------------
+//
+TInt CIAUpdateBGNotifyHandler::RunError( TInt /*aError*/ )
+    {
+    FLOG("[IAUPDATE] CIAUpdateBGNotifyHandler::RunError()");
+	return KErrNone;
+    }
+    
+// End of File  
--- a/iaupdate/IAD/backgroundchecker/src/iaupdatebginternalfilehandler.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/iaupdate/IAD/backgroundchecker/src/iaupdatebginternalfilehandler.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -222,7 +222,6 @@
     iMode = aMode;
     }
 
-
 // -----------------------------------------------------------------------------
 // CIAUpdateBGInternalFileHandler::Mode
 //
@@ -233,7 +232,6 @@
     return iMode;
     }
 
-
 // -----------------------------------------------------------------------------
 // CIAUpdateBGInternalFileHandler::FwVersion
 //
@@ -244,7 +242,6 @@
     return iFwVersion;
     }
 
-
 // ----------------------------------------------------------
 // CIAUpdateBGInternalFileHandler::SetFwVersionL()
 // ----------------------------------------------------------
@@ -306,6 +303,26 @@
     }
 
 // -----------------------------------------------------------------------------
+// CIAUpdateBGInternalFileHandler::NrOfIndicatorEntries
+//
+// -----------------------------------------------------------------------------
+//
+TInt CIAUpdateBGInternalFileHandler::NrOfIndicatorEntries()
+    {
+    return iNrOfIndicatiorEntries;
+    }
+
+
+// -----------------------------------------------------------------------------
+// CIAUpdateBGInternalFileHandler::SetNrOfIndicatorEntries
+//
+// -----------------------------------------------------------------------------
+//
+void CIAUpdateBGInternalFileHandler::SetNrOfIndicatorEntries( TInt aEntries )
+    {
+    iNrOfIndicatiorEntries = aEntries;
+    }
+// -----------------------------------------------------------------------------
 // CIAUpdateBGInternalFileHandler::InternalizeL
 //
 // -----------------------------------------------------------------------------
@@ -323,16 +340,6 @@
     // Static casting is safe to do here because enum and TInt are the same.
     SetUserRejectNewFeatureDialog( static_cast< TBool >( userDecision ) );
     
-    /*
-    TInt64 nextRemindTime( 0 );
-    aStream >> nextRemindTime;
-    SetNextRemindTime( nextRemindTime );
-    
-    TInt remindOn( aStream.ReadUint8L() );
-    // Static casting is safe to do here because enum and TInt are the same.
-    SetReminder( static_cast< TBool >( remindOn ) );
-    */
-    
     TInt mode( aStream.ReadUint8L() );
     SetMode( static_cast<TIAUpdateBGMode> (mode) );
     
@@ -348,6 +355,10 @@
     
     TInt retry ( aStream.ReadUint8L() );
     SetRetryTimes( retry );
+    
+    TInt entries ( aStream.ReadUint8L() );
+    SetNrOfIndicatorEntries( entries );
+    
     }
 
 
@@ -367,14 +378,6 @@
     TInt userDecision ( UserRejectNewFeatureDialog() );
     aStream.WriteUint8L( userDecision );
     
-    /*
-    TInt64 nextRemindTime( NextRemindTime().Int64() ); 
-    aStream << nextRemindTime;
-    
-    TInt remindOn ( ReminderOn() );
-    aStream.WriteUint8L( remindOn );
-    */
-    
     TInt mode( Mode() );
     aStream.WriteUint8L( mode );
     
@@ -388,6 +391,10 @@
     
     TInt retry ( RetryTimes() );
     aStream.WriteUint8L( retry ); 
+    
+    TInt entries ( NrOfIndicatorEntries() );
+    aStream.WriteUint8L( entries ); 
+    
     }
 
 //EOF
--- a/iaupdate/IAD/backgroundchecker/src/iaupdatebgrefreshtimer.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/iaupdate/IAD/backgroundchecker/src/iaupdatebgrefreshtimer.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -43,7 +43,6 @@
 //MACROS
 _LIT8( KRefreshFromNetworkDenied, "1" );
 _LIT(KIAUpdateLauncherExe, "iaupdatelauncher.exe" );
-_LIT8( KFirstTimeCase, "0" );
 
 //CONSTANTS
 const TUint KIADUpdateLauncherUid( 0x2001FE2F );
@@ -81,6 +80,8 @@
     
     iSoftNotification = CIAUpdateBGSoftNotification::NewL( this ); 
     
+    iIndicatorNotifyHandler = CIAUpdateBGNotifyHandler::NewL();
+    
     // loc: initialize localisation text loader
     /*
     TBool res = HbTextResolverSymbian::Init(KLocFile, KLocFilePath);
@@ -110,6 +111,7 @@
     delete iControllerFile;
     delete iInternalFile;
     delete iSoftNotification;
+    delete iIndicatorNotifyHandler;
     
     }
 
@@ -119,7 +121,11 @@
 void CIAUpdateBGTimer::StartProcessL()
     {
     FLOG("[bgchecker] StartProcessL");
-        
+    
+    // start listening indicator remove
+    iIndicatorNotifyHandler->StartListeningL( this );
+    
+    
     iMode = ModeL();
     
     switch ( iMode )
@@ -255,10 +261,16 @@
         case ERetryMode:
             {
             
-            // Check if indicator should be shown
-            
+            // Should indicator be shown ?
+            TInt entries = NrOfIndicatorEntries();
+            if  ( entries )
+                {
+                iSoftNotification->SetNrOfUpdates( entries );
+                iSoftNotification->ShowIndicatorL();
+                }
             
             StartUpdatesCheckingL();
+            
             break;
             }
         
@@ -445,7 +457,6 @@
     return err;
     }
 
-
 // ----------------------------------------------------------
 // CIAUpdateBGTimer::ModeL()
 // ----------------------------------------------------------
@@ -466,6 +477,25 @@
     return err;
     }
 
+// ----------------------------------------------------------
+// CIAUpdateBGTimer::NrOfIndicatorEntries()
+// ----------------------------------------------------------
+TInt CIAUpdateBGTimer::NrOfIndicatorEntries()
+    {
+    iInternalFile->ReadControllerDataL();
+    return iInternalFile->NrOfIndicatorEntries();
+    }
+
+
+// ----------------------------------------------------------
+// CIAUpdateBGTimer::SetNrOfIndicatorEntriesL()
+// ----------------------------------------------------------
+TInt CIAUpdateBGTimer::SetNrOfIndicatorEntriesL( TInt aEntries )
+    {
+    iInternalFile->SetNrOfIndicatorEntries( aEntries );
+    TRAPD( err,iInternalFile->WriteControllerDataL() );
+    return err;
+    }
 
 // ----------------------------------------------------------
 // CIAUpdateBGTimer::RetryTimesL()
@@ -1222,7 +1252,9 @@
                   }
               else
                   {
-                  //accepted, launch iad
+                  //accepted, clear indicator entries
+                  SetNrOfIndicatorEntriesL( 0 );
+                  // start IAD
                   StartIaupdateL();
                   }
               break;
@@ -1386,9 +1418,10 @@
     // CleanupStack::PopAndDestroy( titleText );
     // CleanupStack::PopAndDestroy( titleText );
     
-    // Set number of updates
+    // Set number of updates for dialog and internal file
     iSoftNotification->SetNrOfUpdates( aNrOfUpdates );
-   
+    SetNrOfIndicatorEntriesL( aNrOfUpdates );
+    
     iSoftNotification->ShowNotificationL();
     FLOG("[bgchecker] LaunchNotificationL 1");
     
@@ -1538,8 +1571,27 @@
         iSoftNotification = NULL;
         }
     
+    if ( iIndicatorNotifyHandler )
+        {
+        delete iIndicatorNotifyHandler;
+        iIndicatorNotifyHandler = NULL;
+        }
+    
     CActiveScheduler::Stop();
         
     FLOG("[bgchecker] Shutdown() end");
+    }   
+// ---------------------------------------------------------------------------
+// CIAUpdateBGTimer::HandleIndicatorRemoveL()
+// ---------------------------------------------------------------------------
+//
+void CIAUpdateBGTimer::HandleIndicatorRemoveL() 
+    {
+    // remove indicator from indicator menu
+    iSoftNotification->RemoveIndicatorL();
+    
+    //clear nr of indicator entries in internal file
+    SetNrOfIndicatorEntriesL( 0 );
     }
+
 // End of file
--- a/iaupdate/IAD/backgroundchecker/src/iaupdatebgremindertimer.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,168 +0,0 @@
-/*
-* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:   Implementation of background checker
-*
-*/
-
-
-#include    <e32std.h>
-#include    <centralrepository.h>
-#include    "iaupdatebgremindertimer.h"
-#include    "iaupdateprivatecrkeys.h"
-#include    "iaupdatebgconst.h"
-
-// ----------------------------------------------------------
-// CIAUpdateBGReminderTimer::NewL()
-// ----------------------------------------------------------
-CIAUpdateBGReminderTimer* CIAUpdateBGReminderTimer::NewL(MIAUpdateBGReminderTimerCallBack* aCallback)
-    {
-    CIAUpdateBGReminderTimer* self = new(ELeave)CIAUpdateBGReminderTimer(aCallback);
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop(self);
-    return self;
-    }
-    
-
-// ----------------------------------------------------------
-// CIAUpdateBGReminderTimer::ConstructL()
-// ----------------------------------------------------------
-void CIAUpdateBGReminderTimer::ConstructL()
-    {
-    CTimer::ConstructL();
-    CActiveScheduler::Add( this );
-    iInternalFile = CIAUpdateBGInternalFileHandler::NewL();
-    }
-    
-    
-// ----------------------------------------------------------
-// CIAUpdateBGReminderTimer::~CIAUpdateBGReminderTimer()
-// ----------------------------------------------------------
-CIAUpdateBGReminderTimer::~CIAUpdateBGReminderTimer()
-    {
-    Cancel();
-    delete iInternalFile;
-    }
-
-
-// ----------------------------------------------------------
-// CIAUpdateBGReminderTimer::CIAUpdateBGReminderTimer()
-// ----------------------------------------------------------
-CIAUpdateBGReminderTimer::CIAUpdateBGReminderTimer(MIAUpdateBGReminderTimerCallBack* aCallback):CTimer( EPriorityStandard ), iCallback ( aCallback )
-    {   
-    }
-
-
-// ----------------------------------------------------------
-// CIAUpdateBGReminderTimer::RunL()
-// ----------------------------------------------------------
-void CIAUpdateBGReminderTimer::RunL()
-    {
-    
-    if( iRuns == 0 )
-        {
-        //timer expired call the callback
-        iCallback->ReminderTimerCallBack();
-        }
-    else
-        {
-        TTime currenttime;
-        currenttime.UniversalTime();
-                 
-        if ( currenttime >= iNextRemindTime )
-            {
-            StartL( StartNow );
-            }
-        else
-            {
-            iInternalFile->ReadControllerDataL();
-            TTime nextremindtime = iInternalFile->NextRemindTime();
-            TTimeIntervalMinutes timetowait;
-            currenttime.MinutesFrom( nextremindtime, timetowait );
-            StartL( timetowait );
-            }                           
-         }  
-    }
-  
-// ----------------------------------------------------------
-// CIAUpdateBGReminderTimer::DoCancel()
-// ----------------------------------------------------------
-void CIAUpdateBGReminderTimer::DoCancel()
-    {
-    }
-// ----------------------------------------------------------
-// CIAUpdateBGReminderTimer::RunError()
-// ----------------------------------------------------------
-TInt CIAUpdateBGReminderTimer::RunError(TInt /*aError*/)
-    {
-    return KErrNone;
-    }
-
-// ----------------------------------------------------------
-// CIAUpdateBGReminderTimer::StartReminderTimerL()
-// ----------------------------------------------------------
-void CIAUpdateBGReminderTimer::StartReminderTimerL(TTimeIntervalMinutes& aTimetoWait )
-    {
-    if ( IsActive() )
-        {
-        Cancel();
-        }
-    
-    //show after one week
-    StartL( aTimetoWait );    
-    }
-
-
-// ----------------------------------------------------------
-// CIAUpdateBGReminderTimer::CancelReminderTimerL()
-// ----------------------------------------------------------
-void CIAUpdateBGReminderTimer::CancelReminderTimerL()
-    {    
-    Cancel();
-    }
-
-
-// ----------------------------------------------------------
-// CIAUpdateBGReminderTimer::StartL()
-// ----------------------------------------------------------
-void CIAUpdateBGReminderTimer::StartL( TTimeIntervalMinutes aWaitTime )
-    {   
-    Cancel();
-    /*
-    RTimer::After maximum delay is 35 minutes, 47 seconds this is because it is 32bit integer. 
-    Thats why aWaitTime is divided to 30min runs.  
-    */
-    iRuns = 0;
-    if(aWaitTime.Int() > HalfHourInMinuts )
-        {
-        iRuns = aWaitTime.Int() / HalfHourInMinuts;
-        TTimeIntervalMinutes halfhour( HalfHourInMinuts );    
-        After( ConvertToMicroseconds( halfhour ) );
-        }
-    else{
-        After( ConvertToMicroseconds( aWaitTime ) );
-        }
-
-    }
-
-// ----------------------------------------------------------
-// CIAUpdateBGReminderTimer::ConvertToMicroseconds()
-// ----------------------------------------------------------
-TTimeIntervalMicroSeconds32 CIAUpdateBGReminderTimer::ConvertToMicroseconds( TTimeIntervalMinutes aInterval )
-    {
-    return aInterval.Int()*60*1000*1000;
-    }
-
-// End of file
-
Binary file iaupdateapi_stub/conf/CI_iaupdate.confml has changed
--- a/iaupdateapi_stub/group/bld.inf	Tue Jul 06 14:23:31 2010 +0300
+++ b/iaupdateapi_stub/group/bld.inf	Wed Aug 18 09:55:45 2010 +0300
@@ -25,7 +25,6 @@
 //Configuration tool migration
 ../conf/iaupdate.confml                    CONFML_EXPORT_PATH(iaupdate.confml,s60)
 ../conf/iaupdate_2000F85A.crml	           CRML_EXPORT_PATH(iaupdate_2000F85A.crml,s60)
-../conf/CI_iaupdate.confml                    CONFML_EXPORT_PATH(CI_iaupdate.confml,s60)
 
 ../rom/iaupdateapi.iby             CORE_MW_LAYER_IBY_EXPORT_PATH( iaupdateapi.iby )
 
--- a/installationservices/refswinstallationplugin/inc/sifrefinstaller.iby	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/refswinstallationplugin/inc/sifrefinstaller.iby	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -19,7 +19,7 @@
 #ifndef SIFREFINSTALLER_IBY
 #define SIFREFINSTALLER_IBY
 
-define ZDRIVE \epoc32\data\Z
+define ZDRIVE EPOCROOT##epoc32\data\Z
 
 REM SIF Reference Installer
 
--- a/installationservices/refswinstallationplugin/inc/tsifrefinstaller.iby	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/refswinstallationplugin/inc/tsifrefinstaller.iby	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -21,10 +21,7 @@
 
 REM Tests for SIF Reference Installer
 
-define ZDRIVE \epoc32\data\Z
-
-data=ZDRIVE\tusif\tsifrefinstaller\tsifrefinstaller.ini						\tusif\tsifrefinstaller\tsifrefinstaller.ini
-data=ZDRIVE\tusif\tsifrefinstaller\tsifrefinstaller.script					\tusif\tsifrefinstaller\tsifrefinstaller.script
+define ZDRIVE EPOCROOT##epoc32\data\Z
 
 data=ZDRIVE\tusif\tsifrefinstaller\data\base.sifrefbinpkg					\tusif\tsifrefinstaller\data\base.sifrefbinpkg
 data=ZDRIVE\tusif\tsifrefinstaller\data\base3.sifrefbinpkg					\tusif\tsifrefinstaller\data\base3.sifrefbinpkg
--- a/installationservices/swcomponentregistry/inc/screntries.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swcomponentregistry/inc/screntries.h	Wed Aug 18 09:55:45 2010 +0300
@@ -990,7 +990,6 @@
         EScrCompHidden          ///< The component operation is hidden to the user. N.B. SCR doesn't save logs for this type of operation.
         };
     
-#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS    
     NONSHARABLE_CLASS (CScrLogEntry) : public CBase
     /**
         Class that represents a software component log record generated by the SCR.
@@ -1100,8 +1099,6 @@
         HBufC* iGlobalId;
         TComponentId iComponentId; 
         };
-    
-#endif //SYMBIAN_ENABLE_SPLIT_HEADERS   
 
     } // End of namespace Usif
 
--- a/installationservices/swcomponentregistry/inc/screntries_internal.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swcomponentregistry/inc/screntries_internal.h	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -94,117 +94,7 @@
 		private:
 			HBufC* iName;	   ///< The localized software type name.
 			};
-	
-	NONSHARABLE_CLASS (CScrLogEntry) : public CBase
-	/**
-		Class that represents a software component log record generated by the SCR.
-	 */ 
-		{
-		friend class CScrRequestImpl;
-	public:
-		/**
-			Creates a log entry object.
-			@param aComponentName The name of the component.
-			@param aUniqueSwTypeName The non-localized, unique software type name, such as @see Usif::KSoftwareTypeNative and @see Usif::KSoftwareTypeJava.
-			@param aGlobalId The global Id of the component.
-			@param aVersion The version of the component.
-			@param aCompOpType The type of the component operation. @see Usif::TScrComponentOperationType
-			@return A pointer to the newly allocated log entry object, if creation is successful.
-			@internalComponent
-		 */
-		IMPORT_C static CScrLogEntry* NewL(const TDesC& aComponentName, const TDesC& aUniqueSwTypeName, const TDesC& aGlobalId, const TDesC& aVersion, const TScrComponentOperationType aCompOpType);
-		
-		/**
-			Creates a log entry object.
-			@param aComponentName The name of the component.
-			@param aUniqueSwTypeName The non-localized, unique software type name, such as @see Usif::KSoftwareTypeNative and @see Usif::KSoftwareTypeJava.
-			@param aGlobalId The global Id of the component.
-			@param aVersion The version of the component.
-			@param aCompOpType The type of the component operation. @see Usif::TScrComponentOperationType
-			@return A pointer to the newly allocated log entry object, if creation is successful.
-					The pointer is also put onto the cleanup stack.
-			@internalComponent		
-		 */
-		IMPORT_C static CScrLogEntry* NewLC(const TDesC& aComponentName, const TDesC& aUniqueSwTypeName, const TDesC& aGlobalId, const TDesC& aVersion, const TScrComponentOperationType aCompOpType);
 
-	 	/**
-	 		Creates a log entry object from a stream.
-	 		@param aStream The stream to read the log entry object from.
-	 		@return A pointer to the newly allocated log entry object, if creation is successful.
-	 				The pointer is also put onto the cleanup stack.
-	 		@internalComponent
-	 	*/
-		IMPORT_C static CScrLogEntry* NewLC(RReadStream& aStream);
-		
-		~CScrLogEntry();
-		
-	 	/**
-		 	Write the object to a stream 
-		 
-		 	@param aStream The stream to write to
-		 	@internalComponent
-		 */
-		IMPORT_C void ExternalizeL(RWriteStream& aStream) const;
-		 
-		/**
-		 	Read the object from a stream
-		 
-		 	@param aStream The stream to read from.
-		 	@internalComponent
-		 */
-		IMPORT_C void InternalizeL(RReadStream& aStream) ;
-	    
-	    /**
-			@return The name of the component for which the log was generated.
-		 */
-		IMPORT_C const TDesC& ComponentName() const; 
-		
-		/**
-			@return The non-localized, unique software type name, such as @see Usif::KSoftwareTypeNative and @see Usif::KSoftwareTypeJava.
-		 */
-		IMPORT_C const TDesC& SoftwareTypeName() const;
-		
-		/**
-			The UID.
-		 	@return The global ID of the component.
-		 */
-		IMPORT_C const TDesC& GlobalId() const; 
-				
-		/**
-			@return The version of the component.
-		 */
-		IMPORT_C const TDesC& ComponentVersion() const; 
-	    
-		/**
-			@return The time when the operation occured.
-		 */
-		IMPORT_C const TTime OperationTime() const; 
-			    
-	    /**
-		    @return The type of the component operation for the log record.
-		 */
-		IMPORT_C TScrComponentOperationType OperationType() const;
-		
-		/**
-			@return The component id of the log record.
-			@internalComponent
-		 */
-		IMPORT_C TComponentId ComponentId() const;
-	
-	private:
-		CScrLogEntry();
-		void ConstructL(const TDesC& aComponentName, const TDesC& aUniqueSwTypeName, const TDesC& aGlobalId, const TDesC& aVersion, const TScrComponentOperationType aCompOpType);
-		
-	private:	
-	    HBufC* iComponentName ;
-	    HBufC* iSwTypeName;
-		HBufC* iVersion;
-		TScrComponentOperationType iOpType ; 
-		TTime  iRecordTime ;   
-		HBufC* iGlobalId;
-		TComponentId iComponentId; 
-		};
-	
 	} // End of namespace Usif
 
 #endif // SCRENTRIES_H
--- a/installationservices/swcomponentregistry/test/tscr/inc/appmanagersteps.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swcomponentregistry/test/tscr/inc/appmanagersteps.h	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -34,6 +34,8 @@
 _LIT(KScrCompareVersions, "SCRCompareVersions");
 _LIT(KScrIsComponentOnReadOnlyDrive, "SCRIsComponentOnReadOnlyDrive");
 _LIT(KScrComponentPresence, "ScrComponentPresence");
+_LIT(KScrComponentOnEMMC, "ScrComponentOnEMMC");
+_LIT(KScrComponentPresentForNameVendor, "ScrComponentPresentForNameVendor");
 
 class CScrIsMediaPresentStep : public CScrTestStep
 /**
@@ -110,4 +112,33 @@
 	void ImplTestStepPostambleL();		
 	};
 
+class CScrEMMCComponentStep : public CScrTestStep
+/**
+    TEF test step which checks if any components are present on EMMC
+ */
+    {
+public:
+    CScrEMMCComponentStep(CScrTestServer& aParent);
+    
+protected:
+    // From CScrTestStep
+    void ImplTestStepPreambleL();
+    void ImplTestStepL();
+    void ImplTestStepPostambleL();      
+    };
+
+class CScrComponentPresentForNameVendorStep : public CScrTestStep
+/**
+    TEF test step which checks if any components are present with the given name and vendor
+ */
+    {
+public:
+    CScrComponentPresentForNameVendorStep(CScrTestServer& aParent);
+    
+protected:
+    // From CScrTestStep
+    void ImplTestStepPreambleL();
+    void ImplTestStepL();
+    void ImplTestStepPostambleL();      
+    };
 #endif /* APPMANAGERSTEPS_H */
--- a/installationservices/swcomponentregistry/test/tscr/inc/tscrdefs.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swcomponentregistry/test/tscr/inc/tscrdefs.h	Wed Aug 18 09:55:45 2010 +0300
@@ -85,6 +85,8 @@
 _LIT(KServiceOpaqueDataInfoCount, "ServiceOpaqueDataInfoCount");
 _LIT(KServiceDataTypeCount,"ServiceDataTypeCount");
 _LIT(KAppUid, "AppUid");
+_LIT(KNoOfComponents, "NoOfComponents");
+_LIT(KFormatDrive, "FormatDrive");
 
 // File related attribute names
 _LIT(KSetSizeName, "SetSize");
--- a/installationservices/swcomponentregistry/test/tscr/source/appmanagersteps.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swcomponentregistry/test/tscr/source/appmanagersteps.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -202,3 +202,95 @@
 	{
 	CScrTestStep::ImplTestStepPostambleL();
 	}
+
+// -----------CScrEMMCComponentStep-----------------
+
+CScrEMMCComponentStep::CScrEMMCComponentStep(CScrTestServer& aParent)   : CScrTestStep(aParent)
+    {
+    }
+
+void CScrEMMCComponentStep::ImplTestStepPreambleL()
+    {
+    CScrTestStep::ImplTestStepPreambleL();
+    }
+
+void CScrEMMCComponentStep::ImplTestStepL()
+    {
+    TInt noOfComponents(0);
+    GetIntFromConfig(ConfigSection(), KNoOfComponents, noOfComponents);
+    
+    TPtrC formatDrive;
+    GetStringFromConfig(ConfigSection(), KFormatDrive, formatDrive);
+    TInt drive;
+    RFs fs;
+    User::LeaveIfError(fs.Connect());
+    User::LeaveIfError(fs.CharToDrive(formatDrive[0], drive));
+    fs.Close();
+    TDriveList filterFormatDrive;
+    filterFormatDrive.FillZ(KMaxDrives);
+    filterFormatDrive[drive] = 1;
+        
+    CComponentFilter* componentFilter = CComponentFilter::NewLC();
+    componentFilter->SetInstalledDrivesL(filterFormatDrive);
+            
+    RArray<TComponentId> foundComponentIds;
+    CleanupClosePushL(foundComponentIds);
+        
+    iScrSession.GetComponentIdsL(foundComponentIds, componentFilter);
+    
+    if (foundComponentIds.Count() != noOfComponents)
+        {
+        ERR_PRINTF1(_L("Mismatch for number of components found."));
+        SetTestStepResult(EFail);
+        }
+    CleanupStack::PopAndDestroy(2);
+    }
+
+void CScrEMMCComponentStep::ImplTestStepPostambleL()
+    {
+    CScrTestStep::ImplTestStepPostambleL();
+    }
+
+// -----------CScrComponentPresentForNameVendorStep-----------------
+
+CScrComponentPresentForNameVendorStep::CScrComponentPresentForNameVendorStep(CScrTestServer& aParent)   : CScrTestStep(aParent)
+    {
+    }
+
+void CScrComponentPresentForNameVendorStep::ImplTestStepPreambleL()
+    {
+    CScrTestStep::ImplTestStepPreambleL();
+    }
+
+void CScrComponentPresentForNameVendorStep::ImplTestStepL()
+    {
+    TPtrC name;
+    GetStringFromConfig(ConfigSection(), KComponentName, name);
+    
+    TPtrC vendor;
+    GetStringFromConfig(ConfigSection(), KVendorName, vendor);
+    
+    CComponentFilter* componentFilter = CComponentFilter::NewLC();
+    componentFilter->SetNameL(name);
+    componentFilter->SetVendorL(vendor);
+    
+    RArray<TComponentId> foundComponentIds;
+    CleanupClosePushL(foundComponentIds);
+        
+    iScrSession.GetComponentIdsL(foundComponentIds, componentFilter);
+    
+    TInt noOfComponents(0);
+    GetIntFromConfig(ConfigSection(), KNoOfComponents, noOfComponents);
+        
+    if (foundComponentIds.Count() != noOfComponents)
+        {
+        ERR_PRINTF1(_L("Mismatch for number of components found."));
+        SetTestStepResult(EFail);
+        }
+    CleanupStack::PopAndDestroy(2);
+    }
+
+void CScrComponentPresentForNameVendorStep::ImplTestStepPostambleL()
+    {
+    CScrTestStep::ImplTestStepPostambleL();
+    }
--- a/installationservices/swcomponentregistry/test/tscr/source/tscrserver.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swcomponentregistry/test/tscr/source/tscrserver.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -254,7 +254,10 @@
         testStep = new CScrAddConcurrentApplicationEntryStep(*this);	
     else if (strippedStepName == KScrGetAppInfoStep)
         testStep = new CScrGetAppInfoStep(*this);
-  	
+    else if (strippedStepName == KScrComponentOnEMMC)
+           testStep = new CScrEMMCComponentStep(*this);
+    else if (strippedStepName == KScrComponentPresentForNameVendor)
+         testStep = new CScrComponentPresentForNameVendorStep(*this);
 	if(performanceStep)
 		{
 		CScrTestStep *scrTestStep = dynamic_cast<CScrTestStep*>(testStep);
--- a/installationservices/swi/bwins/sisregistryclient_v2U.def	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swi/bwins/sisregistryclient_v2U.def	Wed Aug 18 09:55:45 2010 +0300
@@ -198,4 +198,6 @@
 	?GetComponentIdForPackageL@RSisRegistrySession@Swi@@QBEHABVTDesC16@@0@Z @ 197 NONAME ; int Swi::RSisRegistrySession::GetComponentIdForPackageL(class TDesC16 const &, class TDesC16 const &) const
 	?AddEntryL@RSisRegistryWritableSession@Swi@@QAEXABVCApplicationRegistrationData@Usif@@ABVCSisRegistryPackage@2@@Z @ 198 NONAME ; void Swi::RSisRegistryWritableSession::AddEntryL(class Usif::CApplicationRegistrationData const &, class Swi::CSisRegistryPackage const &)
 	?SetComponentPresenceL@RSisRegistryWritableSession@Swi@@QAEXHH@Z @ 199 NONAME ; void Swi::RSisRegistryWritableSession::SetComponentPresenceL(int, int)
+	?RemoveAppRegInfoL@RSisRegistrySession@Swi@@QAEXABVTDesC16@@@Z @ 200 NONAME ; void Swi::RSisRegistrySession::RemoveAppRegInfoL(class TDesC16 const &)
+	?AddAppRegInfoL@RSisRegistrySession@Swi@@QAEXABVTDesC16@@@Z @ 201 NONAME ; void Swi::RSisRegistrySession::AddAppRegInfoL(class TDesC16 const &)
 
--- a/installationservices/swi/eabi/sisregistryclient_v2U.def	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swi/eabi/sisregistryclient_v2U.def	Wed Aug 18 09:55:45 2010 +0300
@@ -221,4 +221,6 @@
 	_ZN3Swi27RSisRegistryWritableSession9AddEntryLERKN4Usif28CApplicationRegistrationDataERKNS_19CSisRegistryPackageE @ 220 NONAME
 	_ZNK3Swi19RSisRegistrySession25GetComponentIdForPackageLERK7TDesC16S3_ @ 221 NONAME
 	_ZN3Swi27RSisRegistryWritableSession21SetComponentPresenceLEii @ 222 NONAME
+	_ZN3Swi19RSisRegistrySession14AddAppRegInfoLERK7TDesC16 @ 223 NONAME
+	_ZN3Swi19RSisRegistrySession17RemoveAppRegInfoLERK7TDesC16 @ 224 NONAME
 
--- a/installationservices/swi/group/apprscparser.mmp	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swi/group/apprscparser.mmp	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
--- a/installationservices/swi/group/bld.inf	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swi/group/bld.inf	Wed Aug 18 09:55:45 2010 +0300
@@ -59,16 +59,14 @@
 ../inc/swi/installtypes.h SYMBIAN_MW_LAYER_PLATFORM_EXPORT_PATH(swi/installtypes.h)
 ../source/swiutils/swiutils.h SYMBIAN_MW_LAYER_PLATFORM_EXPORT_PATH(swi/swiutils.h)
 ../inc/swi/ipcutil.h 	  SYMBIAN_MW_LAYER_PLATFORM_EXPORT_PATH(swi/ipcutil.h)
-
 // ROMKIT include
-../inc/swidaemon.iby /epoc32/rom/include/swidaemon.iby
 ../inc/swi.iby /epoc32/rom/include/swi.iby
+../inc/swi_ncp.iby /epoc32/rom/include/swi_ncp.iby
 // swi.iby split into two part swi.iby and swiplugin.iby, swiplugin can be used by other team for implementing swi observer plug-in independently
 ../inc/swiplugin.iby /epoc32/rom/include/swiplugin.iby
 ../inc/switextshell.iby /epoc32/rom/include/switextshell.iby
-#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
-../inc/sisregistry_5.3.txt z:/system/data/sisregistry_5.3.txt
-#endif
+../inc/swidaemon.iby /epoc32/rom/include/swidaemon.iby
+
 
 // export certstoretobin
 ../source/certstoretobin/Swicertstoretobin.pl	/epoc32/tools/swicertstoretobin.pl
@@ -76,6 +74,11 @@
 ../source/certstoretobin/Util.pm	/epoc32/tools/util.pm
 ../source/certstoretobin/AppGen.pm	/epoc32/tools/appgen.pm
 
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+../inc/sisregistry_5.3.txt z:/system/data/sisregistry_5.3.txt
+#endif
+
+
 PRJ_MMPFILES
 
 #ifndef TOOLS
@@ -114,10 +117,6 @@
 sisregistryserver_legacy.mmp
 #endif
 
-#ifndef __S60_
-daemon.mmp
-#endif
-
 plan.mmp
 sislauncherclient.mmp
 sislauncherserver.mmp
@@ -153,7 +152,7 @@
   ../test/tmimehandler/tmimehandler.mmp
   ../test/tuiadaptors/consoleserver.mmp
   ../test/tuiadaptors/consoleclient.mmp
-  ../test/tdaemon/tdaemon.mmp
+//  ../test/tdaemon/tdaemon.mmp
   ../test/tuiadaptors/tinstall.mmp
 
 #ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
@@ -227,6 +226,7 @@
 ../test/tsishelper/data/test1.data /epoc32/winscw/c/tswi/tsishelper/data/test1.data
 
 ../test/tdaemon/scripts/tdaemon.script /epoc32/winscw/c/tswi/tdaemon/scripts/tdaemon.script
+../test/tdaemon/scripts/tdaemon_winscw.script /epoc32/winscw/c/tswi/tdaemon/scripts/tdaemon_winscw.script
 ../test/tdaemon/scripts/tdaemon.ini /epoc32/winscw/c/tswi/tdaemon/scripts/tdaemon.ini
 
 #ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
@@ -336,6 +336,7 @@
 ../test/tuiscriptadaptors/scripts/tswiregcompfields.script /epoc32/winscw/c/tswi/tuiscriptadaptors/scripts/tswiregcompfields.script
 ../test/tuiscriptadaptors/scripts/tswiregcompfields.ini /epoc32/winscw/c/tswi/tuiscriptadaptors/scripts/tswiregcompfields.ini
 ../test/tsisregistrytest/Scripts/tsisregistrytest.script /epoc32/winscw/c/tswi/tsisregistrytest/scripts/tsisregistrytest.script
+../test/tsisregistrytest/Scripts/tsisregistrytest_tcb.script /epoc32/winscw/c/tswi/tsisregistrytest/scripts/tsisregistrytest_tcb.script
 ../test/tsisregistrytest/Scripts/tsisregistrytest.ini /epoc32/winscw/c/tswi/tsisregistrytest/scripts/tsisregistrytest.ini
 ../test/tsisregistrytest/Scripts/runregistrytests.script /epoc32/winscw/c/tswi/tsisregistrytest/scripts/runregistrytests.script
 ../test/tsisregistrytest/Scripts/generateregistrytestdata.script /epoc32/winscw/c/tswi/tsisregistrytest/scripts/generateregistrytestdata.script
@@ -1033,6 +1034,9 @@
 #ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 ../test/tsisregistrytest/Scripts/batchfiles/tsisregistrytest_post.bat /epoc32/winscw/c/tswi/tsisregistrytest/scripts/batchfiles/tsisregistrytest_post.bat
 ../test/tsisregistrytest/Scripts/batchfiles/testlogging_pre.bat /epoc32/winscw/c/tswi/tsisregistrytest/scripts/batchfiles/testlogging_pre.bat
+../test/tsisregistrytest/Scripts/batchfiles/tsisregistrytest_tcb_pre.bat /epoc32/winscw/c/tswi/tsisregistrytest/scripts/batchfiles/tsisregistrytest_tcb_pre.bat
+../test/tsisregistrytest/Scripts/batchfiles/tsisregistrytest_tcb_post.bat /epoc32/winscw/c/tswi/tsisregistrytest/scripts/batchfiles/tsisregistrytest_tcb_post.bat
+../test/tsisregistrytest/Scripts/data/addappregdata.sis /epoc32/winscw/c/tswi/tsisregistrytest/scripts/data/addappregdata.sis
 ../test/tuiscriptadaptors/scripts/batchfiles/tswiappregintegration_pre.bat /epoc32/winscw/c/tswi/tuiscriptadaptors/scripts/batchfiles/tswiappregintegration_pre.bat
 ../test/tuiscriptadaptors/scripts/batchfiles/tswiappregintegration_post.bat /epoc32/winscw/c/tswi/tuiscriptadaptors/scripts/batchfiles/tswiappregintegration_post.bat
 #else
@@ -1078,4 +1082,6 @@
 ../test/tuiscriptadaptors/scripts/testpreinstalled_sucert_edrive.sis /epoc32/winscw/c/tswi/tuiscriptadaptors/scripts/testpreinstalled_sucert_edrive.sis
 ../test/tuiscriptadaptors/scripts/testpreinstalled_sucert_edrive.pkg /epoc32/winscw/c/tswi/tuiscriptadaptors/scripts/testpreinstalled_sucert_edrive.pkg
 ../test/tuiscriptadaptors/scripts/testnoaiacert.sis /epoc32/winscw/c/tswi/tuiscriptadaptors/scripts/testnoaiacert.sis
+../test/tdaemon/scripts/batchfiles/setupforemmcformat_pre.bat /epoc32/winscw/c/tswi/tdaemon/scripts/setupforemmcformat_pre.bat
+../test/tdaemon/scripts/batchfiles/setupforemmcformat_post.bat /epoc32/winscw/c/tswi/tdaemon/scripts/setupforemmcformat_post.bat
 // End of file
--- a/installationservices/swi/group/daemon.mmp	Tue Jul 06 14:23:31 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +0,0 @@
-/*
-* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: 
-*
-*/
-
-
-MACRO __SECURE_API__
-MACRO __DATA_CAGING__
-CAPABILITY None
-
-TARGET		swidaemon.exe
-TARGETTYPE	exe
-TARGETPATH	sys/bin
-
-UID			0x1000007A 0x10202DCE
-VENDORID	0x70000001
-
-SOURCEPATH ../source/daemon
-USERINCLUDE ../inc
-USERINCLUDE ../inc/swi
-USERINCLUDE ../source/swis/server
-
-SOURCE daemon.cpp
-SOURCE main.cpp
-SOURCE drivewatcher.cpp
-SOURCE daemonbehaviour.cpp
-SOURCE daemoninstaller.cpp
-
-MW_LAYER_SYSTEMINCLUDE_SYMBIAN
-
-LIBRARY	euser.lib 
-LIBRARY efsrv.lib
-LIBRARY apgrfx.lib
-LIBRARY apmime.lib
-LIBRARY apparc.lib
-
-#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
-USERINCLUDE ../../swtransactionservices/inc
-LIBRARY stsclient.lib
-LIBRARY swiobserverclient.lib
-#endif
-
-LIBRARY sisregistryclient.lib
-LIBRARY swidataprovider.lib
-LIBRARY sisxfile.lib
-LIBRARY siscontroller.lib
-LIBRARY ecom.lib
-SMPSAFE
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/group/export/group/bld.inf	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,67 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+* Software Install implementation 
+*
+*/
+
+
+/**
+ @file
+*/
+
+PRJ_PLATFORMS
+DEFAULT TOOLS
+TOOLS2
+
+PRJ_EXPORTS
+../../../inc/swidaemonplugin.h SYMBIAN_MW_LAYER_PLATFORM_EXPORT_PATH(swidaemonplugin.h)
+../../../inc/pkgremover.h SYMBIAN_MW_LAYER_PUBLIC_EXPORT_PATH(swi/pkgremover.h)
+../../../inc/pkgremovererrors.h SYMBIAN_MW_LAYER_PUBLIC_EXPORT_PATH(swi/pkgremovererrors.h)
+../../../inc/sisregistrywritableentry.h SYMBIAN_MW_LAYER_PLATFORM_EXPORT_PATH(swi/sisregistrywritableentry.h)
+../../../inc/swi/msisuihandlers.h SYMBIAN_MW_LAYER_PLATFORM_EXPORT_PATH(swi/msisuihandlers.h)
+../../../inc/swi/sisdataprovider.h SYMBIAN_MW_LAYER_PLATFORM_EXPORT_PATH(swi/sisdataprovider.h)
+../../../inc/swi/launcher.h SYMBIAN_MW_LAYER_PLATFORM_EXPORT_PATH(swi/launcher.h)
+../../../inc/swi/asynclauncher.h SYMBIAN_MW_LAYER_PLATFORM_EXPORT_PATH(swi/asynclauncher.h)
+../../../inc/swi/sisinstallerrors.h SYMBIAN_MW_LAYER_PLATFORM_EXPORT_PATH(swi/sisinstallerrors.h)
+../../../inc/swi/hashcontainer.h SYMBIAN_MW_LAYER_PLATFORM_EXPORT_PATH(swi/hashcontainer.h)
+../../../inc/swi/sisregistryentry.h SYMBIAN_MW_LAYER_PLATFORM_EXPORT_PATH(swi/sisregistryentry.h)
+../../../inc/swi/sisrevocationentry.h SYMBIAN_MW_LAYER_PLATFORM_EXPORT_PATH(swi/sisrevocationentry.h)
+../../../inc/swi/sisregistrysession.h SYMBIAN_MW_LAYER_PLATFORM_EXPORT_PATH(swi/sisregistrysession.h)
+../../../inc/swi/sisregistrypackage.h SYMBIAN_MW_LAYER_PLATFORM_EXPORT_PATH(swi/sisregistrypackage.h)
+../../../inc/swi/swispubsubdefs.h	SYMBIAN_MW_LAYER_PLATFORM_EXPORT_PATH(swi/swispubsubdefs.h)
+../../../inc/swi/backuprestore.h	SYMBIAN_MW_LAYER_PLATFORM_EXPORT_PATH(swi/backuprestore.h)
+../../../inc/swi/sispackagetrust.h SYMBIAN_MW_LAYER_PLATFORM_EXPORT_PATH(swi/sispackagetrust.h)
+../../../inc/swi/sistruststatus.h SYMBIAN_MW_LAYER_PLATFORM_EXPORT_PATH(swi/sistruststatus.h)
+../../../inc/swi/sisregistrylog.h SYMBIAN_MW_LAYER_PLATFORM_EXPORT_PATH(swi/sisregistrylog.h)
+../../../inc/swi/installtypes.h SYMBIAN_MW_LAYER_PLATFORM_EXPORT_PATH(swi/installtypes.h)
+../../../source/swiutils/swiutils.h SYMBIAN_MW_LAYER_PLATFORM_EXPORT_PATH(swi/swiutils.h)
+../../../inc/swi/ipcutil.h 	  SYMBIAN_MW_LAYER_PLATFORM_EXPORT_PATH(swi/ipcutil.h)
+
+// ROMKIT include
+../../../inc/swi.iby /epoc32/rom/include/swi.iby
+../../../inc/swi_ncp.iby /epoc32/rom/include/swi_ncp.iby
+// swi.iby split into two part swi.iby and swiplugin.iby, swiplugin can be used by other team for implementing swi observer plug-in independently
+../../../inc/swiplugin.iby /epoc32/rom/include/swiplugin.iby
+../../../inc/switextshell.iby /epoc32/rom/include/switextshell.iby
+
+// export certstoretobin
+../../../source/certstoretobin/Swicertstoretobin.pl	/epoc32/tools/swicertstoretobin.pl
+../../../source/certstoretobin/swicertstoretobin.bat	/epoc32/tools/swicertstoretobin.bat
+../../../source/certstoretobin/Util.pm	/epoc32/tools/util.pm
+../../../source/certstoretobin/AppGen.pm	/epoc32/tools/appgen.pm
+
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+../../../inc/sisregistry_5.3.txt z:/system/data/sisregistry_5.3.txt
+#endif
--- a/installationservices/swi/group/sisregistryserver.mmp	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swi/group/sisregistryserver.mmp	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2004-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -41,6 +41,7 @@
 USERINCLUDE ../source/plan
 USERINCLUDE ../inc/swi 
 USERINCLUDE ../inc
+USERINCLUDE ../source/swis/server
 #ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 USERINCLUDE ../../swtransactionservices/inc
 USERINCLUDE ../../swcomponentregistry/inc
--- a/installationservices/swi/group/swisidchecker.mmp	Tue Jul 06 14:23:31 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-*
-*/
-
-TARGET swisidchecker.dll
-CAPABILITY All -Tcb
-TARGETTYPE plugin
-
-UID 0x10009d8d 0x10281FBC
-
-SOURCEPATH ../source/swisidchecker
-SOURCE swisidchecker.cpp swiinstallmonitor.cpp
-MW_LAYER_SYSTEMINCLUDE_SYMBIAN
-
-start RESOURCE 10281fbc.rss
-target swisidchecker.rsc
-end
-
-LIBRARY euser.lib aplist.lib ecom.lib sisregistryclient.lib efsrv.lib 
-SMPSAFE
--- a/installationservices/swi/inc/swi.iby	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swi/inc/swi.iby	Wed Aug 18 09:55:45 2010 +0300
@@ -18,59 +18,8 @@
 #ifndef __SWI_IBY__
 #define __SWI_IBY__
 
-REM Secure Software Install
-
-file=ABI_DIR\BUILD_DIR\installserver.exe		sys\bin\installserver.exe
-file=ABI_DIR\BUILD_DIR\plan.dll				sys\bin\plan.dll
-file=ABI_DIR\BUILD_DIR\sishelper.dll			sys\bin\sishelper.dll
-file=ABI_DIR\BUILD_DIR\swidataprovider.dll	sys\bin\swidataprovider.dll
-file=ABI_DIR\BUILD_DIR\sisxfile.dll			sys\bin\sisxfile.dll
-file=ABI_DIR\BUILD_DIR\siscontroller.dll		sys\bin\siscontroller.dll
-file=ABI_DIR\BUILD_DIR\sisresult.dll			sys\bin\sisresult.dll
-file=ABI_DIR\BUILD_DIR\uiss.dll				sys\bin\uiss.dll
-file=ABI_DIR\BUILD_DIR\uissclient.dll		sys\bin\uissclient.dll
-file=ABI_DIR\BUILD_DIR\sisregistryclient.dll		sys\bin\sisregistryclient.dll
-file=ABI_DIR\BUILD_DIR\sisregistryserver.exe		sys\bin\sisregistryserver.exe
-file=ABI_DIR\BUILD_DIR\sislauncherclient.dll		sys\bin\sislauncherclient.dll
-file=ABI_DIR\BUILD_DIR\sislauncherserver.exe		sys\bin\sislauncherserver.exe
-
-#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
-file=ABI_DIR\BUILD_DIR\apprscparser.dll			sys\bin\apprscparser.dll
-file=ABI_DIR\BUILD_DIR\swtypereginfo.dll		sys\bin\swtypereginfo.dll
-#endif
-
-#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
-file=ABI_DIR\BUILD_DIR\integrityservices.dll		sys\bin\integrityservices.dll
-file=ABI_DIR\BUILD_DIR\sisregistryhelperserver.exe		sys\bin\sisregistryhelperserver.exe
-#endif
-
-file=ABI_DIR\BUILD_DIR\ocspsupport.exe			sys\bin\ocspsupport.exe
-file=ABI_DIR\BUILD_DIR\ocspsupportclient.dll		sys\bin\ocspsupportclient.dll
-file=ABI_DIR\BUILD_DIR\devinfosupportcommon.dll		sys\bin\devinfosupportcommon.dll
-file=ABI_DIR\BUILD_DIR\devinfosupport.exe			sys\bin\devinfosupport.exe
-file=ABI_DIR\BUILD_DIR\devinfosupportclient.dll		sys\bin\devinfosupportclient.dll
-file=ABI_DIR\BUILD_DIR\securitymanager.dll		sys\bin\securitymanager.dll
-file=ABI_DIR\BUILD_DIR\backuprestore.dll		sys\bin\backuprestore.dll
-file=ABI_DIR\BUILD_DIR\cafdataprovider.dll		sys\bin\cafdataprovider.dll
-file=ABI_DIR\BUILD_DIR\pkgremover.dll			sys\bin\pkgremover.dll
-file=ABI_DIR\BUILD_DIR\swiobserver.exe			sys\bin\swiobserver.exe
-file=ABI_DIR\BUILD_DIR\swiutils.dll			sys\bin\swiutils.dll
-
-#include "swiplugin.iby"
-
-file=ABI_DIR\BUILD_DIR\swiobserverclient.dll		sys\bin\swiobserverclient.dll
-
-#ifndef __TEXTSHELL_OBY__
-ECOM_PLUGIN(upsobserver.dll, upsobserver.rsc)
-#endif
-
-ECOM_PLUGIN(recsisx.dll, 0x10202DD0.rsc)
-
-#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
-ECOM_PLUGIN(swisidchecker.dll, 10281FBC.rsc)
-#endif
-
 #include "swiconfig.iby"
 #include "swidaemon.iby"
+#include "swi_ncp.iby"
 
 #endif
--- a/installationservices/swi/inc/swi/sisregistrysession.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swi/inc/swi/sisregistrysession.h	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2004-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -214,6 +214,25 @@
      * @param aComponentIds array of component id's associated with the package uid
      */
 	IMPORT_C void GetComponentIdsForUidL(TUid& aPackageUid, RArray<Usif::TComponentId>& aComponentIds);
+	
+	/**
+    * Adds application registration information to the Software Component Registry
+    * Note that if the SCR already contains registration information for the given app this will be replaced
+    *
+    * @param aAppRegFile application's registration resource file name(with full path)
+    * @capability Tcb
+    */
+    IMPORT_C void AddAppRegInfoL(const TDesC& aAppRegFile);
+	    
+    /**
+     *  Removes application registration information from the Software Component Registry.
+     *  Note that this API should be called before the file is actually deleted
+    
+     *  @param aAppRegFile application's registration resource file name(with full path)
+     *  @capability Tcb
+     */
+    IMPORT_C void RemoveAppRegInfoL(const TDesC& aAppRegFile);
+
 		
 #endif
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/inc/swi_ncp.iby	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,73 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#ifndef __SWI_NCP_IBY__
+#define __SWI_NCP_IBY__
+
+REM Secure Software Install
+
+file=ABI_DIR\BUILD_DIR\installserver.exe		sys\bin\installserver.exe
+file=ABI_DIR\BUILD_DIR\plan.dll				sys\bin\plan.dll
+file=ABI_DIR\BUILD_DIR\sishelper.dll			sys\bin\sishelper.dll
+file=ABI_DIR\BUILD_DIR\swidataprovider.dll	sys\bin\swidataprovider.dll
+file=ABI_DIR\BUILD_DIR\sisxfile.dll			sys\bin\sisxfile.dll
+file=ABI_DIR\BUILD_DIR\siscontroller.dll		sys\bin\siscontroller.dll
+file=ABI_DIR\BUILD_DIR\sisresult.dll			sys\bin\sisresult.dll
+file=ABI_DIR\BUILD_DIR\uiss.dll				sys\bin\uiss.dll
+file=ABI_DIR\BUILD_DIR\uissclient.dll		sys\bin\uissclient.dll
+file=ABI_DIR\BUILD_DIR\sisregistryclient.dll		sys\bin\sisregistryclient.dll
+file=ABI_DIR\BUILD_DIR\sisregistryserver.exe		sys\bin\sisregistryserver.exe
+file=ABI_DIR\BUILD_DIR\sislauncherclient.dll		sys\bin\sislauncherclient.dll
+file=ABI_DIR\BUILD_DIR\sislauncherserver.exe		sys\bin\sislauncherserver.exe
+
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+file=ABI_DIR\BUILD_DIR\apprscparser.dll			sys\bin\apprscparser.dll
+file=ABI_DIR\BUILD_DIR\swtypereginfo.dll		sys\bin\swtypereginfo.dll
+#endif
+
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+file=ABI_DIR\BUILD_DIR\integrityservices.dll		sys\bin\integrityservices.dll
+file=ABI_DIR\BUILD_DIR\sisregistryhelperserver.exe		sys\bin\sisregistryhelperserver.exe
+#endif
+
+file=ABI_DIR\BUILD_DIR\ocspsupport.exe			sys\bin\ocspsupport.exe
+file=ABI_DIR\BUILD_DIR\ocspsupportclient.dll		sys\bin\ocspsupportclient.dll
+file=ABI_DIR\BUILD_DIR\devinfosupportcommon.dll		sys\bin\devinfosupportcommon.dll
+file=ABI_DIR\BUILD_DIR\devinfosupport.exe			sys\bin\devinfosupport.exe
+file=ABI_DIR\BUILD_DIR\devinfosupportclient.dll		sys\bin\devinfosupportclient.dll
+file=ABI_DIR\BUILD_DIR\securitymanager.dll		sys\bin\securitymanager.dll
+file=ABI_DIR\BUILD_DIR\backuprestore.dll		sys\bin\backuprestore.dll
+file=ABI_DIR\BUILD_DIR\cafdataprovider.dll		sys\bin\cafdataprovider.dll
+file=ABI_DIR\BUILD_DIR\pkgremover.dll			sys\bin\pkgremover.dll
+file=ABI_DIR\BUILD_DIR\swiobserver.exe			sys\bin\swiobserver.exe
+file=ABI_DIR\BUILD_DIR\swiutils.dll			sys\bin\swiutils.dll
+
+#include "swiplugin.iby"
+
+file=ABI_DIR\BUILD_DIR\swiobserverclient.dll		sys\bin\swiobserverclient.dll
+
+#ifndef __TEXTSHELL_OBY__
+ECOM_PLUGIN(upsobserver.dll, upsobserver.rsc)
+#endif
+
+ECOM_PLUGIN(recsisx.dll, 0x10202DD0.rsc)
+
+#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+ECOM_PLUGIN(swisidchecker.dll, 10281FBC.rsc)
+#endif
+
+#endif
--- a/installationservices/swi/inc/switextshell.iby	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swi/inc/switextshell.iby	Wed Aug 18 09:55:45 2010 +0300
@@ -19,7 +19,7 @@
 #ifndef SWITEXTSHELL
 #define SWITEXTSHELL
 
-define ROMDRIVE \epoc32\data\Z
+define ROMDRIVE EPOCROOT##epoc32\data\Z
 
 // SWI configuration - already in textshell ROM
 #include <swiconfig.iby>
@@ -63,6 +63,7 @@
 data=ROMDRIVE\resource\swicertstore.dat		\resource\swicertstore.dat  attrib=r
 #endif
 
+#ifndef __SWI_IBY__  
 // Core SWI code
 file=ABI_DIR\BUILD_DIR\installserver.exe			sys\bin\installserver.exe
 file=ABI_DIR\BUILD_DIR\sishelper_tshell.dll			sys\bin\sishelper.dll
@@ -115,7 +116,7 @@
 file=ABI_DIR\BUILD_DIR\swiobserver.exe 				sys\bin\swiobserver.exe
 #endif
 
-
+#endif //__SWI_IBY__
 #ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 	//Universal Software Install Framework production
 	#include "scr.iby" // Software Component Registry
--- a/installationservices/swi/inc/tswitextshell.iby	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swi/inc/tswitextshell.iby	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -45,7 +45,7 @@
 #include "ezlib.iby"
 #include "openenv.iby"
 
-define ZDRIVE \epoc32\winscw\c
+define ZDRIVE EPOCROOT##epoc32\winscw\c
 
 // This the file which used to redirect the request from cam-ocsptest01 to ban-ocsptest01
 data = ZDRIVE\autohardware\hosts		     \hosts
@@ -288,8 +288,8 @@
 data = \epoc32\winscw\c\tswi\tsis\data\certstore\cacerts.dat \tswi\tsis\data\certstore\cacerts.dat
 data = \epoc32\winscw\c\tswi\tsis\data\certstore\certclients.dat \tswi\tsis\data\certstore\certclients.dat
 
-#include "thindump.iby"
-#include "sntpclient.iby"
+//#include "thindump.iby"
+//#include "sntpclient.iby"
 #include <insock.iby>
 #include <centralrepository.iby>
 
@@ -309,24 +309,33 @@
 #include "sqlite3.iby"
 
 file=ABI_DIR\BUILD_DIR\SDPCodec.dll SHARED_LIB_DIR\SDPCodec.dll
-
+#ifndef __TLS_IBY__
 file=ABI_DIR\DEBUG_DIR\securesocket.DLL	System\Libs\securesocket.DLL
+#endif //__TLS_IBY__
 
+#ifndef __IPSEC_IBY__
 file=ABI_DIR\DEBUG_DIR\ipsecpolapi.dll		System\Libs\ipsecpolapi.dll
 file=ABI_DIR\DEBUG_DIR\lib_pfkey.dll		System\Libs\lib_pfkey.dll
+#endif  // __IPSEC_IBY__
 #include "etext.iby"
 
-file=ABI_DIR\DEBUG_DIR\eikcore.dll		System\Libs\EikCore.dll
+//file=ABI_DIR\DEBUG_DIR\eikcore.dll		System\Libs\EikCore.dll
 
-file=ABI_DIR\BUILD_DIR\clock.dll 		System\Libs\Clock.dll
-file=ABI_DIR\BUILD_DIR\EIKSRVC.DLL				System\Libs\EIKSRVC.DLL
-file=ABI_DIR\BUILD_DIR\UIKLAF.DLL				System\Libs\UIKLAF.DLL
-file=ABI_DIR\BUILD_DIR\eikcoctl.dll 			System\Libs\EikCoctl.dll
-file=ABI_DIR\BUILD_DIR\exparser.dll		        System\Libs\exparser.dll
-file=ABI_DIR\BUILD_DIR\form.dll 		System\Libs\Form.dll
+//file=ABI_DIR\BUILD_DIR\clock.dll 		System\Libs\Clock.dll
+//file=ABI_DIR\BUILD_DIR\EIKSRVC.DLL				System\Libs\EIKSRVC.DLL
+//file=ABI_DIR\BUILD_DIR\UIKLAF.DLL				System\Libs\UIKLAF.DLL
+//file=ABI_DIR\BUILD_DIR\eikcoctl.dll 			System\Libs\EikCoctl.dll
+//file=ABI_DIR\BUILD_DIR\exparser.dll		        System\Libs\exparser.dll   temp comment as not found in DFS build 
+//file=ABI_DIR\BUILD_DIR\form.dll 		System\Libs\Form.dll
 #include "fepbase.iby"
-file=ABI_DIR\BUILD_DIR\tagma.dll 		System\Libs\Tagma.dll
+//file=ABI_DIR\BUILD_DIR\tagma.dll 		System\Libs\Tagma.dll
 //file=ABI_DIR\BUILD_DIR\tzclient.dll		System\Libs\tzclient.dll
 
+// to avoide dependency error in DFS build 
+#ifndef __HBLIB_IBY__ 
+file=ABI_DIR\BUILD_DIR\HbCore.dll SHARED_LIB_DIR\HbCore.dll
+#endif  // __HBLIB_IBY__ 
+
+
 
 #endif //TSWITEXTSHELL
--- a/installationservices/swi/source/apprscparser/apprscparser.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swi/source/apprscparser/apprscparser.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -105,6 +105,7 @@
 	{
 	delete iAppBinaryFullName;		
 	iLocalizableRscArray.ResetAndDestroy();
+	iDeviceSupportedLanguages.Close();
 	
 	if (iUseRegFileHandle)
 	    delete iRegistrationFileName; // We had created the filename from the handle
@@ -156,6 +157,12 @@
 	// Check to see if we are only interested in any localized info
 	iReadOnlyOneLocalizedRscInfo = aAppLanguages.Count()?EFalse:ETrue;
 	
+	// We need to parse for all device supported languages. Populate iDeviceSupportedLanguages.
+	if (aAppLanguages.Count()>0)
+	    {             
+        GetInstalledLanguagesL();
+	    }
+
 	DEBUG_PRINTF2(_L("Opening rsc file %S"), iRegistrationFileName); //TODO
 	CResourceFile* registrationFile = NULL;
 	if (iUseRegFileHandle)
@@ -192,7 +199,7 @@
 		}
 	
 	TUint localizableResourceId = 1; // Only initialising this here to keep the compiler happy
-	TRAP(err, ReadNonLocalizableInfoL(resourceReader, localizableResourceId, aAppLanguages));
+	TRAP(err, ReadNonLocalizableInfoL(resourceReader, localizableResourceId, iDeviceSupportedLanguages));
 
 	if (!err)
 	    {
@@ -234,7 +241,8 @@
 		appRegInfo = Usif::CApplicationRegistrationData::NewL(iOwnedFileArray, iServiceArray, iLocalizableAppInfoArray, 
                                         appPropertiesArray, iOpaqueDataArray, iAppUid, *iAppBinaryFullName, iAppCharacteristics, iDefaultScreenNumber);
 		
-		DEBUG_PRINTF2(_L("Count Languages : %d"), aAppLanguages.Count());
+		DEBUG_PRINTF2(_L("Count Languages (from client) : %d"), aAppLanguages.Count());
+		DEBUG_PRINTF2(_L("Count Languages (after reset) : %d"), iDeviceSupportedLanguages.Count());
 		DEBUG_PRINTF2(_L("Count of Loc files parsed : %d"), iLocalizableRscArray.Count());
 		DEBUG_PRINTF2(_L("Count of Loc data passed to SWI : %d"), iLocalizableAppInfoArray.Count());				
 	   }
@@ -835,3 +843,59 @@
     _LIT(KSWIAppRegInfoReaderPanic,"SWIAppRegInfoReaderPanic");
     User::Panic(KSWIAppRegInfoReaderPanic, aPanic);
     }
+
+void CAppRegInfoReader::GetInstalledLanguagesL()
+    {
+    _LIT(KLanguagesIni, "z:\\resource\\bootdata\\languages.txt");
+    const TInt KReadBufSize = 10;
+    
+    iDeviceSupportedLanguages.Reset();
+    
+    RFile file;
+    TInt err = file.Open(iFs, KLanguagesIni, EFileRead|EFileShareReadersOnly);
+    if (KErrNone == err)
+        {
+        CleanupClosePushL(file);
+        
+        TFileText reader;
+        reader.Set(file);
+        err = reader.Seek(ESeekStart);
+        if (KErrNone == err)
+            {
+            TBuf<KReadBufSize> readBuf;
+            while(KErrNone == reader.Read(readBuf))
+                {
+                if (readBuf.Length() > 0)
+                    {
+                    TLex lex(readBuf);
+                    lex.SkipSpace();
+                    TInt language;
+                    err = lex.Val(language);
+                    if (KErrNone != err)
+                        {
+                        readBuf.Zero();
+                        continue; // Read the next line
+                        }
+                    iDeviceSupportedLanguages.AppendL((TLanguage)language);
+                    }
+                readBuf.Zero();
+                }
+            }
+        else
+            {
+            DEBUG_PRINTF3(_L("Reading %S failed with %d"), &KLanguagesIni, err);
+            }
+        
+        CleanupStack::PopAndDestroy(&file);
+        }
+    else
+        {
+        DEBUG_PRINTF3(_L("Opening %S failed with %d"), &KLanguagesIni, err);
+        }
+    
+    // If we are not able fetch the device languages, just parse for the current device language
+    if (0 == iDeviceSupportedLanguages.Count())
+        {
+        iDeviceSupportedLanguages.AppendL(User::Language());
+        }
+    }
--- a/installationservices/swi/source/apprscparser/apprscparser.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swi/source/apprscparser/apprscparser.h	Wed Aug 18 09:55:45 2010 +0300
@@ -86,7 +86,8 @@
 	HBufC* CreateFullIconFileNameL(const TDesC& aIconFileName) const;
 	void FindLocalizableResourceFilesL(const TLanguage& aApplicationLanguage);
 	void CheckForDefaultResourceFileL();
-	TBool TypeUidIsForRegistrationFile(const TUidType& aUidType);    
+	TBool TypeUidIsForRegistrationFile(const TUidType& aUidType);   
+	void GetInstalledLanguagesL();
      
     static void Panic(TInt aPanic);
 	
@@ -115,6 +116,7 @@
 	const RFile* iRegFileHandle;
 	TBool iReadOnlyOneLocalizedRscInfo;
     TBool iUseRegFileHandle;
+    RArray<TLanguage> iDeviceSupportedLanguages;
 	};
 
 #endif	// __APPRSCPARSER_H__
--- a/installationservices/swi/source/daemon/daemon.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,167 +0,0 @@
-/*
-* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: 
-*
-*/
-
-
-#include "daemon.h"
-#include "drivewatcher.h"
-#include "log.h"
-#include "securitypolicy.h"
-
-#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
-#include <e32property.h>
-#include <connect/sbdefs.h>
-#include <usif/sts/sts.h>
-#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
-#include "stsrecovery.h"
-#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
-#include "swiobserverclient.h"
-#else
-#include "sisregistrysession.h"
-#endif
-
-
-namespace Swi
-{
-// CDaemon
-
-/*static*/ CDaemon* CDaemon::NewL(MDaemonBehaviour& aBehaviour)
-	{
-	CDaemon* self=NewLC(aBehaviour);
-	CleanupStack::Pop(self);
-	return self;
-	}
-
-/*static*/ CDaemon* CDaemon::NewLC(MDaemonBehaviour& aBehaviour)
-	{
-	CDaemon* self=new(ELeave) CDaemon(aBehaviour);
-	CleanupStack::PushL(self);
-	self->ConstructL();
-	return self;
-	}
-	
-CDaemon::~CDaemon()
-	{
-	iPolicyLockFile.Close();
-	iWatchers.ResetAndDestroy();
-	iFs.Close();
-	}
-
-CDaemon::CDaemon(MDaemonBehaviour& aBehaviour)
-	: iBehaviour(aBehaviour)
-	{
-	}
-
-void CDaemon::ConstructL()
-	{
-	User::LeaveIfError(iFs.Connect());
-	LockSensitiveFiles();
-	StartRecoveryL();
-	iBehaviour.StartupL();
-	StartWatchersL();
-	}
-
-void CDaemon::StartWatchersL()
-	{
-	RFs fs;
-	User::LeaveIfError(fs.Connect());
-	CleanupClosePushL(fs);
-	
-	User::LeaveIfError(fs.ShareProtected());
-	
-	TDriveList driveList;
-	
-	User::LeaveIfError(fs.DriveList(driveList));
-
-	for (TInt drive=0; drive < KMaxDrives; ++drive)
-		{
-		if (driveList[drive] == 0)
-			{
-			continue;
-			}
-		TDriveInfo info;
-		
-		// Ignore errors since the next drive might work
-		if (KErrNone != fs.Drive(info, drive))
-			{
-			DEBUG_PRINTF2(_L8("SWI Daemon - Not watching drive '%d', could not retrieve drive info."),
-				drive); 
-			continue;
-			}
-
-		if (info.iDriveAtt & KDriveAttRemovable)
-			{
-			DEBUG_PRINTF2(_L8("SWI Daemon - Watching removable drive '%d'"), drive);
-			CDriveWatcher* driveWatcher=CDriveWatcher::NewLC(iFs, drive, iBehaviour);
-			User::LeaveIfError(iWatchers.Append(driveWatcher));
-			CleanupStack::Pop(driveWatcher);
-			}
-		}
-	CleanupStack::PopAndDestroy(&fs);
-	} // StartWatchersL()
-
-void CDaemon::LockSensitiveFiles()
-	{
-	TInt error = iPolicyLockFile.Open(iFs, KSwisPolicyFile, EFileShareReadersOnly | EFileRead);
-	if (error != KErrNone)
-		{
-		DEBUG_PRINTF2(_L8("SWI Daemon - Could not open SWI policy file with error %d!"), error);
-		}	
-	}
-
-#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
-void CDaemon::StartRecoveryL()
-	{
-	DEBUG_PRINTF(_L("CDaemon::StartRecoveryL()"));
-
-	// Check to see if a backup is in progress...
-	TInt backup = 0;
-	User::LeaveIfError(RProperty::Get(KUidSystemCategory,conn::KUidBackupRestoreKey,backup));
-	
-	if(backup == conn::EBURUnset || (backup == (conn::EBURNormal | conn::ENoBackup))) //no backup or restore is in progress
-		{
-		//no recovery attempt is made during backup/restore as recovery may seriously affect the file system, which might impact backup/restore
-		//recovery will be made at next bootup
-		Usif::RStsRecoverySession stsRecoverySession;
-		// A recovery failure should not affect Daemon start up.
-		TRAPD(err, stsRecoverySession.RollbackAllPendingL());
-		if(err != KErrNone)
-			{
-			DEBUG_PRINTF2(_L("CDaemon::StartRecoveryL() - STS server failed to recover transactions. Error code: %d"), err);
-			}
-		//Start SWI Observer so that it can process the log files left from the previous session.
-		RSwiObserverSession swiObserver;
-		swiObserver.ProcessLogsL(iFs); 
-		swiObserver.Close();
-		}
-	}
-#else
-void CDaemon::StartRecoveryL()
-	{
-	DEBUG_PRINTF(_L8("SWI Daemon - Check to see if a recovery is needed"));
-	RSisRegistrySession registrySession;
-	User::LeaveIfError(registrySession.Connect());
-	CleanupClosePushL(registrySession);
-	
-	// A recovery failure should not affect SWI Daemon start up.
-	TRAP_IGNORE(registrySession.RecoverL());
-	
-	CleanupStack::PopAndDestroy(&registrySession);
-	DEBUG_PRINTF(_L8("SWI Daemon - Recovery check finished"));
-	}
-#endif
-
-} // namespace Swi
--- a/installationservices/swi/source/daemon/daemon.h	Tue Jul 06 14:23:31 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,91 +0,0 @@
-/*
-* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: 
-*
-*/
-
-
-/**
- @file 
- @internalComponent
- @released
-*/
-
-#ifndef __DAEMON_H__
-#define __DAEMON_H__
-
-#include "drivewatcher.h"
-
-namespace Swi
-{
-class CDriveWatcher;
-
-class MDaemonBehaviour : public MDriveObserver
-	{
-public:
-	/**
-	 * Called by the daemon when it is first started
-	 *
-	 * @return ETrue to continue, or EFalse to stop the daemon
-	 */
-	virtual TBool StartupL()=0;
-	};
-
-/**
- * The main daemon class which sets up the watchers.
- */
-class CDaemon : public CBase
-	{
-public:
-	static CDaemon* NewL(MDaemonBehaviour& aBehaviour);
-	static CDaemon* NewLC(MDaemonBehaviour& aBehaviour);
-	
-	~CDaemon();
-	
-	const RPointerArray<CDriveWatcher>& Watchers() const; 
-private:
-	CDaemon(MDaemonBehaviour& aBehaviour);
-	void ConstructL();
-	
-	void StartWatchersL();
-	
-	// This function should not leave, it is not an inherent functionality of the daemon
-	void LockSensitiveFiles(); 
-	
-	void StartRecoveryL();
-
-private:
-	/// an M-Class specifying the behaviour of the daemon
-	MDaemonBehaviour& iBehaviour;
-	
-	/// An array of watchers, which watch removable drives
-	RPointerArray<CDriveWatcher> iWatchers;	
-	
-	RFs iFs;
-	
-	// Used for preventing exclusing locks on the SWI policy file	
-	RFile iPolicyLockFile; 
-	};
-
-
-// inline functions from CDaemon
-
-inline const RPointerArray<CDriveWatcher>& CDaemon::Watchers() const
-	{
-	return iWatchers;
-	}
-
-} // namespace Swi
-
-#endif // #ifndef __DAEMON_H__
--- a/installationservices/swi/source/daemon/daemonbehaviour.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,435 +0,0 @@
-/*
-* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: 
-*
-*/
-
-
-#include "daemonbehaviour.h"
-#include "swispubsubdefs.h"
-#include "recsisx.h"
-#include "sisregistrywritablesession.h"
-#include "sisregistryentry.h"
-#include "filesisdataprovider.h"
-#include "swi/sisparser.h"
-#include "swi/siscontents.h"
-#include "swi/siscontroller.h"
-#include "sisinfo.h"
-#include "cleanuputils.h"
-#include "sisregistrypackage.h"
-#include "log.h"
-
-void ScanDirectoryL(TInt aDrive);
-
-using namespace Swi;
-
-CDaemonBehaviour* CDaemonBehaviour::NewL()
-	{
-	CDaemonBehaviour* self = NewLC();
-	CleanupStack::Pop(self);
-	return self;
-	}
-	
-CDaemonBehaviour* CDaemonBehaviour::NewLC()
-	{
-	CDaemonBehaviour* self = new (ELeave) CDaemonBehaviour;
-	CleanupStack::PushL(self);
-	self->ConstructL();
-	return self;	
-	}
-		
-void CDaemonBehaviour::ConstructL()
-	{
-	User::LeaveIfError(iFs.Connect());
-	User::LeaveIfError(iFs.ShareProtected());
-	User::LeaveIfError(iApaSession.Connect());
-	iSisInstaller = CSisInstaller::NewL(this);
-	TRAP_IGNORE(iSwiDaemonPlugin = CSwiDaemonPlugin::NewL());
-	}
-	
-CDaemonBehaviour::~CDaemonBehaviour()
-	{
-	if(iSwiDaemonPlugin)
-		{
-		delete iSwiDaemonPlugin;
-		REComSession::FinalClose();
-		}
-	delete iSisInstaller;
-	iFs.Close();	
-	iApaSession.Close();
-	}
-		
-	// from MDaemonBehaviour
-TBool CDaemonBehaviour::StartupL()
-	{
-	// Return state of Startup
-	return ETrue;
-	}
-
-void CDaemonBehaviour::MediaChangeL(TInt aDrive, TChangeType aChangeType)
-	{
-	DEBUG_PRINTF3(_L8("SWI Daemon - Media change detected. Drive: %d, Change Type: %d."),
-		aDrive, aChangeType);
-	
-	RSisRegistryWritableSession registrySession;
-	
-	User::LeaveIfError(registrySession.Connect());
-	CleanupClosePushL(registrySession);
-		
-	if (aChangeType==EMediaInserted)
-		{
-		// notify IAR
-		registrySession.AddDriveL(aDrive);
-
-		// Scan directory on the card and run pre-installed through SWIS
-		// nb. will leave if no SIS files to install.
-		ProcessPreinstalledFilesL(aDrive);
-		}
-	else if (aChangeType==EMediaRemoved)
-		{
-		// Cancel all requests for install
-		iSisInstaller->Reset();
-
-		// Notify plugin
-		if(iSwiDaemonPlugin)
-			{
-			iSwiDaemonPlugin->MediaRemoved(aDrive);
-			}
-
-#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
-		// notify IAR
-		registrySession.RemoveDriveL(aDrive);
-#endif
-		}
-	CleanupStack::PopAndDestroy(&registrySession);
-	}
-	
-void CDaemonBehaviour::ProcessPreinstalledFilesL(TInt aDrive)
-	{
-	_LIT(KDaemonPrivatePath,":\\private\\10202dce\\");
-		
-	iSisInstaller->Reset();
-	ProcessPreinstalledFilesL(aDrive, KDaemonPrivatePath);
-	iStartNotified = EFalse;
-	iDrive = aDrive;
-	iSisInstaller->StartInstallingL();
-	}
-		
-void CDaemonBehaviour::ProcessPreinstalledFilesL(TInt aDrive, const TDesC& aDirectory)
-	{
-	TPath preInstalledPath;
-	TChar drive;
-	RFs::DriveToChar(aDrive, drive);
-	preInstalledPath.Append(drive);
-	preInstalledPath.Append(aDirectory);
-
-	CDir* dir = NULL;
-	TInt err = iFs.GetDir(preInstalledPath, KEntryAttNormal, ESortByName, dir);	
-	if (err != KErrNone && err != KErrPathNotFound)
-			{
-			User::Leave(err);
-			}
-	if(dir)
-		{
-		// dir will only exist if GetDir succeeded
-		CleanupStack::PushL(dir);
-		for(TInt i = 0; i < dir->Count(); i++)
-			{
-			const TEntry &entry = (*dir)[i];
-			if(!entry.IsDir())
-				{
-				TFileName fileName(preInstalledPath);
-				fileName.Append(entry.iName);
-				iSisInstaller->AddFileToInstallL(fileName);
-				}
-			}
-		CleanupStack::PopAndDestroy(dir);
-		}
-	}
-
-
-// From MDaemonInstallBehaviour
-
-MDaemonInstallBehaviour::TSisInstallState CDaemonBehaviour::VerifyAppCacheListL()
-	{
-	MDaemonInstallBehaviour::TSisInstallState returnState = MDaemonInstallBehaviour::EStateVerifyAppCacheList;
-		
-	// What is really desired is notification that the Application Architecture cached List
-	// is valid, but as this cannot be done simply.
-	// Is is simulated by a call to two member functions.
-				
-	TApaAppInfo appInfo;
-	User::LeaveIfError(iApaSession.GetAllApps());
-	TInt err(iApaSession.GetNextApp(appInfo)); // Call member function that can report an EAppListInvalid
-		
-	if (err == RApaLsSession::EAppListInvalid)
-		{
-		returnState = MDaemonInstallBehaviour::EStateVerifyAppCacheList;
-		}
-	else if (err == KErrNone) // cached list of apps is ready
-		{
-		returnState = MDaemonInstallBehaviour::EStateVerifySwisProperty;
-		}	
-	else
-		{
-		User::Leave(err);
-		}
-	return returnState;
-	}
-
-MDaemonInstallBehaviour::TSisInstallState CDaemonBehaviour::VerifySwisPropertyL()
-	{
-	MDaemonInstallBehaviour::TSisInstallState returnState = MDaemonInstallBehaviour::EStateVerifySwisProperty;
-	TInt swisState;
-	TInt err(RProperty::Get(KUidSystemCategory,KUidSoftwareInstallKey,swisState));
-		
-	if (err == KErrNotFound)
-		{
-		returnState = (MDaemonInstallBehaviour::EStateInstall);
-		}
-	else if (err == KErrNone)
-		{
-		if (swisState == ESwisNone)
-			{
-			// SWIS is idle
-			returnState = (MDaemonInstallBehaviour::EStateInstall);
-			}
-		else
-			{
-			// SWIS is performing an operation
-			returnState = (MDaemonInstallBehaviour::EStateVerifySwisIdle);
-			}
-		}
-	else
-		{
-		User::Leave(err);
-		}
-	return returnState;
-	}
-
-MDaemonInstallBehaviour::TSisInstallState CDaemonBehaviour::VerifySwisIdleL()
-	{
-	MDaemonInstallBehaviour::TSisInstallState returnState = MDaemonInstallBehaviour::EStateVerifySwisIdle;
-	TInt swisState;
-			
-	// Obtain the state of the software installer
-	User::LeaveIfError(RProperty::Get(KUidSystemCategory,KUidSoftwareInstallKey,swisState));
-
-	if (swisState == ESwisNone) // Swis is idle
-		{
-		returnState = (MDaemonInstallBehaviour::EStateInstall);
-		}
-	else // Software installer is currently installing/uinstalling
-		{
-		returnState = (MDaemonInstallBehaviour::EStateVerifySwisIdle);
-		}
-	return returnState;
-	}
-	
-void CDaemonBehaviour::ReadSymbianHeaderL(RFile& aFile, TUid& aUid1, TUid& aUid2, TUid& aUid3)
-	{
-	
-	TInt uidLen =  sizeof(TInt32);
-		
-	TPckg<TInt32> uid1(aUid1.iUid);
-	User::LeaveIfError(aFile.Read(uid1, uidLen));
-	if (uid1.Length() != uidLen)
-		{
-		User::Leave(KErrUnderflow);
-		}
-			
-	TPckg<TInt32> uid2(aUid2.iUid);
-	User::LeaveIfError(aFile.Read(uid2, uidLen));
-	if (uid1.Length() != uidLen)
-		{
-		User::Leave(KErrUnderflow);
-		}
-			
-	TPckg<TInt32> uid3(aUid3.iUid);
-	User::LeaveIfError(aFile.Read(uid3, uidLen));
-	if (uid1.Length() != uidLen)
-		{
-		User::Leave(KErrUnderflow);
-		}
-	
-	}
-
-void CDaemonBehaviour::DoInstallRequestL(const TDesC& aFileName)
-	{
-	DEBUG_PRINTF2(_L("SWI Daemon - Processing presinstalled SIS file '%S'"),
-		&aFileName);
-		
-	TUid appUid;
-	TDataType dataType;
-		
-	User::LeaveIfError(iFs.ShareProtected());
-		
-	// have to pass the file using the file handle
-	// otherwise SisHelper won't be able to read the 
-	// daemon private directory
-	RFile file;
-	User::LeaveIfError(file.Open(iFs, aFileName, EFileRead | EFileStream | EFileShareReadersOnly));
-	CleanupClosePushL(file);
-	User::LeaveIfError(iApaSession.AppForDocument(file,appUid,dataType));
-	
-	// Start installing the file only if it is a sisx file
-	if (dataType.Des8() == KDataTypeSisx)
-		{
-
-		// Check if this is already installed, by extracting the package UID and
-		// asking the registry.
-			
-		TUid uid1, uid2, uid3;
-		ReadSymbianHeaderL(file, uid1, uid2, uid3);
-			
-			
-		// UID 3 will be the package UID, query the registry about it.
-		RSisRegistrySession session;
-		User::LeaveIfError(session.Connect());
-		CleanupClosePushL(session);
-			
-		// temporary work around while we decide what IsInstalled should be policed by.
-			
-		RSisRegistryEntry entry;
-		TInt entryOpenResult = entry.Open(session, uid3);
-		CleanupClosePushL(entry);
-
-		// Get the types and other details from the stub
-		CFileSisDataProvider* fileProvider = CFileSisDataProvider::NewLC(iFs, aFileName, EFileRead | EFileShareReadersOnly); 
-		TInt64 pos( 0 );                            
-   		fileProvider->Seek( ESeekStart, pos ); 
-		Swi::Sis::CContents* content = Swi::Sis::Parser::ContentsL(*fileProvider);
-		CleanupStack::PushL( content );
-		HBufC8* controllerdata = content->ReadControllerL(); 
-		CleanupStack::PushL( controllerdata ); 
-		TPtrProvider provider(controllerdata->Des());
-		Sis::CController *siscontroller = Swi::Sis::CController::NewLC(provider);
-		
-		switch(siscontroller->Info().InstallType())
-			{
-				/* For SA/PA, If UID is found in registry, Don't install otherwise Install */
-				case EInstInstallation:
-				case EInstPreInstalledApp:
-					{
-					if(entryOpenResult != KErrNone)
-						{
-						DoInstallL(file,appUid);
-						}
-					
-					break;
-					}
-				/*
-				 For PP/SP, If patch name is found already in registry, Don't install 
-		 		 otherwise Install 
-		 		 */
-				case EInstPreInstalledPatch:
-				case EInstAugmentation:
-					{
-					TBool shouldInstall = ETrue;
-					const RPointerArray<CString>& names = siscontroller->Info().Names();
-					RPointerArray<CSisRegistryPackage> augmentations;
-					
-					// If Base package is not available then don't do anything and break the case.
-					if (entryOpenResult != KErrNone)
-						{
-						break;
-						}
-
-					//Get the Augmentation and Install if augmentation doesn't match 
-					CleanupResetAndDestroy<RPointerArray<CSisRegistryPackage> >::PushL(augmentations);
-					entry.AugmentationsL(augmentations);	
-					for (TInt i = 0; i < augmentations.Count(); ++i)
-						{
-						for (TInt j =0; j < names.Count(); ++j)
-							{
-							if ((uid3  == augmentations[i]->Uid()) &&
-								(augmentations[i]->Name() == names[j]->Data()))
-								{
-								shouldInstall=EFalse;
-								break;
-								}
-							}
-						}
-
-					if(shouldInstall)	
-						{
-						DoInstallL(file,appUid);
-						}
-					
-					CleanupStack::PopAndDestroy(&augmentations);
-					break;
-					}
-			
-				default: 
-					/* 
-					If SA/PA/SP/PP is not the case we can't handle because
-					PU has never been supported for SwiDaemon according to FS.
-					*/
-					ASSERT(EFalse);
-				
-			}
-
-		CleanupStack::PopAndDestroy(6, &session);
-		
-		} // End of SISX file condition
-		
-	CleanupStack::PopAndDestroy(&file); // close
-	}
-
-void CDaemonBehaviour::DoNotifyMediaProcessingComplete()
-	{
-	if(iSwiDaemonPlugin && iStartNotified)
-		{
-		iSwiDaemonPlugin->MediaProcessingComplete();
-		}
-	}
-
-void CDaemonBehaviour::DoInstallL(RFile &file, const TUid &appUid)
-	{
-					
-	// Rewind file
-	TInt pos = 0;
-	file.Seek(ESeekStart, pos);
-				
-	if(iSwiDaemonPlugin)
-		{
-		DEBUG_PRINTF(_L8("SWI Daemon - Using external plugin to process install"));
-					
-		if(!iStartNotified)
-			{
-			iSwiDaemonPlugin->MediaProcessingStart(iDrive);
-			iStartNotified = ETrue;
-			}
-		iSwiDaemonPlugin->RequestInstall(file);
-		}
-		
-	else
-		{
-		DEBUG_PRINTF(_L8("SWI Daemon - Using internal logic to process install"));
-			
-		TThreadId threadId;
-		User::LeaveIfError(iApaSession.StartDocument(file,appUid,threadId));
-					
-		RThread thread;
-		User::LeaveIfError(thread.Open(threadId));
-		CleanupClosePushL(thread);
-						
-		// Wait for the installer to terminate before launching another install.
-						
-		TRequestStatus status;
-		thread.Logon(status);
-		User::WaitForRequest(status);
-		CleanupStack::PopAndDestroy(&thread);
-		}
-	}	
--- a/installationservices/swi/source/daemon/daemonbehaviour.h	Tue Jul 06 14:23:31 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,144 +0,0 @@
-/*
-* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: 
-*
-*/
-
-
-/**
- @file 
- @internalComponent
- @released
-*/
-
-#ifndef __DAEMONBEHAVIOUR_H__
-#define __DAEMONBEHAVIOUR_H__
-
-#include <e32base.h>
-#include <f32file.h>
-#include <apgcli.h>
-
-#include "daemon.h"
-#include "daemoninstaller.h"
-#include <swidaemonplugin.h>
-
-namespace Swi
-{
-/**
- * This class implements the specific behaviour when a media insertion
- * or removal is detected, or the daemon is started.
- */
-class CDaemonBehaviour : public CBase, public MDaemonBehaviour, public MDaemonInstallBehaviour
-	{
-public:
-	static CDaemonBehaviour* NewL();
-	static CDaemonBehaviour* NewLC();
-	~CDaemonBehaviour();
-
-	// from MDaemonBahviour
-public:	
-	/**
-	 * Function called on startup of the daemon.
-	 * This currently performs no opeartions.
-	 */
-	TBool StartupL();
-
-	/**
-	 * Function called on a media change.
-	 * If media is inserted, then this processes pre-installed files on
-	 * the card, and notifies IAR. On removal IAR is notified only.
-	 */
-	void MediaChangeL(TInt aDrive, TChangeType aChangeType);
-
-// Accessor functions
-	RApaLsSession& ApaSession();
-
-	// from MDaemonInstallBehaviour
-public:	
-	/**
-	 * Verifies that the application architecture server has a cached list of applications
-	 * and return next state of install
-	 */
-	MDaemonInstallBehaviour::TSisInstallState VerifyAppCacheListL();
-	
-	/**
-	 * Verifies that the Software Installer property has been defined
-	 * and return next state of install
-	 */
-	MDaemonInstallBehaviour::TSisInstallState VerifySwisPropertyL();
-	
-	/**
-	 * Checks the software installer property, to see if busy
-	 * and return next state of install
-	 */
-	MDaemonInstallBehaviour::TSisInstallState VerifySwisIdleL();
-	
-	/// See MDaemonInstallBehaviour::DoInstallRequestL
-	void DoInstallRequestL(const TDesC& aFileName);
-	
-	/// See MDaemonInstallBehaviour::DoNotifyMediaProcessingComplete
-	void DoNotifyMediaProcessingComplete();
-	
-private:
-	void ConstructL();
-	
-	/**
-	 * Processes any pre-installed files present on the drive.
-	 *
-	 * @param aDrive The drive to check for pre-installed SISX files.
-	 */
-	void ProcessPreinstalledFilesL(TInt aDrive);
-	
-	/**
-	 * Processes any pre-installed files in the given directory on the drive.
-	 @param aDrive The drive to check for pre-installed SISX files.
-	 @param aDirectory The directory to search for PreInstalled Files
-	 
-	 */
-	void ProcessPreinstalledFilesL(TInt aDrive, const TDesC& aDirectory);
-
-	void ReadSymbianHeaderL(RFile& aFile, TUid& aUid1, TUid& aUid2, TUid& aUid3);
-
-	/// Invoke Installation
-	void DoInstallL(RFile &aFile,const TUid &appUid);
-
-private:
-	RFs iFs;
-		
-	// The RApaLsSession instance
-	RApaLsSession iApaSession;
-	
-	// The sisx file processor
-	CSisInstaller* iSisInstaller;
-
-	CSwiDaemonPlugin* iSwiDaemonPlugin;
-
-	// Drive currently being processed
-	TInt iDrive;
-	
-	// Has MediaProcessingStart already been called?
-	TBool iStartNotified;
-	};
-
-// inline functions
-inline RApaLsSession& CDaemonBehaviour::ApaSession()
-	{
-	return iApaSession;
-	}
-
-	
-} // namespace Swi
-
-#endif // #ifndef __DAEMONBEHAVIOUR_H__
-
--- a/installationservices/swi/source/daemon/daemoninstaller.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,222 +0,0 @@
-/*
-* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: 
-*
-*/
-
-
-#include <apgcli.h>
-#include "daemoninstaller.h"
-#include "swispubsubdefs.h"
-#include "log.h"
-
-const static TInt KAppListRetryWaitTime = 5000000; // 5 secs
-_LIT(KMCSisInstaller,"Daemon-Installer"); // Minor-Component name
-
-namespace Swi
-	{
-	// Two phased construction
-
-	CSisInstaller* CSisInstaller::NewL(MDaemonInstallBehaviour* aDaemonBehaviour)
-		{
-		CSisInstaller* self = new (ELeave) CSisInstaller(aDaemonBehaviour);
-		CleanupStack::PushL(self);
-		self->ConstructL();
-		CleanupStack::Pop(self);
-		return self;
-		}
-	
-	// Install Request constructor
-	
-	CSisInstaller::CSisInstaller(MDaemonInstallBehaviour* aDaemonBehaviour) : CActive(CActive::EPriorityStandard),
-		  iDaemonBehaviour(aDaemonBehaviour),
-		  iState(MDaemonInstallBehaviour::EStateVerifyAppCacheList),
-		  iFileIndex(0),
-		  iTimeStep(KAppListRetryWaitTime)		  
-		{
-		CActiveScheduler::Add(this);
-		}
-	
-	// Install Request destructor
-
-	CSisInstaller::~CSisInstaller()
-		{
-		Cancel();
-		iTimer.Close();
-		iProperty.Close();
-		iFilesToInstall.ResetAndDestroy();
-		iFilesToInstall.Close();
-		}
-	
-	// 2nd phase construction
-
-	void CSisInstaller::ConstructL()
-		{
-		User::LeaveIfError(iTimer.CreateLocal());
-		User::LeaveIfError(iProperty.Attach(KUidSystemCategory,KUidSoftwareInstallKey));
-		}
-		
-	// Set the location of all sis files and the list of them
-	// also take ownership of the pointers to memory
-		
-	void CSisInstaller::AddFileToInstallL(const TDesC& aFileName)
-		{
-		DEBUG_PRINTF2(_L("SWI Daemon - Queueing presintalled SIS file '%S' for processing"),
-			&aFileName);
-		
-		HBufC* fileName = aFileName.AllocLC();
-		iFilesToInstall.AppendL(fileName);
-		CleanupStack::Pop(fileName);
-		}
-	
-	// Start the request to process the Sisx file
-
-	void CSisInstaller::StartInstallingL()
-		{
-		if(iFilesToInstall.Count() > 0)
-			{
-			iState = MDaemonInstallBehaviour::EStateVerifyAppCacheList;
-			ReRequestL();
-			}
-		}
-		
-	// Requesting an asyncronous timer/subscrive event
-
-	void CSisInstaller::ReRequestL()
-		{
-		switch (iState)
-			{
-		// Verify the app cache list at time intervals
-		case MDaemonInstallBehaviour::EStateVerifyAppCacheList:
-			iTimer.Cancel();
-			iTimer.After(iStatus,iTimeStep);
-			SetActive();
-			break;
-		
-		// Verify software installer property 
-		case MDaemonInstallBehaviour::EStateVerifySwisProperty:
-			CompleteSelf();
-			break;
-		
-		case MDaemonInstallBehaviour::EStateVerifySwisIdle:
-			iProperty.Subscribe(iStatus);
-			SetActive();
-			break;
-
-		case MDaemonInstallBehaviour::EStateInstall:
-			CompleteSelf();
-			break;
-
-		default:
-			// SisInstaller in an incorrect state
-			User::Panic(KMCSisInstaller,KErrNotSupported);
-			break;			
-			}
-		}
-		
-	// Complete the request manually
-		
-	void CSisInstaller::CompleteSelf()
-		{
-		TRequestStatus* status = &iStatus;
-		User::RequestComplete(status,KErrNone);
-		SetActive();
-		}
-
-	// Cancel the active request
-
-	void CSisInstaller::DoCancel()
-		{
-		iProperty.Cancel();
-		iTimer.Cancel();
-		}
-
-	void CSisInstaller::Reset()
-		{
-		Cancel();
-		iFileIndex = 0;
-		iFilesToInstall.ResetAndDestroy();
-		}
-	
-	// When the software installer has changed state
-	// attemp to install a sisx file
-
-	void CSisInstaller::RunL()
-		{
-		if (iStatus.Int() != KErrNone)
-			{
-			User::Leave(iStatus.Int()); // Invoke RunError
-			}
-					
-		switch (iState)
-			{
-		// Check the cached list of applications
-		case MDaemonInstallBehaviour::EStateVerifyAppCacheList:
-			iState = iDaemonBehaviour->VerifyAppCacheListL();
-			ReRequestL();
-			break;
-			
-		case MDaemonInstallBehaviour::EStateVerifySwisProperty:
-			iState = iDaemonBehaviour->VerifySwisPropertyL();
-			ReRequestL();
-			break;
-		
-		// Check the software installer is not busy
-		case MDaemonInstallBehaviour::EStateVerifySwisIdle:
-			iState = iDaemonBehaviour->VerifySwisIdleL();
-			ReRequestL();
-			break;
-			
-		// Install a file
-		case MDaemonInstallBehaviour::EStateInstall:
-			{
-			iSisFile.Copy(*iFilesToInstall[iFileIndex]);
-			iDaemonBehaviour->DoInstallRequestL(iSisFile);
-			if (++iFileIndex < iFilesToInstall.Count())
-				{
-				iState = MDaemonInstallBehaviour::EStateVerifySwisProperty;
-				CompleteSelf();
-				}
-			else
-				{
-				// All done
-				iDaemonBehaviour->DoNotifyMediaProcessingComplete();
-				}
-			
-			break;
-			}
-		
-		// Active object in unknown state
-		default:
-			User::Panic(KMCSisInstaller,KErrNotSupported);
-			break;
-			}
-		}
-	
-	// If RunL leaves then ignore errors
-
-	TInt CSisInstaller::RunError(TInt aError)
-		{
-		DEBUG_PRINTF3(_L8("SWI Daemon - Daemon failed in state %d with code %d"),
-			iState, aError);
-		
-		Reset();
-		TInt err(KErrNone);
-		if (aError == KErrCancel)
-			{
-			iState = MDaemonInstallBehaviour::EStateVerifyAppCacheList;
-			}
-		return err;
-		}		
-	}
--- a/installationservices/swi/source/daemon/daemoninstaller.h	Tue Jul 06 14:23:31 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,187 +0,0 @@
-/*
-* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: 
-*
-*/
-
-
-/**
- @file 
- @internalComponent
-*/
- 
-#include <e32property.h>
-#include <e32base.h>
-
-// Forward declarations
-	
-class RApaLsSession;
-	
-namespace Swi
-	{	
-	/**
-	 * Describes the installation behaviour of any sis files found by the Daemon
-	 */
-	class MDaemonInstallBehaviour
-		{
-	public:
-		/**
-		 * The behavioural states 
-		 */
-		enum TSisInstallState 
-			{
-			EStateVerifyAppCacheList,
-			EStateVerifySwisProperty,
-			EStateVerifySwisIdle,
-			EStateInstall
-			};
-
-	public:
-		/**
-		 * Application architecture server has a cached list of applications
-		 * and this is required to be ready to use
-		 */
-		virtual TSisInstallState VerifyAppCacheListL() = 0;
-		
-		/**
-		 * The software installer uses a property to indicate what operation it is in,
-		 * this should be defined
-		 */
-		virtual TSisInstallState VerifySwisPropertyL() = 0;
-		
-		/**
-		 * Before any installation of sisx files can take place, the software installer
-		 * must not be busy
-		 */
-		virtual TSisInstallState VerifySwisIdleL() = 0;
-
-		/**
-		 * Request Installation
-		 *
-		 * If not using the swidaemonplugin, then use apparch to
-		 * launch the handler for the SIS file and block until the
-		 * handler is done (ie. exits).
-		 *
-		 * If using the swidaemonplugin, then ask the plugin to do the
-		 * install, but do NOT wait for it to complete (and the plugin
-		 * RequestInstallL function must not block either).
-		 *
-		 * @param aFileName The name of the sis filename
-		 */
-		virtual void DoInstallRequestL(const TDesC& aFileName) = 0;
-
-		/**
-		 * Tell daemon we have called DoInstallRequestL for all SIS
-		 * files on this removable media.
-		 */
-		virtual void DoNotifyMediaProcessingComplete() = 0;
-		};
-
-	/**
-	 * The Daemon SIS installer
-	 */
-	class CSisInstaller : public CActive
-		{
-	public:
-		/**
-		 * Symbian construction (for member variables)
-		 */
-		static CSisInstaller* NewL(MDaemonInstallBehaviour* aDaemonBehaviour);
-		
-		/**
-		 * C++ destructor
-		 */
-		~CSisInstaller();
-		
-		/**
-		 Adds a file to the list of files to be installed
-		 @param aFileName The full name and path of the file to be installed
-		 */
-		void AddFileToInstallL(const TDesC& aFileName);
-		
-		/**
-		 * Install the specified sis file
-		 */
-		void StartInstallingL();
-				
-	private: // From CActive
-	
- 		/**
-		 * Called by Cancel when a request from this class is outstanding
-		 * nb. You should probably call Reset instead of Cancel.
-		 */
-		void DoCancel();
-	
-	public:
-		/**
-		 * Cancel outstanding requests and reset statemachine.
-		 * Also calls Cancel.
-		 * Called by DoCancel, StartInstallingL and RunError
-		 */
-		void Reset();
-
-	private:
-		/**
-		 * Asynchronous completion request processing
-		 */
-		void RunL();
-		
-		/**
-		 * Handles any Leaves from the RunL
-		 */
-		TInt RunError(TInt aError);
-
-	private:
-		/**
-		 * C++ constructor
-		 */
-		CSisInstaller(MDaemonInstallBehaviour* aDaemonBehaviour);
-		
-		/**
-		 * 2nd phase constructor
-		 */
-		void ConstructL();
-		
-		/**
-		 * Asynchronous request activate
-		 */
-		void ReRequestL();
-		
-		/**
-		 * Self request completion
-		 */
-		void CompleteSelf();
-								
-	private:
-		// The behaviour of the daemon with respect to installing
-		MDaemonInstallBehaviour* iDaemonBehaviour;
-	
-		// The state
-		MDaemonInstallBehaviour::TSisInstallState iState;
-		
-		RPointerArray <HBufC> iFilesToInstall;
-		
-		// Sis files and location
-		TBuf<KMaxFileName> iSisFile;
-		TInt iFileIndex;
-		
-		// Timer and time step
-		RTimer iTimer;
-		TTimeIntervalMicroSeconds32 iTimeStep;
-		
-		// Software installer property
-		RProperty iProperty;
-		};		
-	}
-
--- a/installationservices/swi/source/daemon/drivewatcher.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,130 +0,0 @@
-/*
-* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: 
-*
-*/
-
-
-#include "drivewatcher.h"
-#include "log.h"
-
-namespace Swi
-{
-// CDriveWatcher
-_LIT(KNotificationDirectory,"mediachange\\");
-
-/*static*/ CDriveWatcher* CDriveWatcher::NewL(RFs& aFs, TInt aDrive, 
-												MDriveObserver& aObserver,
-							 					TInt aPriority)
-	{
-	CDriveWatcher* self=NewLC(aFs, aDrive, aObserver, aPriority);
-	CleanupStack::Pop(self);
-	return self;
-	}
-	
-/*static*/ CDriveWatcher* CDriveWatcher::NewLC(RFs& aFs, TInt aDrive, 
-												MDriveObserver& aObserver,
-							 					TInt aPriority)
-	{
-	CDriveWatcher* self=new(ELeave) CDriveWatcher(aFs, aDrive, aObserver, aPriority);
-	CleanupStack::PushL(self);
-	self->ConstructL();
-	return self;	
-	}
-	
-CDriveWatcher::~CDriveWatcher()
-	{
-	Cancel();
-	}
-
-CDriveWatcher::CDriveWatcher(RFs& aFs, TInt aDrive, MDriveObserver& aObserver,
-							 TInt aPriority)
-	: CActive(aPriority), iFs(aFs), iDrive(aDrive), iObserver(aObserver)
-	{
-	CActiveScheduler::Add(this);
-	}
-
-void CDriveWatcher::ConstructL()
-	{
-	// Notify observer of media change since we're beginning from an unknown state
-	NotifyMediaChange();
-	
-	// Start watching for changes
-	WaitForChangeL();
-	}
-
-void CDriveWatcher::DoCancel()
-	{
-	iFs.NotifyChangeCancel(iStatus);
-	}
-
-TBool CDriveWatcher::IsMediaPresentL()
-	{
-	TVolumeInfo volumeInfo;
-	TInt err=iFs.Volume(volumeInfo, iDrive);
-	
-	switch (err)
-		{
-		case KErrNotReady: // No Media present
-			{
-			return EFalse;	
-			}
-			
-		case KErrNone: // Media Present
-			{
-			return ETrue;
-			}
-		}
-
-	User::Leave(err);	
-	return ETrue;	// Will never get here.
-	}
-
-void CDriveWatcher::NotifyMediaChange()
-	{
-	// Unsuccessful media change is not fatal, so handle here
-	TRAPD(err,iObserver.MediaChangeL(iDrive, IsMediaPresentL() ? MDriveObserver::EMediaInserted : MDriveObserver::EMediaRemoved));
-
-	if (err != KErrNone)
-		{
-	    DEBUG_PRINTF2(_L8("SWI Daemon - Media change notification failed with code %d"), err);
-		}
-	}
-	
-void CDriveWatcher::RunL()
-	{
-	NotifyMediaChange();
-			
-	WaitForChangeL();
-	}
-
-void CDriveWatcher::WaitForChangeL()
-	{
-	TChar drive;
-	User::LeaveIfError(iFs.DriveToChar(iDrive, drive));
-	TUint driveChar(drive); // Can't pass TChar to Format().
-	
-	TPath notificationPath;
-	TPath privatePath;
-	_LIT(KNotificationPathFormat,"%c:%S%S");
-	User::LeaveIfError(iFs.PrivatePath(privatePath));
-
-	notificationPath.Format(KNotificationPathFormat, driveChar, &privatePath, &KNotificationDirectory);	
-	
-	iFs.NotifyChange(ENotifyEntry, iStatus, notificationPath);
-
-	SetActive();
-	}
-	
-}
--- a/installationservices/swi/source/daemon/drivewatcher.h	Tue Jul 06 14:23:31 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,111 +0,0 @@
-/*
-* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: 
-*
-*/
-
-
-/**
- @file 
- @internalComponent
- @released
-*/
-
-#ifndef __DRIVEWATCHER_H__
-#define __DRIVEWATCHER_H__
-
-#include <e32base.h>
-#include <f32file.h>
-
-namespace Swi
-{
-
-/**
- * Observer interface called whenever a media change is detected.
- */
-class MDriveObserver
-	{
-public:
-	/// Enumeration indicating whether a card was inserted or removed
-	enum TChangeType { EMediaInserted, EMediaRemoved };
-	
-	/**
-	 * This function is called to indicate a media change has occurred.
-	 *
-	 * @param aChangeType	EInserted to indicate media has been inserted,
-	 *						or ERemoved to indicate media has been removed.
-	 */
-	virtual void MediaChangeL(TInt aDrive, TChangeType aChangeType)=0;
-	};
-
-/**
- * This active object waits for an indication that the media has changed,
- * and then notifies its observer.
- */
-class CDriveWatcher : public CActive
-	{
-public:
-	static CDriveWatcher* NewL(RFs& aFs, TInt aDrive, MDriveObserver& aObserver,TInt aPriority = EPriorityStandard);
-	static CDriveWatcher* NewLC(RFs& aFs, TInt aDrive, MDriveObserver& aObserver,TInt aPriority = EPriorityStandard);
-	
-	~CDriveWatcher();
-
-	TInt Drive() const;
-private:
-	CDriveWatcher(RFs& aFs, TInt aDrive, MDriveObserver& aObserver, TInt aPriority);
-
-	void ConstructL();
-
-// from CActive
-	void DoCancel();
-	void RunL();
-
-	/// Set up change notification.
-	void WaitForChangeL();
-
-	/**
-	 * Notifies the observer of the appropriate media change depending on whether
-	 * media is now present on the drive we're currently watching.
-	 */
-	void NotifyMediaChange();
-	
-	/** 
-	 * Determines if the media is present in the drive we are currently watching.
-	 *
-	 * @return ETrue if the media is present, EFalse otherwise.
-	 */
-	TBool IsMediaPresentL();
-
-private:
-	/// Not owned by this class
-	RFs& iFs;
-	
-	/// Drive number we are watching
-	TInt iDrive;
-
-	/// Observer to notify of changes
-	MDriveObserver& iObserver;
-	};
-
-// inline functions from CDriveWatcher
-
-inline TInt CDriveWatcher::Drive() const
-	{
-	return iDrive;
-	}
-	
-} //namespace Swi
-
-#endif // #ifndef __DRIVEWATCHER_H__
-
--- a/installationservices/swi/source/daemon/main.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,83 +0,0 @@
-/*
-* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: 
-*
-*/
-
-
-/**
- @file
- @internalComponent
-*/
-#include <e32base.h>
-#include <f32file.h>
-
-#include "daemon.h"
-#include "daemonbehaviour.h"
-#include "log.h"
-
-namespace Swi
-{
-
-/**
- * Daemon main function
- */
-void MainL()
-	{
-	CDaemonBehaviour* daemonBehaviour=CDaemonBehaviour::NewLC();
-	CDaemon::NewLC(*daemonBehaviour);
-	
-	RProcess::Rendezvous(KErrNone);
-	CActiveScheduler::Start();
-
-	CleanupStack::PopAndDestroy(2, daemonBehaviour);	
-	}
-
-} // namespace Swi
-
-/**
- * Entry Point, sets up the cleanup stack and calls the main function.
- * @return Always returns KErrNone even if SwiDemon has failed to start.
- * Note: The break request to fix this problem (BR 1846) was rejected by 
- * the SCB 17/5/2006 so this cannot be fixed.
- * see http://smglinx.intra/twiki/bin/view/BR/1846 for more details.
- */
-GLDEF_C TInt E32Main()
-	{
-	DEBUG_PRINTF(_L8("SWI Daemon - Starting Daemon"));
-	
-	CTrapCleanup* cleanup = CTrapCleanup::New();
-	CActiveScheduler* scheduler=new CActiveScheduler();
-
-	if(cleanup == NULL || scheduler==NULL)
-		{
-		delete scheduler;
-		delete cleanup;
-		return KErrNoMemory;
-		}
-	CActiveScheduler::Install(scheduler);
-
-
-	// workaround for DEF056843 to ignore return code when this leaves 
-	// unable to remove this (supposed to be temporary workaround)
-	// due to BR 1846 (see above)
-	TRAP_IGNORE(Swi::MainL());
-
-	delete scheduler;
-	delete cleanup;
-	
-	DEBUG_PRINTF(_L8("SWI Daemon - Daemon Exiting"));
-	return KErrNone;
-	}
-
--- a/installationservices/swi/source/sisfile/siscompressed.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swi/source/sisfile/siscompressed.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2004-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -53,12 +53,21 @@
 void CCompressed::ConstructL(TInt64& aBytesRead, TReadTypeBehaviour aTypeReadBehaviour)
 	{	
 	CField::ConstructL(iDataProvider, EFieldTypeCompressed, aBytesRead, aTypeReadBehaviour);	
+	// Get the current offset
 	User::LeaveIfError(iDataProvider.Seek(ESeekCurrent, iOffset));
+	TInt64 fieldOffset = 0;
+
+#ifdef SIS_CRC_CHECK_ENABLED
 
 	// Calculate CRC of header and field data
-	TInt64 fieldOffset = iOffset - HeaderSize();
+	fieldOffset = iOffset - HeaderSize();
 	User::LeaveIfError(iDataProvider.Seek(ESeekStart, fieldOffset));
 	CField::CalculateCrcL(iDataProvider, HeaderSize() + Length() + PaddingSize(), iCrc );
+#else
+	fieldOffset = iOffset + Length() + PaddingSize();
+	User::LeaveIfError(iDataProvider.Seek(ESeekStart, fieldOffset));
+#endif
+
 	aBytesRead += Length() + PaddingSize();
 	}
 
--- a/installationservices/swi/source/sisfile/sisdata.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swi/source/sisfile/sisdata.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2004-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -62,10 +62,16 @@
 	User::LeaveIfError(iDataProvider.Seek(ESeekCurrent, iOffset));
 	ReadMemberArrayL(iDataProvider, iDataUnits, EFieldTypeDataUnit, arrayBytes, EReadType);
 
+	TInt64 fieldOffset = 0;
+#ifdef SIS_CRC_CHECK_ENABLED
 	// Calculate CRC of header and field data by reading the entire header and field
-	TInt64 fieldOffset = iOffset - HeaderSize();
+	fieldOffset = iOffset - HeaderSize();
 	User::LeaveIfError(iDataProvider.Seek(ESeekStart, fieldOffset));
 	CField::CalculateCrcL(iDataProvider, HeaderSize() + Length() + PaddingSize(), iCrc );
+#else
+	fieldOffset = iOffset + Length() + PaddingSize();
+    User::LeaveIfError(iDataProvider.Seek(ESeekStart, fieldOffset));
+#endif
 	aBytesRead += Length() + PaddingSize();
 	}
 
--- a/installationservices/swi/source/sislauncher/common/sislauncherclientserver.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swi/source/sislauncher/common/sislauncherclientserver.h	Wed Aug 18 09:55:45 2010 +0300
@@ -47,14 +47,18 @@
 	EQueueStartByMimeByHandle,
 	EExecuteQueue,
 	EKillQueue,
-	EParseSwTypeRegFile,
+	#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+	//Function Id's to be accessed by Installserver
+	EParseSwTypeRegFile = 30,
 	ERegisterSifLauncherMimeTypes,
-	EUnregisterSifLauncherMimeTypes,
-	#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
-    EAsyncParseResourceFileSize,     //Parse registration resource file, Async Function
-    EAsyncParseResourceFileData,	 //Return parsed resource data
-    ENotifyNewAppsData,              //Notify Apparc about application data
-    ENotifyApparcForApps,          //Notify Apparc about updated applications
+	ENotifyNewAppsData,                                                     //Notify Apparc about application data
+	//Function Id's to be accessed by SisRegistryServer
+	EUnregisterSifLauncherMimeTypes = 60,
+	//Function Id's to be accessed by Installserver and SisRegistryServer
+	ENotifyApparcForApps = 90,                                              //Notify Apparc about updated applications
+	//Function Id's to be accessed by all clients
+    EAsyncParseResourceFileSize = 120,                                      //Parse registration resource file, Async Function
+    EAsyncParseResourceFileData,                                            //Return parsed resource data
     #endif
 	ESeparatorEndAll	
    
--- a/installationservices/swi/source/sislauncher/server/sislauncherserver.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swi/source/sislauncher/server/sislauncherserver.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -153,15 +153,14 @@
         } 
     }
 
-    // All functions require TCB capability
 const TInt CSisLauncherServer::iRanges[iRangeCount] = 
     {
     0, // All connect attempts
 #ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
-    // Range of utility services for Post manufacture management of Layered Execution Environemnts
-    EParseSwTypeRegFile,
-    EUnregisterSifLauncherMimeTypes,
-    EAsyncParseResourceFileSize,
+    EParseSwTypeRegFile,                                // accessible by Installserver 
+    EUnregisterSifLauncherMimeTypes,                    // accessible by SisRegistryServer
+    ENotifyApparcForApps,                               // accessible by Installserver and SisRegistry
+    EAsyncParseResourceFileSize,                        // accessible by all clients
 #endif
     ESeparatorEndAll,
     };
@@ -172,10 +171,12 @@
 #ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
     1, // Utility services used by InstallServer
     2, // Utility services used by SisRegistryServer
+    CPolicyServer::ECustomCheck,
     CPolicyServer::EAlwaysPass,
 #endif  
     CPolicyServer::ENotSupported,
     };
+
 const CPolicyServer::TPolicyElement CSisLauncherServer::iPolicyElements[] = 
     {
     {_INIT_SECURITY_POLICY_C1(ECapabilityTCB), CPolicyServer::EFailClient},
@@ -327,6 +328,22 @@
     CleanupStack::PopAndDestroy(threadMonitor);
     }
 
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+CPolicyServer::TCustomResult CSisLauncherServer::CustomSecurityCheckL(const RMessage2& aMsg, 
+    TInt& /*aAction*/, TSecurityInfo& /*aMissing*/)
+    {
+    TUint32 secureId = aMsg.SecureId().iId;
+    if (secureId == KInstallServerUid || secureId == KSisRegistryServerUid)
+        {
+        return CPolicyServer::EPass;
+        }
+    else
+        {
+        //client accessing the function is neither Install Server nor Sis Registry
+        return CPolicyServer::EFail;
+        }
+    }
+#endif
 
 #ifndef SWI_TEXTSHELL_ROM
 void CSisLauncherServer::StartDocumentL(RFile& aFile, TBool aWait)
@@ -565,6 +582,7 @@
     apaSession.ForceRegistration(aApplicationRegistrationData);
     CleanupStack::PopAndDestroy();
     }
+
 #endif
 #endif
 
--- a/installationservices/swi/source/sislauncher/server/sislauncherserver.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swi/source/sislauncher/server/sislauncherserver.h	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2004-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -108,11 +108,13 @@
 	void LongServerShutdown();
 	void ShortServerShutdown();
 	void CancelShutdown();
-		
+    #ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+	virtual TCustomResult CustomSecurityCheckL(const RMessage2& aMsg, TInt& aAction, TSecurityInfo& aMissing);
+    #endif	
 	// Server Policies
 	// separate the policies into handled and not handled
 #ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
-	static const TUint iRangeCount=5;
+	static const TUint iRangeCount=6;
 #else
 	static const TUint iRangeCount=2;
 #endif
--- a/installationservices/swi/source/sislauncher/server/sislaunchersession.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swi/source/sislauncher/server/sislaunchersession.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -360,31 +360,25 @@
             aMessage.Complete(KErrNone);
             break;
             }
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
         case EParseSwTypeRegFile:
             #ifndef SWI_TEXTSHELL_ROM
-            #ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
             ParseSwTypeRegFileL(aMessage);
             #endif
-            #endif
             aMessage.Complete(KErrNone);
             break;
         case ERegisterSifLauncherMimeTypes:
             #ifndef SWI_TEXTSHELL_ROM
-            #ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
             RegisterSifLauncherMimeTypesL(aMessage);
             #endif
-            #endif
             aMessage.Complete(KErrNone);
             break;
         case EUnregisterSifLauncherMimeTypes:
-            #ifndef SWI_TEXTSHELL_ROM
-            #ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+            #ifndef SWI_TEXTSHELL_ROM            
             UnregisterSifLauncherMimeTypesL(aMessage);
             #endif
-            #endif
             aMessage.Complete(KErrNone);
             break;
-#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
         case EAsyncParseResourceFileSize:
             {
             TRAPD(err,err = AsyncParseResourceFileSizeL(aMessage));            
--- a/installationservices/swi/source/sisregistry/client/sisregistrysession.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swi/source/sisregistry/client/sisregistrysession.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2004-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -482,6 +482,17 @@
     CleanupStack::PopAndDestroy(2, buffer);           
     }
 
+EXPORT_C void RSisRegistrySession::AddAppRegInfoL(const TDesC& aAppRegFile)
+    {
+    TInt returnCode = SendReceive(EAddAppRegInfo, TIpcArgs(&aAppRegFile));
+    User::LeaveIfError(returnCode);
+    }
+
+EXPORT_C void RSisRegistrySession::RemoveAppRegInfoL(const TDesC& aAppRegFile)
+    {
+    TInt returnCode = SendReceive(ERemoveAppRegInfo, TIpcArgs(&aAppRegFile));
+    User::LeaveIfError(returnCode);
+    }
 
 #endif //SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 
--- a/installationservices/swi/source/sisregistry/common/sisregistryclientserver.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swi/source/sisregistry/common/sisregistryclientserver.h	Wed Aug 18 09:55:45 2010 +0300
@@ -173,7 +173,9 @@
 	EComponentIdForPackage,
 	EAppUidsForComponent,  
 	EComponentIdsForPackageUid,
-	ESetComponentState, //SIF only
+	ESetComponentState = 300, //SIF only
+	EAddAppRegInfo = 320,    //requires TCB
+	ERemoveAppRegInfo,       //requires TCB 
 #endif
 	ESeparatorEndAll
 	
--- a/installationservices/swi/source/sisregistry/server/sisregistryserver.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swi/source/sisregistry/server/sisregistryserver.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2004-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -48,6 +48,7 @@
 	ESeparatorMinimumTCB, 			// accessible by TCB clients only
 	ESeparatorMinimumReadUserData2, 	// accessible by ReadUserData clients only
 	ESetComponentState,             // requests coming from SIF
+	EAddAppRegInfo,                 // TCB only
 	ESeparatorEndAll,     			// not supported from there on
 	};
 
@@ -64,6 +65,7 @@
 	2,	// Used by SWIS only, so TCB is needed - check on cap and SID.
 	1,  // ReadUserData clients only
 	5,   // requests coming from SIF
+	6,  // all clients having TCB
 	CPolicyServer::ENotSupported,  
 	};
 
@@ -75,6 +77,7 @@
 	{_INIT_SECURITY_POLICY_S0(KDaemonSecureId), CPolicyServer::EFailClient}, 
 	{_INIT_SECURITY_POLICY_C2(ECapabilityWriteUserData, ECapabilityNetworkServices), CPolicyServer::EFailClient},
 	{_INIT_SECURITY_POLICY_S0(KSifServerSecureId), CPolicyServer::EFailClient},
+	{_INIT_SECURITY_POLICY_C1(ECapabilityTCB), CPolicyServer::EFailClient},
 	};
 
 const CPolicyServer::TPolicy CSisRegistryServer::iPolicy =
--- a/installationservices/swi/source/sisregistry/server/sisregistryserver.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swi/source/sisregistry/server/sisregistryserver.h	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2004-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -36,8 +36,8 @@
 _LIT_SECURE_ID(KSwisSecureId, 0x101F7295);	
 _LIT_SECURE_ID(KSifServerSecureId, 0x10285BCB);	
 
-const TInt KPolicyRanges= 12;
-const TInt KPolicyElements = 6;
+const TInt KPolicyRanges= 13;
+const TInt KPolicyElements = 7;
 
 class CSisRegistrySession;
 
--- a/installationservices/swi/source/sisregistry/server/sisregistryserverconst.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swi/source/sisregistry/server/sisregistryserverconst.h	Wed Aug 18 09:55:45 2010 +0300
@@ -51,6 +51,11 @@
 //Location of application registration resource files
 _LIT(KApparcRegFilePath, "\\private\\10003a3f\\apps\\*.rsc");
 _LIT(KApparcRegFileImportPath, "\\private\\10003a3f\\import\\apps\\*.rsc");
+
+//Registration resource file uid 
+const TUid KUidAppRegistrationFile = {0x101F8021};
+_LIT(KApparcRegImportDir, "\\private\\10003a3f\\import\\apps\\");
+_LIT(KApparcRegDir, "\\private\\10003a3f\\apps\\");
 }
 
 #endif // __SISREGISTRYSERVERCONST_H__
--- a/installationservices/swi/source/sisregistry/server/sisregistryserversession.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swi/source/sisregistry/server/sisregistryserversession.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -65,6 +65,7 @@
 #include "sisinstallblock.h"
 #include "sisregistryfiledescription.h"
 #include "sisregistrywritablesession.h"  
+#include "securitycheckutil.h"
 
 using namespace Swi;
 using namespace Usif;
@@ -99,7 +100,7 @@
 	if (KAppArcSID.iId == iClientSid.iId)
 	    {
         DEBUG_PRINTF(_L8("SIS Registry Server: Init for a connection from AppArc"));
-        ProcessRomApplicationsL();
+        ProcessApplicationsL();
 	    }
 	else
 	    {
@@ -186,7 +187,7 @@
     DEBUG_PRINTF(_L8("SIS Registry Server - Completed processing of ROM Stub sis files"));
     }
 
-void CSisRegistrySession::ProcessRomApplicationsL()
+void CSisRegistrySession::ProcessApplicationsL()
     {
     TComponentId compId = 0;
     DEBUG_PRINTF(_L8("SIS Registry Server - Deleteing all existing ROM applications."));
@@ -194,17 +195,36 @@
     
     //Register all apps found in \private\10003a3f\apps
     TDriveUnit romDrive(SisRegistryUtil::SystemRomDrive());
-    RBuf romApparcRegFilePath;
-    romApparcRegFilePath.CreateL(romDrive.Name(), KMaxPath);
-    CleanupClosePushL(romApparcRegFilePath);
-    romApparcRegFilePath.Append(KApparcRegFilePath);
-    RegisterAllInRomAppL(romApparcRegFilePath);
+    RBuf apparcRegFilePath;
+    apparcRegFilePath.CreateL(romDrive.Name(), KMaxPath);
+    CleanupClosePushL(apparcRegFilePath);
+    apparcRegFilePath.Append(KApparcRegFilePath);
+    
+	//Create a single transaction to register all in rom apps
+	iScrSession.CreateTransactionL();
+	RegisterAllAppL(apparcRegFilePath);
 
     //Register all apps found in \private\10003a3f\import\apps
-    romApparcRegFilePath = romDrive.Name();
-    romApparcRegFilePath.Append(KApparcRegFileImportPath);
-    RegisterAllInRomAppL(romApparcRegFilePath);
-    CleanupStack::PopAndDestroy(&romApparcRegFilePath);
+    apparcRegFilePath = romDrive.Name();
+    apparcRegFilePath.Append(KApparcRegFileImportPath);
+    RegisterAllAppL(apparcRegFilePath);
+    
+	//Register all apps found in UDA
+	TDriveUnit systemDrive(iSystemDrive);
+
+	//Register all apps found in <systemdrive>\private\10003a3f\apps
+	apparcRegFilePath = systemDrive.Name();	
+	apparcRegFilePath.Append(KApparcRegFilePath);
+	RegisterAllAppL(apparcRegFilePath);
+
+	//Register all apps found in <systemdrive>\private\10003a3f\import\apps
+    apparcRegFilePath = systemDrive.Name();
+    apparcRegFilePath.Append(KApparcRegFileImportPath);
+    RegisterAllAppL(apparcRegFilePath);
+	
+	iScrSession.CommitTransactionL();    
+	
+	CleanupStack::PopAndDestroy(&apparcRegFilePath);
     
     DEBUG_PRINTF(_L8("SIS Registry Server - Completed processing of all existing ROM applications."));
     }
@@ -217,7 +237,7 @@
 	// Add the ROM installed stub details to SCR
 	// Create an SCR transaction, so that entries won't be added to the SCR if the function leaves
     TInt value(EIdlePhase1NOK);
-    RProperty::Get(KPSUidStartup, KPSIdlePhase1Ok, value);
+    TInt ret = RProperty::Get(KPSUidStartup, KPSIdlePhase1Ok, value);
 	
     TBool isFromSWIDaemon = EFalse;
     _LIT_SECURE_ID(KSWIDaemonSID, 0x10202DCE);
@@ -225,6 +245,17 @@
         { 
         isFromSWIDaemon = ETrue;
         }
+	
+	//If the image is NCP 'KPSUidStartup' property is not set, hence settig it explicitly for processing stubs
+	if(ret == KErrNotFound)
+		{
+		DEBUG_PRINTF(_L8("SIS Registry Server - 'KPSUidStartup' property is not set"));
+		value = EIdlePhase1Ok;
+		}
+	else
+		{
+		DEBUG_PRINTF(_L8("SIS Registry Server - 'KPSUidStartup' property is set"));
+		}
 	if ((value == EIdlePhase1Ok || isFromSWIDaemon) && iIsFirstInit)
 	    {
         ProcessRomStubsL();
@@ -242,7 +273,7 @@
         iFs.Delete(fileName);
         CleanupStack::PopAndDestroy(&fileName);
 
-        ProcessRomApplicationsL();
+        ProcessApplicationsL();
 	    }
 	}
 
@@ -501,7 +532,13 @@
         break;
 	case EComponentIdsForPackageUid:	    
         GetComponentIdsForUidL(aMessage);        
-        break;	    
+        break;
+	case EAddAppRegInfo:
+	    AddAppRegInfoL(aMessage);
+	    break;
+	case ERemoveAppRegInfo:
+	    RemoveAppRegInfoL(aMessage);
+	    break;
 	default:
 		PanicClient(aMessage,EPanicIllegalFunction);
 		break;
@@ -750,13 +787,13 @@
 			// DEF085506 fix. remove control files (Previous SA and any of PUs) also while SA upgrading.
 			if (object->InstallType() == Sis::EInstInstallation)
 				{
-				RemoveEntryL(*existingObject);
+				RemoveEntryL(compId);
 				RemoveCleanupInfrastructureL(*existingObject, stsSession);	
 				}
 			else // PartialUpgarde case remove only registry file.
 				{
 				// Essentially, this is an uninstall except we leave the controller file intact.
-				RemoveEntryL(*existingObject);
+				RemoveEntryL(compId);
 				}
 			CleanupStack::PopAndDestroy(existingObject);
 			}
@@ -879,33 +916,40 @@
 	TInt64 transactionID;
 	TPckg<TInt64> pkgTransactionID(transactionID);
 	aMessage.ReadL(EIpcArgument2, pkgTransactionID);
-	
-	// create a integrity service object
-	Usif::RStsSession stssession;
-	stssession.OpenTransactionL(transactionID);
-	CleanupClosePushL(stssession);
+		
+	DeleteEntryL(*object, transactionID, ETrue);
 	
-	RemoveEntryL(*object);
-	RemoveCleanupInfrastructureL(*object, stssession);
-
-	// If removal is for ROM upgrade type, after removing the existing registry entry set,
-	// regenerate the Registry Entry Cache. 
-	// If any of the ROM based stub doesn't have its registry set 
-	// in appropriate path, it will create them (SCR entry & . ctl) 
-	// from the ROM based stub sis file.	
-	if ((object->InstallType() == Sis::EInstInstallation || 
-		 object->InstallType() == Sis::EInstPartialUpgrade) &&	
-		SisRegistryUtil::RomBasedPackageL(object->Uid()))
-		{	
-		// Re-add the ROM installed stub details to SCR (only those missing will be added)
-		ProcessRomDriveL();
-		}
-	
- 	CleanupStack::PopAndDestroy(2, object);// STS 
+ 	CleanupStack::PopAndDestroy(object);
 	
 	aMessage.Complete(KErrNone);
 	}
 
+void CSisRegistrySession::DeleteEntryL(const CSisRegistryObject& aObject, TInt64 aTransactionId, TBool aCleanupRequired/*=ETrue*/)
+    {
+    // create a integrity service object
+    Usif::RStsSession stssession;
+    stssession.OpenTransactionL(aTransactionId);
+    CleanupClosePushL(stssession);
+        
+    RemoveEntryL(aObject);
+    RemoveCleanupInfrastructureL(aObject, stssession);
+    
+    // If removal is for ROM upgrade type, after removing the existing registry entry set,
+    // regenerate the Registry Entry Cache. 
+    // If any of the ROM based stub doesn't have its registry set 
+    // in appropriate path, it will create them (SCR entry & . ctl) 
+    // from the ROM based stub sis file.    
+    if ((aObject.InstallType() == Sis::EInstInstallation || 
+            aObject.InstallType() == Sis::EInstPartialUpgrade) &&  
+                SisRegistryUtil::RomBasedPackageL(aObject.Uid()) && 
+                    aCleanupRequired)
+        {   
+        // Re-add the ROM installed stub details to SCR (only those missing will be added)
+        ProcessRomDriveL();
+        }    
+    CleanupStack::PopAndDestroy(&stssession);
+    }
+
 void CSisRegistrySession::OpenRegistryUidEntryL(const RMessage2& aMessage)
 	{
 	// expects a UID as an arg 0
@@ -1035,8 +1079,8 @@
 	RPointerArray<HBufC> fileNames;
 	CleanupResetAndDestroy<RPointerArray<HBufC> >::PushL(fileNames);
 	                    
-	TInt ret = GetStubFileInfoL(tUid, tMode, startingFileNo, fileCount, fileNames);
-	if (KErrNone == ret)
+	TRAPD(errCode, GetStubFileInfoL(tUid, tMode, startingFileNo, fileCount, fileNames));
+	if (KErrNone == errCode)
 	    {
 	    if (tMode == EGetFiles)
 	        {
@@ -1059,12 +1103,12 @@
 	    }
 	else
 	    {
-	    aMessage.Complete(ret);
+	    aMessage.Complete(errCode);
 	    }
 	CleanupStack::PopAndDestroy();
 	}
 
-TInt CSisRegistrySession::GetStubFilesL(const TDesC& aFileName, RPointerArray<HBufC>& aFileNames)
+void CSisRegistrySession::GetStubFilesL(const TDesC& aFileName, RPointerArray<HBufC>& aFileNames)
     {
     // Read the ROM stub controller
     CFileSisDataProvider* fileProvider = CFileSisDataProvider::NewLC(iFs, aFileName);
@@ -1075,31 +1119,31 @@
         // Ignore the broken stub file under the ROM stub directory.
         DEBUG_PRINTF2(_L8("Sis Registry Server - Failed to read the stub controller. Error code %d."), errCode);
         CleanupStack::PopAndDestroy(fileProvider);
-        return errCode;
+        User::Leave(errCode);
         }
     CleanupStack::PushL(stubController);
-    const RPointerArray<Sis::CFileDescription>& depArray = stubController->InstallBlock().FileDescriptions();
-    // Get as many number of files as possible that can be accomodate in client allocated buffer.
-    TInt totalDepArrayCount = depArray.Count();
+    const RPointerArray<Sis::CFileDescription>& filesArray = stubController->InstallBlock().FileDescriptions();
+    TInt totalFileCount = filesArray.Count();
     // Populate the files in to a temporary array.
-    for(TInt fileCount = 0; fileCount < totalDepArrayCount; ++fileCount )
+    for(TInt fileCount = 0; fileCount < totalFileCount; ++fileCount )
         {
-        // Only create a TPtrC when we know we have space available
-        HBufC* fileName = depArray[fileCount]->Target().Data().AllocL();
+        HBufC* fileName = filesArray[fileCount]->Target().Data().AllocLC();
         // Adding drive letter of rom if not mentioned in stub sis file
         TPtr a=fileName->Des();
         if (a[0] == '!')
-            a[0] = 'z';                        
-                                       
-		CleanupStack::PushL(fileName);
+            {
+            TChar driveChar;
+            iFs.DriveToChar(EDriveZ, driveChar);
+            a[0] = driveChar;
+            }
+
 		aFileNames.AppendL(fileName);
 		CleanupStack::Pop(fileName);
 		}
     CleanupStack::PopAndDestroy(2, fileProvider);
-    return KErrNone;
     }
 
-TInt CSisRegistrySession::GetStubFileInfoL(TUid aUid, TStubExtractionMode aMode, TInt aStartingFileNo, TInt& aFileCount, RPointerArray<HBufC>& aFileNames)
+void CSisRegistrySession::GetStubFileInfoL(TUid aUid, TStubExtractionMode aMode, TInt aStartingFileNo, TInt& aFileCount, RPointerArray<HBufC>& aFileNames)
     {
     TBool stubNotFound(ETrue);
     
@@ -1149,16 +1193,16 @@
             if ( stubController->Info().Uid().Uid() == aUid )
                 {
                 stubNotFound = EFalse;
-                const RPointerArray<Sis::CFileDescription>& depArray = stubController->InstallBlock().FileDescriptions();
+                const RPointerArray<Sis::CFileDescription>& filesArray = stubController->InstallBlock().FileDescriptions();
                 // Get as many number of files as possible that can be accomodate in client allocated buffer.
                 if (aMode == EGetFiles)
                     {
                     TInt sizeRed = 0;
-                    TInt totalDepArrayCount = depArray.Count();
+                    TInt totalFileCount = filesArray.Count();
                     // Populate the files in to a temporary array.
-                    for(TInt fileCount = aStartingFileNo; fileCount < totalDepArrayCount; ++fileCount )
+                    for(TInt fileCount = aStartingFileNo; fileCount < totalFileCount; ++fileCount )
                         {
-                        sizeRed += depArray[fileCount]->Target().Data().Size();
+                        sizeRed += filesArray[fileCount]->Target().Data().Size();
                         // If amount of data red exceeds the client buffer size, break reading.
                         if (sizeRed > KDefaultBufferSize)
                             {
@@ -1166,13 +1210,16 @@
                             }
                                 
                         // Only create a TPtrC when we know we have space available
-                        HBufC* fileName = depArray[fileCount]->Target().Data().AllocL();
+                        HBufC* fileName = filesArray[fileCount]->Target().Data().AllocLC();
 						// Adding drive letter of rom if not mentioned in stub sis file
                         TPtr a=fileName->Des();
                         if (a[0] == '!')
-							a[0] = 'z';                        
+                            {
+                            TChar driveChar;
+                            iFs.DriveToChar(EDriveZ, driveChar);
+                            a[0] = driveChar;
+                            }                        
                        
-						CleanupStack::PushL(fileName);
                         aFileNames.AppendL(fileName);
                         CleanupStack::Pop(fileName);                        
                         } 
@@ -1180,7 +1227,7 @@
                 // If only the count needed, send the stub file's total entrie's count.
                 else if (aMode == EGetCount)
                     {
-                    aFileCount = depArray.Count();
+                    aFileCount = filesArray.Count();
                     }               
                 CleanupStack::PopAndDestroy(2, fileProvider);
                 break;  
@@ -1193,16 +1240,15 @@
         if (stubNotFound)
             {  
 			CleanupStack::PopAndDestroy(2, &romRegistryPath); // tFs          
-            return (KErrNotFound);
+            User::Leave(KErrNotFound);
             }       
         }
     else if(err != KErrPathNotFound)
         {     
 		CleanupStack::PopAndDestroy(2, &romRegistryPath); // tFs   
-        return err;
+		User::Leave(err);
         }
 	CleanupStack::PopAndDestroy(2, &romRegistryPath); // tFs	
-    return KErrNone;
     }
 
 void CSisRegistrySession::RequestRegistryEntryL(const RMessage2& aMessage)
@@ -1225,15 +1271,82 @@
 
 void CSisRegistrySession::AddDriveL(const RMessage2& aMessage)
 	{
-	TInt drive;
-	TPckg<TInt> pkgDrive(drive);
+	TInt addedDrive;
+	TPckg<TInt> pkgDrive(addedDrive);
 	aMessage.ReadL(EIpcArgument0, pkgDrive);
 
-	DEBUG_PRINTF2(_L8("Sis Registry Server - Removable drive %d added."), drive);
+	DEBUG_PRINTF2(_L8("Sis Registry Server - Removable drive %d added."), addedDrive);
+	    
+	// Get the drive character.
+	TChar drive;
+	User::LeaveIfError(iFs.DriveToChar(addedDrive, drive));
+	TUint driveChar(drive);
+	    
+	// Retrieve drive info.
+	TDriveInfo driveInfo;
+	User::LeaveIfError(iFs.Drive(driveInfo, addedDrive));
+#ifndef __WINSCW__	   
+	if(driveInfo.iDriveAtt & KDriveAttLogicallyRemovable)
+#endif	    
+	    {
+	    /*
+	    In case a logically removable drive is added,
+	    Look for the presence of the first boot marker file corresponding to it in the sisregistry private
+	    folder in C drive. If absent, assume first boot and create the marker file. 
+	    Also added a marker file in the <drive>\sys\install directory which would be used to detect a format. 
+	         
+	    Subsequent boots would look for the drive format marker to check if a format has occured and delete
+	    the registry entries.
+	    */
+	    
+	    // Create first boot marker path.
+	    _LIT(KFirstBootMarkerFilePath, "%c:%SfirstBootMarkerFileFor%c");
+	    RBuf privatePath;
+		privatePath.CreateL(KMaxPath);
+	    CleanupClosePushL(privatePath);
+	    User::LeaveIfError(iFs.PrivatePath(privatePath));
+
+	    RBuf firstBootMarkerFilePath;
+		firstBootMarkerFilePath.CreateL(KMaxPath);
+	    CleanupClosePushL(firstBootMarkerFilePath);
 
+	    TChar systemDrive = RFs::GetSystemDriveChar();
+	    firstBootMarkerFilePath.Format(KFirstBootMarkerFilePath, static_cast<TUint>(systemDrive), &privatePath, driveChar); 
+	        
+	    // Create drive format marker path.
+	    _LIT(KFormatMarkerPath, "%c:\\sys\\install\\formatMarkerFile");
+	    
+		RBuf formatMarkerPath;
+		formatMarkerPath.CreateL(KMaxPath);
+	    CleanupClosePushL(formatMarkerPath);
+		formatMarkerPath.Format(KFormatMarkerPath, driveChar); 
+	       
+		// The drive marker files are marked hidden and read-only.
+        TUint fileAttributes = KEntryAttReadOnly | KEntryAttHidden;
+
+	    if(!SisRegistryUtil::FileExistsL(iFs, firstBootMarkerFilePath))
+	        {
+	        // First boot detected. Add the first boot marker file as well as the format marker on the drive.
+	        SisRegistryUtil::CreateFileWithAttributesL(iFs, firstBootMarkerFilePath);
+	        SisRegistryUtil::CreateFileWithAttributesL(iFs, formatMarkerPath, fileAttributes);
+	        }
+	    else
+	        {
+	        // Subsequent boot. Check for the presence of a marker file <drive>\sys\install directory.
+	        // If absent, assume format.
+	        if(!SisRegistryUtil::FileExistsL(iFs, formatMarkerPath))
+	            {
+	            DriveFormatDetectedL(TDriveUnit(addedDrive));
+	            //Add missing format marker file
+	            SisRegistryUtil::CreateFileWithAttributesL(iFs, formatMarkerPath, fileAttributes);
+	            }           
+	        }
+		CleanupStack::PopAndDestroy(3, &privatePath);
+	    }
+	    
 	// Find flagging controllers for non-preinstalled packages on
 	// this drive and do cleanup if necessary
-	ProcessRemovableDriveL(drive);
+	ProcessRemovableDriveL(addedDrive);
 
 	aMessage.Complete(KErrNone);
 	}
@@ -1803,7 +1916,7 @@
     {
     RPointerArray<HBufC> romFiles;
     CleanupResetAndDestroy<RPointerArray<HBufC> >::PushL(romFiles);
-    TInt ret = GetStubFilesL(aFileName, romFiles);
+    GetStubFilesL(aFileName, romFiles);
     RPointerArray<HBufC> apparcRegFiles;
     CleanupResetAndDestroy<RPointerArray<HBufC> >::PushL(apparcRegFiles);
        
@@ -2596,7 +2709,6 @@
 		TComponentId compId = ScrHelperUtil::GetComponentIdL(iScrSession, object->Uid(), object->Index());
 		TSisPackageTrust trustStatus;
 		trustStatus = static_cast<TSisPackageTrust>(GetIntPropertyValueL(iScrSession, compId, KCompTrust,  EFalse, KDefaultTrustValue));
-		//ScrHelperUtil::ReadFromScrL(iSession.ScrSession(), iComponentId, trustStatus);
 	    if ( ESisPackageBuiltIntoRom == trustStatus )
 	        {
             DEBUG_PRINTF2(_L8("Sis Registry Server - Attempting to delete registry entry 0x%08x as a firmware update detected"), object->Uid().iUid);
@@ -2991,11 +3103,11 @@
     CleanupStack::PopAndDestroy(2, compFilter);    
     }
 
-void CSisRegistrySession::RegisterAllInRomAppL(RBuf& aRomApparcRegFilePath)
+void CSisRegistrySession::RegisterAllAppL(RBuf& aApparcRegFilePath)
     {
 	CDir* dir;
-	TInt err = iFs.GetDir(aRomApparcRegFilePath, KEntryAttMatchExclude | KEntryAttDir, ESortNone, dir);	
-	DEBUG_PRINTF2(_L8("Sis Registry Server - Reading ROM apparc registration file directory returned %d."), err);
+	TInt err = iFs.GetDir(aApparcRegFilePath, KEntryAttMatchExclude | KEntryAttDir, ESortNone, dir);	
+	DEBUG_PRINTF3(_L("Sis Registry Server - Reading apparc registration file directory(%S) returned %d."), &aApparcRegFilePath, err);
 	
 	if (err == KErrNone)
 		{
@@ -3017,7 +3129,7 @@
 		appLanguages.AppendL(User::Language());
 		for (TInt index = 0; index < count; ++index)
 			{
-			appRegFileName = TParsePtrC(aRomApparcRegFilePath).DriveAndPath();
+			appRegFileName = TParsePtrC(aApparcRegFilePath).DriveAndPath();
 			appRegFileName.Append((*dir)[index].iName);
 			RFile file;
 			CleanupClosePushL(file);
@@ -3050,3 +3162,394 @@
 		User::Leave(err);
 		}
     }
+
+void CSisRegistrySession::DriveFormatDetectedL(TDriveUnit aDrive)
+    {
+    DEBUG_PRINTF2(_L("Sis Registry Server - Drive format detected for drive %d"), static_cast<TInt>(aDrive));
+    
+    Usif::RStsSession stsSession;
+    TInt64 transactionId = stsSession.CreateTransactionL();
+    CleanupClosePushL(stsSession);
+    
+	//Create SCR Transaction
+    iScrSession.CreateTransactionL();
+    
+    RArray<TComponentId> foundComponentIds;
+    CleanupClosePushL(foundComponentIds);
+        
+    TDriveList filterFormatDrive;
+    filterFormatDrive.FillZ(KMaxDrives);
+    filterFormatDrive[static_cast<TInt>(aDrive)] = 1;
+    
+    CComponentFilter* componentFilter = CComponentFilter::NewLC();
+    componentFilter->SetInstalledDrivesL(filterFormatDrive);
+        
+    iScrSession.GetComponentIdsL(foundComponentIds, componentFilter);
+    
+    TBool processRomDrive = EFalse;
+    for(TInt i=0; i < foundComponentIds.Count(); ++i)
+        {
+        CSisRegistryObject* object = CSisRegistryObject::NewLC();
+        ScrHelperUtil::GetComponentL(iScrSession, foundComponentIds[i], *object);
+        TUint installedDrives = object->Drives();
+            
+        if(installedDrives & (1 << aDrive))
+            {
+            if (!processRomDrive && 
+                    (object->InstallType() == Sis::EInstInstallation || object->InstallType() == Sis::EInstPartialUpgrade) &&
+                        SisRegistryUtil::RomBasedPackageL(object->Uid()))
+                {   
+                processRomDrive = ETrue;                   
+                }  
+                    
+            // Retrieve all the associated files.
+            RPointerArray<CSisRegistryFileDescription>& fileDescriptions = object->FileDescriptions();
+            _LIT(KHashPathFormat, "%c:\\sys\\hash\\%S");
+            for(TInt j=0; j<fileDescriptions.Count(); ++j)
+                {
+                const TDesC& targetPath = fileDescriptions[j]->Target();
+                        
+                // Get the drive on which the file is present.
+                TInt drive; 
+                User::LeaveIfError(RFs::CharToDrive(targetPath[0], drive));
+                        
+                // If the file is a binary ( present in \sys\bin), delete the corresponding hash present in 
+                // C:\sys\hash
+                        
+                if(KErrNotFound != targetPath.FindF(KBinPath))
+                    {
+                    // Retrieve the filename from the target path.
+                    TParsePtrC parser(targetPath);
+					HBufC* fileName = parser.NameAndExt().AllocLC();
+                    
+                    TChar systemDrive = RFs::GetSystemDriveChar();
+                    
+					// Create the hash file path.
+                    RBuf hashFilePath;
+                    hashFilePath.CreateL(KMaxPath);
+                    CleanupClosePushL(hashFilePath);
+                    hashFilePath.Format(KHashPathFormat, static_cast<TUint>(systemDrive), fileName);
+                            
+                    // Delete hash file.
+                    SisRegistryUtil::DeleteFile(iFs, hashFilePath); //Ignore return code.
+                    
+					CleanupStack::PopAndDestroy(2, fileName);
+					}
+                        
+                if(aDrive == TDriveUnit(drive))
+                    {
+                    // File does not exist on disk as the drive is assumed to have been formatted.
+                    continue;
+                    }
+                SisRegistryUtil::DeleteFile(iFs, targetPath); //Ignore return code.           
+                }
+                    
+            DeleteEntryL(*object, transactionId, EFalse);
+            CleanupStack::PopAndDestroy(object);
+            }
+        }
+
+    if(processRomDrive)
+        {
+        // Re-add the ROM installed stub details to SCR (only those missing will be added)
+        ProcessRomDriveL();
+        }
+    
+    //Commit the changes.
+    stsSession.CommitL();
+    iScrSession.CommitTransactionL();
+
+    CleanupStack::PopAndDestroy(3, &stsSession);
+    }
+
+void CSisRegistrySession::AddAppRegInfoL(const RMessage2& aMessage)
+    {   
+    //This API is for use during development/debug use only; not used in production software
+    
+    TUint regFileNameLen = aMessage.GetDesLengthL(EIpcArgument0);
+    HBufC* regFileName = HBufC::NewLC(regFileNameLen);
+    TPtr namePtr = regFileName->Des();
+    aMessage.ReadL(EIpcArgument0, namePtr);
+    
+    Usif::CApplicationRegistrationData* appRegData = NULL;
+    //Check if the file name passed is valid reg file or not , if valid then parse
+    TRAPD(result, ValidateAndParseAppRegFileL(*regFileName, appRegData, EFalse));
+    
+    if (result == KErrNone)
+        {
+        CleanupStack::PushL(appRegData);
+        TComponentId compId = 0; 
+        TUid appUid = appRegData->AppUid();
+        //Check if component exists for the appUid, if then append the app reg info to the same compId(base)        
+        TRAP_IGNORE(compId = iScrSession.GetComponentIdForAppL(appUid));
+        TRAPD(res, ScrHelperUtil::AddApplicationEntryL(iScrSession, compId, *appRegData));
+        if (res != KErrNone && res != KErrAlreadyExists )
+            {
+            DEBUG_PRINTF2(_L("Sis Registry Server - Failed to add app registration data of in the SCR . Error code %d."), res);
+            CleanupStack::PopAndDestroy(2, regFileName); //appRegData
+            aMessage.Complete(res);
+            return;
+            }        
+        else if (res == KErrAlreadyExists)
+            {   
+            // Delete the existing application entry, which is not associated with any package 
+            ScrHelperUtil::DeleteApplicationEntryL(iScrSession, appUid);            
+            ScrHelperUtil::AddApplicationEntryL(iScrSession, compId, *appRegData);
+            }
+        
+        //Notify Apparc of the new app
+        RSisLauncherSession launcher;
+        CleanupClosePushL(launcher);
+        User::LeaveIfError(launcher.Connect());
+        TAppUpdateInfo newAppInfo;
+        RArray<TAppUpdateInfo> affectedApps;    
+        CleanupClosePushL(affectedApps);
+        newAppInfo = TAppUpdateInfo(appUid, EAppInstalled);
+        affectedApps.AppendL(newAppInfo);
+        launcher.NotifyNewAppsL(affectedApps);
+        CleanupStack::PopAndDestroy(3, appRegData); // affectedApps, launcher
+        }
+    else
+        {
+        DEBUG_PRINTF2(_L8("Sis Registry Server - Parsing application registration info. Error code %d."), result);
+        }
+    
+    CleanupStack::PopAndDestroy(regFileName);
+    aMessage.Complete(result);
+    }
+
+void CSisRegistrySession::RemoveAppRegInfoL(const RMessage2& aMessage)
+    {
+    //This API is for use during development/debug use only; not used in production software
+    
+    TUint regFileNameLen = aMessage.GetDesLengthL(EIpcArgument0);
+    HBufC* regFileName = HBufC::NewLC(regFileNameLen);
+    TPtr namePtr = regFileName->Des();
+    aMessage.ReadL(EIpcArgument0, namePtr);
+    
+    Usif::CApplicationRegistrationData* appRegData = NULL;
+    // Check if the file name passed is valid reg file or not , if valid then parse it
+    TRAPD(result, ValidateAndParseAppRegFileL(*regFileName, appRegData, EFalse));
+    
+    if(result == KErrNone)
+        {
+        TUid appUid = appRegData->AppUid();
+        delete appRegData;
+        appRegData = NULL;
+    
+        // Check if component exists for the appUid
+        TComponentId compId(0);
+        TRAPD(err,compId = iScrSession.GetComponentIdForAppL(appUid));
+        
+        // Check if appUid(reg file data to be removed) is registered with scr 
+        if(err != KErrNone)
+            {
+            DEBUG_PRINTF2(_L8("Sis Registry Server -Reg file (%S) not registered with scr"), &regFileName);
+            User::Leave(KErrNotFound);
+            }
+        
+        TBool isAppReRegistered(ETrue);
+        if(compId == 0)                                   // If component Id is 0 i.e. for in-rom *_reg.rsc files(without stub association) or inserted using AddAppRegInfoL().
+            {                        
+            TDriveUnit romDrive(SisRegistryUtil::SystemRomDrive());
+            RBuf romRegFilesPath;
+            CleanupClosePushL(romRegFilesPath);
+            romRegFilesPath.CreateL(romDrive.Name(), KMaxPath);            
+            romRegFilesPath.Append(KApparcRegFilePath);
+           
+            /* Scan the reg files in apparc's pvt folder's in rom, and compare their app uid with the uid of the reg file to be removed, 
+             * if found register the reg file present in rom replacing the existing app
+             */
+            TRAPD(err, ReRegisterAppRegFileL(romRegFilesPath, appUid));
+            CleanupStack::PopAndDestroy(&romRegFilesPath);
+                        
+            if(err == KErrNotFound)                       //If reg file is not found, search it in under "\\private\\10003a3f\\import\\apps\\*.rsc" path
+                {
+                RBuf romRegImportFilesPath;
+                CleanupClosePushL(romRegImportFilesPath);
+                romRegImportFilesPath.CreateL(romDrive.Name(), KMaxPath);                
+                romRegImportFilesPath.Append(KApparcRegFileImportPath);
+                err = 0; 
+                TRAP(err, ReRegisterAppRegFileL(romRegImportFilesPath,appUid));
+                CleanupStack::PopAndDestroy(&romRegImportFilesPath);
+                }
+            
+            if(err == KErrNotFound)                       // Since _reg.rsc file doesn't exists in rom and it is registered in scr, remove it                        
+                {
+                // Delete the existing application entry, which is not associated with any package 
+                ScrHelperUtil::DeleteApplicationEntryL(iScrSession, appUid); 
+                isAppReRegistered = EFalse;
+                }   
+            
+            else if(err != KErrNone && err != KErrNotFound)     
+                {
+                DEBUG_PRINTF2(_L8("Sis Registry Server - Error in removing reg file (%S)"), &regFileName);
+                User::Leave(err);
+                }                                            
+            }
+        else           // else if compId is not 0 i.e. either appUid is associated with stub in rom or any other package in other drive
+            {            
+            CSisRegistryObject* object = CSisRegistryObject::NewLC();
+            ScrHelperUtil::GetComponentL(iScrSession, compId, *object);            
+            if (object->InRom())            // If its a rom based pkg which has not been eclipsed then we can go back to the stubs
+                {   
+                RemoveEntryL(compId);
+                // Re-add the ROM installed stub details to SCR (only those missing will be added)
+                ProcessRomDriveL();
+                }    
+            else
+                {
+                // Delete the existing application entry, which is not associated with any package 
+                ScrHelperUtil::DeleteApplicationEntryL(iScrSession, appUid);
+                // Register the reg files of the applications, only the unregistered reg file data will be added(the association of reg file with stub will be lost) 
+                ProcessApplicationsL();
+                }
+            CleanupStack::PopAndDestroy(object);
+            }
+        
+        //Notify Apparc of the app being removed      
+        RSisLauncherSession launcher;
+        CleanupClosePushL(launcher);
+        User::LeaveIfError(launcher.Connect());
+        RArray<TAppUpdateInfo> affectedApps; 
+        CleanupClosePushL(affectedApps);
+        TAppUpdateInfo newAppInfo;
+        if(isAppReRegistered)       // If App reg data in rom is registerted again(i.e overwrites the existing one) we notify apparc of Installed app else Uninstalled app
+            {
+            newAppInfo = TAppUpdateInfo(appUid, EAppInstalled);
+            }
+        else
+            {
+            newAppInfo = TAppUpdateInfo(appUid, EAppUninstalled);
+            }
+        affectedApps.AppendL(newAppInfo);        
+        launcher.NotifyNewAppsL(affectedApps);
+        CleanupStack::PopAndDestroy(2, &launcher); // affectedApps        
+        }
+    else
+        {
+        DEBUG_PRINTF2(_L8("Sis Registry Server - Parsing application registration info. Error code %d."), result);
+        }
+    CleanupStack::PopAndDestroy(regFileName);
+    aMessage.Complete(result);
+    }
+
+void CSisRegistrySession::ValidateAndParseAppRegFileL(const TDesC& aRegFileName, Usif::CApplicationRegistrationData*& aAppRegData,TBool aInternal)
+    {
+    
+    TParsePtrC filename(aRegFileName);
+    if(!aInternal)                               //check if called for API and regFile path is "\\private\\10003a3f\\import\\apps\\"
+        {
+        if (filename.Path().Left(KApparcRegImportDir().Length()).CompareF(KApparcRegImportDir) != 0)
+            {
+            User::Leave(KErrNotSupported);
+            }
+        }
+    
+    RFs fs;
+    CleanupClosePushL(fs);
+    User::LeaveIfError(fs.Connect());
+    User::LeaveIfError(fs.ShareProtected());
+    RFile file;
+    CleanupClosePushL(file);
+    User::LeaveIfError(file.Open(fs, aRegFileName, EFileRead));
+    
+    // Reading the TUidType information fron the reg rsc file header
+    TBuf8<sizeof(TCheckedUid)> uidBuf;
+    TInt err = file.Read(0, uidBuf, sizeof(TCheckedUid));
+    if (err != KErrNone)
+        {
+        CleanupStack::PopAndDestroy(2, &fs);  //file
+        User::Leave(KErrNotSupported);
+        }
+    
+    if(uidBuf.Size() != sizeof(TCheckedUid))
+        {
+        DEBUG_PRINTF(_L("The file is not a valid registration resource file"));
+        CleanupStack::PopAndDestroy(2, &fs);  // file
+        User::Leave(KErrNotSupported);
+        }
+    TCheckedUid uid(uidBuf);
+    
+    //check the uid of the reg file to be parsed 
+    if(!(uid.UidType()[1] == KUidAppRegistrationFile))
+        {
+        CleanupStack::PopAndDestroy(2, &fs);  //file
+        User::Leave(KErrNotSupported);
+        }
+    
+    RSisLauncherSession launcher;
+    CleanupClosePushL(launcher);
+    User::LeaveIfError(launcher.Connect());
+    RArray<TLanguage> appLanguages;
+    CleanupClosePushL(appLanguages);
+    appLanguages.AppendL(User::Language());         
+    aAppRegData = launcher.SyncParseResourceFileL(file, appLanguages);
+    CleanupStack::PopAndDestroy(4, &fs);  //appLanguages, launcher, file
+    }
+
+void CSisRegistrySession::ReRegisterAppRegFileL(const TDesC& aRegFileDrivePath, const TUid& aAppUid)
+    {
+    /* 
+     * Reads and parses the *_reg.rsc files in the aRegFileDrivePath path and compare uid of each with the aAppUid, if matched remove the existing i.e. aAppUid
+     * and register the one found in the path.
+     */
+    
+    // open the directory
+    CDir* dir;
+    TInt err = iFs.GetDir(aRegFileDrivePath, KEntryAttMatchExclude | KEntryAttDir, ESortNone, dir);
+    
+    if (err == KErrNone)
+        {
+        CleanupStack::PushL(dir);
+        TInt count(dir->Count());
+        TBool foundAndReplaced(EFalse);
+        // scan through all the *_reg.rsc files
+        for (TInt index = 0; index < count; ++index)
+            {
+            RBuf regResourceFileName;
+            CleanupClosePushL(regResourceFileName);
+            regResourceFileName.CreateL(KMaxFileName);            
+            //construct the app reg file present in rom
+            regResourceFileName = TParsePtrC(aRegFileDrivePath).DriveAndPath();
+            regResourceFileName.Append((*dir)[index].iName);
+           //validate and parse the app reg file
+            Usif::CApplicationRegistrationData* appRegData = NULL;
+            TRAPD(res,ValidateAndParseAppRegFileL(regResourceFileName, appRegData, ETrue));
+            CleanupStack::PopAndDestroy(&regResourceFileName); 
+            CleanupStack::PushL(appRegData);
+            
+            if(res != KErrNone)
+                {
+                // log it only, we cannot stop as the next might be ok
+                DEBUG_PRINTF2(_L8("Sis Registry Server - Failed to register in ROM controller. Error code %d."), res); 
+                CleanupStack::Pop(appRegData);
+                continue;
+                }
+            
+            /* If appuid of the current processing reg file is same as of the reg file to be removed, delete existing app reg data and 
+             * add the reg entry of _reg.rsc file currently processed.
+             */
+            if(aAppUid == appRegData->AppUid())
+                {                        
+                TComponentId compId(0);
+                // Delete the existing application entry, which is not associated with any package 
+                ScrHelperUtil::DeleteApplicationEntryL(iScrSession, aAppUid); 
+                ScrHelperUtil::AddApplicationEntryL(iScrSession, compId, *appRegData);    
+                CleanupStack::PopAndDestroy(appRegData);
+                foundAndReplaced = ETrue;
+                break;
+                }    
+            CleanupStack::PopAndDestroy(appRegData); 
+            }
+        if(!foundAndReplaced)
+            {
+            User::Leave(KErrNotFound);
+            }
+        CleanupStack::PopAndDestroy(dir); 
+        }
+    else
+    	{
+    	User::Leave(KErrNotFound);
+    	}
+    }
--- a/installationservices/swi/source/sisregistry/server/sisregistryserversession.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swi/source/sisregistry/server/sisregistryserversession.h	Wed Aug 18 09:55:45 2010 +0300
@@ -118,7 +118,11 @@
 	void RequestRegistryEntryL(const RMessage2& aMessage);
 	void IsFileRegisteredL(const RMessage2& aMessage);
 	void GetComponentIdForUidL(const RMessage2& aMessage);
-    
+	void AddAppRegInfoL(const RMessage2& aMessage);
+    void RemoveAppRegInfoL(const RMessage2& aMessage);
+    void ValidateAndParseAppRegFileL(const TDesC& aRegFileName, Usif::CApplicationRegistrationData*& aAppRegData, TBool aInternal);
+    void ReRegisterAppRegFileL(const TDesC& aRegFileDrivePath, const TUid& aAppUid);
+	
 	// Subsession handling
 	void OpenRegistryUidEntryL(const RMessage2& aMessage);
 	void OpenRegistryPackageEntryL(const RMessage2& aMessage);
@@ -139,13 +143,14 @@
 	void AppRegInfoEntryL(const RMessage2& aMessage);
 
 #ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
-	void RegisterAllInRomAppL(RBuf& aRomApparcRegFilePath);
+	void RegisterAllAppL(RBuf& aApparcRegFolder);
     void GetComponentIdForPackageL(const RMessage2& aMessage);
     void GetAppUidsForComponentL(const RMessage2& aMessage);
     void GetComponentIdsForUidL(const RMessage2& aMessage);
 #endif
 
 	void DeleteEntryL(const RMessage2& aMessage);
+	void DeleteEntryL(const CSisRegistryObject& aObject, TInt64 aTransactionId, TBool aCleanupRequired = ETrue);
 	void AddSoftwareTypeL(const RMessage2& aMessage);
 	void AddDriveL(const RMessage2& aMessage);
 
@@ -200,12 +205,13 @@
 	void UnregisterSoftwareTypesL(Usif::TComponentId aComponentId);
 	
 	void ProcessRomStubsL();
-	void ProcessRomApplicationsL();
+	void ProcessApplicationsL();
 	TBool IsFirmwareUpdatedL();	 
 	void  UpdateRecentFWVersionL(); 
-	TInt GetStubFileInfoL(TUid aUid, TStubExtractionMode aMode, TInt aStartingFileNo, TInt& aFileCount, RPointerArray<HBufC>& aFileNames);
-	TInt GetStubFilesL(const TDesC& aFileName, RPointerArray<HBufC>& aFileNames);
-
+	void GetStubFileInfoL(TUid aUid, TStubExtractionMode aMode, TInt aStartingFileNo, TInt& aFileCount, RPointerArray<HBufC>& aFileNames);
+	void GetStubFilesL(const TDesC& aFileName, RPointerArray<HBufC>& aFileNames);
+	void DriveFormatDetectedL(TDriveUnit aDrive);
+	
 private:
     friend class CSisRevocationManager;
 
--- a/installationservices/swi/source/sisregistry/server/sisregistryutil.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swi/source/sisregistry/server/sisregistryutil.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2004-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -101,6 +101,38 @@
 		}
 	}
 
+void SisRegistryUtil::CreateFileWithAttributesL(RFs& aFs, const TDesC& aPath, const TUint aAttributesMask/*= 0*/)
+    {
+    // Creates the folder structure by ignoring the filename at the end.
+    EnsureDirExistsL(aFs, aPath);
+
+    RFile file;
+    CleanupClosePushL(file);
+    User::LeaveIfError(file.Create(aFs, aPath, EFileWrite));
+   
+    if(aAttributesMask != 0)
+        {
+        file.SetAtt(aAttributesMask, 0); // Ignoring return value.
+        }
+    CleanupStack::PopAndDestroy(&file);
+    }
+
+TInt SisRegistryUtil::DeleteFile(RFs& aFs, const TDesC& aPath)
+    {
+    TInt err = aFs.Delete(aPath);
+    
+    if(KErrNone != err)
+        {
+        DEBUG_PRINTF2(_L("Failed to delete file %S."), &aPath);
+        }
+    else
+        {
+        DEBUG_PRINTF2(_L("Deleted file %S successfully."), &aPath);
+        }
+    
+    return err;
+    }
+
 // Processes the ROM stub files. Retuns ETrue if the aUid or aName
 // is found in any of the ROM stub files, else returns EFalse.
 TBool SisRegistryUtil::RomBasedPackageL(const TUid& aUid)
--- a/installationservices/swi/source/sisregistry/server/sisregistryutil.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swi/source/sisregistry/server/sisregistryutil.h	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2004-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -46,6 +46,8 @@
  	static HBufC* BuildControllerFileNameLC(TUid aUid, TInt aIndex, TInt aController, TInt aDrive);
 	static HBufC* BuildStubFilesPathLC(TInt aDrive);
 	static void EnsureDirExistsL(RFs& aFs, const TDesC& aPath);
+	static void CreateFileWithAttributesL(RFs& aFs, const TDesC& aPath, const TUint aAttributesMask = 0);
+	static TInt DeleteFile(RFs& aFs, const TDesC& aPath);
 	static TBool RomBasedPackageL(const TUid& aUid);
 	static HBufC* BuildLogFileNameLC();
 	static TUid IdentifyUidFromSisFileL(RFs& aFs, TDesC& aFilename);
--- a/installationservices/swi/test/eabi/swicaptests_usifU.def	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swi/test/eabi/swicaptests_usifU.def	Wed Aug 18 09:55:45 2010 +0300
@@ -50,4 +50,8 @@
 	_ZTI40CSwiLauncherSisRegistryServerUtilCapTest @ 49 NONAME
 	_ZTV36CSwiLauncherInstallServerUtilCapTest @ 50 NONAME
 	_ZTV40CSwiLauncherSisRegistryServerUtilCapTest @ 51 NONAME
+	_ZTI22CSisLauncherSwiSidTest @ 52 NONAME
+	_ZTI22CSisRegistryTCBCapTest @ 53 NONAME
+	_ZTV22CSisLauncherSwiSidTest @ 54 NONAME
+	_ZTV22CSisRegistryTCBCapTest @ 55 NONAME
 
--- a/installationservices/swi/test/swicaptests/registrycaptest.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swi/test/swicaptests/registrycaptest.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -53,6 +53,7 @@
 _LIT(KRevocationRegistryCapTestName, "Registry revocation interface capability test");
 #ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 _LIT(KSifServerRegistryCapTestName, "Registry SIF interface security test");
+_LIT(KSisRegistryTCBCapTestName, "Sis Registry interface requiring TCB security test");
 #endif
 
 CPublicRegistryCapTest* CPublicRegistryCapTest::NewL()
@@ -607,6 +608,47 @@
 
 	CleanupStack::PopAndDestroy(&session);
 	}
+
+CSisRegistryTCBCapTest* CSisRegistryTCBCapTest::NewL()
+    {
+    CSisRegistryTCBCapTest* self=new(ELeave) CSisRegistryTCBCapTest();
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop(self);
+    return self;
+    }
+
+CSisRegistryTCBCapTest::CSisRegistryTCBCapTest()
+    {
+    SetCapabilityRequired(ECapabilityTCB); //API requires TCB capability, so giving it
+    }
+    
+void CSisRegistryTCBCapTest::ConstructL()
+    {
+    SetNameL(KSisRegistryTCBCapTestName);
+    }
+
+void CSisRegistryTCBCapTest::RunTestL()
+    {
+    Swi::RSisRegistrySession registrySession;
+    CleanupClosePushL(registrySession);
+    _LIT(regFileName,"c:\\private\\10003a3f\\import\\apps\\dummy_reg.rsc");
+    TInt err = registrySession.Connect();
+    if (KErrNone != err)
+        {
+        SetFail();
+        CleanupStack::PopAndDestroy(&registrySession);
+        return;
+        }
+
+    TRAP(err, registrySession.AddAppRegInfoL(regFileName));
+    CheckFailL(err, _L("AddAppRegInfoL"));
+    
+    TRAP(err, registrySession.RemoveAppRegInfoL(regFileName));
+    CheckFailL(err, _L("RemoveAppRegInfoL"));
+
+    CleanupStack::PopAndDestroy(&registrySession);
+    }
 #endif
 
 
--- a/installationservices/swi/test/swicaptests/registrycaptest.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swi/test/swicaptests/registrycaptest.h	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2005-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -109,4 +109,19 @@
 
 	void ConstructL();
 	};
+
+/** Tests registry interfaces to add reg file data to scr with TCB capability*/
+class CSisRegistryTCBCapTest : public CDefaultCapabilityTest
+    {
+public:
+    static CSisRegistryTCBCapTest* NewL();
+    
+private:
+    CSisRegistryTCBCapTest();
+    
+    void RunTestL();
+
+    void ConstructL();
+    };
+
 #endif
--- a/installationservices/swi/test/swicaptests/swicaptests.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swi/test/swicaptests/swicaptests.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2005-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -52,6 +52,8 @@
 	factory->AddTestL(CSifServerRegistryCapTest::NewL());
 	factory->AddTestL(CSwiLauncherInstallServerUtilCapTest::NewL());
 	factory->AddTestL(CSwiLauncherSisRegistryServerUtilCapTest::NewL());
+	factory->AddTestL(CSisRegistryTCBCapTest::NewL());
+	factory->AddTestL(CSisLauncherSwiSidTest::NewL());
 #endif
 	return factory;
 	}
--- a/installationservices/swi/test/swicaptests/swilaunchercaptest.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swi/test/swicaptests/swilaunchercaptest.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2005-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -24,6 +24,7 @@
 #include "sislauncherclient.h"
 #ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 #include "swtypereginfo.h"
+#include "sislauncherclient.h"
 #endif
 #include <e32def.h>
 
@@ -32,7 +33,7 @@
 #ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 _LIT(KSwiLauncherInstallServerUtilCapTestName, "Swi Launcher Utils for InstallServer capability test");
 _LIT(KSwiLauncherSisRegistryServerUtilCapTestName, "Swi Launcher Utils for SisRegistryServer capability test");
-
+_LIT(KSisLauncherSwiSidCapTest, "Sis Launcher API's which require SWI Sid");
 const TUid KInstallServerUid = {0x101F7295};
 const TUid KSisRegistryServerUid = {0x10202DCA};
 #endif
@@ -202,6 +203,8 @@
 	Swi::RSisLauncherSession launcher;
 	CleanupClosePushL(launcher);
 	
+	const RArray<Swi::TAppUpdateInfo> appUpdateInfo;
+	
 	if (launcher.Connect() != KErrNone)
 		{
 		CleanupStack::PopAndDestroy(&launcher);
@@ -215,7 +218,50 @@
 	
 	TRAP(err, launcher.UnregisterSifLauncherMimeTypesL(mimeTypes));
 	CheckFailL(err, _L("UnregisterSifLauncherMimeTypesL"));
+    
+    TRAP(err, launcher.NotifyNewAppsL(appUpdateInfo));
+    CheckFailL(err, _L("NotifyNewAppsL - update apparc"));
 	
 	CleanupStack::PopAndDestroy(2, &launcher); // mimeTypes
 	}
+
+//CSisLauncherSwiSidTest----------------------------------------------------------------------------------------------------------------------------------
+
+CSisLauncherSwiSidTest* CSisLauncherSwiSidTest::NewL()
+    {
+    CSisLauncherSwiSidTest* self = new (ELeave) CSisLauncherSwiSidTest();
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop(self);
+    return self;
+    }
+
+CSisLauncherSwiSidTest::CSisLauncherSwiSidTest()
+    {
+    SetCapabilityRequired(ECapabilityTCB);
+    SetSidRequired(KInstallServerUid);
+    }
+    
+void CSisLauncherSwiSidTest::ConstructL()
+    {
+    SetNameL(KSisLauncherSwiSidCapTest);
+    }
+
+void CSisLauncherSwiSidTest::RunTestL()
+    {
+    Swi::RSisLauncherSession launcher;
+    CleanupClosePushL(launcher);
+    const RPointerArray<Usif::CApplicationRegistrationData> appRegData;
+    TInt err = launcher.Connect();
+    if (err != KErrNone)
+        {
+        CleanupStack::PopAndDestroy(&launcher);
+        return;
+        }
+    err=KErrNone;
+    TRAP(err, launcher.NotifyNewAppsL(appRegData));
+    CheckFailL(err, _L("NotifyNewAppsL - force registration"));
+    CleanupStack::PopAndDestroy(&launcher);
+    }
+
 #endif
--- a/installationservices/swi/test/swicaptests/swilaunchercaptest.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swi/test/swicaptests/swilaunchercaptest.h	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2005-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -51,15 +51,29 @@
 	};
 
 class CSwiLauncherSisRegistryServerUtilCapTest : public CDefaultCapabilityTest
-	{
+    {
 public:
-	static CSwiLauncherSisRegistryServerUtilCapTest* NewL();
-	
+    static CSwiLauncherSisRegistryServerUtilCapTest* NewL();
+    
 private:
-	CSwiLauncherSisRegistryServerUtilCapTest();
-	
-	void RunTestL();
-	
-	void ConstructL();
-	};
+    CSwiLauncherSisRegistryServerUtilCapTest();
+    
+    void RunTestL();
+    
+    void ConstructL();
+    };
+
+class CSisLauncherSwiSidTest : public CDefaultCapabilityTest
+    {
+public:
+    static CSisLauncherSwiSidTest* NewL();
+    
+private:
+    CSisLauncherSwiSidTest();
+    
+    void RunTestL();
+    
+    void ConstructL();
+    };
+
 #endif
Binary file installationservices/swi/test/tdaemon/dummyswidaemon_armv5.exe has changed
Binary file installationservices/swi/test/tdaemon/dummyswidaemon_winscw.exe has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/test/tdaemon/scripts/batchfiles/setupforemmcformat_post.bat	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,29 @@
+@rem
+@rem Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+@rem All rights reserved.
+@rem This component and the accompanying materials are made available
+@rem under the terms of the License "Eclipse Public License v1.0"
+@rem which accompanies this distribution, and is available
+@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem
+@rem Initial Contributors:
+@rem Nokia Corporation - initial contribution.
+@rem
+@rem Contributors:
+@rem
+@rem Description:
+@rem
+
+@ECHO Off
+
+set FILE=\epoc32\winscw\c\tswi\certstore\swicertstore.dat
+
+echo Installing SWI cert store data file from %FILE%
+
+mkdir \epoc32\release\winscw\udeb\z\resource\
+mkdir \epoc32\release\winscw\urel\z\resource\
+copy /y %FILE% \epoc32\release\winscw\udeb\z\resource\swicertstore.dat
+copy /y %FILE% \epoc32\release\winscw\urel\z\resource\swicertstore.dat
+
+del /s /f /q \epoc32\release\winscw\udeb\z\system\install\eclispingteststub.sis
+del /s /f /q \epoc32\release\winscw\urel\z\system\install\eclispingteststub.sis
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/test/tdaemon/scripts/batchfiles/setupforemmcformat_pre.bat	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,29 @@
+@rem
+@rem Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+@rem All rights reserved.
+@rem This component and the accompanying materials are made available
+@rem under the terms of the License "Eclipse Public License v1.0"
+@rem which accompanies this distribution, and is available
+@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem
+@rem Initial Contributors:
+@rem Nokia Corporation - initial contribution.
+@rem
+@rem Contributors:
+@rem
+@rem Description:
+@rem
+
+@ECHO Off
+
+set FILE=\epoc32\winscw\c\tswi\certstore\swicertstore_sucert.dat
+
+echo Installing SWI cert store data file from %FILE%
+
+mkdir \epoc32\release\winscw\udeb\z\resource\
+mkdir \epoc32\release\winscw\urel\z\resource\
+copy /y %FILE% \epoc32\release\winscw\udeb\z\resource\swicertstore.dat
+copy /y %FILE% \epoc32\release\winscw\urel\z\resource\swicertstore.dat
+
+copy /y \epoc32\winscw\c\tswi\teclipsing\data\eclispingteststub.sis \epoc32\release\winscw\urel\z\system\install\eclispingteststub.sis
+copy /y \epoc32\winscw\c\tswi\teclipsing\data\eclispingteststub.sis \epoc32\release\winscw\udeb\z\system\install\eclispingteststub.sis
\ No newline at end of file
--- a/installationservices/swi/test/tdaemon/scripts/tdaemon.ini	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swi/test/tdaemon/scripts/tdaemon.ini	Wed Aug 18 09:55:45 2010 +0300
@@ -1,3 +1,197 @@
 [DriveWatcher]
 
 [Daemon]
+
+[AddDriveX]
+drive=X
+
+[AddDriveT]
+drive=T
+
+[InstallSA_on_emmc]
+sis=z:\tswi\tsis\data\emmc_format_base_on_emmc.sis
+script=z:\tswi\tuiscriptadaptors\scripts\simple.xml
+
+[InstallSA_on_c]
+sis=z:\tswi\tsis\data\emmc_format_base_on_c_drive.sis
+script=z:\tswi\tuiscriptadaptors\scripts\simple.xml
+
+[InstallSP_on_c_and_emmc]
+sis=z:\tswi\tsis\data\emmc_format_sp_distributed.sis
+script=z:\tswi\tuiscriptadaptors\scripts\simple.xml
+
+[InstallSP_on_emmc]
+sis=z:\tswi\tsis\data\emmc_format_sp_emmc.sis
+script=z:\tswi\tuiscriptadaptors\scripts\simple.xml
+
+[InstallPU_on_emmc]
+sis=z:\tswi\tsis\data\emmc_format_pu_on_emmc.sis
+script=z:\tswi\tuiscriptadaptors\scripts\simple.xml
+
+[InstallSP_on_c]
+sis=z:\tswi\tsis\data\emmc_format_sp_on_c.sis
+script=z:\tswi\tuiscriptadaptors\scripts\simple.xml
+
+[InstallSA_on_c_and_T]
+sis=z:\tswi\tsis\data\emmc_format_base_on_c_and_t.sis
+script=z:\tswi\tuiscriptadaptors\scripts\simple.xml
+
+[InstallSA_on_distributed_drives]
+sis=z:\tswi\tsis\data\emmc_format_base_distributed.sis
+script=z:\tswi\tuiscriptadaptors\scripts\simple.xml
+
+[InstallSANR_on_distributed_drives]
+sis=z:\tswi\tsis\data\emmc_format_base_distributed_NR_sucert.sis
+script=z:\tswi\tuiscriptadaptors\scripts\simple.xml
+
+[InstallSANR_on_c_and_T]
+sis=z:\tswi\tsis\data\emmc_format_base_on_c_and_t_NR_sucert.sis
+script=z:\tswi\tuiscriptadaptors\scripts\simple.xml
+
+[InstallEclipsingSA_on_c_and_emmc]
+sis=z:\tswi\tsis\data\eclipsingdllupgradesa_on_c_and_emmc_root5.sis
+script=z:\tswi\tuiscriptadaptors\scripts\simple.xml
+
+[InstallEclipsingPU_on_c_and_emmc]
+sis=z:\tswi\tsis\data\eclipsingdllupgradepu_on_c_and_emmc_root5.sis
+script=z:\tswi\tuiscriptadaptors\scripts\simple.xml
+
+[u_Eclipsing]
+uid =802730A1
+script=z:\tswi\tuiscriptadaptors\scripts\uninstall.xml
+
+
+[u_Install]
+uid =8000887D
+script=z:\tswi\tuiscriptadaptors\scripts\uninstall.xml
+
+[CheckX]
+NoOfComponents=0
+FormatDrive=X
+
+[CheckT]
+NoOfComponents=0
+FormatDrive=T
+
+[Check_component_exists_for_SA_after_emmc_format_case1]
+ComponentName=emmc_format_base_on_emmc
+VendorName=Vendor
+NoOfComponents=0
+
+[Check_files_exists_for_SA_after_emmc_format]
+numnonexist = 6
+nonexist0 = c:\sys\bin\runtestexe_app.exe
+nonexist1 = c:\sys\bin\console_app.exe
+nonexist2 = x:\dummy.txt
+nonexist3 = C:\sys\install\sisregistry\8000887d\00000000_0000.ctl
+nonexist4 = C:\sys\hash\runtestexe_app.exe
+nonexist5 = C:\sys\hash\console_app.exe
+
+[Check_files_exists_for_SA_after_T_dive_format]
+numexist = 6
+exist0 = c:\sys\bin\runtestexe_app.exe
+exist1 = c:\sys\bin\console_app.exe
+exist2 = x:\dummy.txt
+exist3 = C:\sys\install\sisregistry\8000887d\00000000_0000.ctl
+exist4 = C:\sys\hash\runtestexe_app.exe
+exist5 = C:\sys\hash\console_app.exe
+
+[Check_component_exists_for_SP_after_emmc_format_case2]
+ComponentName=emmc_format_base_on_c_drive
+VendorName=Vendor
+NoOfComponents=1
+
+[Check_component_exists_for_SP_after_emmc_format_case3]
+ComponentName=emmc_format_base_on_c_drive
+VendorName=Vendor
+NoOfComponents=0
+
+[Check_component_exists_for_SA_after_emmc_format_3]
+ComponentName=emmc_format_base_on_emmc
+VendorName=Vendor
+NoOfComponents=1
+
+[Check_files_exists_for_SP_after_emmc_format]
+numnonexist=4
+nonexist0 = c:\sys\bin\console_app2.exe
+nonexist1 = x:\dummy.txt
+nonexist2 = C:\sys\install\sisregistry\8000887d\00000001_0000.ctl
+nonexist3 = C:\sys\hash\console_app2.exe
+
+[Check_files_exists_for_Two_SP_after_emmc_format]
+numnonexist = 5
+nonexist0 = c:\sys\bin\console_app2.exe
+nonexist1 = x:\dummy.txt
+nonexist2 = x:\dummy1.txt
+nonexist3 = C:\sys\install\sisregistry\8000887d\00000001_0000.ctl
+nonexist4 = C:\sys\hash\console_app2.exe
+
+[Check_marker_files]
+numnonexist = 2
+nonexist0 = c:\private\102020DCE\firstbootmarkernonexistforx
+nonexist1 = x:\sys\install\formatmarker
+
+
+[Check_component_exists_for_SASP_after_emmc_format]
+ComponentName=emmc_format_sp_on_c
+VendorName=Vendor
+NoOfComponents=1
+
+[Check_files_exists_for_SASP_after_emmc_format]
+numnonexist = 9
+nonexist0 = c:\sys\bin\runtestexe_app.exe
+nonexist1 = c:\sys\bin\console_app.exe
+nonexist2 = x:\dummy.txt
+nonexist3 = C:\sys\install\sisregistry\8000887d\00000000_0000.ctl
+nonexist4 = C:\sys\hash\runtestexe_app.exe
+nonexist5 = C:\sys\hash\console_app.exe
+nonexist6 = c:\sys\bin\console_app2.exe
+nonexist7 = C:\sys\install\sisregistry\8000887d\00000001_0000.ctl
+nonexist8 = C:\sys\hash\console_app2.exe
+
+//case7
+[Check_component_exists_for_SA_on_C_and_T_after_emmc_format]
+ComponentName=emmc_format_base_on_c_and_t
+VendorName=Vendor
+NoOfComponents=1
+
+//case8
+[Check_component_exists_for_SA_on_C_E_and_T_after_emmc_format]
+ComponentName=emmc_format_base_distributed
+VendorName=Vendor
+NoOfComponents=0
+
+//case9
+[Check_component_exists_for_SA_on_C_E_and_T_after_emmc_format_case9]
+ComponentName=emmc_format_base_distributed
+VendorName=Vendor
+NoOfComponents=0
+
+[Check_component_exists_for_SA_on_C_E_and_T_after_emmc_format]
+ComponentName=emmc_format_base_distributed
+VendorName=Vendor
+NoOfComponents=0
+
+[Check_component_exists_for_SA_on_C_and_T_after_emmc_format??]
+ComponentName=emmc_format_base_on_c_and_t_NR
+VendorName=Vendor
+NoOfComponents=1
+
+[Check_files_exists_for_SA_on_C_and_T_after_emmc_format]
+numexist = 6
+exist0 = c:\sys\bin\runtestexe_app.exe
+exist1 = c:\sys\bin\console_app.exe
+exist2 = T:\dummy1.txt
+exist3 = C:\sys\install\sisregistry\8000887d\00000000_0000.ctl
+exist4 = C:\sys\hash\runtestexe_app.exe
+exist5 = C:\sys\hash\console_app.exe
+
+[Check_files_exists_for_SA_on_C_E_and_T_after_emmc_format]
+numnonexist = 7
+nonexist0 = c:\sys\bin\runtestexe_app.exe
+nonexist1 = c:\sys\bin\console_app.exe
+nonexist2 = x:\dummy.txt
+nonexist3 = C:\sys\install\sisregistry\8000887d\00000000_0000.ctl
+nonexist4 = C:\sys\hash\runtestexe_app.exe
+nonexist5 = C:\sys\hash\console_app.exe
+nonexist6 = T:\dummy1.txt
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/test/tdaemon/scripts/tdaemon_winscw.script	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,262 @@
+//
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of the License "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+LOAD_SUITE tdaemon
+LOAD_SUITE tuiscriptadaptors
+LOAD_SUITE tscr -SharedData
+
+//! @SYMTestCaseID 		API-SEC-CR_405-5166-0001
+//! @SYMTestCaseDesc		CR_405-5166: SIS Registry: Cleans the registry entries for the packages installed on emmc i.e 'X' Drive
+//! @SYMDEF			CR_405-5166
+//! @SYMTestActions		Install sis file(files distributed across C drive and emmc i.e 'X' Drive) and  Format EMMC.
+//! @SYMTestExpectedResults	Registry entries for the package gets cleaned
+
+START_TESTCASE API-SEC-CR_405-5166-0001
+RUN_TEST_STEP 100 tuiscriptadaptors InstallStep z:\tswi\tdaemon\scripts\tdaemon.ini InstallSA_on_emmc
+RUN_TEST_STEP 100 tuiscriptadaptors MmcFormatStep z:\tswi\tuiscriptadaptors\scripts\drives.ini X
+RUN_TEST_STEP 100 tdaemon AddDriveStep z:\tswi\tdaemon\scripts\tdaemon.ini AddDriveX
+DELAY 2000
+RUN_TEST_STEP 100 tscr ScrComponentOnEMMC z:\tswi\tdaemon\scripts\tdaemon.ini CheckX
+RUN_TEST_STEP 100 tscr ScrComponentPresentForNameVendor z:\tswi\tdaemon\scripts\tdaemon.ini Check_component_exists_for_SA_after_emmc_format_case1
+RUN_TEST_STEP 100 tuiscriptadaptors MmcCheckFilesStep z:\tswi\tdaemon\scripts\tdaemon.ini Check_files_exists_for_SA_after_emmc_format
+END_TESTCASE API-SEC-CR_405-5166-0001
+
+
+//! @SYMTestCaseID 		API-SEC-CR_405-5166-0002
+//! @SYMTestCaseDesc		CR_405-5166: SIS Registry: Cleans the registry entries for the packages installed on emmc i.e 'X' Drive
+//! @SYMDEF			CR_405-5166
+//! @SYMTestActions		Install sis file SA on c drive and then upgrade it with SP(files distributed across C drive and emmc i.e 'X' Drive) and  Format EMMC.
+//! @SYMTestExpectedResults	Registry entries for the SP package gets cleaned
+
+START_TESTCASE API-SEC-CR_405-5166-0002
+RUN_TEST_STEP 100 tuiscriptadaptors InstallStep z:\tswi\tdaemon\scripts\tdaemon.ini InstallSA_on_c
+RUN_TEST_STEP 100 tuiscriptadaptors InstallStep z:\tswi\tdaemon\scripts\tdaemon.ini InstallSP_on_c_and_emmc
+RUN_TEST_STEP 100 tuiscriptadaptors MmcFormatStep z:\tswi\tuiscriptadaptors\scripts\drives.ini X
+RUN_TEST_STEP 100 tdaemon AddDriveStep z:\tswi\tdaemon\scripts\tdaemon.ini AddDriveX
+DELAY 2000
+RUN_TEST_STEP 100 tscr ScrComponentOnEMMC z:\tswi\tdaemon\scripts\tdaemon.ini CheckX
+RUN_TEST_STEP 100 tscr ScrComponentPresentForNameVendor z:\tswi\tdaemon\scripts\tdaemon.ini Check_component_exists_for_SP_after_emmc_format_case2
+RUN_TEST_STEP 100 tuiscriptadaptors MmcCheckFilesStep z:\tswi\tdaemon\scripts\tdaemon.ini Check_files_exists_for_SP_after_emmc_format
+RUN_TEST_STEP 100 tuiscriptadaptors UninstallStep  z:\tswi\tdaemon\scripts\tdaemon.ini u_Install
+END_TESTCASE API-SEC-CR_405-5166-0002
+
+
+//! @SYMTestCaseID 		API-SEC-CR_405-5166-0003
+//! @SYMTestCaseDesc		CR_405-5166: SIS Registry: Cleans the registry entries for the packages installed on emmc i.e 'X' Drive
+//! @SYMDEF			CR_405-5166
+//! @SYMTestActions		Install sis file SA on c drive and then upgrade it with PU on emmc and  Format EMMC.
+//! @SYMTestExpectedResults	Registry entries for the complete package gets cleaned
+
+START_TESTCASE API-SEC-CR_405-5166-0003
+RUN_TEST_STEP 100 tuiscriptadaptors InstallStep z:\tswi\tdaemon\scripts\tdaemon.ini InstallSA_on_c
+RUN_TEST_STEP 100 tuiscriptadaptors InstallStep z:\tswi\tdaemon\scripts\tdaemon.ini InstallPU_on_emmc
+RUN_TEST_STEP 100 tuiscriptadaptors MmcFormatStep z:\tswi\tuiscriptadaptors\scripts\drives.ini X
+RUN_TEST_STEP 100 tdaemon AddDriveStep z:\tswi\tdaemon\scripts\tdaemon.ini AddDriveX
+DELAY 2000
+RUN_TEST_STEP 100 tscr ScrComponentOnEMMC z:\tswi\tdaemon\scripts\tdaemon.ini CheckX
+RUN_TEST_STEP 100 tscr ScrComponentPresentForNameVendor z:\tswi\tdaemon\scripts\tdaemon.ini Check_component_exists_for_SP_after_emmc_format_case3
+RUN_TEST_STEP 100 tuiscriptadaptors MmcCheckFilesStep z:\tswi\tdaemon\scripts\tdaemon.ini Check_files_exists_for_SA_after_emmc_format
+RUN_TEST_STEP_RESULT -1 100 tuiscriptadaptors UninstallStep  z:\tswi\tdaemon\scripts\tdaemon.ini u_Install
+END_TESTCASE API-SEC-CR_405-5166-0003
+
+//! @SYMTestCaseID 		API-SEC-CR_405-5166-0004
+//! @SYMTestCaseDesc		CR_405-5166: SIS Registry: Cleans the registry entries for the packages installed on emmc i.e 'X' Drive
+//! @SYMDEF			CR_405-5166
+//! @SYMTestActions		Install sis file SA on c drive and then upgrade it with two SP's both on emmc and format emmc.
+//! @SYMTestExpectedResults	Registry entries for bothe the sp's gets cleaned
+
+START_TESTCASE API-SEC-CR_405-5166-0004
+RUN_TEST_STEP 100 tuiscriptadaptors InstallStep z:\tswi\tdaemon\scripts\tdaemon.ini InstallSA_on_c
+RUN_TEST_STEP 100 tuiscriptadaptors InstallStep z:\tswi\tdaemon\scripts\tdaemon.ini InstallSP_on_emmc
+RUN_TEST_STEP 100 tuiscriptadaptors InstallStep z:\tswi\tdaemon\scripts\tdaemon.ini InstallSP_on_c_and_emmc
+RUN_TEST_STEP 100 tuiscriptadaptors MmcFormatStep z:\tswi\tuiscriptadaptors\scripts\drives.ini X
+RUN_TEST_STEP 100 tdaemon AddDriveStep z:\tswi\tdaemon\scripts\tdaemon.ini AddDriveX
+DELAY 2000
+RUN_TEST_STEP 100 tscr ScrComponentOnEMMC z:\tswi\tdaemon\scripts\tdaemon.ini CheckX
+RUN_TEST_STEP 100 tscr ScrComponentPresentForNameVendor z:\tswi\tdaemon\scripts\tdaemon.ini Check_component_exists_for_SP_after_emmc_format
+RUN_TEST_STEP 100 tuiscriptadaptors MmcCheckFilesStep z:\tswi\tdaemon\scripts\tdaemon.ini Check_files_exists_for_Two_SP_after_emmc_format
+RUN_TEST_STEP 100 tuiscriptadaptors UninstallStep  z:\tswi\tdaemon\scripts\tdaemon.ini u_Install
+END_TESTCASE API-SEC-CR_405-5166-0004
+
+
+//! @SYMTestCaseID 		API-SEC-CR_405-5166-0005
+//! @SYMTestCaseDesc		CR_405-5166: SIS Registry: Cleans the registry entries for the packages installed on emmc i.e 'X' Drive
+//! @SYMDEF			CR_405-5166
+//! @SYMTestActions		Unmount and mount emmc
+//! @SYMTestExpectedResults	No change in registry entries.
+
+START_TESTCASE API-SEC-CR_405-5166-0005
+RUN_TEST_STEP 100 tuiscriptadaptors MmcUnMountStep z:\tswi\tuiscriptadaptors\scripts\drives.ini X
+RUN_TEST_STEP 100 tuiscriptadaptors MmcMountStep z:\tswi\tuiscriptadaptors\scripts\drives.ini X
+END_TESTCASE API-SEC-CR_405-5166-0005
+
+
+RUN_UTILS DeleteFile c:\private\102020DCA\firstbootmarkerfileforx
+RUN_UTILS DeleteFile x:\sys\install\formatmarker
+
+
+//! @SYMTestCaseID 		API-SEC-CR_405-5166-0006
+//! @SYMTestCaseDesc		CR_405-5166: SIS Registry: Cleans the registry entries for the packages installed on emmc i.e 'X' Drive
+//! @SYMDEF			CR_405-5166
+//! @SYMTestActions		After first boot of the device , marker files gets created on system drive(one for each emmc) and emmc
+//! @SYMTestExpectedResults	Marker files gets created on system drive(one for each emmc) and emmc successfuly
+
+START_TESTCASE API-SEC-CR_405-5166-0006
+RUN_TEST_STEP 100 tuiscriptadaptors MmcCheckFilesStep z:\tswi\tdaemon\scripts\tdaemon.ini Check_marker_files
+END_TESTCASE API-SEC-CR_405-5166-0006
+
+
+//! @SYMTestCaseID 		API-SEC-CR_405-5166-0007
+//! @SYMTestCaseDesc		CR_405-5166: SIS Registry: Cleans the registry entries for the packages installed on emmc i.e 'X' Drive
+//! @SYMDEF			CR_405-5166
+//! @SYMTestActions		Install sis file SA on c drive and t drive and format emmc.
+//! @SYMTestExpectedResults	No impact on the package 
+
+START_TESTCASE API-SEC-CR_405-5166-0007
+RUN_TEST_STEP 100 tuiscriptadaptors InstallStep z:\tswi\tdaemon\scripts\tdaemon.ini InstallSA_on_c_and_T
+RUN_TEST_STEP 100 tuiscriptadaptors MmcFormatStep z:\tswi\tuiscriptadaptors\scripts\drives.ini X
+RUN_TEST_STEP 100 tdaemon AddDriveStep z:\tswi\tdaemon\scripts\tdaemon.ini AddDriveX
+DELAY 2000
+RUN_TEST_STEP 100 tscr ScrComponentOnEMMC z:\tswi\tdaemon\scripts\tdaemon.ini CheckX
+RUN_TEST_STEP 100 tscr ScrComponentPresentForNameVendor z:\tswi\tdaemon\scripts\tdaemon.ini Check_component_exists_for_SA_on_C_and_T_after_emmc_format
+RUN_TEST_STEP 100 tuiscriptadaptors MmcCheckFilesStep z:\tswi\tdaemon\scripts\tdaemon.ini Check_files_exists_for_SA_on_C_and_T_after_emmc_format
+RUN_TEST_STEP 100 tuiscriptadaptors UninstallStep  z:\tswi\tdaemon\scripts\tdaemon.ini u_Install
+END_TESTCASE API-SEC-CR_405-5166-0007
+
+//! @SYMTestCaseID 		API-SEC-CR_405-5166-0008
+//! @SYMTestCaseDesc		CR_405-5166: SIS Registry: Cleans the registry entries for the packages installed on emmc i.e 'X' Drive
+//! @SYMDEF			CR_405-5166
+//! @SYMTestActions		Install sis file SA on c , x and t drive  then unmount T drive, format emmc and again mount x drive.
+//! @SYMTestExpectedResults	Remove complete SA
+
+START_TESTCASE API-SEC-CR_405-5166-0008
+RUN_TEST_STEP 100 tuiscriptadaptors InstallStep z:\tswi\tdaemon\scripts\tdaemon.ini InstallSA_on_distributed_drives
+RUN_TEST_STEP 100 tuiscriptadaptors MmcUnMountStep z:\tswi\tuiscriptadaptors\scripts\drives.ini T
+RUN_TEST_STEP 100 tuiscriptadaptors MmcFormatStep z:\tswi\tuiscriptadaptors\scripts\drives.ini X
+RUN_TEST_STEP 100 tdaemon AddDriveStep z:\tswi\tdaemon\scripts\tdaemon.ini AddDriveX
+DELAY 2000
+RUN_TEST_STEP 100 tuiscriptadaptors MmcMountStep z:\tswi\tuiscriptadaptors\scripts\drives.ini T
+RUN_TEST_STEP 100 tdaemon AddDriveStep z:\tswi\tdaemon\scripts\tdaemon.ini AddDriveT
+DELAY 2000
+DELAY 2000
+RUN_TEST_STEP 100 tscr ScrComponentOnEMMC z:\tswi\tdaemon\scripts\tdaemon.ini CheckX
+RUN_TEST_STEP 100 tscr ScrComponentPresentForNameVendor z:\tswi\tdaemon\scripts\tdaemon.ini Check_component_exists_for_SA_on_C_E_and_T_after_emmc_format
+RUN_TEST_STEP 100 tuiscriptadaptors MmcCheckFilesStep z:\tswi\tdaemon\scripts\tdaemon.ini Check_files_exists_for_SA_on_C_E_and_T_after_emmc_format
+RUN_TEST_STEP_RESULT -1 100 tuiscriptadaptors UninstallStep  z:\tswi\tdaemon\scripts\tdaemon.ini u_Install
+END_TESTCASE API-SEC-CR_405-5166-0008
+
+//! @SYMTestCaseID 		API-SEC-CR_405-5166-0009
+//! @SYMTestCaseDesc		CR_405-5166: SIS Registry: Cleans the registry entries for the packages installed on emmc i.e 'X' Drive
+//! @SYMDEF			CR_405-5166
+//! @SYMTestActions		Install sis file SA on c , x and t drive  then  format emmc drive.
+//! @SYMTestExpectedResults	Remove complete SA
+
+START_TESTCASE API-SEC-CR_405-5166-0009
+RUN_TEST_STEP 100 tuiscriptadaptors InstallStep z:\tswi\tdaemon\scripts\tdaemon.ini InstallSA_on_distributed_drives
+RUN_TEST_STEP 100 tuiscriptadaptors MmcFormatStep z:\tswi\tuiscriptadaptors\scripts\drives.ini X
+RUN_TEST_STEP 100 tdaemon AddDriveStep z:\tswi\tdaemon\scripts\tdaemon.ini AddDriveX
+DELAY 2000
+RUN_TEST_STEP 100 tscr ScrComponentOnEMMC z:\tswi\tdaemon\scripts\tdaemon.ini CheckX
+RUN_TEST_STEP 100 tscr ScrComponentPresentForNameVendor z:\tswi\tdaemon\scripts\tdaemon.ini Check_component_exists_for_SA_on_C_E_and_T_after_emmc_format_case9
+RUN_TEST_STEP 100 tuiscriptadaptors MmcCheckFilesStep z:\tswi\tdaemon\scripts\tdaemon.ini Check_files_exists_for_SA_on_C_E_and_T_after_emmc_format
+RUN_TEST_STEP_RESULT -1 100 tuiscriptadaptors UninstallStep  z:\tswi\tdaemon\scripts\tdaemon.ini u_Install
+END_TESTCASE API-SEC-CR_405-5166-0009
+
+//! @SYMTestCaseID 		API-SEC-CR_405-5166-0010
+//! @SYMTestCaseDesc		CR_405-5166: SIS Registry: Cleans the registry entries for the packages installed on emmc i.e 'X' Drive
+//! @SYMDEF			CR_405-5166
+//! @SYMTestActions		Install sis file SA on c , x and format T drive.
+//! @SYMTestExpectedResults	Remove complete SA
+
+START_TESTCASE API-SEC-CR_405-5166-0010
+RUN_TEST_STEP 100 tuiscriptadaptors InstallStep z:\tswi\tdaemon\scripts\tdaemon.ini InstallSA_on_emmc
+RUN_TEST_STEP 100 tuiscriptadaptors MmcFormatStep z:\tswi\tuiscriptadaptors\scripts\drives.ini T
+RUN_TEST_STEP 100 tdaemon AddDriveStep z:\tswi\tdaemon\scripts\tdaemon.ini AddDriveT
+DELAY 2000
+RUN_TEST_STEP 100 tscr ScrComponentOnEMMC z:\tswi\tdaemon\scripts\tdaemon.ini CheckT
+RUN_TEST_STEP 100 tscr ScrComponentPresentForNameVendor z:\tswi\tdaemon\scripts\tdaemon.ini Check_component_exists_for_SA_after_emmc_format_3
+RUN_TEST_STEP 100 tuiscriptadaptors MmcCheckFilesStep z:\tswi\tdaemon\scripts\tdaemon.ini Check_files_exists_for_SA_after_T_dive_format
+RUN_TEST_STEP tuiscriptadaptors UninstallStep  z:\tswi\tdaemon\scripts\tdaemon.ini u_Install
+END_TESTCASE API-SEC-CR_405-5166-0010
+
+//! @SYMTestCaseID 		API-SEC-CR_405-5166-0011
+//! @SYMTestCaseDesc		CR_405-5166: SIS Registry: Cleans the registry entries for the packages installed on emmc i.e 'X' Drive
+//! @SYMDEF			CR_405-5166
+//! @SYMTestActions		Install sis file SA(NR) on c , x and t drive  then format emmc drive.
+//! @SYMTestExpectedResults	Remove complete SA
+
+START_TESTCASE API-SEC-CR_405-5166-0011
+RUN_TEST_STEP 100 tuiscriptadaptors InstallStep z:\tswi\tdaemon\scripts\tdaemon.ini InstallSANR_on_distributed_drives
+RUN_TEST_STEP 100 tuiscriptadaptors MmcFormatStep z:\tswi\tuiscriptadaptors\scripts\drives.ini X
+RUN_TEST_STEP 100 tdaemon AddDriveStep z:\tswi\tdaemon\scripts\tdaemon.ini AddDriveX
+DELAY 2000
+RUN_TEST_STEP 100 tscr ScrComponentOnEMMC z:\tswi\tdaemon\scripts\tdaemon.ini CheckX
+RUN_TEST_STEP 100 tscr ScrComponentPresentForNameVendor z:\tswi\tdaemon\scripts\tdaemon.ini Check_files_exists_for_SA_on_C_E_and_T_after_emmc_format
+RUN_TEST_STEP 100 tuiscriptadaptors MmcCheckFilesStep z:\tswi\tdaemon\scripts\tdaemon.ini Check_files_exists_for_SA_on_C_E_and_T_after_emmc_format
+RUN_TEST_STEP_RESULT -1 100 tuiscriptadaptors UninstallStep  z:\tswi\tdaemon\scripts\tdaemon.ini u_Install
+END_TESTCASE API-SEC-CR_405-5166-0011
+
+//! @SYMTestCaseID 		API-SEC-CR_405-5166-0012
+//! @SYMTestCaseDesc		CR_405-5166: SIS Registry: Cleans the registry entries for the packages installed on emmc i.e 'X' Drive
+//! @SYMDEF			CR_405-5166
+//! @SYMTestActions		Install sis file SA(NR) on c drive and t drive and format emmc.
+//! @SYMTestExpectedResults	No impact on the package 
+
+START_TESTCASE API-SEC-CR_405-5166-0012
+RUN_TEST_STEP 100 tuiscriptadaptors InstallStep z:\tswi\tdaemon\scripts\tdaemon.ini InstallSANR_on_c_and_T
+RUN_TEST_STEP 100 tuiscriptadaptors MmcFormatStep z:\tswi\tuiscriptadaptors\scripts\drives.ini X
+RUN_TEST_STEP 100 tdaemon AddDriveStep z:\tswi\tdaemon\scripts\tdaemon.ini AddDriveX
+DELAY 2000
+RUN_TEST_STEP 100 tscr ScrComponentOnEMMC z:\tswi\tdaemon\scripts\tdaemon.ini CheckX
+RUN_TEST_STEP 100 tscr ScrComponentPresentForNameVendor z:\tswi\tdaemon\scripts\tdaemon.ini Check_files_exists_for_SA_on_C_and_T_after_emmc_format
+RUN_TEST_STEP 100 tuiscriptadaptors MmcCheckFilesStep z:\tswi\tdaemon\scripts\tdaemon.ini Check_files_exists_for_SA_on_C_and_T_after_emmc_format
+RUN_TEST_STEP_RESULT -5 100 tuiscriptadaptors UninstallStep  z:\tswi\tdaemon\scripts\tdaemon.ini u_Install
+RUN_TEST_STEP 100 tuiscriptadaptors MmcFormatStep z:\tswi\tuiscriptadaptors\scripts\drives.ini T
+RUN_TEST_STEP 100 tdaemon AddDriveStep z:\tswi\tdaemon\scripts\tdaemon.ini AddDriveT
+DELAY 2000
+RUN_TEST_STEP_RESULT -1 100 tuiscriptadaptors UninstallStep  z:\tswi\tdaemon\scripts\tdaemon.ini u_Install
+END_TESTCASE API-SEC-CR_405-5166-0012
+
+//! @SYMTestCaseID 		API-SEC-CR_405-5166-0013
+//! @SYMTestCaseDesc		CR_405-5166: SIS Registry: Cleans the registry entries for the packages installed on emmc i.e 'X' Drive
+//! @SYMDEF			CR_405-5166
+//! @SYMTestActions		Install a sis file SP(eclipsing) on c drive and x drive and format emmc.
+//! @SYMTestExpectedResults	SP should be removed amd we will revert back to stubs 
+
+START_TESTCASE API-SEC-CR_405-5166-0013
+RUN_TEST_STEP 100 tuiscriptadaptors InstallStep z:\tswi\tdaemon\scripts\tdaemon.ini InstallEclipsingSA_on_c_and_emmc
+RUN_TEST_STEP 100 tuiscriptadaptors MmcFormatStep z:\tswi\tuiscriptadaptors\scripts\drives.ini X
+RUN_TEST_STEP 100 tdaemon AddDriveStep z:\tswi\tdaemon\scripts\tdaemon.ini AddDriveX
+DELAY 2000
+RUN_TEST_STEP 100 tscr ScrComponentOnEMMC z:\tswi\tdaemon\scripts\tdaemon.ini CheckX
+RUN_TEST_STEP_RESULT -5 100 tuiscriptadaptors UninstallStep  z:\tswi\tdaemon\scripts\tdaemon.ini u_Eclipsing
+END_TESTCASE API-SEC-CR_405-5166-0013
+
+//! @SYMTestCaseID 		API-SEC-CR_405-5166-0014
+//! @SYMTestCaseDesc		CR_405-5166: SIS Registry: Cleans the registry entries for the packages installed on emmc i.e 'X' Drive
+//! @SYMDEF			CR_405-5166
+//! @SYMTestActions		Install a sis file SP(eclipsing) on c drive and x drive and format emmc.
+//! @SYMTestExpectedResults	SP should be removed amd we will revert back to stubs 
+
+START_TESTCASE API-SEC-CR_405-5166-0014
+RUN_TEST_STEP 100 tuiscriptadaptors InstallStep z:\tswi\tdaemon\scripts\tdaemon.ini InstallEclipsingPU_on_c_and_emmc
+RUN_TEST_STEP 100 tuiscriptadaptors MmcFormatStep z:\tswi\tuiscriptadaptors\scripts\drives.ini X
+RUN_TEST_STEP 100 tdaemon AddDriveStep z:\tswi\tdaemon\scripts\tdaemon.ini AddDriveX
+DELAY 2000
+RUN_TEST_STEP 100 tscr ScrComponentOnEMMC z:\tswi\tdaemon\scripts\tdaemon.ini CheckX
+RUN_TEST_STEP_RESULT -5 100 tuiscriptadaptors UninstallStep  z:\tswi\tdaemon\scripts\tdaemon.ini u_Eclipsing
+END_TESTCASE API-SEC-CR_405-5166-0014
+
--- a/installationservices/swi/test/tdaemon/steps/daemonstep.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swi/test/tdaemon/steps/daemonstep.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2005-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -21,6 +21,7 @@
 */
 
 #include "daemonstep.h"
+#include "sisregistrywritablesession.h"
 
 namespace Swi
 {
@@ -115,6 +116,43 @@
 	return EPass;
 	}
 
+//CAddDriveStep
+CAddDriveStep::CAddDriveStep()
+    {
+    }
+
+CAddDriveStep::~CAddDriveStep()
+    {
+    }
+
+TVerdict CAddDriveStep::runTestStepL(TBool /*aOomTest*/)
+    {
+    TPtrC str;
+    TInt drive(0);
+    if (!GetStringFromConfig(ConfigSection(), _L("drive"), str))
+        {
+        ERR_PRINTF1(_L("Missing drive setting"));
+        SetTestStepResult(EFail);
+        }
+    else
+        {
+        RFs fs;
+        fs.Connect();
+        
+        User::LeaveIfError(fs.CharToDrive(str[0], drive));
+        //iDriveChar = str[0];
+        fs.Close();
+        }
+    RSisRegistryWritableSession registrySession;
+            
+    User::LeaveIfError(registrySession.Connect());
+    CleanupClosePushL(registrySession);
+    registrySession.AddDriveL(drive);
+
+    CleanupStack::PopAndDestroy(&registrySession);    
+
+    return EPass;
+    }
 } // namespace Swi::Test
 
 } //namespace Swi
--- a/installationservices/swi/test/tdaemon/steps/daemonstep.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swi/test/tdaemon/steps/daemonstep.h	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2005-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -37,6 +37,7 @@
 namespace Test
 {
 _LIT(KDaemonStep,"DaemonStep");
+_LIT(KAddDriveStep,"AddDriveStep");
 
 class CDaemonStep : public CDaemonTestStep, public MDaemonBehaviour
 	{
@@ -55,6 +56,16 @@
 	CDaemon* iDaemon;
 	};
 
+class CAddDriveStep : public CDaemonTestStep
+    {
+public:
+    CAddDriveStep();
+    ~CAddDriveStep();
+
+    virtual TVerdict runTestStepL(TBool aOomTest);
+    
+    };
+
 } // namespace Swi::Test
 
 } //namespace Swi
--- a/installationservices/swi/test/tdaemon/tdaemon.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swi/test/tdaemon/tdaemon.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2002-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -62,7 +62,8 @@
 		return new CWatcherStep();
 	else if (aStepName == KDaemonStep)
 		return new CDaemonStep();
-	
+	else if (aStepName == KAddDriveStep)
+	    return new CAddDriveStep();
 	
 	return NULL;
 	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/test/testexes/packages/eclipsingdllupgradepu_on_c_and_emmc.pkg	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,25 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+&EN
+
+#{"Dll Upgrade PU"},(0x802730A1), 1,2,4, TYPE=PU,RU
+
+%{"Crypto Services"}
+:"Crypto Services"
+
+"\epoc32\release\<PLATFORM>\<CONFIGURATION>\eclipsetest2.dll"-"c:\sys\bin\eclipsetest.dll"
+"packages\simpletextfile.txt"-"x:\mimehandler.txt"
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/test/testexes/packages/eclipsingdllupgradesa_on_c_and_emmc.pkg	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,25 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+&EN
+
+#{"Dll Upgrade PU"},(0x802730A1), 1,2,4, TYPE=SA,RU
+
+%{"Crypto Services"}
+:"Crypto Services"
+
+"\epoc32\release\<PLATFORM>\<CONFIGURATION>\eclipsetest2.dll"-"c:\sys\bin\eclipsetest.dll"
+"packages\simpletextfile.txt"-"x:\mimehandler.txt"
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/test/testexes/packages/emmc_format_base_distributed.pkg	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,29 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+;Languages
+&EN
+
+;Header
+#{"emmc_format_base_distributed"}, (0x8000887D), 1, 2, 3,TYPE=SA
+
+%{"Vendor"}
+:"Unique Vendor Name"
+
+"\epoc32\release\<PLATFORM>\<CONFIGURATION>\runtestexe_forpackage.exe"-"c:\sys\bin\runtestexe_app.exe"
+"\epoc32\release\<PLATFORM>\<CONFIGURATION>\console_app_forpackage.exe"-"c:\sys\bin\console_app.exe" 
+"packages\simpletextfile.txt"-"X:\dummy.txt"
+"packages\simpletextfile.txt"-"T:\dummy1.txt"  
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/test/testexes/packages/emmc_format_base_distributed_NR.pkg	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,29 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+;Languages
+&EN
+
+;Header
+#{"emmc_format_base_distributed"}, (0x8000887D), 1, 2, 3,TYPE=SA,RU,NR
+
+%{"Vendor"}
+:"Unique Vendor Name"
+
+"\epoc32\release\<PLATFORM>\<CONFIGURATION>\runtestexe_forpackage.exe"-"c:\sys\bin\runtestexe_app.exe"
+"\epoc32\release\<PLATFORM>\<CONFIGURATION>\console_app_forpackage.exe"-"c:\sys\bin\console_app.exe" 
+"packages\simpletextfile.txt"-"X:\dummy.txt"
+"packages\simpletextfile.txt"-"T:\dummy1.txt"  
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/test/testexes/packages/emmc_format_base_on_c_and_t.pkg	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,28 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+;Languages
+&EN
+
+;Header
+#{"emmc_format_base_on_c_and_t"}, (0x8000887D), 1, 2, 3,TYPE=SA
+
+%{"Vendor"}
+:"Unique Vendor Name"
+
+"\epoc32\release\<PLATFORM>\<CONFIGURATION>\runtestexe_forpackage.exe"-"c:\sys\bin\runtestexe_app.exe"
+"\epoc32\release\<PLATFORM>\<CONFIGURATION>\console_app_forpackage.exe"-"c:\sys\bin\console_app.exe" 
+"packages\simpletextfile.txt"-"T:\dummy1.txt"  
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/test/testexes/packages/emmc_format_base_on_c_and_t_NR.pkg	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,28 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+;Languages
+&EN
+
+;Header
+#{"emmc_format_base_on_c_and_t_NR"}, (0x8000887D), 1, 2, 3,TYPE=SA,RU,NR
+
+%{"Vendor"}
+:"Unique Vendor Name"
+
+"\epoc32\release\<PLATFORM>\<CONFIGURATION>\runtestexe_forpackage.exe"-"c:\sys\bin\runtestexe_app.exe"
+"\epoc32\release\<PLATFORM>\<CONFIGURATION>\console_app_forpackage.exe"-"c:\sys\bin\console_app.exe" 
+"packages\simpletextfile.txt"-"T:\dummy1.txt"  
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/test/testexes/packages/emmc_format_base_on_c_drive.pkg	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,28 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+;Languages
+&EN
+
+;Header
+#{"emmc_format_base_on_c_drive"}, (0x8000887D), 1, 2, 3,TYPE=SA
+
+%{"Vendor"}
+:"Unique Vendor Name"
+
+"\epoc32\release\<PLATFORM>\<CONFIGURATION>\runtestexe_forpackage.exe"-"c:\sys\bin\runtestexe_app.exe"
+"\epoc32\release\<PLATFORM>\<CONFIGURATION>\console_app_forpackage.exe"-"c:\sys\bin\console_app.exe" 
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/test/testexes/packages/emmc_format_base_on_emmc.pkg	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,28 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+;Languages
+&EN
+
+;Header
+#{"emmc_format_base_on_emmc"}, (0x8000887D), 1, 2, 3,TYPE=SA
+
+%{"Vendor"}
+:"Unique Vendor Name"
+
+"\epoc32\release\<PLATFORM>\<CONFIGURATION>\runtestexe_forpackage.exe"-"c:\sys\bin\runtestexe_app.exe"
+"\epoc32\release\<PLATFORM>\<CONFIGURATION>\console_app_forpackage.exe"-"c:\sys\bin\console_app.exe" 
+"packages\simpletextfile.txt"-"X:\dummy.txt" 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/test/testexes/packages/emmc_format_pu_on_emmc.pkg	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,26 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+;Languages
+&EN
+
+;Header
+#{"emmc_format_pu_on_emmc"}, (0x8000887D), 1, 2, 3,TYPE=PU
+
+%{"Vendor"}
+:"Unique Vendor Name"
+
+"packages\simpletextfile.txt"-"X:\dummy.txt"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/test/testexes/packages/emmc_format_sp_distributed.pkg	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,27 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+;Languages
+&EN
+
+;Header
+#{"emmc_format_sp_distributed"}, (0x8000887D), 1, 2, 3,TYPE=SP
+
+%{"Vendor"}
+:"Unique Vendor Name"
+
+"\epoc32\release\<PLATFORM>\<CONFIGURATION>\console_app_longrun_forpackage.exe"-"c:\sys\bin\console_app2.exe"
+"packages\simpletextfile.txt"-"X:\dummy.txt"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/test/testexes/packages/emmc_format_sp_emmc.pkg	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,26 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+;Languages
+&EN
+
+;Header
+#{"emmc_format_sp_on_emmc"}, (0x8000887D), 1, 2, 3,TYPE=SP
+
+%{"Vendor"}
+:"Unique Vendor Name"
+
+"packages\simpletextfile.txt"-"X:\dummy1.txt"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/test/testexes/packages/emmc_format_sp_on_c.pkg	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,26 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+;Languages
+&EN
+
+;Header
+#{"emmc_format_sp_on_c"}, (0x8000887D), 1, 2, 3,TYPE=SP
+
+%{"Vendor"}
+:"Unique Vendor Name"
+
+"\epoc32\release\<PLATFORM>\<CONFIGURATION>\console_app_longrun_forpackage.exe"-"c:\sys\bin\console_app2.exe"
\ No newline at end of file
--- a/installationservices/swi/test/testexes/prepareexes.pl	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swi/test/testexes/prepareexes.pl	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2004-2010 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
 # under the terms of the License "Eclipse Public License v1.0"
@@ -715,6 +715,8 @@
 SignFile("hiddensa.sis", "hiddensa_root5.sis", "root5ca", \*iby);
 
 SignFile("smlsyncagent.sis", "smlsyncagent_root5.sis", "root5ca", \*iby);
+SignFile("eclipsingdllupgradepu_on_c_and_emmc.sis", "eclipsingdllupgradepu_on_c_and_emmc_root5.sis", "root5ca", \*iby);
+SignFile("eclipsingdllupgradesa_on_c_and_emmc.sis", "eclipsingdllupgradesa_on_c_and_emmc_root5.sis", "root5ca", \*iby);
 
 #Swi Support for RFS
 SignFile("swi_rfs_test_SA.sis", "swi_rfs_test_SA_root5.sis", "root5ca", \*iby);
@@ -784,6 +786,8 @@
 SignFileWithSpecifiedCert("rusaruupgrade_purunr.sis", "rusaruupgrade_purunr_sucert.sis", "tsisfile\\data\\signedsis\\sucert\\sucert.der", "tsisfile\\data\\signedsis\\sucert\\sucertkey.pem", \*iby);
 SignFileWithSpecifiedCert("rusastubupgrade_punrru.sis", "rusastubupgrade_punrru_sucert.sis", "tsisfile\\data\\signedsis\\sucert\\sucert.der", "tsisfile\\data\\signedsis\\sucert\\sucertkey.pem", \*iby);
 SignFileWithSpecifiedCert("ruromupgraderucertsa_protectedsid.sis", "ruromupgraderucertsa_protectedsid_sucert.sis", "tsisfile\\data\\signedsis\\sucert\\sucert.der", "tsisfile\\data\\signedsis\\sucert\\sucertkey.pem", \*iby);
+SignFileWithSpecifiedCert("emmc_format_base_distributed_NR.sis", "emmc_format_base_distributed_NR_sucert.sis", "tsisfile\\data\\signedsis\\sucert\\sucert.der", "tsisfile\\data\\signedsis\\sucert\\sucertkey.pem", \*iby);
+SignFileWithSpecifiedCert("emmc_format_base_on_c_and_t_NR.sis", "emmc_format_base_on_c_and_t_NR_sucert.sis", "tsisfile\\data\\signedsis\\sucert\\sucert.der", "tsisfile\\data\\signedsis\\sucert\\sucertkey.pem", \*iby);
 
 # new tests for media propagation of packages signed by SU.
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/test/testexes/tswiappregintegration/base02/01-strings.rls	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,22 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of the License "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Strings localised for UK
+//
+
+rls_string Localized_Short_Caption "HW_Base01_EN"
+rls_string Localized_Caption "HelloWorld_Base01_EN"
+rls_long Localized_NumberOfIcon 123
+rls_string Localized_Iconfile "z:\\resource\\apps\\swiappregintegration_base01_01.mbm"
+
+rls_string Localized_GroupName "Group_Base01_EN"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/test/testexes/tswiappregintegration/base02/02-strings.rls	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,22 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of the License "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Strings localised for FR
+//
+
+rls_string Localized_Short_Caption "HW_Base01_FR"
+rls_string Localized_Caption "HelloWorld_Base01_FR"
+rls_long Localized_NumberOfIcon 124
+rls_string Localized_Iconfile "z:\\resource\\apps\\swiappregintegration_base01_02.mbm"
+
+rls_string Localized_GroupName "Group_Base01_FR"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/test/testexes/tswiappregintegration/base02/03-strings.rls	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,22 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of the License "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Strings localised for GE
+//
+
+rls_string Localized_Short_Caption "HW_Base01_GE"
+rls_string Localized_Caption "HelloWorld_Base01_GE"
+rls_long Localized_NumberOfIcon 125
+rls_string Localized_Iconfile "z:\\resource\\apps\\swiappregintegration_base01_03.mbm"
+
+rls_string Localized_GroupName "Group_Base01_GE"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/test/testexes/tswiappregintegration/base02/04-strings.rls	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,22 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of the License "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Strings localised for FR 2
+//
+
+rls_string Localized_Short_Caption "HW_Base01_FR_2"
+rls_string Localized_Caption "HelloWorld_Base01_FR_2"
+rls_long Localized_NumberOfIcon 126
+rls_string Localized_Iconfile "z:\\resource\\apps\\swiappregintegration_base01_02.mbm"
+
+rls_string Localized_GroupName "Group_Base01_FR2"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/test/testexes/tswiappregintegration/base02/rsc-strings.rls	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,23 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of the License "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// localise01strings
+// Strings localised for RSC
+//
+
+rls_string Localized_Short_Caption "HW_Base01_RSC"
+rls_string Localized_Caption "HelloWorld_Base01_RSC"
+rls_long Localized_NumberOfIcon 127
+rls_string Localized_Iconfile "z:\\resource\\apps\\swiappregintegration_base01_rsc.mbm"
+
+rls_string Localized_GroupName "Group_Base01_RSC"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/test/testexes/tswiappregintegration/base02/swiappregintegration_base02_loc.rss	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,54 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+/**
+ @file swiappregintegration01_loc.rss
+ @internalComponent - Internal Symbian test code
+*/
+
+#include <techview/eikon.rh>
+#include <uiklafgt/eikcore.rsg>
+#include <appinfo.rh>
+
+
+RESOURCE RSS_SIGNATURE { }
+
+#ifdef LANGUAGE_01
+ #include "01-strings.rls"
+#elif defined LANGUAGE_02
+ #include "02-strings.rls"
+#elif defined LANGUAGE_03
+ #include "03-strings.rls"
+#elif defined LANGUAGE_04
+ #include "04-strings.rls"
+#else
+ #include "rsc-strings.rls"
+#endif      
+
+RESOURCE LOCALISABLE_APP_INFO r_lai
+	{
+	short_caption = Localized_Short_Caption;
+	caption_and_icon =
+		{
+		CAPTION_AND_ICON_INFO
+			{
+			caption = Localized_Caption;
+			number_of_icons = Localized_NumberOfIcon;
+			icon_file = Localized_Iconfile;
+			}
+		};
+
+	group_name = Localized_GroupName;		
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/test/testexes/tswiappregintegration/base02/swiappregintegration_base02_reg.rss	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,40 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+/**
+ @file swiappregintegration01_reg.rss
+ @internalComponent - Internal Symbian test code
+*/
+
+#include <appinfo.rh>
+#include <swiappregintegration01_loc.rsg>
+
+UID2 KUidAppRegistrationResourceFile
+UID3 0x90000004
+
+RESOURCE APP_REGISTRATION_INFO
+	{
+	app_file = "swiappregintegration_base02";
+	localisable_resource_file = "C:\\resource\\apps\\swiappregintegration_base02_loc";
+	localisable_resource_id = R_LAI;	
+	
+    	hidden = KAppNotHidden;
+    	embeddability = KAppNotEmbeddable;
+    	newfile = KAppDoesNotSupportNewFile;
+    	launch = KAppLaunchInForeground;
+    	group_name = "Group_Base01";    
+    	default_screen_number = 2;
+	}
+	
--- a/installationservices/swi/test/testexes/tswiappregintegration/bld.inf	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swi/test/testexes/tswiappregintegration/bld.inf	Wed Aug 18 09:55:45 2010 +0300
@@ -20,8 +20,10 @@
 tswiappregintegration01.mmp
 tswiappregintegration02.mmp
 tswiappregintegration_base01.mmp
+tswiappregintegration_base02.mmp
 tswiappregintegration03.mmp
 tswiappregintegration04.mmp
 tswiappregintegration05.mmp
 tswiappregintegration06.mmp
 tswiappregintegration07.mmp
+tswiappregintegration12.mmp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/test/testexes/tswiappregintegration/case12/01-strings.rls	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,20 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of the License "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Strings localised for UK - App2
+//
+
+rls_string Localized_Short_Caption "HW_App2_EN"
+rls_string Localized_Caption "HelloWorld_App2_EN"
+rls_long Localized_NumberOfIcon 19
+rls_string Localized_Iconfile "z:\\resource\\apps\\swiappregintegration02_01.mbm"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/test/testexes/tswiappregintegration/case12/rsc-strings.rls	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,20 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of the License "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Strings localised for RSC - App2
+//
+
+rls_string Localized_Short_Caption "HW_App2_RSC"
+rls_string Localized_Caption "HelloWorld_App2_RSC"
+rls_long Localized_NumberOfIcon 29
+rls_string Localized_Iconfile "z:\\resource\\apps\\swiappregintegration02_rsc.mbm"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/test/testexes/tswiappregintegration/case12/swiappregintegration12_loc.rss	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,46 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+/**
+ @file swiappregintegration01_loc.rss
+ @internalComponent - Internal Symbian test code
+*/
+
+#include <techview/eikon.rh>
+#include <uiklafgt/eikcore.rsg>
+#include <appinfo.rh>
+
+
+RESOURCE RSS_SIGNATURE { }
+
+#ifdef LANGUAGE_01
+ #include "01-strings.rls"
+#else
+ #include "rsc-strings.rls"
+#endif      
+
+RESOURCE LOCALISABLE_APP_INFO r_lai
+	{
+	short_caption = Localized_Short_Caption;
+	caption_and_icon =
+		{
+		CAPTION_AND_ICON_INFO
+			{
+			caption = Localized_Caption;
+			number_of_icons = Localized_NumberOfIcon;
+			icon_file = Localized_Iconfile;
+			}
+		};
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/test/testexes/tswiappregintegration/case12/swiappregintegration12_reg.rss	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,47 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+/**
+ @file swiappregintegration12_reg.rss
+ @internalComponent - Internal Symbian test code
+*/
+
+#include <appinfo.rh>
+#include <swiappregintegration01_loc.rsg>
+
+UID2 KUidAppRegistrationResourceFile
+UID3 0x90000012
+
+RESOURCE APP_REGISTRATION_INFO
+	{
+	app_file = "swiappregintegration12";
+	localisable_resource_file = "C:\\resource\\apps\\swiappregintegration12_loc";
+	localisable_resource_id = R_LAI;	
+	
+    	hidden = KAppNotHidden;
+	embeddability = KAppNotEmbeddable;
+	newfile = KAppDoesNotSupportNewFile;
+        launch = KAppLaunchInForeground;
+        group_name = "AppGroup02";    
+        default_screen_number = 2;
+    
+        datatype_list = 
+            {
+            DATATYPE { priority=EDataTypePriorityNormal; type="doc/txt"; },
+            DATATYPE { priority=EDataTypePriorityNormal; type="doc/pdf"; }
+            };
+	
+	}
+    
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/test/testexes/tswiappregintegration/fotaupdateUDA1_reg.rss	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,31 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+/**
+ @file fotaupdateUDA1_reg.rss
+ @internalComponent - Internal Symbian test code
+*/
+
+#include <appinfo.rh>
+
+UID2 KUidAppRegistrationResourceFile
+
+UID3 0xA000F16C	// App UID
+
+RESOURCE APP_REGISTRATION_INFO
+	{	
+	app_file = "UDA1";
+	group_name = "UDA1_Group";
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/test/testexes/tswiappregintegration/fotaupdateUDA2_reg.rss	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,31 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+/**
+ @file fotaupdateUDA2_reg.rss
+ @internalComponent - Internal Symbian test code
+*/
+
+#include <appinfo.rh>
+
+UID2 KUidAppRegistrationResourceFile
+
+UID3 0xA000F26C	// App UID
+
+RESOURCE APP_REGISTRATION_INFO
+	{	
+	app_file = "UDA2";
+	group_name = "UDA2_Group";
+	}
--- a/installationservices/swi/test/testexes/tswiappregintegration/tswiappregintegration01.mmp	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swi/test/testexes/tswiappregintegration/tswiappregintegration01.mmp	Wed Aug 18 09:55:45 2010 +0300
@@ -25,7 +25,7 @@
 SOURCEPATH		.
 SOURCE			swiappregintegration.cpp
 
-SYSTEMINCLUDE	/epoc32/include
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
 
 START RESOURCE	case01/swiappregintegration01_loc.rss
 HEADER
@@ -62,6 +62,14 @@
 TARGETPATH	tswi/tuiscriptadaptors/data
 END
 
+START RESOURCE 	fotaupdateUDA1_reg.rss
+TARGETPATH	tswi/tuiscriptadaptors/data
+END
+
+START RESOURCE 	fotaupdateUDA2_reg.rss
+TARGETPATH	tswi/tuiscriptadaptors/data
+END
+
 LIBRARY			euser.lib
 SMPSAFE
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/test/testexes/tswiappregintegration/tswiappregintegration12.mmp	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,43 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+* 
+* Description:
+* swiappregintegration02.mmp for swi application reg integration testing
+*
+*/
+
+TARGET			swiappregintegration12.exe
+TARGETTYPE		exe
+
+UID			0x10000007 0x90000012
+VENDORID		0x0
+
+SOURCEPATH		.
+SOURCE			swiappregintegration.cpp
+
+SYSTEMINCLUDE	/epoc32/include
+
+START RESOURCE	case12/swiappregintegration12_loc.rss
+HEADER
+TARGETPATH		tswi/tuiscriptadaptors/data/swiappregintegration12
+LANG  SC 01
+END
+
+// Application exe registration resource file
+START RESOURCE 	case12/swiappregintegration12_reg.rss
+TARGETPATH	tswi/tuiscriptadaptors/data/swiappregintegration12
+END
+
+LIBRARY			euser.lib
+SMPSAFE
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/test/testexes/tswiappregintegration/tswiappregintegration_base02.mmp	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,44 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+* 
+* Description:
+* tswiappregintegration_base02.mmp for swi application reg integration testing
+*
+*/
+
+TARGET			swiappregintegration_base02.exe
+TARGETTYPE		exe
+
+UID			0x10000007 0x90000004
+VENDORID		0x0
+
+SOURCEPATH		.
+SOURCE			swiappregintegration.cpp
+
+SYSTEMINCLUDE	/epoc32/include
+
+START RESOURCE	base02/swiappregintegration_base02_loc.rss
+HEADER
+TARGETPATH		tswi/tuiscriptadaptors/data/swiappregintegration_base02
+LANG  SC	
+END
+
+// Application exe registration resource file
+START RESOURCE 	base02/swiappregintegration_base02_reg.rss
+TARGETPATH	tswi/tuiscriptadaptors/data/swiappregintegration_base02
+END
+
+
+
+LIBRARY			euser.lib
+SMPSAFE
--- a/installationservices/swi/test/tsisfile/steps/basestep.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swi/test/tsisfile/steps/basestep.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2002-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -141,6 +141,7 @@
 				SetTestStepResult(err);		
 				User::Leave(err);
 				}
+#ifdef SIS_CRC_CHECK_ENABLED			
 			TRAP(err, contents->CheckCrcL());
 			if (err == KErrCorrupt)
 				{
@@ -148,10 +149,11 @@
 				SetTestStepResult(err);		
 				User::Leave(err);
 				}
+#endif  			
 			CleanupStack::Pop(contents);	
-			return contents;								
-			}
+			return contents;	
 			
+			}		
 	CController* CParserTestStep::GetControllerL(CContents& contents, TBool aUseInPlaceParse)
 		{
 		TRAPD(err, iControllerData = contents.ReadControllerL());
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/test/tsisregistrytest/Scripts/batchfiles/tsisregistrytest_tcb_post.bat	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,24 @@
+@rem
+@rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+@rem All rights reserved.
+@rem This component and the accompanying materials are made available
+@rem under the terms of the License "Eclipse Public License v1.0"
+@rem which accompanies this distribution, and is available
+@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem
+@rem Initial Contributors:
+@rem Nokia Corporation - initial contribution.
+@rem
+@rem Contributors:
+@rem
+@rem Description:
+@rem
+
+del /s /f /q  \epoc32\release\winscw\udeb\z\system\install\addappregdata.sis
+del /s /f /q  \epoc32\release\winscw\udeb\z\private\10003a3f\apps\swiappregintegration_base02.rsc
+del /s /f /q  \epoc32\release\winscw\udeb\z\private\10003a3f\apps\swiappregintegration12_reg.rsc
+
+
+del /s /f /q  \epoc32\release\winscw\urel\z\system\install\addappregdata.sis
+del /s /f /q  \epoc32\release\winscw\urel\z\private\10003a3f\apps\swiappregintegration_base02.rsc
+del /s /f /q  \epoc32\release\winscw\urel\z\private\10003a3f\apps\swiappregintegration12_reg.rsc
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/test/tsisregistrytest/Scripts/batchfiles/tsisregistrytest_tcb_pre.bat	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,24 @@
+@rem
+@rem Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+@rem All rights reserved.
+@rem This component and the accompanying materials are made available
+@rem under the terms of the License "Eclipse Public License v1.0"
+@rem which accompanies this distribution, and is available
+@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem
+@rem Initial Contributors:
+@rem Nokia Corporation - initial contribution.
+@rem
+@rem Contributors:
+@rem
+@rem Description:
+@rem
+
+copy /y \epoc32\release\winscw\udeb\z\tswi\tuiscriptadaptors\data\swiappregintegration_base02\swiappregintegration_base02_reg.rsc 		\epoc32\release\winscw\udeb\z\private\10003a3f\apps\swiappregintegration_base02.rsc
+copy /y \epoc32\release\winscw\udeb\z\tswi\tuiscriptadaptors\data\swiappregintegration12\swiappregintegration12_reg.rsc 		\epoc32\release\winscw\udeb\z\private\10003a3f\apps\swiappregintegration12_reg.rsc
+copy /y \epoc32\winscw\c\tswi\tsisregistrytest\scripts\data\addappregdata.sis	\epoc32\release\winscw\udeb\z\system\install\addappregdata.sis
+
+
+copy /y \epoc32\release\winscw\urel\z\tswi\tuiscriptadaptors\data\swiappregintegration_base02\swiappregintegration_base02_reg.rsc 		\epoc32\release\winscw\urel\z\private\10003a3f\apps\swiappregintegration_base02.rsc
+copy /y \epoc32\release\winscw\urel\z\tswi\tuiscriptadaptors\data\swiappregintegration12\swiappregintegration12_reg.rsc 		\epoc32\release\winscw\urel\z\private\10003a3f\apps\swiappregintegration12_reg.rsc
+copy /y \epoc32\winscw\c\tswi\tsisregistrytest\scripts\data\addappregdata.sis	\epoc32\release\winscw\urel\z\system\install\addappregdata.sis
Binary file installationservices/swi/test/tsisregistrytest/Scripts/data/addappregdata.sis has changed
--- a/installationservices/swi/test/tsisregistrytest/Scripts/tsisregistrytest.ini	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swi/test/tsisregistrytest/Scripts/tsisregistrytest.ini	Wed Aug 18 09:55:45 2010 +0300
@@ -291,3 +291,45 @@
 pkgMajor=1
 pkgMinor=5
 pkgBuild=9
+
+[AddAppRegInfo_apparc_folder]
+regFileName = c:\private\10003a3f\import\apps\swiappregintegration02_reg.rsc
+
+[AddAppRegInfo_apparc_folder_C_Drive]
+appDataExists = ETrue
+appFileName = C:\sys\bin\swiappregintegration02.exe
+appUid = 90000005
+
+[AddAppRegInfo_apparc_folder_No_Data]
+regFileName = c:\private\10003a3f\import\apps\swiappregintegration02_reg.rsc
+appDataExists = EFalse
+appUid = 90000005
+
+[AddAppRegInfo_apparc_folder_base01]
+regFileName = c:\private\10003a3f\import\apps\swiappregintegration_base01_reg.rsc
+
+[AddAppRegInfo_apparc_folder_C_Drive_base01]
+appDataExists = ETrue
+appFileName = C:\sys\bin\swiappregintegration_base01.exe 
+appUid = 90000004
+
+[AddAppRegInfo_apparc_folder_z_Drive]
+appDataExists = ETrue
+appFileName = Z:\sys\bin\swiappregintegration_base02.exe 
+appUid = 90000004
+
+[AddAppRegInfo_apparc_folder_eclipse_stub]
+regFileName = c:\private\10003a3f\import\apps\swiappregintegration12_reg.rsc
+
+[AddAppRegInfo_apparc_folder_eclipse_stub_c]
+appDataExists = ETrue
+appFileName = C:\sys\bin\swiappregintegration12.exe 
+appUid = 90000012
+
+[AddAppRegInfo_apparc_folder_eclipse_stub_z]
+appDataExists = ETrue
+appFileName = Z:\sys\bin\swiappregintegration12.exe 
+appUid = 90000012
+
+[AddAppRegInfo_nonapparc_folder]
+regFileName = c:\private\10003a5f\import\apps\swiappregintegration02_reg.rsc
\ No newline at end of file
--- a/installationservices/swi/test/tsisregistrytest/Scripts/tsisregistrytest.script	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swi/test/tsisregistrytest/Scripts/tsisregistrytest.script	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
 // under the terms of the License "Eclipse Public License v1.0"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/test/tsisregistrytest/Scripts/tsisregistrytest_tcb.script	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,175 @@
+//
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of the License "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+//
+PRINT Run all SisRegistry tests
+//
+LOAD_SUITE tSisRegistryTest
+LOAD_SUITE tuiscriptadaptors
+//
+
+
+RUN_UTILS MkDir c:\private\10003a3f\import
+RUN_UTILS MkDir c:\private\10003a3f\import\apps
+RUN_UTILS CopyFile  z:\tswi\tuiscriptadaptors\data\swiappregintegration02\swiappregintegration02_reg.rsc c:\private\10003a3f\import\apps\swiappregintegration02_reg.rsc
+//! @file
+//! @SYMTestCaseID		API-SEC-SISREGISTRY_TCB-0001
+//! @SYMTestCaseDesc		Add the Application Registration info into SCR from _reg.rsc
+//! @SYMTestPriority		
+//! @SYMTestActions		Parse then _reg.rsc file placed in apparc's pvt folder and populate the db and then remove the app data
+//! @SYMTestExpectedResults	The test completes with KErrNone completion code.
+
+
+START_TESTCASE API-SEC-SISREGISTRY_TCB-0001
+RUN_TEST_STEP 100 tSisRegistryTest AddAppRegInfo z:\tswi\tsisregistrytest\scripts\tsisregistrytest.ini AddAppRegInfo_apparc_folder
+RUN_TEST_STEP 100 tSisRegistryTest CheckAppRegData z:\tswi\tsisregistrytest\scripts\tsisregistrytest.ini AddAppRegInfo_apparc_folder_C_Drive
+RUN_TEST_STEP 100 tSisRegistryTest RemoveAppRegInfo z:\tswi\tsisregistrytest\scripts\tsisregistrytest.ini AddAppRegInfo_apparc_folder
+RUN_TEST_STEP 100 tSisRegistryTest CheckAppRegData z:\tswi\tsisregistrytest\scripts\tsisregistrytest.ini AddAppRegInfo_apparc_folder_No_Data
+END_TESTCASE API-SEC-SISREGISTRY_TCB-0001
+RUN_UTILS DeleteFile  c:\private\10003a3f\import\apps\swiappregintegration02_reg.rsc
+
+//! @file
+//! @SYMTestCaseID		API-SEC-SISREGISTRY_TCB-0002
+//! @SYMTestCaseDesc		Add the Application Registration info into SCR from _reg.rsc
+//! @SYMTestPriority		Low
+//! @SYMTestActions		Parse then _reg.rsc file placed in non apparc's pvt folder and populate the db
+//! @SYMTestExpectedResults	The test completes with KErrArgument completion code.
+
+START_TESTCASE API-SEC-SISREGISTRY_TCB-0002
+RUN_TEST_STEP_RESULT -5 100 tSisRegistryTest AddAppRegInfo z:\tswi\tsisregistrytest\scripts\tsisregistrytest.ini AddAppRegInfo_nonapparc_folder
+END_TESTCASE API-SEC-SISREGISTRY_TCB-0002
+
+RUN_UTILS CopyFile  z:\tswi\tuiscriptadaptors\data\swiappregintegration02\swiappregintegration02_reg.rsc c:\private\10003a3f\import\apps\swiappregintegration02_reg.rsc
+
+//! @file
+//! @SYMTestCaseID		API-SEC-SISREGISTRY_TCB-0003
+//! @SYMTestCaseDesc		Add the Application Registration info into SCR from _reg.rsc
+//! @SYMTestPriority		
+//! @SYMTestActions		Parse then same _reg.rsc file placed in apparc's pvt folder twice and populate the db and then remove the app data.
+//! @SYMTestExpectedResults	Removes the existing app reg info  and completes with KErrNone completion code
+
+START_TESTCASE API-SEC-SISREGISTRY_TCB-0003
+RUN_TEST_STEP 100 tSisRegistryTest AddAppRegInfo z:\tswi\tsisregistrytest\scripts\tsisregistrytest.ini AddAppRegInfo_apparc_folder
+RUN_TEST_STEP 100 tSisRegistryTest AddAppRegInfo z:\tswi\tsisregistrytest\scripts\tsisregistrytest.ini AddAppRegInfo_apparc_folder
+RUN_TEST_STEP 100 tSisRegistryTest CheckAppRegData z:\tswi\tsisregistrytest\scripts\tsisregistrytest.ini AddAppRegInfo_apparc_folder_C_Drive
+RUN_TEST_STEP 100 tSisRegistryTest RemoveAppRegInfo z:\tswi\tsisregistrytest\scripts\tsisregistrytest.ini AddAppRegInfo_apparc_folder
+RUN_TEST_STEP 100 tSisRegistryTest CheckAppRegData z:\tswi\tsisregistrytest\scripts\tsisregistrytest.ini AddAppRegInfo_apparc_folder_No_Data
+END_TESTCASE API-SEC-SISREGISTRY_TCB-0003
+RUN_UTILS DeleteFile  c:\private\10003a3f\import\apps\swiappregintegration02_reg.rsc
+
+//! @file
+//! @SYMTestCaseID		API-SEC-SISREGISTRY_TCB-0004
+//! @SYMTestCaseDesc		Overwrite the existing Application Registration info with a new one into SCR.
+//! @SYMTestPriority		
+//! @SYMTestActions		Install the SA package and its SP upgrade(with app),parse then _reg.rsc file(havig same appuid as of SP) placed in apparc's pvt folder 
+//!				populate the db and then remove tha app data, the reg data for the .rsc file associated with the removed app(in rom) should come back.
+//! @SYMTestExpectedResults	Upon removal of reg file data, the reg data for the .rsc file associated with the removed app(in rom) should come back successfully.
+
+START_TESTCASE API-SEC-SISREGISTRY_TCB-0004
+RUN_TEST_STEP 100 tuiscriptadaptors InstallStep z:\tswi\tuiscriptadaptors\scripts\tswiappregintegration.ini swiappregintegration_base01
+RUN_TEST_STEP 100 tuiscriptadaptors InstallStep z:\tswi\tuiscriptadaptors\scripts\tswiappregintegration.ini swiappregintegration_base01_sp
+RUN_TEST_STEP 100 tSisRegistryTest AddAppRegInfo z:\tswi\tsisregistrytest\scripts\tsisregistrytest.ini AddAppRegInfo_apparc_folder_base01
+RUN_TEST_STEP 100 tSisRegistryTest CheckAppRegData z:\tswi\tsisregistrytest\scripts\tsisregistrytest.ini AddAppRegInfo_apparc_folder_C_Drive_base01
+RUN_TEST_STEP 100 tSisRegistryTest RemoveAppRegInfo z:\tswi\tsisregistrytest\scripts\tsisregistrytest.ini AddAppRegInfo_apparc_folder_base01
+RUN_TEST_STEP 100 tSisRegistryTest CheckAppRegData z:\tswi\tsisregistrytest\scripts\tsisregistrytest.ini AddAppRegInfo_apparc_folder_z_Drive
+RUN_TEST_STEP 100 tuiscriptadaptors UninstallStep z:\tswi\tuiscriptadaptors\scripts\tswiappregintegration.ini u_swiappregintegration_base01
+END_TESTCASE API-SEC-SISREGISTRY_TCB-0004
+
+//! @file
+//! @SYMTestCaseID		API-SEC-SISREGISTRY_TCB-0005
+//! @SYMTestCaseDesc		Overwrite the existing Application Registration info with a new one into SCR.
+//! @SYMTestPriority		
+//! @SYMTestActions		Install the SA package and its SP upgrade(with app),parse then _reg.rsc file(havig same appuid as of SP) placed in apparc's pvt folder 
+//!				populate the db and then remove tha app data.
+//! @SYMTestExpectedResults	Upon removal of reg file data, the reg data for the .rsc file associated with the removed app(in rom) should come back.
+
+START_TESTCASE API-SEC-SISREGISTRY_TCB-0005
+RUN_TEST_STEP 100 tuiscriptadaptors InstallStep z:\tswi\tuiscriptadaptors\scripts\tswiappregintegration.ini swiappregintegration_base01
+RUN_TEST_STEP 100 tuiscriptadaptors InstallStep z:\tswi\tuiscriptadaptors\scripts\tswiappregintegration.ini swiappregintegration_base01_sp
+RUN_TEST_STEP 100 tSisRegistryTest RemoveAppRegInfo z:\tswi\tsisregistrytest\scripts\tsisregistrytest.ini AddAppRegInfo_apparc_folder_base01
+RUN_TEST_STEP 100 tSisRegistryTest CheckAppRegData z:\tswi\tsisregistrytest\scripts\tsisregistrytest.ini AddAppRegInfo_apparc_folder_z_Drive
+RUN_TEST_STEP 100 tuiscriptadaptors UninstallStep z:\tswi\tuiscriptadaptors\scripts\tswiappregintegration.ini u_swiappregintegration_base01
+END_TESTCASE API-SEC-SISREGISTRY_TCB-0005
+
+//! @file
+//! @SYMTestCaseID		API-SEC-SISREGISTRY_TCB-0006
+//! @SYMTestCaseDesc		Removal the Application Registration info from SCR fails.
+//! @SYMTestPriority		
+//! @SYMTestActions		Process the path of the app reg filer and if its is non apparc return
+//! @SYMTestExpectedResults	Completes with KErrArgument completion code
+
+START_TESTCASE API-SEC-SISREGISTRY_TCB-0006
+RUN_TEST_STEP_RESULT -5 100 tSisRegistryTest RemoveAppRegInfo z:\tswi\tsisregistrytest\scripts\tsisregistrytest.ini AddAppRegInfo_nonapparc_folder
+END_TESTCASE API-SEC-SISREGISTRY_TCB-0006
+
+RUN_UTILS MkDir c:\private\10003a3f\import
+RUN_UTILS MkDir c:\private\10003a3f\import\apps
+RUN_UTILS CopyFile  z:\systemtest\testdata\dummy.txt c:\private\10003a3f\import\apps\swiappregintegration02_reg.rsc
+//! @file
+//! @SYMTestCaseID		API-SEC-SISREGISTRY_TCB-0007
+//! @SYMTestCaseDesc		Removal the non _reg.rsc file data from SCR.
+//! @SYMTestPriority		
+//! @SYMTestActions		Open the file and check if its a valid _reg.rsc file
+//! @SYMTestExpectedResults	Completes with KErrArgument completion code
+
+START_TESTCASE API-SEC-SISREGISTRY_TCB-0007
+RUN_TEST_STEP_RESULT -5 100 tSisRegistryTest RemoveAppRegInfo z:\tswi\tsisregistrytest\scripts\tsisregistrytest.ini AddAppRegInfo_nonapparc_folder
+END_TESTCASE API-SEC-SISREGISTRY_TCB-0007
+
+//! @file
+//! @SYMTestCaseID		API-SEC-SISREGISTRY_TCB-0008
+//! @SYMTestCaseDesc		Add the non _reg.rsc file data into SCR
+//! @SYMTestPriority		
+//! @SYMTestActions		Open the file and check if its a valid _reg.rsc file
+//! @SYMTestExpectedResults	Completes with KErrArgument completion code
+
+START_TESTCASE API-SEC-SISREGISTRY_TCB-0008
+RUN_TEST_STEP_RESULT -5 100 tSisRegistryTest AddAppRegInfo z:\tswi\tsisregistrytest\scripts\tsisregistrytest.ini AddAppRegInfo_apparc_folder
+END_TESTCASE API-SEC-SISREGISTRY_TCB-0008
+RUN_UTILS DeleteFile  c:\private\10003a3f\import\apps\swiappregintegration02_reg.rsc
+
+RUN_UTILS CopyFile  z:\tswi\tuiscriptadaptors\data\swiappregintegration_base01\swiappregintegration_base01_reg.rsc c:\private\10003a3f\import\apps\swiappregintegration_base01_reg.rsc
+//! @file
+//! @SYMTestCaseID		API-SEC-SISREGISTRY_TCB-0009
+//! @SYMTestCaseDesc		Overwrite the existing Application Registration info present in z drive with a new one(in c drive) into SCR.
+//! @SYMTestPriority		
+//! @SYMTestActions		Add the app reg info of reg present in c drive , which overwritres the reg data of rom,  then remove the reg data of c drive 
+//!				reg data of file in rom should come back.
+//! @SYMTestExpectedResults     Upon removal of reg file data, reg data of file present in z should comes back
+
+START_TESTCASE API-SEC-SISREGISTRY_TCB-0009
+RUN_TEST_STEP 100 tSisRegistryTest AddAppRegInfo z:\tswi\tsisregistrytest\scripts\tsisregistrytest.ini AddAppRegInfo_apparc_folder_base01
+RUN_TEST_STEP 100 tSisRegistryTest CheckAppRegData z:\tswi\tsisregistrytest\scripts\tsisregistrytest.ini AddAppRegInfo_apparc_folder_C_Drive_base01
+RUN_TEST_STEP 100 tSisRegistryTest RemoveAppRegInfo z:\tswi\tsisregistrytest\scripts\tsisregistrytest.ini AddAppRegInfo_apparc_folder_base01
+RUN_TEST_STEP 100 tSisRegistryTest CheckAppRegData z:\tswi\tsisregistrytest\scripts\tsisregistrytest.ini AddAppRegInfo_apparc_folder_z_Drive
+END_TESTCASE API-SEC-SISREGISTRY_TCB-0009
+RUN_UTILS DeleteFile  c:\private\10003a3f\import\apps\swiappregintegration_base01_reg.rsc
+
+RUN_UTILS CopyFile  z:\tswi\tuiscriptadaptors\data\swiappregintegration12\swiappregintegration12_reg.rsc c:\private\10003a3f\import\apps\swiappregintegration12_reg.rsc
+//! @file
+//! @SYMTestCaseID		API-SEC-SISREGISTRY_TCB-0010
+//! @SYMTestCaseDesc		Overwrite the existing Application Registration info with a new one into SCR.
+//! @SYMTestPriority		
+//! @SYMTestActions		Add the app reg data of rsc file in c drive overwriting the reg data of the stub in rom having an app (with reg file)
+//!				remove the reg data of rsc in c drive, the stub should be reregistered.
+//! @SYMTestExpectedResults	Upon removal of reg file data, the stub with reg data in z should comes back
+
+START_TESTCASE API-SEC-SISREGISTRY_TCB-0010
+RUN_TEST_STEP 100 tSisRegistryTest AddAppRegInfo z:\tswi\tsisregistrytest\scripts\tsisregistrytest.ini AddAppRegInfo_apparc_folder_eclipse_stub
+RUN_TEST_STEP 100 tSisRegistryTest CheckAppRegData z:\tswi\tsisregistrytest\scripts\tsisregistrytest.ini AddAppRegInfo_apparc_folder_eclipse_stub_c
+RUN_TEST_STEP 100 tSisRegistryTest RemoveAppRegInfo z:\tswi\tsisregistrytest\scripts\tsisregistrytest.ini AddAppRegInfo_apparc_folder_eclipse_stub
+RUN_TEST_STEP 100 tSisRegistryTest CheckAppRegData z:\tswi\tsisregistrytest\scripts\tsisregistrytest.ini AddAppRegInfo_apparc_folder_eclipse_stub_z
+END_TESTCASE API-SEC-SISREGISTRY_TCB-0010
+RUN_UTILS DeleteFile  c:\private\10003a3f\import\apps\swiappregintegration12_reg.rsc
--- a/installationservices/swi/test/tsisregistrytest/sessionstep.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swi/test/tsisregistrytest/sessionstep.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -46,7 +46,7 @@
 #include "sisregistryproperty.h"
 
 #include <centralrepository.h>
-
+#include "sisregistryaccess_client.h"
 const TInt KDefaultBufferSize		= 2048;
 /////////////////////////////////////////////////////////////////////
 // defs, Constants used by test steps
@@ -243,6 +243,8 @@
 
 TVerdict CModifiableFileStep::doTestStepL()
 	{
+
+    
 	RArray<TPtrC> theFileNames;
 	CleanupClosePushL(theFileNames);
 	GetStringArrayFromConfigL(ConfigSection(), KModFileName, theFileNames);
@@ -2776,3 +2778,158 @@
 	SetTestStepResult(EPass);
 	return TestStepResult();	
 	}
+
+////////////////////////////////////////////////////////////////////////////
+// CAddAppRegInfoStep 
+////////////////////////////////////////////////////////////////////////////
+CAddAppRegInfoStep::CAddAppRegInfoStep()
+    {
+    SetTestStepName(KIsFileRegisteredStep);
+    }
+
+TVerdict CAddAppRegInfoStep::doTestStepL()
+    {
+    TPtrC regFileName;
+    if(!GetStringFromConfig(ConfigSection(), _L("regFileName"), regFileName))
+        {
+        ERR_PRINTF1(_L("Reg File Name was not found in ini"));
+        User::Leave(KErrNotFound);
+        }
+    
+    RSisRegistryAccessSession sisRegistryAccessSessionSession;
+    User::LeaveIfError(sisRegistryAccessSessionSession.Connect());
+    CleanupClosePushL(sisRegistryAccessSessionSession);
+    
+    TInt res = sisRegistryAccessSessionSession.AddAppRegInfoL(regFileName, iTimeMeasuredExternally );
+   
+    if(res != KErrNone)
+        {
+        ERR_PRINTF2(_L("Application Registration data not added successfuly , error %d"),res);
+        User::Leave(res);
+        }
+    CleanupStack::Pop(&sisRegistryAccessSessionSession);
+    SetTestStepResult(EPass);
+    return TestStepResult();
+    }
+
+////////////////////////////////////////////////////////////////////////////
+// CRemoveAppRegInfoStep 
+////////////////////////////////////////////////////////////////////////////
+
+CRemoveAppRegInfoStep::CRemoveAppRegInfoStep()
+    {
+    SetTestStepName(KIsFileRegisteredStep);
+    }
+
+TVerdict CRemoveAppRegInfoStep::doTestStepL()
+    {
+    TPtrC regFileName;
+    if(!GetStringFromConfig(ConfigSection(), _L("regFileName"), regFileName))
+        {
+        ERR_PRINTF1(_L("Reg File Name was not found in ini"));
+        User::Leave(KErrNotFound);
+        }
+    
+    RSisRegistryAccessSession sisRegistryAccessSessionSession;
+    User::LeaveIfError(sisRegistryAccessSessionSession.Connect());
+    CleanupClosePushL(sisRegistryAccessSessionSession);
+    
+    TInt res = sisRegistryAccessSessionSession.RemoveAppRegInfoL(regFileName, iTimeMeasuredExternally );
+    
+    if(res != KErrNone)
+        {
+        ERR_PRINTF2(_L("Application Registration data not added successfuly , error %d"),res);
+        User::Leave(res);
+        }
+    CleanupStack::PopAndDestroy(&sisRegistryAccessSessionSession);
+    SetTestStepResult(EPass);
+    return TestStepResult();
+    }
+
+//////////////////////
+//////CheckAppRegData
+/////////////////////
+
+CheckAppRegData::CheckAppRegData()
+    {
+    SetTestStepName(KIsFileRegisteredStep);
+    }
+
+TVerdict CheckAppRegData::doTestStepL()
+    {
+    SetTestStepResult(EPass);
+    // Verify if the reg data is removed properly or not
+    TBool isAppDataExists(EFalse);
+    Usif::RSoftwareComponentRegistry scrSession;            
+    User::LeaveIfError(scrSession.Connect());
+    CleanupClosePushL(scrSession);
+    GetBoolFromConfig(ConfigSection(), _L("appDataExists"), isAppDataExists);
+    if(isAppDataExists)
+        {
+        TPtrC appFileName;
+        if(GetStringFromConfig(ConfigSection(), _L("appFileName"), appFileName))
+            {
+            TUid appUid;
+            TInt intAppUid(0);
+            if(!GetHexFromConfig(ConfigSection(), _L("appUid"), intAppUid))
+                {
+                User::Leave(KErrNotFound);
+                }
+            
+            appUid = TUid::Uid(intAppUid);
+            RArray<TUid> appUidArray;
+            CleanupClosePushL(appUidArray);
+            appUidArray.AppendL(appUid);
+            
+            //check if we have rolled back to the reg in rom after removal            
+            Usif::RApplicationInfoView appRegistryView;
+            CleanupClosePushL(appRegistryView);
+            Usif::CAppInfoFilter* appInfoFilter = Usif::CAppInfoFilter::NewLC();
+            appInfoFilter->SetAllApps();
+            appRegistryView.OpenViewL(scrSession, appInfoFilter);
+            RPointerArray<Usif::TAppRegInfo> appInfo;
+            CleanupClosePushL(appInfo);
+            appRegistryView.GetNextAppInfoL(5, appInfo);
+        
+            for(TInt i = 0; i < 5 ; ++i)
+                {
+                if(appInfo[i]->Uid() == appUid)
+                    {
+                    if(appInfo[i]->FullName().Compare(appFileName) != 0)
+                        {
+                        SetTestStepResult(EFail);
+                        CleanupStack::Pop(&appInfo);
+                        appInfo.ResetAndDestroy();
+                        CleanupStack::PopAndDestroy(4, &scrSession); // appInfoFilter, appRegistryView, appUid, scrSession
+                        return TestStepResult();
+                        }
+                    break;
+                    }
+                }
+            CleanupStack::Pop(&appInfo);
+            appInfo.ResetAndDestroy();
+            CleanupStack::PopAndDestroy(3, &appUidArray); // appInfoFilter, appRegistryView, 
+            }  
+        }
+    else
+        {
+        TUid appUid = TUid::Uid(0);
+        TInt intAppUid(0);
+        if(!GetHexFromConfig(ConfigSection(), _L("appUid"), intAppUid))
+            {
+            User::Leave(KErrNotFound);
+            }
+        appUid = TUid::Uid(intAppUid);
+        
+        TRAPD(err, scrSession.GetComponentIdForAppL(appUid));
+        if(err != KErrNotFound)
+            {
+            SetTestStepResult(EFail);
+            CleanupStack::PopAndDestroy(&scrSession);
+            return TestStepResult();
+            }
+        }
+
+    CleanupStack::PopAndDestroy(&scrSession);
+    return TestStepResult();
+    }
--- a/installationservices/swi/test/tsisregistrytest/sessionstep.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swi/test/tsisregistrytest/sessionstep.h	Wed Aug 18 09:55:45 2010 +0300
@@ -441,6 +441,26 @@
 	CChangeLocaleStep();
 	virtual TVerdict doTestStepL();
 	};
-	
+
+class CAddAppRegInfoStep : public CSisRegistrySessionStep
+    {
+public:
+    CAddAppRegInfoStep();
+    virtual TVerdict doTestStepL();
+    };
+
+class CRemoveAppRegInfoStep : public CSisRegistrySessionStep
+    {
+public:
+    CRemoveAppRegInfoStep();
+    virtual TVerdict doTestStepL();
+    };
+
+class CheckAppRegData : public CSisRegistrySessionStep
+    {
+public:
+    CheckAppRegData();
+    virtual TVerdict doTestStepL();
+    };
 #endif
 
--- a/installationservices/swi/test/tsisregistrytest/tsisregistrytest.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swi/test/tsisregistrytest/tsisregistrytest.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -354,7 +354,18 @@
 		{
 		name = new CChangeLocaleStep;
 		}
-
+	else if (aStepName == KCAddAppRegInfoStep)
+	    {
+        name = new CAddAppRegInfoStep;
+	    }
+	else if (aStepName == KCRemoveAppRegInfoStep)
+        {
+        name = new CRemoveAppRegInfoStep;
+        }
+	else if (aStepName == KCheckAppRegData)
+	    {
+        name = new CheckAppRegData;
+	    }
 	if(performanceStep && name)
 		{
 		CSisRegistryTestStepBase *baseTestStep = dynamic_cast<CSisRegistryTestStepBase*>(name);
--- a/installationservices/swi/test/tsisregistrytest/tsisregistryteststep.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swi/test/tsisregistrytest/tsisregistryteststep.h	Wed Aug 18 09:55:45 2010 +0300
@@ -92,6 +92,9 @@
 _LIT(KDependenciesStep, "Dependencies");
 _LIT(KEmbeddedPackagesStep, "EmbeddedPackages");
 _LIT(KChangeLocale, "ChangeLocale");
+_LIT(KCAddAppRegInfoStep,"AddAppRegInfo");
+_LIT(KCRemoveAppRegInfoStep,"RemoveAppRegInfo");
+_LIT(KCheckAppRegData,"CheckAppRegData");
 
 // Base class for all steps
 class CSisRegistryTestStepBase : public CTestStep
--- a/installationservices/swi/test/tuiscriptadaptors/scripts/batchfiles/testfotaupdate1_post.bat	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swi/test/tuiscriptadaptors/scripts/batchfiles/testfotaupdate1_post.bat	Wed Aug 18 09:55:45 2010 +0300
@@ -25,4 +25,8 @@
 del /s /f /q \epoc32\release\winscw\urel\z\private\10003a3f\apps\fotaupdatestubapp1_reg.rsc
 
 del /s /f /q \epoc32\release\winscw\udeb\z\private\10003a3f\apps\fotaupdateapp1_reg.rsc
-del /s /f /q \epoc32\release\winscw\urel\z\private\10003a3f\apps\fotaupdateapp1_reg.rsc
\ No newline at end of file
+del /s /f /q \epoc32\release\winscw\urel\z\private\10003a3f\apps\fotaupdateapp1_reg.rsc
+
+del /s /f /q \epoc32\winscw\c\private\10003a3f\apps\fotaupdateUDA1_reg.rsc
+
+del /s /f /q \epoc32\winscw\c\private\10003a3f\import\apps\fotaupdateUDA2_reg.rsc
--- a/installationservices/swi/test/tuiscriptadaptors/scripts/batchfiles/testfotaupdate1_pre.bat	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swi/test/tuiscriptadaptors/scripts/batchfiles/testfotaupdate1_pre.bat	Wed Aug 18 09:55:45 2010 +0300
@@ -27,5 +27,10 @@
 xcopy /Q /Y \epoc32\winscw\c\tswi\tuiscriptadaptors\scripts\fotaupdatestubapp1.sis \epoc32\release\winscw\udeb\z\system\install\
 xcopy /Q /Y \epoc32\winscw\c\tswi\tuiscriptadaptors\scripts\fotaupdatestubapp1.sis \epoc32\release\winscw\urel\z\system\install\
 
+xcopy /Q /Y \epoc32\release\winscw\udeb\z\tswi\tuiscriptadaptors\data\fotaupdateUDA1_reg.rsc \epoc32\winscw\c\private\10003a3f\apps\
+
+md \epoc32\winscw\c\private\10003a3f\import\apps
+xcopy /Q /Y \epoc32\release\winscw\udeb\z\tswi\tuiscriptadaptors\data\fotaupdateUDA2_reg.rsc \epoc32\winscw\c\private\10003a3f\import\apps
+
 rem cleanup anything from previous tests.
 del /s /f /q \epoc32\winscw\c\sys\install\sisregistry\
--- a/installationservices/swi/test/tuiscriptadaptors/scripts/batchfiles/testfotaupdate2_pre.bat	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swi/test/tuiscriptadaptors/scripts/batchfiles/testfotaupdate2_pre.bat	Wed Aug 18 09:55:45 2010 +0300
@@ -29,3 +29,5 @@
 
 xcopy /Q /Y \epoc32\winscw\c\tswi\tuiscriptadaptors\scripts\sw.txt 		\epoc32\release\winscw\urel\z\resource\versions\
 xcopy /Q /Y \epoc32\winscw\c\tswi\tuiscriptadaptors\scripts\sw.txt 		\epoc32\release\winscw\udeb\z\resource\versions\
+
+del /s /f /q \epoc32\winscw\c\sys\install\scr\
\ No newline at end of file
--- a/installationservices/swi/test/tuiscriptadaptors/scripts/testfotaupdate.ini	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swi/test/tuiscriptadaptors/scripts/testfotaupdate.ini	Wed Aug 18 09:55:45 2010 +0300
@@ -116,4 +116,58 @@
 OwnedFileCount=0
 ServiceInfoCount=0
 LocalizableAppInfoCount=0
+PropertiesCount=0
+
+
+
+[app_info_fota_UDA1]
+Locale  = 01
+NoOfEntries=1
+AppRegAppUidCount=1
+AppRegAppUid0 = A000F16C
+AppRegEntriesConfigCount=1
+configsection0 = app_info_fota_UDA1_data
+
+[app_info_fota_UDA1_data]
+AppUid=A000F16C
+AppFile=C:\sys\bin\UDA1.exe
+Attributes=0
+Hidden=0
+Embeddability=0
+NewFile=0
+Launch=0
+GroupName=UDA1_Group
+DefaultScreenNumber=0
+AppOpaqueDataInfoCount=0
+
+OwnedFileCount=0
+ServiceInfoCount=0
+LocalizableAppInfoCount=0
+PropertiesCount=0
+
+
+
+[app_info_fota_UDA2]
+Locale  = 01
+NoOfEntries=1
+AppRegAppUidCount=1
+AppRegAppUid0 = A000F26C
+AppRegEntriesConfigCount=1
+configsection0 = app_info_fota_UDA2_data
+
+[app_info_fota_UDA2_data]
+AppUid=A000F26C
+AppFile=C:\sys\bin\UDA2.exe
+Attributes=0
+Hidden=0
+Embeddability=0
+NewFile=0
+Launch=0
+GroupName=UDA2_Group
+DefaultScreenNumber=0
+AppOpaqueDataInfoCount=0
+
+OwnedFileCount=0
+ServiceInfoCount=0
+LocalizableAppInfoCount=0
 PropertiesCount=0
\ No newline at end of file
--- a/installationservices/swi/test/tuiscriptadaptors/scripts/testfotaupdate1.script	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swi/test/tuiscriptadaptors/scripts/testfotaupdate1.script	Wed Aug 18 09:55:45 2010 +0300
@@ -50,4 +50,25 @@
 START_TESTCASE FotaTest4
 RUN_TEST_STEP 100 tSisRegistryTest IsPackageInstalled z:\tswi\tuiscriptadaptors\scripts\testfotaupdate.ini stubapp_info_fota_v1
 RUN_TEST_STEP 100 tscrapparc ScrGetApplicationRegistrationView z:\tswi\tuiscriptadaptors\scripts\testfotaupdate.ini stubapp_scr_info_fota_v1
-END_TESTCASE FotaTest4
\ No newline at end of file
+END_TESTCASE FotaTest4
+
+
+//! @SYMTestCaseID INST-REG-FOTA-0005
+//! @SYMTestCaseDesc Tests F/W update scenario for application registration resource files present in <systemdrive>\private\10003a3f\apps
+//! @SYMREQ PREQ1835
+//! @SYMTestPriority High
+//! @SYMTestActions Tests F/W update scenario for application registration resource files present in <systemdrive>\private\10003a3f\apps
+//! @SYMTestExpectedResults Scr db is updated with latest app info
+START_TESTCASE FotaTest5
+RUN_TEST_STEP 100 tscrapparc ScrGetApplicationRegistrationView z:\tswi\tuiscriptadaptors\scripts\testfotaupdate.ini app_info_fota_UDA1
+END_TESTCASE FotaTest5
+
+//! @SYMTestCaseID INST-REG-FOTA-0006
+//! @SYMTestCaseDesc Tests F/W update scenario for application registration resource files present in <systemdrive>\private\10003a3f\import\apps
+//! @SYMREQ PREQ1835
+//! @SYMTestPriority High
+//! @SYMTestActions Tests F/W update scenario for application registration resource files present in <systemdrive>\private\10003a3f\import\apps
+//! @SYMTestExpectedResults Scr db is updated with latest app info
+START_TESTCASE FotaTest6
+RUN_TEST_STEP 100 tscrapparc ScrGetApplicationRegistrationView z:\tswi\tuiscriptadaptors\scripts\testfotaupdate.ini app_info_fota_UDA2
+END_TESTCASE FotaTest6
\ No newline at end of file
--- a/installationservices/swi/test/tuiscriptadaptors/scripts/testpreinstalled.script	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swi/test/tuiscriptadaptors/scripts/testpreinstalled.script	Wed Aug 18 09:55:45 2010 +0300
@@ -17,6 +17,7 @@
 // SWIS unit (integration) tests for upgrades
 PRINT Run all SWIS tests
 LOAD_SUITE tuiscriptadaptors
+LOAD_SUITE tdaemon
 
 //! @SYMTestCaseID 		API-SEC-UISA-PreInstalledTest-I-0001
 //! @SYMTestCaseDesc 		Test pre-installed media
@@ -454,47 +455,50 @@
 //! @SYMTestExpectedResults 	No installation
 //! @SYMDevelopedForRelease 	Sphinx
 
-START_TESTCASE API-SEC-Controller-0001
+//Commenting the testcase because tdaemon is removed from code base. To be restored later.
+
+//START_TESTCASE API-SEC-Controller-0001
 
 // Install the full TEXTFILE.SIS file
-RUN_TEST_STEP 100 tuiscriptadaptors InstallStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini textfile
+//RUN_TEST_STEP 100 tuiscriptadaptors InstallStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini textfile
 
 // Check that the registry is present
-RUN_TEST_STEP 100 tuiscriptadaptors MmcAskRegistry z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini textfile_present
+//RUN_TEST_STEP 100 tuiscriptadaptors MmcAskRegistry z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini textfile_present
 
 // Save the .ctl file
-RUN_UTILS CopyFile x:\sys\install\sisregistry\80000001\00000000_0000.ctl x:\00000000_0000.ctl
+//RUN_UTILS CopyFile x:\sys\install\sisregistry\80000001\00000000_0000.ctl x:\00000000_0000.ctl
 
 // Delete the x:\sys\install\sisregistry\80000001\00000000_0000.ctl file
-RUN_TEST_STEP 10 tuiscriptadaptors MmcDeleteFilesStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini delete_textfile_ctlfile
+//RUN_TEST_STEP 10 tuiscriptadaptors MmcDeleteFilesStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini delete_textfile_ctlfile
 
 // Copy another package .ctl file to x:\sys\install\sisregistry\80000001\00000000_0000.ctl
-RUN_TEST_STEP 10 tuiscriptadaptors MmcCopyFilesStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini copy_textfile_ctlfile
+//RUN_TEST_STEP 10 tuiscriptadaptors MmcCopyFilesStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini copy_textfile_ctlfile
 
-RUN_TEST_STEP 100 tuiscriptadaptors MmcUnMountStep z:\tswi\tuiscriptadaptors\scripts\drives.ini X
+//RUN_TEST_STEP 100 tuiscriptadaptors MmcUnMountStep z:\tswi\tuiscriptadaptors\scripts\drives.ini X
 
-RUN_TEST_STEP 100 tuiscriptadaptors MmcMountStep z:\tswi\tuiscriptadaptors\scripts\drives.ini X
+//RUN_TEST_STEP 100 tuiscriptadaptors MmcMountStep z:\tswi\tuiscriptadaptors\scripts\drives.ini X
+//RUN_TEST_STEP 100 tdaemon AddDriveStep z:\tswi\tdaemon\scripts\tdaemon.ini AddDriveX
 
 // Check that the registry is not present
-RUN_TEST_STEP 100 tuiscriptadaptors MmcAskRegistry z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini textfile_absent
+//RUN_TEST_STEP 100 tuiscriptadaptors MmcAskRegistry z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini textfile_absent
 
 // Restore the original .ctl file to x:\sys\install\sisregistry\80000001\00000000_0000.ctl
-RUN_TEST_STEP 10 tuiscriptadaptors MmcDeleteFilesStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini delete_textfile_ctlfile
-RUN_TEST_STEP 10 tuiscriptadaptors MmcCopyFilesStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini copy_textfile_ctlfile2
+//RUN_TEST_STEP 10 tuiscriptadaptors MmcDeleteFilesStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini delete_textfile_ctlfile
+//RUN_TEST_STEP 10 tuiscriptadaptors MmcCopyFilesStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini copy_textfile_ctlfile2
 
-RUN_TEST_STEP 100 tuiscriptadaptors MmcUnMountStep z:\tswi\tuiscriptadaptors\scripts\drives.ini X
+//RUN_TEST_STEP 100 tuiscriptadaptors MmcUnMountStep z:\tswi\tuiscriptadaptors\scripts\drives.ini X
 
-RUN_TEST_STEP 100 tuiscriptadaptors MmcMountStep z:\tswi\tuiscriptadaptors\scripts\drives.ini X
+//RUN_TEST_STEP 100 tuiscriptadaptors MmcMountStep z:\tswi\tuiscriptadaptors\scripts\drives.ini X
 
 // Check that the registry is okay now.
-RUN_TEST_STEP 100 tuiscriptadaptors MmcAskRegistry z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini textfile_present
+//RUN_TEST_STEP 100 tuiscriptadaptors MmcAskRegistry z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini textfile_present
 
 // Uninstall TEXTFILE.SIS
-RUN_TEST_STEP 100 tuiscriptadaptors UninstallStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini u_textfile
+//RUN_TEST_STEP 100 tuiscriptadaptors UninstallStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini u_textfile
 
-RUN_UTILS DeleteFile x:\00000000_0000.ctl
+//RUN_UTILS DeleteFile x:\00000000_0000.ctl
 
-END_TESTCASE API-SEC-Controller-0001
+//END_TESTCASE API-SEC-Controller-0001
 
 
 //! @SYMTestCaseID 		API-SEC-Controller-0002
--- a/installationservices/swi/test/tuiscriptadaptors/scripts/tswidaemonstub.script	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swi/test/tuiscriptadaptors/scripts/tswidaemonstub.script	Wed Aug 18 09:55:45 2010 +0300
@@ -19,6 +19,7 @@
 PRINT Run SWI Daemon Stub tests
 LOAD_SUITE tuiscriptadaptors
 LOAD_SUITE tSisRegistryTest
+LOAD_SUITE tdaemon
 
 //! @SYMTestCaseID 		API-SEC-SWIDaemonStub-I-0001
 //! @SYMTestCaseDesc 		Install SA and SP on the media card
@@ -51,6 +52,7 @@
 
 // Mount the card back and wait for registy to be rebuilt (for ROM stubs)
 RUN_TEST_STEP 100 tuiscriptadaptors MmcMountStep z:\tswi\tuiscriptadaptors\scripts\drives.ini X
+RUN_TEST_STEP 100 tdaemon AddDriveStep z:\tswi\tdaemon\scripts\tdaemon.ini AddDriveX
 DELAY 5000
 
 // Ensure files on the removable drive aren't cleaned up and also the SA stub tries to propagate
--- a/installationservices/swi/test/tuiscriptadaptors/sisregistryaccess_client.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swi/test/tuiscriptadaptors/sisregistryaccess_client.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -99,3 +99,14 @@
 	return SendReceive(EDeleteEntry, TIpcArgs(index, &packageUid, &time));
 	}
 
+TInt RSisRegistryAccessSession::AddAppRegInfoL(const TDesC& aAppRegFile, TInt& aSpentTimeInMillisecond)
+    {
+    TPckg<TInt> time(aSpentTimeInMillisecond);
+    return SendReceive(EAddAppRegInfo, TIpcArgs(&aAppRegFile, &time));
+    }
+
+TInt RSisRegistryAccessSession::RemoveAppRegInfoL(const TDesC& aAppRegFile, TInt& aSpentTimeInMillisecond)
+    {
+    TPckg<TInt> time(aSpentTimeInMillisecond);
+    return SendReceive(ERemoveAppRegInfo, TIpcArgs(&aAppRegFile, &time));
+    }
--- a/installationservices/swi/test/tuiscriptadaptors/sisregistryaccess_client.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swi/test/tuiscriptadaptors/sisregistryaccess_client.h	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -55,6 +55,15 @@
 	 */
 	TInt DeleteEntryL(Swi::CSisRegistryPackage& aPackage, TInt& aSpentTimeInMillisecond);
 
+	/**
+	 * Adds the Application Registration Info from *_reg.rsc
+	 */
+	TInt AddAppRegInfoL(const TDesC& aAppRegFile, TInt& aSpentTimeInMillisecond);
+	
+	/**
+     * Removes the Application Registration Info
+     */
+    TInt RemoveAppRegInfoL(const TDesC& aAppRegFile, TInt& aSpentTimeInMillisecond);
 	};
 
 #endif	// __SISREGISTRYACCESSCLIENT_H__
--- a/installationservices/swi/test/tuiscriptadaptors/sisregistryaccess_common.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swi/test/tuiscriptadaptors/sisregistryaccess_common.h	Wed Aug 18 09:55:45 2010 +0300
@@ -34,4 +34,6 @@
 	EAddEntry,
 	EUpdateEntry,
 	EDeleteEntry,
+	EAddAppRegInfo,
+	ERemoveAppRegInfo,
 	};
--- a/installationservices/swi/test/tuiscriptadaptors/sisregistryaccess_server_session.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swi/test/tuiscriptadaptors/sisregistryaccess_server_session.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -32,6 +32,7 @@
 #include "siscontroller.h"
 #include "application.h"
 #include "userselections.h"
+#include "sislauncherclient.h"
 
 /////////////////////// Utility functions //////////////////////////////
 void StartTimer(TTime& aTimer)
@@ -110,81 +111,107 @@
 
 void CSisRegistryAccessSession::ServiceL(const RMessage2& aMessage)
 	{
-	// create transaction on SCR for mutable operations
-	Server().RegistrySession().CreateTransactionL();
-	// SWI regsitry needs a transaction to cover updates to logs during package add/update/removal
-	Usif::RStsSession stsSession;
-	TInt64 transactionID = stsSession.CreateTransactionL();
-	CleanupClosePushL(stsSession);
-	TInt err(0);
-	
-	TTime timer;
-	StartTimer(timer);
-	
-	TSisRegistryAccessMessages f = static_cast<TSisRegistryAccessMessages>(aMessage.Function());
-	switch (f)
-		{
-		case EAddEntry:
-		case EUpdateEntry:
-			{
-			TInt len = aMessage.GetDesLengthL(0);
-			HBufC8 *controllerData = HBufC8::NewLC(len);
-			TPtr8 ptrControllerData(controllerData->Des());
-			aMessage.ReadL(0, ptrControllerData);
-			
-			// create the controller
-			Swi::CDesDataProvider *desProvider = Swi::CDesDataProvider::NewLC(ptrControllerData);
-			Swi::Sis::CController *controller = Swi::Sis::CController::NewLC(*desProvider, Swi::Sis::EAssumeType);
-			// setup the application
-			Swi::CApplication *app = Swi::CApplication::NewLC();
-			app->SetInstall(*controller);
-			// since the attributes chosen by the user don't have impact on the adding/updating entry tests,
-			// they are set with the constant values.
-			app->UserSelections().SetLanguage(ELangEnglish);
-			app->UserSelections().SetDrive(2);
-			
-			if(EAddEntry == f)
-				{
-				TRAP(err, Server().RegistrySession().AddEntryL(*app, ptrControllerData, transactionID));
-				}
-			else
-				{
-				TRAP(err, Server().RegistrySession().UpdateEntryL(*app, ptrControllerData, transactionID));
-				}
-			CleanupStack::PopAndDestroy(4, controllerData); // controllerData, desProvider, controller, app
-			break;
-			}
-		case EDeleteEntry:
-			{
-			// Get Uid and index
-			// Augmentation index - argument 0
-			TInt packageIndex = aMessage.Int0();
-
-			// Uid (ipc argument 1)
-			TUid uid;
-			TPckg<TUid> packageUid(uid);
-			aMessage.ReadL(1, packageUid);
-			
-			// Invoke SisRegistry server API using SisRegistryClient
-			Swi::CSisRegistryPackage* package = Swi::CSisRegistryPackage::NewLC(uid, KNullDesC, KNullDesC); // For the delete API, the name and the vendor of the package are irrelevant
-			package->SetIndex(packageIndex);
-			TRAP(err, Server().RegistrySession().DeleteEntryL(*package, transactionID));
-
-			CleanupStack::PopAndDestroy(package);
-			break;
-			}
-		default:
-			{
-			PanicClient(aMessage, EPanicIllegalFunction);
-			break;
-			}
-		}
-	
-	stsSession.CommitL();
-	CleanupStack::PopAndDestroy(&stsSession);
-
-	Server().RegistrySession().CommitTransactionL();
-	
+    TSisRegistryAccessMessages f = static_cast<TSisRegistryAccessMessages>(aMessage.Function());
+    TTime timer;
+    StartTimer(timer);
+    TInt err(0);
+    if(f == EAddAppRegInfo)
+        {
+        TUint regFileNameLen = aMessage.GetDesLengthL(0);
+        HBufC* regFileName = HBufC::NewLC(regFileNameLen);
+        TPtr namePtr = regFileName->Des();
+        aMessage.ReadL(0, namePtr);
+        TUid appUid = TUid::Uid(aMessage.Int1());
+        Swi::RSisRegistrySession sisRegistryWritableSession;
+        CleanupClosePushL(sisRegistryWritableSession);
+        TRAP(err, sisRegistryWritableSession.Connect());
+        TRAP(err, sisRegistryWritableSession.AddAppRegInfoL(*regFileName););
+        CleanupStack::PopAndDestroy(2, regFileName);
+        }
+    else if(f == ERemoveAppRegInfo)
+        {
+        TUint regFileNameLen = aMessage.GetDesLengthL(0);
+        HBufC* regFileName = HBufC::NewLC(regFileNameLen);
+        TPtr namePtr = regFileName->Des();
+        aMessage.ReadL(0, namePtr);
+        TUid appUid = TUid::Uid(aMessage.Int1());
+        Swi::RSisRegistrySession sisRegistryWritableSession;
+        CleanupClosePushL(sisRegistryWritableSession);
+        TRAP(err, sisRegistryWritableSession.Connect());
+        TRAP(err, sisRegistryWritableSession.RemoveAppRegInfoL(*regFileName););
+        CleanupStack::PopAndDestroy(2, regFileName);
+        }
+    else
+        {
+        // create transaction on SCR for mutable operations
+        Server().RegistrySession().CreateTransactionL();
+        // SWI regsitry needs a transaction to cover updates to logs during package add/update/removal
+        Usif::RStsSession stsSession;
+        TInt64 transactionID = stsSession.CreateTransactionL();
+        CleanupClosePushL(stsSession);
+        
+        switch (f)
+            {
+            case EAddEntry:
+            case EUpdateEntry:
+                {
+                TInt len = aMessage.GetDesLengthL(0);
+                HBufC8 *controllerData = HBufC8::NewLC(len);
+                TPtr8 ptrControllerData(controllerData->Des());
+                aMessage.ReadL(0, ptrControllerData);
+                
+                // create the controller
+                Swi::CDesDataProvider *desProvider = Swi::CDesDataProvider::NewLC(ptrControllerData);
+                Swi::Sis::CController *controller = Swi::Sis::CController::NewLC(*desProvider, Swi::Sis::EAssumeType);
+                // setup the application
+                Swi::CApplication *app = Swi::CApplication::NewLC();
+                app->SetInstall(*controller);
+                // since the attributes chosen by the user don't have impact on the adding/updating entry tests,
+                // they are set with the constant values.
+                app->UserSelections().SetLanguage(ELangEnglish);
+                app->UserSelections().SetDrive(2);
+                
+                if(EAddEntry == f)
+                    {
+                    TRAP(err, Server().RegistrySession().AddEntryL(*app, ptrControllerData, transactionID));
+                    }
+                else
+                    {
+                    TRAP(err, Server().RegistrySession().UpdateEntryL(*app, ptrControllerData, transactionID));
+                    }
+                CleanupStack::PopAndDestroy(4, controllerData); // controllerData, desProvider, controller, app
+                break;
+                }
+            case EDeleteEntry:
+                {
+                // Get Uid and index
+                // Augmentation index - argument 0
+                TInt packageIndex = aMessage.Int0();
+    
+                // Uid (ipc argument 1)
+                TUid uid;
+                TPckg<TUid> packageUid(uid);
+                aMessage.ReadL(1, packageUid);
+                
+                // Invoke SisRegistry server API using SisRegistryClient
+                Swi::CSisRegistryPackage* package = Swi::CSisRegistryPackage::NewLC(uid, KNullDesC, KNullDesC); // For the delete API, the name and the vendor of the package are irrelevant
+                package->SetIndex(packageIndex);
+                TRAP(err, Server().RegistrySession().DeleteEntryL(*package, transactionID));
+    
+                CleanupStack::PopAndDestroy(package);
+                break;
+                }
+            default:
+                {
+                PanicClient(aMessage, EPanicIllegalFunction);
+                break;
+                }
+            }
+        
+        stsSession.CommitL();
+        CleanupStack::PopAndDestroy(&stsSession);
+        Server().RegistrySession().CommitTransactionL();
+        }	
 	TPckg<TInt> timePckg(StopTimer(timer));
 	if(EDeleteEntry == f)
 		aMessage.WriteL(2, timePckg);
Binary file installationservices/swiconfig/usif/scr/scr.db has changed
--- a/installationservices/swinstallationfw/bwins/sifnotificationu.def	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swinstallationfw/bwins/sifnotificationu.def	Wed Aug 18 09:55:45 2010 +0300
@@ -51,4 +51,8 @@
 	??1CSifOperationProgressData@Usif@@UAE@XZ @ 50 NONAME ; Usif::CSifOperationProgressData::~CSifOperationProgressData(void)
 	?NewL@CSifOperationProgressData@Usif@@SAPAV12@ABVTDesC16@@W4TSifOperationPhase@2@W4TSifOperationSubPhase@2@HH@Z @ 51 NONAME ; class Usif::CSifOperationProgressData * Usif::CSifOperationProgressData::NewL(class TDesC16 const &, enum Usif::TSifOperationPhase, enum Usif::TSifOperationSubPhase, int, int)
 	??1CPublishSifOperationInfo@Usif@@UAE@XZ @ 52 NONAME ; Usif::CPublishSifOperationInfo::~CPublishSifOperationInfo(void)
+	?NewL@CSifOperationStartData@Usif@@SAPAV12@ABVTDesC16@@0ABV?$RPointerArray@VHBufC16@@@@1H000W4TSifOperationPhase@2@@Z @ 53 NONAME ; class Usif::CSifOperationStartData * Usif::CSifOperationStartData::NewL(class TDesC16 const &, class TDesC16 const &, class RPointerArray<class HBufC16> const &, class RPointerArray<class HBufC16> const &, int, class TDesC16 const &, class TDesC16 const &, class TDesC16 const &, enum Usif::TSifOperationPhase)
+	?NewLC@CSifOperationStartData@Usif@@SAPAV12@ABVTDesC16@@0ABV?$RPointerArray@VHBufC16@@@@1H000W4TSifOperationPhase@2@@Z @ 54 NONAME ; class Usif::CSifOperationStartData * Usif::CSifOperationStartData::NewLC(class TDesC16 const &, class TDesC16 const &, class RPointerArray<class HBufC16> const &, class RPointerArray<class HBufC16> const &, int, class TDesC16 const &, class TDesC16 const &, class TDesC16 const &, enum Usif::TSifOperationPhase)
+	?OperationPhase@CSifOperationStartData@Usif@@QBE?AW4TSifOperationPhase@2@XZ @ 55 NONAME ; enum Usif::TSifOperationPhase Usif::CSifOperationStartData::OperationPhase(void) const
+	?CurrentProgress@CSifOperationProgressData@Usif@@QBEHXZ @ 56 NONAME ; int Usif::CSifOperationProgressData::CurrentProgress(void) const
 
--- a/installationservices/swinstallationfw/eabi/sifnotificationu.def	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swinstallationfw/eabi/sifnotificationu.def	Wed Aug 18 09:55:45 2010 +0300
@@ -54,4 +54,8 @@
 	_ZNK4Usif25CSifOperationProgressData8SubPhaseEv @ 53 NONAME
 	_ZTIN4Usif16CSifNotifierBaseE @ 54 NONAME
 	_ZTVN4Usif16CSifNotifierBaseE @ 55 NONAME
+	_ZN4Usif22CSifOperationStartData4NewLERK7TDesC16S3_RK13RPointerArrayI7HBufC16ES8_iS3_S3_S3_NS_18TSifOperationPhaseE @ 56 NONAME
+	_ZN4Usif22CSifOperationStartData5NewLCERK7TDesC16S3_RK13RPointerArrayI7HBufC16ES8_iS3_S3_S3_NS_18TSifOperationPhaseE @ 57 NONAME
+	_ZNK4Usif22CSifOperationStartData14OperationPhaseEv @ 58 NONAME
+	_ZNK4Usif25CSifOperationProgressData15CurrentProgressEv @ 59 NONAME
 
--- a/installationservices/swinstallationfw/group/sifserver.mmp	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swinstallationfw/group/sifserver.mmp	Wed Aug 18 09:55:45 2010 +0300
@@ -19,6 +19,8 @@
 TARGET				sifserver.exe        
 TARGETTYPE			exe
 
+EPOCSTACKSIZE   		0x4000
+
 CAPABILITY			ProtServ TrustedUI ReadUserData WriteDeviceData
 
 VENDORID			0x70000001
--- a/installationservices/swinstallationfw/inc/sif.iby	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swinstallationfw/inc/sif.iby	Wed Aug 18 09:55:45 2010 +0300
@@ -19,7 +19,7 @@
 #ifndef SIF_IBY
 #define SIF_IBY
 
-define ZDRIVE \epoc32\data\Z
+define ZDRIVE EPOCROOT##epoc32\data\Z
 
 #include "siflauncherconfig.iby"
 
--- a/installationservices/swinstallationfw/inc/sifnotification.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swinstallationfw/inc/sifnotification.h	Wed Aug 18 09:55:45 2010 +0300
@@ -77,6 +77,8 @@
     
     /**
         Creates a CSifOperationStartData object.
+
+		@deprecated  Use the overload with aOperationPhase instead.
         
         @param  aGlobalComponentId  The global component id which uniquely identifies the operation          
         @param  aComponentName		The name of the software component
@@ -90,7 +92,49 @@
         @return A pointer to the newly allocated CSifOperationStartData object, if creation is successful.
      */      
     IMPORT_C static CSifOperationStartData* NewL(const TDesC& aGlobalComponentId, const TDesC& aComponentName, const RPointerArray<HBufC>& aApplicationNames,
-                                                  const RPointerArray<HBufC>& aApplicationIcons, TInt aComponentSize, const TDesC& aIconPath, const TDesC& aComponentIcon, const TDesC& aSoftwareType);
+                                                  const RPointerArray<HBufC>& aApplicationIcons, TInt aComponentSize, const TDesC& aIconPath, const TDesC& aComponentIcon, 
+                                                      const TDesC& aSoftwareType);
+    
+    /**
+        Creates a CSifOperationStartData object.
+        
+        @param  aGlobalComponentId  The global component id which uniquely identifies the operation          
+        @param  aComponentName      The name of the software component
+        @param  aApplicationNames   The list of applications associated with the software component, an empty array in case of no applications
+        @param  aApplicationIcons   The list of corresponding application icon names(without path) for every application, an empty array in case of no applications                 
+        @param  aComponentSize      The total size of the component in bytes
+        @param  aIconPath           The path where all application and component icons are found
+        @param  aComponentIcon      The name of the component icon(without path)
+        @param  aSoftwareType       The software type name of the software component
+        @param  aOperationPhase     The type of SIF operation
+                                                   
+        @return A pointer to the newly allocated CSifOperationStartData object, if creation is successful.
+     */      
+    IMPORT_C static CSifOperationStartData* NewL(const TDesC& aGlobalComponentId, const TDesC& aComponentName, const RPointerArray<HBufC>& aApplicationNames,
+                                                  const RPointerArray<HBufC>& aApplicationIcons, TInt aComponentSize, const TDesC& aIconPath, const TDesC& aComponentIcon, 
+                                                      const TDesC& aSoftwareType, TSifOperationPhase aOperationPhase);
+
+    /**
+        Creates a CSifOperationStartData object.
+
+  		@deprecated  Use the overload with aOperationPhase instead.
+        
+        @param  aGlobalComponentId  The global component id which uniquely identifies the operation          
+        @param  aComponentName      The name of the software component
+        @param  aApplicationNames   The list of applications associated with the software component, an empty array in case of no applications
+        @param  aApplicationIcons   The list of corresponding application icon names(without path) for every application, an empty array in case of no applications                 
+        @param  aComponentSize      The total size of the component in bytes
+        @param  aIconPath           The path where all application and component icons are found
+        @param  aComponentIcon      The name of the component icon(without path)
+        @param  aSoftwareType       The software type name of the software component
+                                                           
+        @return A pointer to the newly allocated CSifOperationStartData object, if creation is successful.
+                The pointer is also put onto the cleanup stack. 
+     */     
+    IMPORT_C static CSifOperationStartData* NewLC(const TDesC& aGlobalComponentId, const TDesC& aComponentName, const RPointerArray<HBufC>& aApplicationNames,
+                                                      const RPointerArray<HBufC>& aApplicationIcons, TInt aComponentSize, const TDesC& aIconPath, const TDesC& aComponentIcon, 
+                                                          const TDesC& aSoftwareType);
+    
 
     /**
         Creates a CSifOperationStartData object.
@@ -103,12 +147,14 @@
         @param  aIconPath           The path where all application and component icons are found
         @param  aComponentIcon      The name of the component icon(without path)
         @param  aSoftwareType       The software type name of the software component
-                                                   
+        @param  aOperationPhase     The type of SIF operation
+                                                           
         @return A pointer to the newly allocated CSifOperationStartData object, if creation is successful.
                 The pointer is also put onto the cleanup stack. 
      */     
     IMPORT_C static CSifOperationStartData* NewLC(const TDesC& aGlobalComponentId, const TDesC& aComponentName, const RPointerArray<HBufC>& aApplicationNames,
-                                                  const RPointerArray<HBufC>& aApplicationIcons, TInt aComponentSize, const TDesC& aIconPath, const TDesC& aComponentIcon, const TDesC& aSoftwareType);
+                                                      const RPointerArray<HBufC>& aApplicationIcons, TInt aComponentSize, const TDesC& aIconPath, const TDesC& aComponentIcon, 
+                                                          const TDesC& aSoftwareType, TSifOperationPhase aOperationPhase);
     
     /**
      @return The global component Id associated with the operation.
@@ -153,11 +199,17 @@
     IMPORT_C ~CSifOperationStartData();          
 
     IMPORT_C void ExternalizeL(RWriteStream& aStream) const;
+    
+    /**
+     @return The type of SIF operation.
+     */   
+    IMPORT_C TSifOperationPhase OperationPhase() const;
 
 private:
     CSifOperationStartData();
     void ConstructL(const TDesC& aGlobalComponentId, const TDesC& aComponentName, const RPointerArray<HBufC>& aApplicationNames,  
-          const RPointerArray<HBufC>& aApplicationIcons, TInt aComponentSize, const TDesC& aIconPath, const TDesC& aComponentIcon, const TDesC& aSoftwareType);
+                        const RPointerArray<HBufC>& aApplicationIcons, TInt aComponentSize, const TDesC& aIconPath, 
+                            const TDesC& aComponentIcon, const TDesC& aSoftwareType, TSifOperationPhase aOperationPhase);
     void InternalizeL(RReadStream& aStream);
 
 private:
@@ -170,6 +222,7 @@
     HBufC* iIconPath;      
     HBufC* iSoftwareType;
     TSifOperation iOperationType;
+    TSifOperationPhase iOperationPhase;
     };
 
 
@@ -316,10 +369,17 @@
     
     /**
      @return The current progress value.
+
+	 @deprecated  Use CurrentProgress() instead.
      */     
     IMPORT_C TInt CurrentProgess() const;
     
     /**
+     @return The current progress value.
+     */     
+    IMPORT_C TInt CurrentProgress() const;
+    
+    /**
      @return The total value to achieve completion of the subphase.
      */     
     IMPORT_C TInt Total() const;  
--- a/installationservices/swinstallationfw/source/sifcommon.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swinstallationfw/source/sifcommon.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -1012,7 +1012,7 @@
 void CStringItem::InternalizeL(RReadStream& aStream)
     {
     CItemBase::InternalizeL(aStream);
-    delete iString;
+    DeleteObjectZ(iString);
     iString = HBufC::NewL(aStream, KMaxOpaqueParamsDescriptorSize);
     }
 
--- a/installationservices/swinstallationfw/source/sifnotifierdata.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swinstallationfw/source/sifnotifierdata.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -59,24 +59,43 @@
                                         const RPointerArray<HBufC>& aApplicationNames, const RPointerArray<HBufC>& aApplicationIcons, 
                                         TInt aComponentSize, const TDesC& aIconPath, const TDesC& aComponentIcon, const TDesC& aSoftwareType)
     {
+    return CSifOperationStartData::NewL(aGlobalComponentId, aComponentName, 
+                                        aApplicationNames, aApplicationIcons, aComponentSize, aIconPath, aComponentIcon, aSoftwareType, EInstalling);
+    }
+
+EXPORT_C CSifOperationStartData* CSifOperationStartData::NewL(const TDesC& aGlobalComponentId, const TDesC& aComponentName,
+                                        const RPointerArray<HBufC>& aApplicationNames, const RPointerArray<HBufC>& aApplicationIcons, 
+                                        TInt aComponentSize, const TDesC& aIconPath, const TDesC& aComponentIcon, const TDesC& aSoftwareType, 
+                                        TSifOperationPhase aOperationPhase)
+    {
     CSifOperationStartData *self = CSifOperationStartData::NewLC(aGlobalComponentId, aComponentName, 
-                                        aApplicationNames, aApplicationIcons, aComponentSize, aIconPath, aComponentIcon,aSoftwareType);
+                                        aApplicationNames, aApplicationIcons, aComponentSize, aIconPath, aComponentIcon, aSoftwareType, aOperationPhase);
     CleanupStack::Pop(self);
     return self;
     }
 
+
+EXPORT_C CSifOperationStartData* CSifOperationStartData::NewLC(const TDesC& aGlobalComponentId, const TDesC& aComponentName,
+                                        const RPointerArray<HBufC>& aApplicationNames, const RPointerArray<HBufC>& aApplicationIcons, const TInt aComponentSize, 
+                                        const TDesC& aIconPath, const TDesC& aComponentIcon, const TDesC& aSoftwareType)
+    {
+    return CSifOperationStartData::NewLC(aGlobalComponentId, aComponentName, 
+                                        aApplicationNames, aApplicationIcons, aComponentSize, aIconPath, aComponentIcon, aSoftwareType, EInstalling);
+    }
+
 EXPORT_C CSifOperationStartData* CSifOperationStartData::NewLC(const TDesC& aGlobalComponentId, const TDesC& aComponentName,
 										const RPointerArray<HBufC>& aApplicationNames, const RPointerArray<HBufC>& aApplicationIcons, const TInt aComponentSize, 
-                                        const TDesC& aIconPath, const TDesC& aComponentIcon, const TDesC& aSoftwareType)
+                                        const TDesC& aIconPath, const TDesC& aComponentIcon, const TDesC& aSoftwareType, TSifOperationPhase aOperationPhase)
     {
     CSifOperationStartData *self = new(ELeave) CSifOperationStartData();
     CleanupStack::PushL(self);
-    self->ConstructL(aGlobalComponentId, aComponentName, aApplicationNames, aApplicationIcons, aComponentSize, aIconPath, aComponentIcon, aSoftwareType);
+    self->ConstructL(aGlobalComponentId, aComponentName, aApplicationNames, aApplicationIcons, aComponentSize, aIconPath, aComponentIcon, aSoftwareType, aOperationPhase);
     return self;
     }
 
 void CSifOperationStartData::ConstructL(const TDesC& aGlobalComponentId, const TDesC& aComponentName, const RPointerArray<HBufC>& aApplicationNames,
-                                        const RPointerArray<HBufC>& aApplicationIcons, TInt aComponentSize, const TDesC& aIconPath, const TDesC& aComponentIcon, const TDesC& aSoftwareType)
+                                        const RPointerArray<HBufC>& aApplicationIcons, TInt aComponentSize, const TDesC& aIconPath, const TDesC& aComponentIcon, 
+                                        const TDesC& aSoftwareType, TSifOperationPhase aOperationPhase)
     {
 	iGlobalComponentId = aGlobalComponentId.AllocL();
     iComponentName = aComponentName.AllocL();
@@ -99,6 +118,7 @@
     iComponentSize = aComponentSize;
     iIconPath = aIconPath.AllocL();      
     iSoftwareType = aSoftwareType.AllocL();
+    iOperationPhase = aOperationPhase;
     }
 
 EXPORT_C void CSifOperationStartData::ExternalizeL(RWriteStream& aStream) const
@@ -112,6 +132,7 @@
 	aStream << *iIconPath;
 	aStream << *iComponentIcon;
 	aStream << *iSoftwareType;
+	aStream << TCardinality(iOperationPhase);
 	}
 	
 void CSifOperationStartData::InternalizeL(RReadStream& aStream)
@@ -132,6 +153,9 @@
     iComponentIcon = HBufC::NewL(aStream, KMaxTInt);
     DeleteObjectZ(iSoftwareType);
     iSoftwareType = HBufC::NewL(aStream, KMaxTInt);
+    TCardinality c;
+    aStream >> c;
+    iOperationPhase = static_cast<TSifOperationPhase>(static_cast<TInt>(c));
     }
 
 EXPORT_C const HBufC& CSifOperationStartData::GlobalComponentId() const
@@ -175,6 +199,11 @@
     return iComponentSize;
     }
 
+EXPORT_C TSifOperationPhase CSifOperationStartData::OperationPhase() const
+    {
+    return iOperationPhase;
+    }
+
 ////////////////////////
 // CSifOperationEndData
 ////////////////////////
@@ -353,9 +382,14 @@
     return iSubPhase;
     }
 
+EXPORT_C TInt CSifOperationProgressData::CurrentProgress() const
+    {
+    return iCurrentProgress;
+    }
+
 EXPORT_C TInt CSifOperationProgressData::CurrentProgess() const
     {
-    return iCurrentProgress;
+    return CurrentProgress();
     }
 
 EXPORT_C TInt CSifOperationProgressData::Total() const
--- a/installationservices/swinstallationfw/test/tusif/scripts/tnotifier.ini	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swinstallationfw/test/tusif/scripts/tnotifier.ini	Wed Aug 18 09:55:45 2010 +0300
@@ -89,7 +89,7 @@
 ComponentSize=40
 IconPath=iconPath
 SoftwareType=Native
-
+Phase=1
 
 [startabclarge]
 Operation=start
@@ -105,6 +105,7 @@
 ComponentSize=40
 IconPath=LargePathfortheicon
 SoftwareType=Native
+Phase=1
 
 [progressabc1]
 Operation=progress
@@ -219,6 +220,7 @@
 ComponentSize=40
 IconPath=xyziconPath
 SoftwareType=NonNative
+Phase=1
 
 [progressxyz1]
 Operation=progress
--- a/installationservices/swinstallationfw/test/tusif/source/tsifcommonunitteststep.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swinstallationfw/test/tusif/source/tsifcommonunitteststep.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -26,6 +26,7 @@
 #include <usif/sif/sifcommon.h>
 #include <ct/rcpointerarray.h>
 #include <scs/cleanuputils.h>
+#include <s32mem.h> 
 
 using namespace Usif;
 
@@ -71,8 +72,8 @@
 	INFO_PRINTF1(_L("I am in CSifCommonUnitTestStep::doTestStep()."));
 
 	SetTestStepResult(EFail);
+	TestComponentInfoL();
 
-	TestComponentInfoL();
 	TestOpaqueNamedParamsL();
 
 	SetTestStepResult(EPass);
@@ -544,4 +545,94 @@
 	    }
 
 	CleanupStack::PopAndDestroy(3, &stringArray);
+	
+	//Externalize, internalize tests.
+	COpaqueNamedParams* params5 = COpaqueNamedParams::NewLC();
+	HBufC* testString = _L("TestString").AllocLC();
+	
+	params5->AddStringL(_L("key1"), *testString);
+	params5->AddIntL(_L("key2"), 23);
+	
+	RArray<TInt> intArray2;
+	CleanupClosePushL(intArray2);
+	intArray2.AppendL(100);
+	intArray2.AppendL(200);
+	
+	RPointerArray<HBufC> stringArray2;
+	CleanupResetAndDestroyPushL(stringArray2);
+	const HBufC16* testString1 = _L("TestString1").AllocLC();
+	
+	
+	TInt err1 = stringArray2.Append(testString1);
+	if (err1 != KErrNone)
+	    {
+	    CleanupStack::PopAndDestroy();
+	    }
+	else
+	    {
+	    CleanupStack::Pop();
+	    }
+	
+	const HBufC16* testString2 = _L("TestString2").AllocLC();
+	TInt err2 = stringArray2.Append(testString2);
+	if (err2 != KErrNone)
+	    {
+	    CleanupStack::PopAndDestroy();
+	    }
+	else
+	    {
+	    CleanupStack::Pop();
+	    }
+    params5->AddStringArrayL(_L("key3"), stringArray2);
+    params5->AddIntArrayL(_L("key4"), intArray2);
+    
+	CBufFlat* externalizedBuffer = CBufFlat::NewL(150);
+	CleanupStack::PushL(externalizedBuffer);
+	
+	RBufWriteStream writeStream(*externalizedBuffer);
+	CleanupClosePushL(writeStream);
+	
+	params5->ExternalizeL(writeStream);
+	
+	COpaqueNamedParams* params6 = COpaqueNamedParams::NewLC();
+	
+	RBufReadStream readStream(*externalizedBuffer);
+	CleanupClosePushL(readStream);
+	params6->InternalizeL(readStream);
+	
+    if(params6->IntByNameL(_L("key2"))!= 23 || (params6->StringByNameL(_L("key1")) != _L("TestString")))
+        {
+        INFO_PRINTF1(_L("TestOpaqueNamedParamsL: Internalize of int and string failed."));
+        User::Leave(err);
+        } 
+    
+    const RArray<TInt>& internalizedIntArray = params6->IntArrayByNameL(_L("key4"));
+    
+    if(internalizedIntArray[0] != 100 && internalizedIntArray[1] != 200)
+        {
+        INFO_PRINTF1(_L("TestOpaqueNamedParamsL: Internalize of int array failed."));
+        User::Leave(err);
+        }   
+	
+    const RPointerArray<HBufC>& internalizedStringArray = params6->StringArrayByNameL(_L("key3"));
+    
+    if (err1 == KErrNone)
+        {
+        if(*internalizedStringArray[0] != _L("TestString1") && *internalizedStringArray[1] != _L("TestString2"))
+            {
+            INFO_PRINTF1(_L("TestOpaqueNamedParamsL: Internalize of string array failed."));
+            User::Leave(err);
+            }
+        }
+    else if (err2 == KErrNone)
+        {
+        if(*internalizedStringArray[0] != _L("TestString2"))
+            {
+            INFO_PRINTF1(_L("TestOpaqueNamedParamsL: Internalize of string array failed."));
+            User::Leave(err);
+            }
+        }
+    
+    CleanupStack::PopAndDestroy(8, params5);
+	
 	}
--- a/installationservices/swinstallationfw/test/tusif/source/tsifnotifierteststep.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swinstallationfw/test/tusif/source/tsifnotifierteststep.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -258,7 +258,7 @@
         INFO_PRINTF2(_L("Icon Path : %S"),  &aStartData.IconPath());
         INFO_PRINTF2(_L("Component Icon : %S"),  &aStartData.ComponentIcon());
         INFO_PRINTF2(_L("Software Type: %S"),  &aStartData.SoftwareType());
-        
+        INFO_PRINTF2(_L("Operation Phase : %d"), (TInt)aStartData.OperationPhase());
         
         }
     }
@@ -340,7 +340,7 @@
         INFO_PRINTF2(_L("Global Component Id : %S"),  &aProgressData.GlobalComponentId());
         INFO_PRINTF2(_L("Phase : %d"),  (TInt)aProgressData.Phase());
         INFO_PRINTF2(_L("Sub Phase : %d"),  (TInt)aProgressData.SubPhase());
-        INFO_PRINTF2(_L("Current Progress : %d"),  aProgressData.CurrentProgess());
+        INFO_PRINTF2(_L("Current Progress : %d"),  aProgressData.CurrentProgress());
         INFO_PRINTF2(_L("Total Value : %d"),  aProgressData.Total());
         
         }
@@ -418,6 +418,7 @@
 		TInt appNameCount =0;
 		TInt appIconCount =0;
 		TInt compSize = 0;
+		TInt phase = 0;
 		GetStringFromConfig(*configsection,KGlobalCompId, globalCompId);
 		GetStringFromConfig(*configsection,KComponentName, compName);
 		GetStringFromConfig(*configsection,KComponentIcon, compIcon);
@@ -453,8 +454,10 @@
 		GetIntFromConfig(*configsection, KComponentSize, compSize);
 		GetStringFromConfig(*configsection, KIconPath, iconPath);
 		GetStringFromConfig(*configsection, KSoftwareType, softwareType);
+		GetIntFromConfig(*configsection, KPhase, phase);
 
-        CSifOperationStartData* startdata = CSifOperationStartData::NewLC(globalCompId, compName, appNameArray, appIconArray, compSize, iconPath, compIcon, softwareType);
+		TSifOperationPhase enumPhase = static_cast<TSifOperationPhase>(phase);
+        CSifOperationStartData* startdata = CSifOperationStartData::NewLC(globalCompId, compName, appNameArray, appIconArray, compSize, iconPath, compIcon, softwareType, enumPhase);
         iPublisher->PublishStartL(*startdata);   
         CleanupStack::PopAndDestroy(3, &appNameArray);
         }
--- a/installationservices/switestfw/test/autotesting/apr_bld.inf	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/switestfw/test/autotesting/apr_bld.inf	Wed Aug 18 09:55:45 2010 +0300
@@ -30,7 +30,7 @@
 #ifndef TOOLS2
 // Disable everything except sistools and security_tools for TOOLS2 target
 
-
+#include "mw/appinstall/installationservices/swi/group/export/group/bld.inf"
 #include "mw/appinstall/installationservices/switestfw/group/bld.inf"
 
 #include "mw/appinstall/installationservices/swiconfig/group/bld.inf"
--- a/installationservices/switestfw/test/autotesting/runswiromtests_9.6.bat	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/switestfw/test/autotesting/runswiromtests_9.6.bat	Wed Aug 18 09:55:45 2010 +0300
@@ -27,7 +27,7 @@
 testexecute z:\tswi\tuiscriptadaptors\scripts\tsilent_h2.script
 
 REM Run test
-testexecute z:\tswi\tuiscriptadaptors\scripts\tswidaemonstub_h2.script
+REM testexecute z:\tswi\tuiscriptadaptors\scripts\tswidaemonstub_h2.script
 
 REM Run test
 testexecute z:\tswi\tuiscriptadaptors\scripts\inc098114_h2.script
@@ -52,7 +52,7 @@
 
 # Save Silent Install, cleanupinfrastructure and tpropagation test results
 move c:\logs\testexecute\tsilent_h2.htm e:\testresults\tsilent_h2.htm
-move c:\logs\testexecute\tswidaemonstub_h2.htm e:\testresults\tswidaemonstub_h2.htm
+REM move c:\logs\testexecute\tswidaemonstub_h2.htm e:\testresults\tswidaemonstub_h2.htm
 move c:\logs\testexecute\inc098114_h2.htm e:\testresults\inc098114_h2.htm
 move c:\logs\testexecute\tcleanupinfrastructure.htm e:\testresults\tcleanupinfrastructure.htm
 move c:\logs\testexecute\tpropagation_arm.htm e:\testresults\tpropagation_arm.htm
@@ -143,8 +143,8 @@
 testexecute z:\tswi\trevocation\scripts\trevocation.script
 move c:\logs\testexecute\trevocation.htm e:\testresults\trevocation.htm
 
-testexecute z:\tswi\tdaemon\scripts\tdaemon.script
-move c:\logs\testexecute\tdaemon.htm e:\testresults\tdaemon.htm
+REM testexecute z:\tswi\tdaemon\scripts\tdaemon.script
+REM move c:\logs\testexecute\tdaemon.htm e:\testresults\tdaemon.htm
 
 testexecute z:\tswi\tuiscriptadaptors\scripts\testlocations.script
 move c:\logs\testexecute\testlocations.htm e:\testresults\testlocations.htm
--- a/installationservices/switestfw/test/autotesting/test_spec_apr_9.5.txt	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/switestfw/test/autotesting/test_spec_apr_9.5.txt	Wed Aug 18 09:55:45 2010 +0300
@@ -107,7 +107,7 @@
 
 TESTEXECUTE, \logs\testexecute\testwritableswicertstore.htm,, -Dstartupmode=1 -- \tswi\tuiscriptadaptors\scripts\testwritableswicertstore.script, 300, UDEB#UREL, \epoc32\winscw\c\tswi\tuiscriptadaptors\scripts\batchfiles\copytuiscriptadaptors.bat, \epoc32\winscw\c\tswi\tuiscriptadaptors\scripts\batchfiles\cleanswicertstore.bat
 TESTEXECUTE, \logs\testexecute\tsilent_winscw.htm,, \tswi\tuiscriptadaptors\scripts\tsilent_winscw.script, 300, UDEB#UREL, \epoc32\winscw\c\tswi\tuiscriptadaptors\scripts\batchfiles\copytuiscriptadaptors.bat, \epoc32\winscw\c\tswi\tuiscriptadaptors\scripts\batchfiles\cleanswicertstore.bat
-TESTEXECUTE, \logs\testexecute\tswidaemonstub.htm,, \tswi\tuiscriptadaptors\scripts\tswidaemonstub.script, 300, UDEB#UREL,,
+#TESTEXECUTE, \logs\testexecute\tswidaemonstub.htm,, \tswi\tuiscriptadaptors\scripts\tswidaemonstub.script, 300, UDEB#UREL,,
 TESTEXECUTE, \logs\testexecute\inc098114_winscw.htm,, \tswi\tuiscriptadaptors\scripts\inc098114_winscw.script, 300, UDEB#UREL, \epoc32\winscw\c\tswi\tuiscriptadaptors\scripts\batchfiles\copytuiscriptadaptors.bat
 TESTEXECUTE, \logs\testexecute\tcleanupinfrastructure.htm,, \tswi\tuiscriptadaptors\scripts\tcleanupinfrastructure.script, 300, UDEB#UREL,\epoc32\winscw\c\tswi\tuiscriptadaptors\scripts\batchfiles\tcleanupinfrastructure_pre.bat, \epoc32\winscw\c\tswi\tuiscriptadaptors\scripts\batchfiles\tcleanupinfrastructure_post.bat
 
@@ -149,6 +149,8 @@
 
 TESTEXECUTE, \logs\testexecute\testnoaiacert_ocspmandatory.htm,, \tswi\tuiscriptadaptors\scripts\testnoaiacert_ocspmandatory.script, 100, UDEB#UREL, \epoc32\winscw\c\tswi\tuiscriptadaptors\scripts\batchfiles\testnoaiacert_ocspmandatory_pre.bat, \epoc32\winscw\c\tswi\tuiscriptadaptors\scripts\batchfiles\testnoaiacert_ocspmandatory_post.bat
 
+#TESTEXECUTE, \logs\testexecute\tdaemon_winscw.htm,, \tswi\tdaemon\scripts\tdaemon_winscw.script, 300, UDEB#UREL, \epoc32\winscw\c\tswi\tdaemon\scripts\setupforemmcformat_pre.bat, \epoc32\winscw\c\tswi\tdaemon\scripts\setupforemmcformat_post.bat
+
 TESTEXECUTE, \logs\testexecute\testrun.htm,, \tswi\tuiscriptadaptors\scripts\testrun.script, 300, UDEB#UREL, %SECURITYSOURCEDIR%\installationservices\switestfw\test\autotesting\setupSwiPolicy.bat swipolicy_shortrunwait.ini, %SECURITYSOURCEDIR%\installationservices\switestfw\test\autotesting\setupSwiPolicy.bat swipolicy.ini
 TESTEXECUTE, \logs\testexecute\testrunft.htm,, -Dstartupmode=1 -- \tswi\tuiscriptadaptors\scripts\testrunft.script, 300, UDEB#UREL, %SECURITYSOURCEDIR%\installationservices\switestfw\test\autotesting\setupSwiPolicy.bat swipolicy_shortrunwait.ini,
 
@@ -171,11 +173,12 @@
 TESTEXECUTE, \logs\testexecute\devcerts_restore.htm,, -Dstartupmode=1 -- \tswi\tdevcerts\scripts\devcerts_restore.script, 300, UDEB#UREL, %SECURITYSOURCEDIR%\installationservices\switestfw\test\autotesting\changedevid.bat, \epoc32\winscw\c\tswi\tdevcerts\scripts\batchfiles\devcerts_restore_post.bat
 
 TESTEXECUTE, \logs\testexecute\tsisregistrytest.htm,, -Dstartupmode=1 -- \tswi\tsisregistrytest\scripts\tsisregistrytest.script, 1500, UDEB#UREL, %SECURITYSOURCEDIR%\installationservices\switestfw\test\autotesting\useautocfg.bat, \epoc32\winscw\c\tswi\tsisregistrytest\Scripts\batchfiles\tsisregistrytest_post.bat
+TESTEXECUTE, \logs\testexecute\tsisregistrytest_tcb.htm,, -Dstartupmode=1 -- \tswi\tsisregistrytest\scripts\tsisregistrytest_tcb.script, 1500, UDEB#UREL, \epoc32\winscw\c\tswi\tsisregistrytest\scripts\batchfiles\tsisregistrytest_tcb_pre.bat, \epoc32\winscw\c\tswi\tsisregistrytest\scripts\batchfiles\tsisregistrytest_tcb_post.bat
 
 TESTEXECUTE, \logs\testexecute\testdevicelanguages.htm,, \tswi\tuiscriptadaptors\scripts\testdevicelanguages.script, 300, UDEB#UREL,,
 
 TESTEXECUTE, \logs\testexecute\testVFPOnEmulator.htm,, -Dstartupmode=1 -- \tswi\tuiscriptadaptors\scripts\testVFPOnEmulator.script, 300, UDEB#UREL,,
-TESTEXECUTE, \logs\testexecute\tdaemon.htm,, -Dstartupmode=1 -- \tswi\tdaemon\scripts\tdaemon.script, 300, UDEB#UREL,, %SECURITYSOURCEDIR%\installationservices\switestfw\test\autotesting\callcreateandsignunicode.bat
+#TESTEXECUTE, \logs\testexecute\tdaemon.htm,, -Dstartupmode=1 -- \tswi\tdaemon\scripts\tdaemon.script, 300, UDEB#UREL,, %SECURITYSOURCEDIR%\installationservices\switestfw\test\autotesting\callcreateandsignunicode.bat
 
 # createandsignunicode.pl needs to be run as it builds some SIS files the following tests rely on, however it is a SisTools test so it is run through a batch file and the results not recorded here
 TESTEXECUTE, \logs\testexecute\tbackuprestore.htm,, -Dstartupmode=1 -- \tswi\tbackuprestore\scripts\tbackuprestore.script, 1500, UDEB#UREL,\epoc32\winscw\c\tswi\tbackuprestore\scripts\batchfiles\tbackuprestore_pre.bat, \epoc32\winscw\c\tswi\tbackuprestore\scripts\batchfiles\tbackuprestore_post.bat
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/group/bld.inf	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,78 @@
+/*
+* Copyright (c) 2002-2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+* Generic technology part of test framework security subsystem
+*
+*/
+
+
+
+/**
+ @file
+ @internalComponent
+*/
+
+ 
+PRJ_TESTEXPORTS
+// Export certificates for security tests. 
+// Note that these certificates should not appear in a CBR and are not included in the source directives in the mrp file.
+
+
+// SWI Component
+../swi/test/trevocation/ocsp/expressandcertifiedsignedCert/CaCert/swicertstore.dat /epoc32/winscw/c/tswi/trevocation/swicertstore.dat
+../swi/pctools/test/tdumpcertstore/certificates/sucert.der /epoc32/winscw/c/tswi/tdumpcertstore/certificates/sucert.der
+../swi/pctools/test/tdumpcertstore/certificates/root5ca.der /epoc32/winscw/c/tswi/tdumpcertstore/certificates/root5ca.der
+../swi/pctools/test/tdumpcertstore/certificates/second.der /epoc32/winscw/c/tswi/tdumpcertstore/certificates/second.der
+../swi/pctools/test/tdumpcertstore/certificates/symbian-test-chain-rsa.der /epoc32/winscw/c/tswi/tdumpcertstore/certificates/symbian-test-chain-rsa.der
+../swi/pctools/test/tdumpcertstore/certificates/symbian-test-dsa.der /epoc32/winscw/c/tswi/tdumpcertstore/certificates/symbian-test-dsa.der
+../swi/pctools/test/tdumpcertstore/certificates/symbian-test-expired-rsa.der /epoc32/winscw/c/tswi/tdumpcertstore/certificates/symbian-test-expired-rsa.der
+../swi/pctools/test/tdumpcertstore/certificates/symbian-test-rsa.der /epoc32/winscw/c/tswi/tdumpcertstore/certificates/symbian-test-rsa.der
+../swi/pctools/test/tdumpcertstore/certificates/symbian-test-tcb-rsa.der /epoc32/winscw/c/tswi/tdumpcertstore/certificates/symbian-test-tcb-rsa.der
+../swi/pctools/test/tdumpcertstore/certificates/symbiantestrootcadiffserial.der /epoc32/winscw/c/tswi/tdumpcertstore/certificates/symbiantestrootcadiffserial.der
+../swi/pctools/test/tdumpcertstore/certificates/symbiantestrsaca.der /epoc32/winscw/c/tswi/tdumpcertstore/certificates/symbiantestrsaca.der
+../swi/sistools/test/tinterpretsis/certs/default.cer /epoc32/winscw/c/tswi/tinterpretsis/certs/default.cer
+../swi/sistools/test/tinterpretsis/certs/signing.cer /epoc32/winscw/c/tswi/tinterpretsis/certs/signing.cer
+../swi/sistools/test/tsignsis/kanji_cer.cer 		/epoc32/winscw/c/tswi/tsignsis/kanji_cer.cer
+../swi/sistools/test/tinterpretsisinteg/testdatah004/cert-gen.cer /epoc32/winscw/c/tswi/tinterpretsisinteg/testdatah004/cert-gen.cer
+../swi/test/tsisfile/data/files/default.cer							/epoc32/winscw/c/tswi/tsignsis/default.cer
+../swi/sistools/test/tsignsis/signingdata/emptylinescert.key.pem /epoc32/winscw/c/tswi/tsignsis/signingdata/emptylinescert.key.pem
+../swi/sistools/test/tsignsis/signingdata/emptylinescert.pem /epoc32/winscw/c/tswi/tsignsis/signingdata/emptylinescert.pem
+../swi/sistools/test/tsignsis/signingdata/good-r5.key.pem /epoc32/winscw/c/tswi/tsignsis/signingdata/good-r5.key.pem
+../swi/sistools/test/tsignsis/signingdata/good-r5.pem /epoc32/winscw/c/tswi/tsignsis/signingdata/good-r5.pem
+../swi/sistools/test/tinterpretsisinteg/testdatah004/good-r5.key.pem /epoc32/winscw/c/tswi/tinterpretsisinteg/testdatah004/good-r5.key.pem
+../swi/sistools/test/tinterpretsisinteg/testdatah004/good-r5.pem /epoc32/winscw/c/tswi/tinterpretsisinteg/testdatah004/good-r5.pem
+../swi/sistools/test/tinterpretsisinteg/testdatai001/good-r5.key.pem /epoc32/winscw/c/tswi/tinterpretsisinteg/testdatai001/good-r5.key.pem
+../swi/sistools/test/tinterpretsisinteg/testdatai001/good-r5.pem /epoc32/winscw/c/tswi/tinterpretsisinteg/testdatai001/good-r5.pem
+../swi/sistools/test/tinterpretsisinteg/testdatai002/good-r5.key.pem /epoc32/winscw/c/tswi/tinterpretsisinteg/testdatai002/good-r5.key.pem
+../swi/sistools/test/tinterpretsisinteg/testdatai002/good-r5.pem /epoc32/winscw/c/tswi/tinterpretsisinteg/testdatai002/good-r5.pem
+../swi/sistools/test/tinterpretsisinteg/testdatai003/good-r5.key.pem /epoc32/winscw/c/tswi/tinterpretsisinteg/testdatai003/good-r5.key.pem
+../swi/sistools/test/tinterpretsisinteg/testdatai003/good-r5.pem /epoc32/winscw/c/tswi/tinterpretsisinteg/testdatai003/good-r5.pem
+../swi/sistools/test/tinterpretsisinteg/testdataj001/good-r5.key.pem /epoc32/winscw/c/tswi/tinterpretsisinteg/testdataj001/good-r5.key.pem
+../swi/sistools/test/tinterpretsisinteg/testdataj001/good-r5.pem /epoc32/winscw/c/tswi/tinterpretsisinteg/testdataj001/good-r5.pem
+../swi/sistools/test/tinterpretsisinteg/testdataj002/good-r5.key.pem /epoc32/winscw/c/tswi/tinterpretsisinteg/testdataj002/good-r5.key.pem
+../swi/sistools/test/tinterpretsisinteg/testdataj002/good-r5.pem /epoc32/winscw/c/tswi/tinterpretsisinteg/testdataj002/good-r5.pem
+../swi/sistools/test/tinterpretsisinteg/testdataj003/good-r5.key.pem /epoc32/winscw/c/tswi/tinterpretsisinteg/testdataj003/good-r5.key.pem
+../swi/sistools/test/tinterpretsisinteg/testdataj003/good-r5.pem /epoc32/winscw/c/tswi/tinterpretsisinteg/testdataj003/good-r5.pem
+../swi/sistools/test/tinterpretsisinteg/testdataj004/good-r5.key.pem /epoc32/winscw/c/tswi/tinterpretsisinteg/testdataj004/good-r5.key.pem
+../swi/sistools/test/tinterpretsisinteg/testdataj004/good-r5.pem /epoc32/winscw/c/tswi/tinterpretsisinteg/testdataj004/good-r5.pem
+../swi/sistools/test/tinterpretsisinteg/testdataj005/good-r5.key.pem /epoc32/winscw/c/tswi/tinterpretsisinteg/testdataj005/good-r5.key.pem
+../swi/sistools/test/tinterpretsisinteg/testdataj005/good-r5.pem /epoc32/winscw/c/tswi/tinterpretsisinteg/testdataj005/good-r5.pem
+../swi/sistools/test/tinterpretsisinteg/testdataj006/good-r5.key.pem /epoc32/winscw/c/tswi/tinterpretsisinteg/testdataj006/good-r5.key.pem
+../swi/sistools/test/tinterpretsisinteg/testdataj006/good-r5.pem /epoc32/winscw/c/tswi/tinterpretsisinteg/testdataj006/good-r5.pem
+../swi/sistools/test/tinterpretsisinteg/testdataj007/good-r5.key.pem /epoc32/winscw/c/tswi/tinterpretsisinteg/testdataj007/good-r5.key.pem
+../swi/sistools/test/tinterpretsisinteg/testdataj007/good-r5.pem /epoc32/winscw/c/tswi/tinterpretsisinteg/testdataj007/good-r5.pem
+../swi/sistools/test/tinterpretsisinteg/testdataj008/good-r5.key.pem /epoc32/winscw/c/tswi/tinterpretsisinteg/testdataj008/good-r5.key.pem
+../swi/sistools/test/tinterpretsisinteg/testdataj008/good-r5.pem /epoc32/winscw/c/tswi/tinterpretsisinteg/testdataj008/good-r5.pem
+ 
+
Binary file installationservices/switestfw/testcertificates/swi/pctools/test/tdumpcertstore/certificates/first.der has changed
Binary file installationservices/switestfw/testcertificates/swi/pctools/test/tdumpcertstore/certificates/root5ca.der has changed
Binary file installationservices/switestfw/testcertificates/swi/pctools/test/tdumpcertstore/certificates/sucert.der has changed
Binary file installationservices/switestfw/testcertificates/swi/pctools/test/tdumpcertstore/certificates/symbian-test-chain-rsa.der has changed
Binary file installationservices/switestfw/testcertificates/swi/pctools/test/tdumpcertstore/certificates/symbian-test-dsa.der has changed
Binary file installationservices/switestfw/testcertificates/swi/pctools/test/tdumpcertstore/certificates/symbian-test-expired-rsa.der has changed
Binary file installationservices/switestfw/testcertificates/swi/pctools/test/tdumpcertstore/certificates/symbian-test-rsa.der has changed
Binary file installationservices/switestfw/testcertificates/swi/pctools/test/tdumpcertstore/certificates/symbian-test-tcb-rsa.der has changed
Binary file installationservices/switestfw/testcertificates/swi/pctools/test/tdumpcertstore/certificates/symbiantestrootcadiffserial.der has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/pctools/test/tdumpcertstore/certificates/symbiantestrsaca.der	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICRDCCAa2gAwIBAgIBADANBgkqhkiG9w0BAQQFADA8MR0wGwYDVQQKExRTeW1i
+aWFuIFNvZnR3YXJlIEx0ZDEbMBkGA1UEAxMSU3ltYmlhbiBUZXN0IC0gUlNBMB4X
+DTA0MDQxODE0MzYxNFoXDTIwMDkyMTE0MzYxNFowPDEdMBsGA1UEChMUU3ltYmlh
+biBTb2Z0d2FyZSBMdGQxGzAZBgNVBAMTElN5bWJpYW4gVGVzdCAtIFJTQTCBnzAN
+BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAoVRBvn0k7DfHX9O1AwbMRlGTuQfXoFba
+E+g6N4g9VtC8ADrj7O+C6UETIERVqbqInDJRDKGkyGfxj4ush4QuwjyRC5bwVtU1
+4G78zHYVL2nA8lCh42DIJCBePrdTs4h+nCgDdiNB/51mtZueGJmMlNnDQCN2kpLi
+KgT7/tAf14ECAwEAAaNWMFQwDgYDVR0PAQH/BAQDAgIEMBIGA1UdEwEB/wQIMAYB
+Af8CAQUwHQYDVR0OBBYEFOaTjrYQFlD8GQSM5KnKMYYmBZLWMA8GCSsGAQUFBzAB
+BQQCBQAwDQYJKoZIhvcNAQEEBQADgYEALXOi9zFgWw453UGQvw0HGNh6wemX2Ood
+pKceGDWyWFaQIxTA9dYVSqnhKWa728UklUi0CcRwp3leYHlvubkcSQANmRtM05PS
+kY2a2ENBf9afB/HNvOciFgGoHa494csZZ6ZS2GeKBxBOfajrjZrvQ3XDKptsRT1q
+50LsYyJhSg4=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/sistools/test/tinterpretsis/certs/default.cer	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDBDCCAsSgAwIBAgIBADAJBgcqhkjOOAQDMGkxCzAJBgNVBAYTAkdCMRkwFwYD
+VQQKExBTeW1iaWFuIFNvZnR3YXJlMRkwFwYDVQQLExBDb3JlIERldmVsb3BtZW50
+MSQwIgYDVQQDExtEZWZhdWx0IFNpZ25pbmcgQ2VydGlmaWNhdGUwHhcNMDYwMjAy
+MTExNTI0WhcNMTYwMjAyMTExNTI0WjBpMQswCQYDVQQGEwJHQjEZMBcGA1UEChMQ
+U3ltYmlhbiBTb2Z0d2FyZTEZMBcGA1UECxMQQ29yZSBEZXZlbG9wbWVudDEkMCIG
+A1UEAxMbRGVmYXVsdCBTaWduaW5nIENlcnRpZmljYXRlMIIBtzCCASsGByqGSM44
+BAEwggEeAoGBALnfndoLyYr7KxvNenPJnEHXjw2/5A2sSgPqAS9Fa4za5O56V0Y8
+z5QcxL7PgzbhPPnPuzuxt2dZKKdWdCcls5YdB0acanKoMEgT6NmNxUxhSwvDlQBT
+dEujcdULpEZI+y/lTJLJZrh8Ak6e7FeXJEPMska56oeamvvyp2Dfz7y7AhUA7HTW
+0hQzOLdU0EoVF8LoFfp4CH0CgYBwo0ieIVUa35CUbpgkpG0EBJQbW3rSOvr1ATSZ
+qwzamHyqeVNqfv1ZMerpeikowFejifFFy7LJfgizgWlK2Z2Vw5Mp2900VJWIdvYZ
+g+QeLFqitMqjvhmhVgJYYWIjHj/w4QB6prEBW92ZfbRjW82g6WgfNQm7eY0XiJv0
+vBLf/AOBhQACgYEAg+0/wVe+LY9ZEB4HOL8y9Jl3vA7P8cqHPpr8ZuDgrAjVsXAk
+kjnvI/e86jUDUKnlWj/of+xCBwpTa/PYvdWHndBbRLm2XPgz3aFZLqgz7oMMUJwH
+f2qeqatOLfjY2SfgQwcqzY4T4Sbj/U7D89oLCCm3qizfn2MfIagivB5B9oYwCQYH
+KoZIzjgEAwMvADAsAhRCrW9kWjeAzf+NT2h2Ru+iMRqYkgIUVJghz8UIi17lFGod
+pBqu3ZY+1+I=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/sistools/test/tinterpretsis/certs/signing.cer	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICaTCCAdICAQIwDQYJKoZIhvcNAQEEBQAwMzEdMBsGA1UEChMUU3ltYmlhbiBT
+b2Z0d2FyZSBMdGQxEjAQBgNVBAMTCVJvb3Q1LVJTQTAeFw0wNDA5MDEwOTM3MzZa
+Fw0xNDA4MzAwOTM3MzZaMHYxCzAJBgNVBAYTAlVLMQ8wDQYDVQQHEwZMb25kb24x
+GDAWBgNVBAMTD0pvaGFuIEdyb3RoIERTQTEUMBIGA1UEChMLU3ltYmlhbiBMdGQx
+JjAkBgkqhkiG9w0BCQEWF2pvaGFuLmdyb3RoQHN5bWJpYW4uY29tMIHwMIGoBgcq
+hkjOOAQBMIGcAkEAoZlsMI7fbUusygPAuy5rVKeYjHlFFBAI3Fm4/vRvz6AIXG/t
+i8PRr/di3HmpKzf4+nrpfrMDsHVEBZJvs12NKwIVALrQ4ij0GHpmhKPsUcL5Ur0M
+bUrlAkAwaCcVcQMsoYnZ7WGomaNH4XqkJ/Eo4ODM51syfG1u0ALTHqUvnX8EvhaK
+KAiRKTTvlWcEyUE1ViUpemt+Sv4MA0MAAkBuSEJNaOv4REzZSUPbUetl6e/886Dz
+l/PsC+2D9j583shY81TX1xtjQyuII/WTsZEc+HBvhHjnPDI5xzZNDbPsMA0GCSqG
+SIb3DQEBBAUAA4GBAHAPL48ztI+jfpNr+eQA/VOUg6ChgsoUQu2TVFo9tew/Cfrt
+ViqozDiVU4YGeGGNrTI19r9mTuI4xEbHwANxArNBtZvlN+Peu/ynqcYOcOV+RvV0
+cNeiKaguT71nzJJxlN/S+IX8+32LDvk/5FS2vJ5abaVc+WEV2/wZn4bPWqS/
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdatah004/cert-gen.cer	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDZzCCAyWgAwIBAgIBATAJBgcqhkjOOAQDMIGZMYGFMIGCBgNVBAMTe3RydXN0
+b2tmNDEwMzhiOTgyMDcxOGQzZTQzZTAzNTViOTRjNjhkODA2MjNlZjY3MWVmN2Rj
+ZmQzNDNiNTk0ZDM3OTA5MGZkMmY2YzBlMzliMzQ1M2RjZWFhZjA3NWE3ZmUzMDdi
+ZTg2OGViZTA3N2Y1MzcyMTM0ODM5NzEPMA0GA1UEChMGVmVuZG9yMB4XDTA2MTIy
+OTAyNTUwNFoXDTA3MTIyOTAyNTUwNFowgZkxgYUwgYIGA1UEAxN7dHJ1c3Rva2Y0
+MTAzOGI5ODIwNzE4ZDNlNDNlMDM1NWI5NGM2OGQ4MDYyM2VmNjcxZWY3ZGNmZDM0
+M2I1OTRkMzc5MDkwZmQyZjZjMGUzOWIzNDUzZGNlYWFmMDc1YTdmZTMwN2JlODY4
+ZWJlMDc3ZjUzNzIxMzQ4Mzk3MQ8wDQYDVQQKEwZWZW5kb3IwggG2MIIBKwYHKoZI
+zjgEATCCAR4CgYEAjw+6xCz30B2CUULQPgOWNuvJd5E+TxwOTFarxTZrQgXjxQxk
+C3tdWzU/27EnlhKhsmLYkoZYIYmu4acu0RP0MubccQatRvZyn94CXTFLhazgsY2N
+XZ/Y5EIl26e+cEn6V9sGM9QircagwoNKJEV9Uv/ZfWcLo2OKzGR3kFP7L00CFQD+
+WSqy+jMwt+L2AraJSmK3ISzm6QKBgGS5sl0THnVZnVYoY5XEls8aknQCytHZKO9K
+lcMH/G8n2mlvYL6RCXU6t23MN9Op0dw5W26KyZGr76ZYlzQsAMeP2NuaCz7tZC/s
+GKtn/+xwkeQpQ2xgz/eoKOMDvGxMtJL3DbOFC8s7ah18lwxDLrMHv+7B1ZWA/a1e
+O5cSnx8aA4GEAAKBgA5IWF+iYAX3CGoAGdGK3zcugzwBHxHWZCywjOwInSx7/rA6
+nWilAktG0oGbaGGULG3OVwLMPG5V9Dd1EZzmgVKET8+ZXo7NTyMtrZA2DXXxmGnz
+KV0V01g92ORVgilxb9Rokg0qfunsg1+nKvwTpW0jaagWN63FejBnziqLiIz1MAkG
+ByqGSM44BAMDMQAwLgIVAJmvnfkM1Pf6YLhnhkdgbJdbdG1TAhUAxTbK0anUyF2V
+oMzoo9HHaKYUj00=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdatah004/good-r5.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQDWXaGWWZ8cuD14xTTwwOJ0Mye03mjxqiyb5HERi/BhtSJFmsh9
+gC5rtf8vZM7m3mXsQ4scnGFjLReX7aZIXQJfrrhFKZmQCxTWTVURNllBxsCyOG8i
+uHEXppMoNJqWiNQ4+0cpGZQ4tRuvLmT8GKvT9M8NaCzHR6AaV6ClGCl8BQIDAQAB
+AoGBAKjKyTWuFA91M1IpVmpMNwPwU8+jYVcI/F80HaQHYJxPGFFec4f+qo69m9Yh
+tpkrfW3wMVWx/S0ukGldA5XvRrHHGKr3UF8vFayp7fK4pd3kljetKfrvp/EFU43t
+VMMtwt7EVIC7ZQM6CqgA8uhmBuPED1EwKxWR1RRU3BkIW62BAkEA+hbJqPc2KeRi
+pANroqNtJIPL4G/d9LMJHXCc8tAW9K/P4dTEkSnkg8lCveHgb0FKvQ30IsYMCr81
+YOPX8X+dXQJBANtusWChSXjJ7A2si9jXgxrTaSyrtRwmglr/AhM0hOyDwW0rfKSk
+1Ylq3EyAcT3odBb6PdhXKmBTVyxF3s81xskCQFtTDvkArWrG166FAT026Jg4+K5Q
+q4C8EEwL34RbsMZRnVweUlmgLq5hRFoKreZytVQsUEaSg7s478kd6rFppJECQAPY
+AItsx9ix0My8hQabX9SMd38s0tNXaVkmtmaXuOxbsnuzE0/fA06Q7KL6bQFknQP6
+BjNP85IUY6aG4sxGaOECQQCLCaGXZpbB1rjA+KDUqZaaeY3tZG7np4il48plEvPr
+q7yj4ZctfhpTXFtsg6kMJXSRCSeVsTC12UrgaYX7GEwv
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdatah004/good-r5.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,27 @@
+-----BEGIN CERTIFICATE-----
+MIICCTCCAXKgAwIBAgIBAjANBgkqhkiG9w0BAQQFADAzMR0wGwYDVQQKExRTeW1i
+aWFuIFNvZnR3YXJlIEx0ZDESMBAGA1UEAxMJUm9vdDUtUlNBMB4XDTA0MDMwMzE2
+MzQ0NVoXDTE0MDMwMTE2MzQ0NVowMTEdMBsGA1UEChMUU3ltYmlhbiBTb2Z0d2Fy
+ZSBMdGQxEDAOBgNVBAMTB0dvb2QtUjUwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBANZdoZZZnxy4PXjFNPDA4nQzJ7TeaPGqLJvkcRGL8GG1IkWayH2ALmu1/y9k
+zubeZexDixycYWMtF5ftpkhdAl+uuEUpmZALFNZNVRE2WUHGwLI4byK4cRemkyg0
+mpaI1Dj7RykZlDi1G68uZPwYq9P0zw1oLMdHoBpXoKUYKXwFAgMBAAGjLzAtMBMG
+A1UdJQQMMAoGCCsGAQUFBwMDMBYGA1UdIAQPMA0wCwYJKoY6AAHt02sBMA0GCSqG
+SIb3DQEBBAUAA4GBACfm9aZVS9CJKKcIxqmyhnOhNDHhkO/6c0pTM3IUK0QZSSoT
+9gD9+MVfx2IX43+k/ePu4xHeSY/7cJXuWgWW7nVKwk/da96hRcTPM1in6vb03a5O
+CsnC7W9cI65EC2WvxI7htnicYg3XZCE42JHx0OfKYrUfEmkAT7xqUNvW31b7
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICITCCAYqgAwIBAgIBADANBgkqhkiG9w0BAQQFADAzMR0wGwYDVQQKExRTeW1i
+aWFuIFNvZnR3YXJlIEx0ZDESMBAGA1UEAxMJUm9vdDUtUlNBMB4XDTA0MDMwMzE2
+MzQ0MloXDTE0MDMwMTE2MzQ0MlowMzEdMBsGA1UEChMUU3ltYmlhbiBTb2Z0d2Fy
+ZSBMdGQxEjAQBgNVBAMTCVJvb3Q1LVJTQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAw
+gYkCgYEAufV5zRvgR/ohzfb8AizbLePxK7QfBOuTtwy70/ifZCP5aZMri6DgObYM
+Jwh4lChQ+UnQgMX9sRP1kWZ6UEbrhm7oUz7keI6wu4m4myYmMjY3nc+7T/std+o/
+Vzt/bSyLNYpAqUW50g46SL1lof8fXKGkqFRH42czeMUwqnEffRsCAwEAAaNFMEMw
+DgYDVR0PAQH/BAQDAgIEMBIGA1UdEwEB/wQIMAYBAf8CAQUwHQYDVR0OBBYEFHzj
+BilRFiByFNQlr/0YW21eSK9vMA0GCSqGSIb3DQEBBAUAA4GBACEv1s039YBNfVn/
+dxZm+1XDLmrm6Of5p3SjBz94osLV+cNsddP5W+jmdtEL2u+x33foGFPOkDyFFnIW
+gkFVfAKKCH70K2liJWDS5D+mu32zU8Kc/JF0musvKZ/EbuddJS+x7t7kBl4fFgr1
+0/AO8YOgD1AV55Z9Bjf1lTTHZMcX
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdatai001/good-r5.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQDWXaGWWZ8cuD14xTTwwOJ0Mye03mjxqiyb5HERi/BhtSJFmsh9
+gC5rtf8vZM7m3mXsQ4scnGFjLReX7aZIXQJfrrhFKZmQCxTWTVURNllBxsCyOG8i
+uHEXppMoNJqWiNQ4+0cpGZQ4tRuvLmT8GKvT9M8NaCzHR6AaV6ClGCl8BQIDAQAB
+AoGBAKjKyTWuFA91M1IpVmpMNwPwU8+jYVcI/F80HaQHYJxPGFFec4f+qo69m9Yh
+tpkrfW3wMVWx/S0ukGldA5XvRrHHGKr3UF8vFayp7fK4pd3kljetKfrvp/EFU43t
+VMMtwt7EVIC7ZQM6CqgA8uhmBuPED1EwKxWR1RRU3BkIW62BAkEA+hbJqPc2KeRi
+pANroqNtJIPL4G/d9LMJHXCc8tAW9K/P4dTEkSnkg8lCveHgb0FKvQ30IsYMCr81
+YOPX8X+dXQJBANtusWChSXjJ7A2si9jXgxrTaSyrtRwmglr/AhM0hOyDwW0rfKSk
+1Ylq3EyAcT3odBb6PdhXKmBTVyxF3s81xskCQFtTDvkArWrG166FAT026Jg4+K5Q
+q4C8EEwL34RbsMZRnVweUlmgLq5hRFoKreZytVQsUEaSg7s478kd6rFppJECQAPY
+AItsx9ix0My8hQabX9SMd38s0tNXaVkmtmaXuOxbsnuzE0/fA06Q7KL6bQFknQP6
+BjNP85IUY6aG4sxGaOECQQCLCaGXZpbB1rjA+KDUqZaaeY3tZG7np4il48plEvPr
+q7yj4ZctfhpTXFtsg6kMJXSRCSeVsTC12UrgaYX7GEwv
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdatai001/good-r5.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,27 @@
+-----BEGIN CERTIFICATE-----
+MIICCTCCAXKgAwIBAgIBAjANBgkqhkiG9w0BAQQFADAzMR0wGwYDVQQKExRTeW1i
+aWFuIFNvZnR3YXJlIEx0ZDESMBAGA1UEAxMJUm9vdDUtUlNBMB4XDTA0MDMwMzE2
+MzQ0NVoXDTE0MDMwMTE2MzQ0NVowMTEdMBsGA1UEChMUU3ltYmlhbiBTb2Z0d2Fy
+ZSBMdGQxEDAOBgNVBAMTB0dvb2QtUjUwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBANZdoZZZnxy4PXjFNPDA4nQzJ7TeaPGqLJvkcRGL8GG1IkWayH2ALmu1/y9k
+zubeZexDixycYWMtF5ftpkhdAl+uuEUpmZALFNZNVRE2WUHGwLI4byK4cRemkyg0
+mpaI1Dj7RykZlDi1G68uZPwYq9P0zw1oLMdHoBpXoKUYKXwFAgMBAAGjLzAtMBMG
+A1UdJQQMMAoGCCsGAQUFBwMDMBYGA1UdIAQPMA0wCwYJKoY6AAHt02sBMA0GCSqG
+SIb3DQEBBAUAA4GBACfm9aZVS9CJKKcIxqmyhnOhNDHhkO/6c0pTM3IUK0QZSSoT
+9gD9+MVfx2IX43+k/ePu4xHeSY/7cJXuWgWW7nVKwk/da96hRcTPM1in6vb03a5O
+CsnC7W9cI65EC2WvxI7htnicYg3XZCE42JHx0OfKYrUfEmkAT7xqUNvW31b7
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICITCCAYqgAwIBAgIBADANBgkqhkiG9w0BAQQFADAzMR0wGwYDVQQKExRTeW1i
+aWFuIFNvZnR3YXJlIEx0ZDESMBAGA1UEAxMJUm9vdDUtUlNBMB4XDTA0MDMwMzE2
+MzQ0MloXDTE0MDMwMTE2MzQ0MlowMzEdMBsGA1UEChMUU3ltYmlhbiBTb2Z0d2Fy
+ZSBMdGQxEjAQBgNVBAMTCVJvb3Q1LVJTQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAw
+gYkCgYEAufV5zRvgR/ohzfb8AizbLePxK7QfBOuTtwy70/ifZCP5aZMri6DgObYM
+Jwh4lChQ+UnQgMX9sRP1kWZ6UEbrhm7oUz7keI6wu4m4myYmMjY3nc+7T/std+o/
+Vzt/bSyLNYpAqUW50g46SL1lof8fXKGkqFRH42czeMUwqnEffRsCAwEAAaNFMEMw
+DgYDVR0PAQH/BAQDAgIEMBIGA1UdEwEB/wQIMAYBAf8CAQUwHQYDVR0OBBYEFHzj
+BilRFiByFNQlr/0YW21eSK9vMA0GCSqGSIb3DQEBBAUAA4GBACEv1s039YBNfVn/
+dxZm+1XDLmrm6Of5p3SjBz94osLV+cNsddP5W+jmdtEL2u+x33foGFPOkDyFFnIW
+gkFVfAKKCH70K2liJWDS5D+mu32zU8Kc/JF0musvKZ/EbuddJS+x7t7kBl4fFgr1
+0/AO8YOgD1AV55Z9Bjf1lTTHZMcX
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdatai002/good-r5.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQDWXaGWWZ8cuD14xTTwwOJ0Mye03mjxqiyb5HERi/BhtSJFmsh9
+gC5rtf8vZM7m3mXsQ4scnGFjLReX7aZIXQJfrrhFKZmQCxTWTVURNllBxsCyOG8i
+uHEXppMoNJqWiNQ4+0cpGZQ4tRuvLmT8GKvT9M8NaCzHR6AaV6ClGCl8BQIDAQAB
+AoGBAKjKyTWuFA91M1IpVmpMNwPwU8+jYVcI/F80HaQHYJxPGFFec4f+qo69m9Yh
+tpkrfW3wMVWx/S0ukGldA5XvRrHHGKr3UF8vFayp7fK4pd3kljetKfrvp/EFU43t
+VMMtwt7EVIC7ZQM6CqgA8uhmBuPED1EwKxWR1RRU3BkIW62BAkEA+hbJqPc2KeRi
+pANroqNtJIPL4G/d9LMJHXCc8tAW9K/P4dTEkSnkg8lCveHgb0FKvQ30IsYMCr81
+YOPX8X+dXQJBANtusWChSXjJ7A2si9jXgxrTaSyrtRwmglr/AhM0hOyDwW0rfKSk
+1Ylq3EyAcT3odBb6PdhXKmBTVyxF3s81xskCQFtTDvkArWrG166FAT026Jg4+K5Q
+q4C8EEwL34RbsMZRnVweUlmgLq5hRFoKreZytVQsUEaSg7s478kd6rFppJECQAPY
+AItsx9ix0My8hQabX9SMd38s0tNXaVkmtmaXuOxbsnuzE0/fA06Q7KL6bQFknQP6
+BjNP85IUY6aG4sxGaOECQQCLCaGXZpbB1rjA+KDUqZaaeY3tZG7np4il48plEvPr
+q7yj4ZctfhpTXFtsg6kMJXSRCSeVsTC12UrgaYX7GEwv
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdatai002/good-r5.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,27 @@
+-----BEGIN CERTIFICATE-----
+MIICCTCCAXKgAwIBAgIBAjANBgkqhkiG9w0BAQQFADAzMR0wGwYDVQQKExRTeW1i
+aWFuIFNvZnR3YXJlIEx0ZDESMBAGA1UEAxMJUm9vdDUtUlNBMB4XDTA0MDMwMzE2
+MzQ0NVoXDTE0MDMwMTE2MzQ0NVowMTEdMBsGA1UEChMUU3ltYmlhbiBTb2Z0d2Fy
+ZSBMdGQxEDAOBgNVBAMTB0dvb2QtUjUwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBANZdoZZZnxy4PXjFNPDA4nQzJ7TeaPGqLJvkcRGL8GG1IkWayH2ALmu1/y9k
+zubeZexDixycYWMtF5ftpkhdAl+uuEUpmZALFNZNVRE2WUHGwLI4byK4cRemkyg0
+mpaI1Dj7RykZlDi1G68uZPwYq9P0zw1oLMdHoBpXoKUYKXwFAgMBAAGjLzAtMBMG
+A1UdJQQMMAoGCCsGAQUFBwMDMBYGA1UdIAQPMA0wCwYJKoY6AAHt02sBMA0GCSqG
+SIb3DQEBBAUAA4GBACfm9aZVS9CJKKcIxqmyhnOhNDHhkO/6c0pTM3IUK0QZSSoT
+9gD9+MVfx2IX43+k/ePu4xHeSY/7cJXuWgWW7nVKwk/da96hRcTPM1in6vb03a5O
+CsnC7W9cI65EC2WvxI7htnicYg3XZCE42JHx0OfKYrUfEmkAT7xqUNvW31b7
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICITCCAYqgAwIBAgIBADANBgkqhkiG9w0BAQQFADAzMR0wGwYDVQQKExRTeW1i
+aWFuIFNvZnR3YXJlIEx0ZDESMBAGA1UEAxMJUm9vdDUtUlNBMB4XDTA0MDMwMzE2
+MzQ0MloXDTE0MDMwMTE2MzQ0MlowMzEdMBsGA1UEChMUU3ltYmlhbiBTb2Z0d2Fy
+ZSBMdGQxEjAQBgNVBAMTCVJvb3Q1LVJTQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAw
+gYkCgYEAufV5zRvgR/ohzfb8AizbLePxK7QfBOuTtwy70/ifZCP5aZMri6DgObYM
+Jwh4lChQ+UnQgMX9sRP1kWZ6UEbrhm7oUz7keI6wu4m4myYmMjY3nc+7T/std+o/
+Vzt/bSyLNYpAqUW50g46SL1lof8fXKGkqFRH42czeMUwqnEffRsCAwEAAaNFMEMw
+DgYDVR0PAQH/BAQDAgIEMBIGA1UdEwEB/wQIMAYBAf8CAQUwHQYDVR0OBBYEFHzj
+BilRFiByFNQlr/0YW21eSK9vMA0GCSqGSIb3DQEBBAUAA4GBACEv1s039YBNfVn/
+dxZm+1XDLmrm6Of5p3SjBz94osLV+cNsddP5W+jmdtEL2u+x33foGFPOkDyFFnIW
+gkFVfAKKCH70K2liJWDS5D+mu32zU8Kc/JF0musvKZ/EbuddJS+x7t7kBl4fFgr1
+0/AO8YOgD1AV55Z9Bjf1lTTHZMcX
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdatai003/good-r5.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQDWXaGWWZ8cuD14xTTwwOJ0Mye03mjxqiyb5HERi/BhtSJFmsh9
+gC5rtf8vZM7m3mXsQ4scnGFjLReX7aZIXQJfrrhFKZmQCxTWTVURNllBxsCyOG8i
+uHEXppMoNJqWiNQ4+0cpGZQ4tRuvLmT8GKvT9M8NaCzHR6AaV6ClGCl8BQIDAQAB
+AoGBAKjKyTWuFA91M1IpVmpMNwPwU8+jYVcI/F80HaQHYJxPGFFec4f+qo69m9Yh
+tpkrfW3wMVWx/S0ukGldA5XvRrHHGKr3UF8vFayp7fK4pd3kljetKfrvp/EFU43t
+VMMtwt7EVIC7ZQM6CqgA8uhmBuPED1EwKxWR1RRU3BkIW62BAkEA+hbJqPc2KeRi
+pANroqNtJIPL4G/d9LMJHXCc8tAW9K/P4dTEkSnkg8lCveHgb0FKvQ30IsYMCr81
+YOPX8X+dXQJBANtusWChSXjJ7A2si9jXgxrTaSyrtRwmglr/AhM0hOyDwW0rfKSk
+1Ylq3EyAcT3odBb6PdhXKmBTVyxF3s81xskCQFtTDvkArWrG166FAT026Jg4+K5Q
+q4C8EEwL34RbsMZRnVweUlmgLq5hRFoKreZytVQsUEaSg7s478kd6rFppJECQAPY
+AItsx9ix0My8hQabX9SMd38s0tNXaVkmtmaXuOxbsnuzE0/fA06Q7KL6bQFknQP6
+BjNP85IUY6aG4sxGaOECQQCLCaGXZpbB1rjA+KDUqZaaeY3tZG7np4il48plEvPr
+q7yj4ZctfhpTXFtsg6kMJXSRCSeVsTC12UrgaYX7GEwv
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdatai003/good-r5.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,27 @@
+-----BEGIN CERTIFICATE-----
+MIICCTCCAXKgAwIBAgIBAjANBgkqhkiG9w0BAQQFADAzMR0wGwYDVQQKExRTeW1i
+aWFuIFNvZnR3YXJlIEx0ZDESMBAGA1UEAxMJUm9vdDUtUlNBMB4XDTA0MDMwMzE2
+MzQ0NVoXDTE0MDMwMTE2MzQ0NVowMTEdMBsGA1UEChMUU3ltYmlhbiBTb2Z0d2Fy
+ZSBMdGQxEDAOBgNVBAMTB0dvb2QtUjUwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBANZdoZZZnxy4PXjFNPDA4nQzJ7TeaPGqLJvkcRGL8GG1IkWayH2ALmu1/y9k
+zubeZexDixycYWMtF5ftpkhdAl+uuEUpmZALFNZNVRE2WUHGwLI4byK4cRemkyg0
+mpaI1Dj7RykZlDi1G68uZPwYq9P0zw1oLMdHoBpXoKUYKXwFAgMBAAGjLzAtMBMG
+A1UdJQQMMAoGCCsGAQUFBwMDMBYGA1UdIAQPMA0wCwYJKoY6AAHt02sBMA0GCSqG
+SIb3DQEBBAUAA4GBACfm9aZVS9CJKKcIxqmyhnOhNDHhkO/6c0pTM3IUK0QZSSoT
+9gD9+MVfx2IX43+k/ePu4xHeSY/7cJXuWgWW7nVKwk/da96hRcTPM1in6vb03a5O
+CsnC7W9cI65EC2WvxI7htnicYg3XZCE42JHx0OfKYrUfEmkAT7xqUNvW31b7
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICITCCAYqgAwIBAgIBADANBgkqhkiG9w0BAQQFADAzMR0wGwYDVQQKExRTeW1i
+aWFuIFNvZnR3YXJlIEx0ZDESMBAGA1UEAxMJUm9vdDUtUlNBMB4XDTA0MDMwMzE2
+MzQ0MloXDTE0MDMwMTE2MzQ0MlowMzEdMBsGA1UEChMUU3ltYmlhbiBTb2Z0d2Fy
+ZSBMdGQxEjAQBgNVBAMTCVJvb3Q1LVJTQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAw
+gYkCgYEAufV5zRvgR/ohzfb8AizbLePxK7QfBOuTtwy70/ifZCP5aZMri6DgObYM
+Jwh4lChQ+UnQgMX9sRP1kWZ6UEbrhm7oUz7keI6wu4m4myYmMjY3nc+7T/std+o/
+Vzt/bSyLNYpAqUW50g46SL1lof8fXKGkqFRH42czeMUwqnEffRsCAwEAAaNFMEMw
+DgYDVR0PAQH/BAQDAgIEMBIGA1UdEwEB/wQIMAYBAf8CAQUwHQYDVR0OBBYEFHzj
+BilRFiByFNQlr/0YW21eSK9vMA0GCSqGSIb3DQEBBAUAA4GBACEv1s039YBNfVn/
+dxZm+1XDLmrm6Of5p3SjBz94osLV+cNsddP5W+jmdtEL2u+x33foGFPOkDyFFnIW
+gkFVfAKKCH70K2liJWDS5D+mu32zU8Kc/JF0musvKZ/EbuddJS+x7t7kBl4fFgr1
+0/AO8YOgD1AV55Z9Bjf1lTTHZMcX
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdataj001/good-r5.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQDWXaGWWZ8cuD14xTTwwOJ0Mye03mjxqiyb5HERi/BhtSJFmsh9
+gC5rtf8vZM7m3mXsQ4scnGFjLReX7aZIXQJfrrhFKZmQCxTWTVURNllBxsCyOG8i
+uHEXppMoNJqWiNQ4+0cpGZQ4tRuvLmT8GKvT9M8NaCzHR6AaV6ClGCl8BQIDAQAB
+AoGBAKjKyTWuFA91M1IpVmpMNwPwU8+jYVcI/F80HaQHYJxPGFFec4f+qo69m9Yh
+tpkrfW3wMVWx/S0ukGldA5XvRrHHGKr3UF8vFayp7fK4pd3kljetKfrvp/EFU43t
+VMMtwt7EVIC7ZQM6CqgA8uhmBuPED1EwKxWR1RRU3BkIW62BAkEA+hbJqPc2KeRi
+pANroqNtJIPL4G/d9LMJHXCc8tAW9K/P4dTEkSnkg8lCveHgb0FKvQ30IsYMCr81
+YOPX8X+dXQJBANtusWChSXjJ7A2si9jXgxrTaSyrtRwmglr/AhM0hOyDwW0rfKSk
+1Ylq3EyAcT3odBb6PdhXKmBTVyxF3s81xskCQFtTDvkArWrG166FAT026Jg4+K5Q
+q4C8EEwL34RbsMZRnVweUlmgLq5hRFoKreZytVQsUEaSg7s478kd6rFppJECQAPY
+AItsx9ix0My8hQabX9SMd38s0tNXaVkmtmaXuOxbsnuzE0/fA06Q7KL6bQFknQP6
+BjNP85IUY6aG4sxGaOECQQCLCaGXZpbB1rjA+KDUqZaaeY3tZG7np4il48plEvPr
+q7yj4ZctfhpTXFtsg6kMJXSRCSeVsTC12UrgaYX7GEwv
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdataj001/good-r5.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,27 @@
+-----BEGIN CERTIFICATE-----
+MIICCTCCAXKgAwIBAgIBAjANBgkqhkiG9w0BAQQFADAzMR0wGwYDVQQKExRTeW1i
+aWFuIFNvZnR3YXJlIEx0ZDESMBAGA1UEAxMJUm9vdDUtUlNBMB4XDTA0MDMwMzE2
+MzQ0NVoXDTE0MDMwMTE2MzQ0NVowMTEdMBsGA1UEChMUU3ltYmlhbiBTb2Z0d2Fy
+ZSBMdGQxEDAOBgNVBAMTB0dvb2QtUjUwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBANZdoZZZnxy4PXjFNPDA4nQzJ7TeaPGqLJvkcRGL8GG1IkWayH2ALmu1/y9k
+zubeZexDixycYWMtF5ftpkhdAl+uuEUpmZALFNZNVRE2WUHGwLI4byK4cRemkyg0
+mpaI1Dj7RykZlDi1G68uZPwYq9P0zw1oLMdHoBpXoKUYKXwFAgMBAAGjLzAtMBMG
+A1UdJQQMMAoGCCsGAQUFBwMDMBYGA1UdIAQPMA0wCwYJKoY6AAHt02sBMA0GCSqG
+SIb3DQEBBAUAA4GBACfm9aZVS9CJKKcIxqmyhnOhNDHhkO/6c0pTM3IUK0QZSSoT
+9gD9+MVfx2IX43+k/ePu4xHeSY/7cJXuWgWW7nVKwk/da96hRcTPM1in6vb03a5O
+CsnC7W9cI65EC2WvxI7htnicYg3XZCE42JHx0OfKYrUfEmkAT7xqUNvW31b7
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICITCCAYqgAwIBAgIBADANBgkqhkiG9w0BAQQFADAzMR0wGwYDVQQKExRTeW1i
+aWFuIFNvZnR3YXJlIEx0ZDESMBAGA1UEAxMJUm9vdDUtUlNBMB4XDTA0MDMwMzE2
+MzQ0MloXDTE0MDMwMTE2MzQ0MlowMzEdMBsGA1UEChMUU3ltYmlhbiBTb2Z0d2Fy
+ZSBMdGQxEjAQBgNVBAMTCVJvb3Q1LVJTQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAw
+gYkCgYEAufV5zRvgR/ohzfb8AizbLePxK7QfBOuTtwy70/ifZCP5aZMri6DgObYM
+Jwh4lChQ+UnQgMX9sRP1kWZ6UEbrhm7oUz7keI6wu4m4myYmMjY3nc+7T/std+o/
+Vzt/bSyLNYpAqUW50g46SL1lof8fXKGkqFRH42czeMUwqnEffRsCAwEAAaNFMEMw
+DgYDVR0PAQH/BAQDAgIEMBIGA1UdEwEB/wQIMAYBAf8CAQUwHQYDVR0OBBYEFHzj
+BilRFiByFNQlr/0YW21eSK9vMA0GCSqGSIb3DQEBBAUAA4GBACEv1s039YBNfVn/
+dxZm+1XDLmrm6Of5p3SjBz94osLV+cNsddP5W+jmdtEL2u+x33foGFPOkDyFFnIW
+gkFVfAKKCH70K2liJWDS5D+mu32zU8Kc/JF0musvKZ/EbuddJS+x7t7kBl4fFgr1
+0/AO8YOgD1AV55Z9Bjf1lTTHZMcX
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdataj002/good-r5.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQDWXaGWWZ8cuD14xTTwwOJ0Mye03mjxqiyb5HERi/BhtSJFmsh9
+gC5rtf8vZM7m3mXsQ4scnGFjLReX7aZIXQJfrrhFKZmQCxTWTVURNllBxsCyOG8i
+uHEXppMoNJqWiNQ4+0cpGZQ4tRuvLmT8GKvT9M8NaCzHR6AaV6ClGCl8BQIDAQAB
+AoGBAKjKyTWuFA91M1IpVmpMNwPwU8+jYVcI/F80HaQHYJxPGFFec4f+qo69m9Yh
+tpkrfW3wMVWx/S0ukGldA5XvRrHHGKr3UF8vFayp7fK4pd3kljetKfrvp/EFU43t
+VMMtwt7EVIC7ZQM6CqgA8uhmBuPED1EwKxWR1RRU3BkIW62BAkEA+hbJqPc2KeRi
+pANroqNtJIPL4G/d9LMJHXCc8tAW9K/P4dTEkSnkg8lCveHgb0FKvQ30IsYMCr81
+YOPX8X+dXQJBANtusWChSXjJ7A2si9jXgxrTaSyrtRwmglr/AhM0hOyDwW0rfKSk
+1Ylq3EyAcT3odBb6PdhXKmBTVyxF3s81xskCQFtTDvkArWrG166FAT026Jg4+K5Q
+q4C8EEwL34RbsMZRnVweUlmgLq5hRFoKreZytVQsUEaSg7s478kd6rFppJECQAPY
+AItsx9ix0My8hQabX9SMd38s0tNXaVkmtmaXuOxbsnuzE0/fA06Q7KL6bQFknQP6
+BjNP85IUY6aG4sxGaOECQQCLCaGXZpbB1rjA+KDUqZaaeY3tZG7np4il48plEvPr
+q7yj4ZctfhpTXFtsg6kMJXSRCSeVsTC12UrgaYX7GEwv
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdataj002/good-r5.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,27 @@
+-----BEGIN CERTIFICATE-----
+MIICCTCCAXKgAwIBAgIBAjANBgkqhkiG9w0BAQQFADAzMR0wGwYDVQQKExRTeW1i
+aWFuIFNvZnR3YXJlIEx0ZDESMBAGA1UEAxMJUm9vdDUtUlNBMB4XDTA0MDMwMzE2
+MzQ0NVoXDTE0MDMwMTE2MzQ0NVowMTEdMBsGA1UEChMUU3ltYmlhbiBTb2Z0d2Fy
+ZSBMdGQxEDAOBgNVBAMTB0dvb2QtUjUwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBANZdoZZZnxy4PXjFNPDA4nQzJ7TeaPGqLJvkcRGL8GG1IkWayH2ALmu1/y9k
+zubeZexDixycYWMtF5ftpkhdAl+uuEUpmZALFNZNVRE2WUHGwLI4byK4cRemkyg0
+mpaI1Dj7RykZlDi1G68uZPwYq9P0zw1oLMdHoBpXoKUYKXwFAgMBAAGjLzAtMBMG
+A1UdJQQMMAoGCCsGAQUFBwMDMBYGA1UdIAQPMA0wCwYJKoY6AAHt02sBMA0GCSqG
+SIb3DQEBBAUAA4GBACfm9aZVS9CJKKcIxqmyhnOhNDHhkO/6c0pTM3IUK0QZSSoT
+9gD9+MVfx2IX43+k/ePu4xHeSY/7cJXuWgWW7nVKwk/da96hRcTPM1in6vb03a5O
+CsnC7W9cI65EC2WvxI7htnicYg3XZCE42JHx0OfKYrUfEmkAT7xqUNvW31b7
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICITCCAYqgAwIBAgIBADANBgkqhkiG9w0BAQQFADAzMR0wGwYDVQQKExRTeW1i
+aWFuIFNvZnR3YXJlIEx0ZDESMBAGA1UEAxMJUm9vdDUtUlNBMB4XDTA0MDMwMzE2
+MzQ0MloXDTE0MDMwMTE2MzQ0MlowMzEdMBsGA1UEChMUU3ltYmlhbiBTb2Z0d2Fy
+ZSBMdGQxEjAQBgNVBAMTCVJvb3Q1LVJTQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAw
+gYkCgYEAufV5zRvgR/ohzfb8AizbLePxK7QfBOuTtwy70/ifZCP5aZMri6DgObYM
+Jwh4lChQ+UnQgMX9sRP1kWZ6UEbrhm7oUz7keI6wu4m4myYmMjY3nc+7T/std+o/
+Vzt/bSyLNYpAqUW50g46SL1lof8fXKGkqFRH42czeMUwqnEffRsCAwEAAaNFMEMw
+DgYDVR0PAQH/BAQDAgIEMBIGA1UdEwEB/wQIMAYBAf8CAQUwHQYDVR0OBBYEFHzj
+BilRFiByFNQlr/0YW21eSK9vMA0GCSqGSIb3DQEBBAUAA4GBACEv1s039YBNfVn/
+dxZm+1XDLmrm6Of5p3SjBz94osLV+cNsddP5W+jmdtEL2u+x33foGFPOkDyFFnIW
+gkFVfAKKCH70K2liJWDS5D+mu32zU8Kc/JF0musvKZ/EbuddJS+x7t7kBl4fFgr1
+0/AO8YOgD1AV55Z9Bjf1lTTHZMcX
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdataj003/good-r5.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQDWXaGWWZ8cuD14xTTwwOJ0Mye03mjxqiyb5HERi/BhtSJFmsh9
+gC5rtf8vZM7m3mXsQ4scnGFjLReX7aZIXQJfrrhFKZmQCxTWTVURNllBxsCyOG8i
+uHEXppMoNJqWiNQ4+0cpGZQ4tRuvLmT8GKvT9M8NaCzHR6AaV6ClGCl8BQIDAQAB
+AoGBAKjKyTWuFA91M1IpVmpMNwPwU8+jYVcI/F80HaQHYJxPGFFec4f+qo69m9Yh
+tpkrfW3wMVWx/S0ukGldA5XvRrHHGKr3UF8vFayp7fK4pd3kljetKfrvp/EFU43t
+VMMtwt7EVIC7ZQM6CqgA8uhmBuPED1EwKxWR1RRU3BkIW62BAkEA+hbJqPc2KeRi
+pANroqNtJIPL4G/d9LMJHXCc8tAW9K/P4dTEkSnkg8lCveHgb0FKvQ30IsYMCr81
+YOPX8X+dXQJBANtusWChSXjJ7A2si9jXgxrTaSyrtRwmglr/AhM0hOyDwW0rfKSk
+1Ylq3EyAcT3odBb6PdhXKmBTVyxF3s81xskCQFtTDvkArWrG166FAT026Jg4+K5Q
+q4C8EEwL34RbsMZRnVweUlmgLq5hRFoKreZytVQsUEaSg7s478kd6rFppJECQAPY
+AItsx9ix0My8hQabX9SMd38s0tNXaVkmtmaXuOxbsnuzE0/fA06Q7KL6bQFknQP6
+BjNP85IUY6aG4sxGaOECQQCLCaGXZpbB1rjA+KDUqZaaeY3tZG7np4il48plEvPr
+q7yj4ZctfhpTXFtsg6kMJXSRCSeVsTC12UrgaYX7GEwv
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdataj003/good-r5.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,27 @@
+-----BEGIN CERTIFICATE-----
+MIICCTCCAXKgAwIBAgIBAjANBgkqhkiG9w0BAQQFADAzMR0wGwYDVQQKExRTeW1i
+aWFuIFNvZnR3YXJlIEx0ZDESMBAGA1UEAxMJUm9vdDUtUlNBMB4XDTA0MDMwMzE2
+MzQ0NVoXDTE0MDMwMTE2MzQ0NVowMTEdMBsGA1UEChMUU3ltYmlhbiBTb2Z0d2Fy
+ZSBMdGQxEDAOBgNVBAMTB0dvb2QtUjUwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBANZdoZZZnxy4PXjFNPDA4nQzJ7TeaPGqLJvkcRGL8GG1IkWayH2ALmu1/y9k
+zubeZexDixycYWMtF5ftpkhdAl+uuEUpmZALFNZNVRE2WUHGwLI4byK4cRemkyg0
+mpaI1Dj7RykZlDi1G68uZPwYq9P0zw1oLMdHoBpXoKUYKXwFAgMBAAGjLzAtMBMG
+A1UdJQQMMAoGCCsGAQUFBwMDMBYGA1UdIAQPMA0wCwYJKoY6AAHt02sBMA0GCSqG
+SIb3DQEBBAUAA4GBACfm9aZVS9CJKKcIxqmyhnOhNDHhkO/6c0pTM3IUK0QZSSoT
+9gD9+MVfx2IX43+k/ePu4xHeSY/7cJXuWgWW7nVKwk/da96hRcTPM1in6vb03a5O
+CsnC7W9cI65EC2WvxI7htnicYg3XZCE42JHx0OfKYrUfEmkAT7xqUNvW31b7
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICITCCAYqgAwIBAgIBADANBgkqhkiG9w0BAQQFADAzMR0wGwYDVQQKExRTeW1i
+aWFuIFNvZnR3YXJlIEx0ZDESMBAGA1UEAxMJUm9vdDUtUlNBMB4XDTA0MDMwMzE2
+MzQ0MloXDTE0MDMwMTE2MzQ0MlowMzEdMBsGA1UEChMUU3ltYmlhbiBTb2Z0d2Fy
+ZSBMdGQxEjAQBgNVBAMTCVJvb3Q1LVJTQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAw
+gYkCgYEAufV5zRvgR/ohzfb8AizbLePxK7QfBOuTtwy70/ifZCP5aZMri6DgObYM
+Jwh4lChQ+UnQgMX9sRP1kWZ6UEbrhm7oUz7keI6wu4m4myYmMjY3nc+7T/std+o/
+Vzt/bSyLNYpAqUW50g46SL1lof8fXKGkqFRH42czeMUwqnEffRsCAwEAAaNFMEMw
+DgYDVR0PAQH/BAQDAgIEMBIGA1UdEwEB/wQIMAYBAf8CAQUwHQYDVR0OBBYEFHzj
+BilRFiByFNQlr/0YW21eSK9vMA0GCSqGSIb3DQEBBAUAA4GBACEv1s039YBNfVn/
+dxZm+1XDLmrm6Of5p3SjBz94osLV+cNsddP5W+jmdtEL2u+x33foGFPOkDyFFnIW
+gkFVfAKKCH70K2liJWDS5D+mu32zU8Kc/JF0musvKZ/EbuddJS+x7t7kBl4fFgr1
+0/AO8YOgD1AV55Z9Bjf1lTTHZMcX
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdataj004/good-r5.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQDWXaGWWZ8cuD14xTTwwOJ0Mye03mjxqiyb5HERi/BhtSJFmsh9
+gC5rtf8vZM7m3mXsQ4scnGFjLReX7aZIXQJfrrhFKZmQCxTWTVURNllBxsCyOG8i
+uHEXppMoNJqWiNQ4+0cpGZQ4tRuvLmT8GKvT9M8NaCzHR6AaV6ClGCl8BQIDAQAB
+AoGBAKjKyTWuFA91M1IpVmpMNwPwU8+jYVcI/F80HaQHYJxPGFFec4f+qo69m9Yh
+tpkrfW3wMVWx/S0ukGldA5XvRrHHGKr3UF8vFayp7fK4pd3kljetKfrvp/EFU43t
+VMMtwt7EVIC7ZQM6CqgA8uhmBuPED1EwKxWR1RRU3BkIW62BAkEA+hbJqPc2KeRi
+pANroqNtJIPL4G/d9LMJHXCc8tAW9K/P4dTEkSnkg8lCveHgb0FKvQ30IsYMCr81
+YOPX8X+dXQJBANtusWChSXjJ7A2si9jXgxrTaSyrtRwmglr/AhM0hOyDwW0rfKSk
+1Ylq3EyAcT3odBb6PdhXKmBTVyxF3s81xskCQFtTDvkArWrG166FAT026Jg4+K5Q
+q4C8EEwL34RbsMZRnVweUlmgLq5hRFoKreZytVQsUEaSg7s478kd6rFppJECQAPY
+AItsx9ix0My8hQabX9SMd38s0tNXaVkmtmaXuOxbsnuzE0/fA06Q7KL6bQFknQP6
+BjNP85IUY6aG4sxGaOECQQCLCaGXZpbB1rjA+KDUqZaaeY3tZG7np4il48plEvPr
+q7yj4ZctfhpTXFtsg6kMJXSRCSeVsTC12UrgaYX7GEwv
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdataj004/good-r5.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,27 @@
+-----BEGIN CERTIFICATE-----
+MIICCTCCAXKgAwIBAgIBAjANBgkqhkiG9w0BAQQFADAzMR0wGwYDVQQKExRTeW1i
+aWFuIFNvZnR3YXJlIEx0ZDESMBAGA1UEAxMJUm9vdDUtUlNBMB4XDTA0MDMwMzE2
+MzQ0NVoXDTE0MDMwMTE2MzQ0NVowMTEdMBsGA1UEChMUU3ltYmlhbiBTb2Z0d2Fy
+ZSBMdGQxEDAOBgNVBAMTB0dvb2QtUjUwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBANZdoZZZnxy4PXjFNPDA4nQzJ7TeaPGqLJvkcRGL8GG1IkWayH2ALmu1/y9k
+zubeZexDixycYWMtF5ftpkhdAl+uuEUpmZALFNZNVRE2WUHGwLI4byK4cRemkyg0
+mpaI1Dj7RykZlDi1G68uZPwYq9P0zw1oLMdHoBpXoKUYKXwFAgMBAAGjLzAtMBMG
+A1UdJQQMMAoGCCsGAQUFBwMDMBYGA1UdIAQPMA0wCwYJKoY6AAHt02sBMA0GCSqG
+SIb3DQEBBAUAA4GBACfm9aZVS9CJKKcIxqmyhnOhNDHhkO/6c0pTM3IUK0QZSSoT
+9gD9+MVfx2IX43+k/ePu4xHeSY/7cJXuWgWW7nVKwk/da96hRcTPM1in6vb03a5O
+CsnC7W9cI65EC2WvxI7htnicYg3XZCE42JHx0OfKYrUfEmkAT7xqUNvW31b7
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICITCCAYqgAwIBAgIBADANBgkqhkiG9w0BAQQFADAzMR0wGwYDVQQKExRTeW1i
+aWFuIFNvZnR3YXJlIEx0ZDESMBAGA1UEAxMJUm9vdDUtUlNBMB4XDTA0MDMwMzE2
+MzQ0MloXDTE0MDMwMTE2MzQ0MlowMzEdMBsGA1UEChMUU3ltYmlhbiBTb2Z0d2Fy
+ZSBMdGQxEjAQBgNVBAMTCVJvb3Q1LVJTQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAw
+gYkCgYEAufV5zRvgR/ohzfb8AizbLePxK7QfBOuTtwy70/ifZCP5aZMri6DgObYM
+Jwh4lChQ+UnQgMX9sRP1kWZ6UEbrhm7oUz7keI6wu4m4myYmMjY3nc+7T/std+o/
+Vzt/bSyLNYpAqUW50g46SL1lof8fXKGkqFRH42czeMUwqnEffRsCAwEAAaNFMEMw
+DgYDVR0PAQH/BAQDAgIEMBIGA1UdEwEB/wQIMAYBAf8CAQUwHQYDVR0OBBYEFHzj
+BilRFiByFNQlr/0YW21eSK9vMA0GCSqGSIb3DQEBBAUAA4GBACEv1s039YBNfVn/
+dxZm+1XDLmrm6Of5p3SjBz94osLV+cNsddP5W+jmdtEL2u+x33foGFPOkDyFFnIW
+gkFVfAKKCH70K2liJWDS5D+mu32zU8Kc/JF0musvKZ/EbuddJS+x7t7kBl4fFgr1
+0/AO8YOgD1AV55Z9Bjf1lTTHZMcX
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdataj005/good-r5.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQDWXaGWWZ8cuD14xTTwwOJ0Mye03mjxqiyb5HERi/BhtSJFmsh9
+gC5rtf8vZM7m3mXsQ4scnGFjLReX7aZIXQJfrrhFKZmQCxTWTVURNllBxsCyOG8i
+uHEXppMoNJqWiNQ4+0cpGZQ4tRuvLmT8GKvT9M8NaCzHR6AaV6ClGCl8BQIDAQAB
+AoGBAKjKyTWuFA91M1IpVmpMNwPwU8+jYVcI/F80HaQHYJxPGFFec4f+qo69m9Yh
+tpkrfW3wMVWx/S0ukGldA5XvRrHHGKr3UF8vFayp7fK4pd3kljetKfrvp/EFU43t
+VMMtwt7EVIC7ZQM6CqgA8uhmBuPED1EwKxWR1RRU3BkIW62BAkEA+hbJqPc2KeRi
+pANroqNtJIPL4G/d9LMJHXCc8tAW9K/P4dTEkSnkg8lCveHgb0FKvQ30IsYMCr81
+YOPX8X+dXQJBANtusWChSXjJ7A2si9jXgxrTaSyrtRwmglr/AhM0hOyDwW0rfKSk
+1Ylq3EyAcT3odBb6PdhXKmBTVyxF3s81xskCQFtTDvkArWrG166FAT026Jg4+K5Q
+q4C8EEwL34RbsMZRnVweUlmgLq5hRFoKreZytVQsUEaSg7s478kd6rFppJECQAPY
+AItsx9ix0My8hQabX9SMd38s0tNXaVkmtmaXuOxbsnuzE0/fA06Q7KL6bQFknQP6
+BjNP85IUY6aG4sxGaOECQQCLCaGXZpbB1rjA+KDUqZaaeY3tZG7np4il48plEvPr
+q7yj4ZctfhpTXFtsg6kMJXSRCSeVsTC12UrgaYX7GEwv
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdataj005/good-r5.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,27 @@
+-----BEGIN CERTIFICATE-----
+MIICCTCCAXKgAwIBAgIBAjANBgkqhkiG9w0BAQQFADAzMR0wGwYDVQQKExRTeW1i
+aWFuIFNvZnR3YXJlIEx0ZDESMBAGA1UEAxMJUm9vdDUtUlNBMB4XDTA0MDMwMzE2
+MzQ0NVoXDTE0MDMwMTE2MzQ0NVowMTEdMBsGA1UEChMUU3ltYmlhbiBTb2Z0d2Fy
+ZSBMdGQxEDAOBgNVBAMTB0dvb2QtUjUwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBANZdoZZZnxy4PXjFNPDA4nQzJ7TeaPGqLJvkcRGL8GG1IkWayH2ALmu1/y9k
+zubeZexDixycYWMtF5ftpkhdAl+uuEUpmZALFNZNVRE2WUHGwLI4byK4cRemkyg0
+mpaI1Dj7RykZlDi1G68uZPwYq9P0zw1oLMdHoBpXoKUYKXwFAgMBAAGjLzAtMBMG
+A1UdJQQMMAoGCCsGAQUFBwMDMBYGA1UdIAQPMA0wCwYJKoY6AAHt02sBMA0GCSqG
+SIb3DQEBBAUAA4GBACfm9aZVS9CJKKcIxqmyhnOhNDHhkO/6c0pTM3IUK0QZSSoT
+9gD9+MVfx2IX43+k/ePu4xHeSY/7cJXuWgWW7nVKwk/da96hRcTPM1in6vb03a5O
+CsnC7W9cI65EC2WvxI7htnicYg3XZCE42JHx0OfKYrUfEmkAT7xqUNvW31b7
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICITCCAYqgAwIBAgIBADANBgkqhkiG9w0BAQQFADAzMR0wGwYDVQQKExRTeW1i
+aWFuIFNvZnR3YXJlIEx0ZDESMBAGA1UEAxMJUm9vdDUtUlNBMB4XDTA0MDMwMzE2
+MzQ0MloXDTE0MDMwMTE2MzQ0MlowMzEdMBsGA1UEChMUU3ltYmlhbiBTb2Z0d2Fy
+ZSBMdGQxEjAQBgNVBAMTCVJvb3Q1LVJTQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAw
+gYkCgYEAufV5zRvgR/ohzfb8AizbLePxK7QfBOuTtwy70/ifZCP5aZMri6DgObYM
+Jwh4lChQ+UnQgMX9sRP1kWZ6UEbrhm7oUz7keI6wu4m4myYmMjY3nc+7T/std+o/
+Vzt/bSyLNYpAqUW50g46SL1lof8fXKGkqFRH42czeMUwqnEffRsCAwEAAaNFMEMw
+DgYDVR0PAQH/BAQDAgIEMBIGA1UdEwEB/wQIMAYBAf8CAQUwHQYDVR0OBBYEFHzj
+BilRFiByFNQlr/0YW21eSK9vMA0GCSqGSIb3DQEBBAUAA4GBACEv1s039YBNfVn/
+dxZm+1XDLmrm6Of5p3SjBz94osLV+cNsddP5W+jmdtEL2u+x33foGFPOkDyFFnIW
+gkFVfAKKCH70K2liJWDS5D+mu32zU8Kc/JF0musvKZ/EbuddJS+x7t7kBl4fFgr1
+0/AO8YOgD1AV55Z9Bjf1lTTHZMcX
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdataj006/good-r5.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQDWXaGWWZ8cuD14xTTwwOJ0Mye03mjxqiyb5HERi/BhtSJFmsh9
+gC5rtf8vZM7m3mXsQ4scnGFjLReX7aZIXQJfrrhFKZmQCxTWTVURNllBxsCyOG8i
+uHEXppMoNJqWiNQ4+0cpGZQ4tRuvLmT8GKvT9M8NaCzHR6AaV6ClGCl8BQIDAQAB
+AoGBAKjKyTWuFA91M1IpVmpMNwPwU8+jYVcI/F80HaQHYJxPGFFec4f+qo69m9Yh
+tpkrfW3wMVWx/S0ukGldA5XvRrHHGKr3UF8vFayp7fK4pd3kljetKfrvp/EFU43t
+VMMtwt7EVIC7ZQM6CqgA8uhmBuPED1EwKxWR1RRU3BkIW62BAkEA+hbJqPc2KeRi
+pANroqNtJIPL4G/d9LMJHXCc8tAW9K/P4dTEkSnkg8lCveHgb0FKvQ30IsYMCr81
+YOPX8X+dXQJBANtusWChSXjJ7A2si9jXgxrTaSyrtRwmglr/AhM0hOyDwW0rfKSk
+1Ylq3EyAcT3odBb6PdhXKmBTVyxF3s81xskCQFtTDvkArWrG166FAT026Jg4+K5Q
+q4C8EEwL34RbsMZRnVweUlmgLq5hRFoKreZytVQsUEaSg7s478kd6rFppJECQAPY
+AItsx9ix0My8hQabX9SMd38s0tNXaVkmtmaXuOxbsnuzE0/fA06Q7KL6bQFknQP6
+BjNP85IUY6aG4sxGaOECQQCLCaGXZpbB1rjA+KDUqZaaeY3tZG7np4il48plEvPr
+q7yj4ZctfhpTXFtsg6kMJXSRCSeVsTC12UrgaYX7GEwv
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdataj006/good-r5.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,27 @@
+-----BEGIN CERTIFICATE-----
+MIICCTCCAXKgAwIBAgIBAjANBgkqhkiG9w0BAQQFADAzMR0wGwYDVQQKExRTeW1i
+aWFuIFNvZnR3YXJlIEx0ZDESMBAGA1UEAxMJUm9vdDUtUlNBMB4XDTA0MDMwMzE2
+MzQ0NVoXDTE0MDMwMTE2MzQ0NVowMTEdMBsGA1UEChMUU3ltYmlhbiBTb2Z0d2Fy
+ZSBMdGQxEDAOBgNVBAMTB0dvb2QtUjUwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBANZdoZZZnxy4PXjFNPDA4nQzJ7TeaPGqLJvkcRGL8GG1IkWayH2ALmu1/y9k
+zubeZexDixycYWMtF5ftpkhdAl+uuEUpmZALFNZNVRE2WUHGwLI4byK4cRemkyg0
+mpaI1Dj7RykZlDi1G68uZPwYq9P0zw1oLMdHoBpXoKUYKXwFAgMBAAGjLzAtMBMG
+A1UdJQQMMAoGCCsGAQUFBwMDMBYGA1UdIAQPMA0wCwYJKoY6AAHt02sBMA0GCSqG
+SIb3DQEBBAUAA4GBACfm9aZVS9CJKKcIxqmyhnOhNDHhkO/6c0pTM3IUK0QZSSoT
+9gD9+MVfx2IX43+k/ePu4xHeSY/7cJXuWgWW7nVKwk/da96hRcTPM1in6vb03a5O
+CsnC7W9cI65EC2WvxI7htnicYg3XZCE42JHx0OfKYrUfEmkAT7xqUNvW31b7
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICITCCAYqgAwIBAgIBADANBgkqhkiG9w0BAQQFADAzMR0wGwYDVQQKExRTeW1i
+aWFuIFNvZnR3YXJlIEx0ZDESMBAGA1UEAxMJUm9vdDUtUlNBMB4XDTA0MDMwMzE2
+MzQ0MloXDTE0MDMwMTE2MzQ0MlowMzEdMBsGA1UEChMUU3ltYmlhbiBTb2Z0d2Fy
+ZSBMdGQxEjAQBgNVBAMTCVJvb3Q1LVJTQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAw
+gYkCgYEAufV5zRvgR/ohzfb8AizbLePxK7QfBOuTtwy70/ifZCP5aZMri6DgObYM
+Jwh4lChQ+UnQgMX9sRP1kWZ6UEbrhm7oUz7keI6wu4m4myYmMjY3nc+7T/std+o/
+Vzt/bSyLNYpAqUW50g46SL1lof8fXKGkqFRH42czeMUwqnEffRsCAwEAAaNFMEMw
+DgYDVR0PAQH/BAQDAgIEMBIGA1UdEwEB/wQIMAYBAf8CAQUwHQYDVR0OBBYEFHzj
+BilRFiByFNQlr/0YW21eSK9vMA0GCSqGSIb3DQEBBAUAA4GBACEv1s039YBNfVn/
+dxZm+1XDLmrm6Of5p3SjBz94osLV+cNsddP5W+jmdtEL2u+x33foGFPOkDyFFnIW
+gkFVfAKKCH70K2liJWDS5D+mu32zU8Kc/JF0musvKZ/EbuddJS+x7t7kBl4fFgr1
+0/AO8YOgD1AV55Z9Bjf1lTTHZMcX
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdataj007/good-r5.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQDWXaGWWZ8cuD14xTTwwOJ0Mye03mjxqiyb5HERi/BhtSJFmsh9
+gC5rtf8vZM7m3mXsQ4scnGFjLReX7aZIXQJfrrhFKZmQCxTWTVURNllBxsCyOG8i
+uHEXppMoNJqWiNQ4+0cpGZQ4tRuvLmT8GKvT9M8NaCzHR6AaV6ClGCl8BQIDAQAB
+AoGBAKjKyTWuFA91M1IpVmpMNwPwU8+jYVcI/F80HaQHYJxPGFFec4f+qo69m9Yh
+tpkrfW3wMVWx/S0ukGldA5XvRrHHGKr3UF8vFayp7fK4pd3kljetKfrvp/EFU43t
+VMMtwt7EVIC7ZQM6CqgA8uhmBuPED1EwKxWR1RRU3BkIW62BAkEA+hbJqPc2KeRi
+pANroqNtJIPL4G/d9LMJHXCc8tAW9K/P4dTEkSnkg8lCveHgb0FKvQ30IsYMCr81
+YOPX8X+dXQJBANtusWChSXjJ7A2si9jXgxrTaSyrtRwmglr/AhM0hOyDwW0rfKSk
+1Ylq3EyAcT3odBb6PdhXKmBTVyxF3s81xskCQFtTDvkArWrG166FAT026Jg4+K5Q
+q4C8EEwL34RbsMZRnVweUlmgLq5hRFoKreZytVQsUEaSg7s478kd6rFppJECQAPY
+AItsx9ix0My8hQabX9SMd38s0tNXaVkmtmaXuOxbsnuzE0/fA06Q7KL6bQFknQP6
+BjNP85IUY6aG4sxGaOECQQCLCaGXZpbB1rjA+KDUqZaaeY3tZG7np4il48plEvPr
+q7yj4ZctfhpTXFtsg6kMJXSRCSeVsTC12UrgaYX7GEwv
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdataj007/good-r5.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,27 @@
+-----BEGIN CERTIFICATE-----
+MIICCTCCAXKgAwIBAgIBAjANBgkqhkiG9w0BAQQFADAzMR0wGwYDVQQKExRTeW1i
+aWFuIFNvZnR3YXJlIEx0ZDESMBAGA1UEAxMJUm9vdDUtUlNBMB4XDTA0MDMwMzE2
+MzQ0NVoXDTE0MDMwMTE2MzQ0NVowMTEdMBsGA1UEChMUU3ltYmlhbiBTb2Z0d2Fy
+ZSBMdGQxEDAOBgNVBAMTB0dvb2QtUjUwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBANZdoZZZnxy4PXjFNPDA4nQzJ7TeaPGqLJvkcRGL8GG1IkWayH2ALmu1/y9k
+zubeZexDixycYWMtF5ftpkhdAl+uuEUpmZALFNZNVRE2WUHGwLI4byK4cRemkyg0
+mpaI1Dj7RykZlDi1G68uZPwYq9P0zw1oLMdHoBpXoKUYKXwFAgMBAAGjLzAtMBMG
+A1UdJQQMMAoGCCsGAQUFBwMDMBYGA1UdIAQPMA0wCwYJKoY6AAHt02sBMA0GCSqG
+SIb3DQEBBAUAA4GBACfm9aZVS9CJKKcIxqmyhnOhNDHhkO/6c0pTM3IUK0QZSSoT
+9gD9+MVfx2IX43+k/ePu4xHeSY/7cJXuWgWW7nVKwk/da96hRcTPM1in6vb03a5O
+CsnC7W9cI65EC2WvxI7htnicYg3XZCE42JHx0OfKYrUfEmkAT7xqUNvW31b7
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICITCCAYqgAwIBAgIBADANBgkqhkiG9w0BAQQFADAzMR0wGwYDVQQKExRTeW1i
+aWFuIFNvZnR3YXJlIEx0ZDESMBAGA1UEAxMJUm9vdDUtUlNBMB4XDTA0MDMwMzE2
+MzQ0MloXDTE0MDMwMTE2MzQ0MlowMzEdMBsGA1UEChMUU3ltYmlhbiBTb2Z0d2Fy
+ZSBMdGQxEjAQBgNVBAMTCVJvb3Q1LVJTQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAw
+gYkCgYEAufV5zRvgR/ohzfb8AizbLePxK7QfBOuTtwy70/ifZCP5aZMri6DgObYM
+Jwh4lChQ+UnQgMX9sRP1kWZ6UEbrhm7oUz7keI6wu4m4myYmMjY3nc+7T/std+o/
+Vzt/bSyLNYpAqUW50g46SL1lof8fXKGkqFRH42czeMUwqnEffRsCAwEAAaNFMEMw
+DgYDVR0PAQH/BAQDAgIEMBIGA1UdEwEB/wQIMAYBAf8CAQUwHQYDVR0OBBYEFHzj
+BilRFiByFNQlr/0YW21eSK9vMA0GCSqGSIb3DQEBBAUAA4GBACEv1s039YBNfVn/
+dxZm+1XDLmrm6Of5p3SjBz94osLV+cNsddP5W+jmdtEL2u+x33foGFPOkDyFFnIW
+gkFVfAKKCH70K2liJWDS5D+mu32zU8Kc/JF0musvKZ/EbuddJS+x7t7kBl4fFgr1
+0/AO8YOgD1AV55Z9Bjf1lTTHZMcX
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdataj008/good-r5.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQDWXaGWWZ8cuD14xTTwwOJ0Mye03mjxqiyb5HERi/BhtSJFmsh9
+gC5rtf8vZM7m3mXsQ4scnGFjLReX7aZIXQJfrrhFKZmQCxTWTVURNllBxsCyOG8i
+uHEXppMoNJqWiNQ4+0cpGZQ4tRuvLmT8GKvT9M8NaCzHR6AaV6ClGCl8BQIDAQAB
+AoGBAKjKyTWuFA91M1IpVmpMNwPwU8+jYVcI/F80HaQHYJxPGFFec4f+qo69m9Yh
+tpkrfW3wMVWx/S0ukGldA5XvRrHHGKr3UF8vFayp7fK4pd3kljetKfrvp/EFU43t
+VMMtwt7EVIC7ZQM6CqgA8uhmBuPED1EwKxWR1RRU3BkIW62BAkEA+hbJqPc2KeRi
+pANroqNtJIPL4G/d9LMJHXCc8tAW9K/P4dTEkSnkg8lCveHgb0FKvQ30IsYMCr81
+YOPX8X+dXQJBANtusWChSXjJ7A2si9jXgxrTaSyrtRwmglr/AhM0hOyDwW0rfKSk
+1Ylq3EyAcT3odBb6PdhXKmBTVyxF3s81xskCQFtTDvkArWrG166FAT026Jg4+K5Q
+q4C8EEwL34RbsMZRnVweUlmgLq5hRFoKreZytVQsUEaSg7s478kd6rFppJECQAPY
+AItsx9ix0My8hQabX9SMd38s0tNXaVkmtmaXuOxbsnuzE0/fA06Q7KL6bQFknQP6
+BjNP85IUY6aG4sxGaOECQQCLCaGXZpbB1rjA+KDUqZaaeY3tZG7np4il48plEvPr
+q7yj4ZctfhpTXFtsg6kMJXSRCSeVsTC12UrgaYX7GEwv
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdataj008/good-r5.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,27 @@
+-----BEGIN CERTIFICATE-----
+MIICCTCCAXKgAwIBAgIBAjANBgkqhkiG9w0BAQQFADAzMR0wGwYDVQQKExRTeW1i
+aWFuIFNvZnR3YXJlIEx0ZDESMBAGA1UEAxMJUm9vdDUtUlNBMB4XDTA0MDMwMzE2
+MzQ0NVoXDTE0MDMwMTE2MzQ0NVowMTEdMBsGA1UEChMUU3ltYmlhbiBTb2Z0d2Fy
+ZSBMdGQxEDAOBgNVBAMTB0dvb2QtUjUwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBANZdoZZZnxy4PXjFNPDA4nQzJ7TeaPGqLJvkcRGL8GG1IkWayH2ALmu1/y9k
+zubeZexDixycYWMtF5ftpkhdAl+uuEUpmZALFNZNVRE2WUHGwLI4byK4cRemkyg0
+mpaI1Dj7RykZlDi1G68uZPwYq9P0zw1oLMdHoBpXoKUYKXwFAgMBAAGjLzAtMBMG
+A1UdJQQMMAoGCCsGAQUFBwMDMBYGA1UdIAQPMA0wCwYJKoY6AAHt02sBMA0GCSqG
+SIb3DQEBBAUAA4GBACfm9aZVS9CJKKcIxqmyhnOhNDHhkO/6c0pTM3IUK0QZSSoT
+9gD9+MVfx2IX43+k/ePu4xHeSY/7cJXuWgWW7nVKwk/da96hRcTPM1in6vb03a5O
+CsnC7W9cI65EC2WvxI7htnicYg3XZCE42JHx0OfKYrUfEmkAT7xqUNvW31b7
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICITCCAYqgAwIBAgIBADANBgkqhkiG9w0BAQQFADAzMR0wGwYDVQQKExRTeW1i
+aWFuIFNvZnR3YXJlIEx0ZDESMBAGA1UEAxMJUm9vdDUtUlNBMB4XDTA0MDMwMzE2
+MzQ0MloXDTE0MDMwMTE2MzQ0MlowMzEdMBsGA1UEChMUU3ltYmlhbiBTb2Z0d2Fy
+ZSBMdGQxEjAQBgNVBAMTCVJvb3Q1LVJTQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAw
+gYkCgYEAufV5zRvgR/ohzfb8AizbLePxK7QfBOuTtwy70/ifZCP5aZMri6DgObYM
+Jwh4lChQ+UnQgMX9sRP1kWZ6UEbrhm7oUz7keI6wu4m4myYmMjY3nc+7T/std+o/
+Vzt/bSyLNYpAqUW50g46SL1lof8fXKGkqFRH42czeMUwqnEffRsCAwEAAaNFMEMw
+DgYDVR0PAQH/BAQDAgIEMBIGA1UdEwEB/wQIMAYBAf8CAQUwHQYDVR0OBBYEFHzj
+BilRFiByFNQlr/0YW21eSK9vMA0GCSqGSIb3DQEBBAUAA4GBACEv1s039YBNfVn/
+dxZm+1XDLmrm6Of5p3SjBz94osLV+cNsddP5W+jmdtEL2u+x33foGFPOkDyFFnIW
+gkFVfAKKCH70K2liJWDS5D+mu32zU8Kc/JF0musvKZ/EbuddJS+x7t7kBl4fFgr1
+0/AO8YOgD1AV55Z9Bjf1lTTHZMcX
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/sistools/test/tsignsis/kanji_cer.cer	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,28 @@
+-----BEGIN CERTIFICATE-----
+MIIErzCCBG+gAwIBAgIBATAJBgcqhkjOOAQDMH0xGTAXBgNVBAMeEE5jTmhOaQBj
+AGgAcgBpAHMxGTAXBgNVBAseEE45TjtOPABkAGUAdgBlAGwxFzAVBgNVBAoeDp+d
+n56foABhAGMAbQBlMQswCQYDVQQGEwJKTjEfMB0GCSqGSIb3DQEJARYQdGVzdEBu
+b3doZXJlLmNvbTAeFw0wNjA5MTUxMjQyMTFaFw0wNzA5MTUxMjQyMTFaMH0xGTAX
+BgNVBAMeEE5jTmhOaQBjAGgAcgBpAHMxGTAXBgNVBAseEE45TjtOPABkAGUAdgBl
+AGwxFzAVBgNVBAoeDp+dn56foABhAGMAbQBlMQswCQYDVQQGEwJKTjEfMB0GCSqG
+SIb3DQEJARYQdGVzdEBub3doZXJlLmNvbTCCAzowggItBgcqhkjOOAQBMIICIAKC
+AQEAle4bh+IvenpdVaw7RGY4qkQRN41yZCGgaKcWeE7+cTF60xPOJgQ4cMB8O1iK
+BjCVzu0bPuOBdEE6KyKpw2uWKGHvHRxPt6xoBdyl0tArort4VV+/X5wQEpFSQpaK
+aQYYUJw70CA4IgAk3gsHCU6B2yZ3+GadgAG7eD8p4IXHde3H/Ik+RWOab8bnk0l6
+FQd3+8sFk3c0Oyc/44Q/nIJqTzvYXJf0OQL1yFQAJ1IERGbHYhOzQ3RC29TpwZt0
+EtkZFQuc1FTdMHWIaXyjIwLLq8sEVZDunvmCfnTlGOYWE+ODHKFJGEf4GymsSAfR
+/FqF+sMnSDQoCyrVv0movCkwtQIVAIyd/Xxd+n3saNrcdvT8uEOvklhxAoIBAGwU
+tZUUC2cnkYc8joCao/T7A64YEW7uGmGMhkwW1qC58MAcS5KvYHXnRRP4gHuTmWyZ
+D9mzsQWjYvRC45odu4v+wxrc6ZGZlVB2XjnVWD0NOageiTgKO9u9s2dkFYN0/LNV
+SkKwZbvjvV5SA9hJm0BCRUNNAa+KELUMscBfVjY7+GbuUBKNmreXsKzgEtke4ZoO
+u4uR/qcLm7jIU5vWBoaCiwHYPHgL5XDb74teZIXjSPX+d4TlCrGFSGiZBtlbosKz
+SqAIpx4ZZQWXrcxhTn63Swp6TtYcC7FfJ2hIYKyn9S5kK2UqptaL5To/iw7GuNOI
+43CyQm9z1TR/rz7RJA4DggEFAAKCAQBIsDXw1p1t51Vz1kR+HZyvmKL4gN/zhDRK
+vMenZJKyRkeGrxDUZuNG9mBfzR6U81wzwq5NsiGxy7KCEUrxr8LZNC38ccIIS6eo
+HB7P3Q5QySzMdFtCKSNhEDsB3XTzCxO1W5doVInhoCa9wrxYK5C+gazRKfwvdLgj
+l9zfattc3auSERwGFIAmKovqrU1A0O+n9YUXvGBQ38FGJbv5kjtuJI2LR80WWOJ3
+rTT5QXcwTgqv3/YfPn2dbrY3OTOrcrvU1m9FnRQMdHY/IXsJVZRBmUPpfsWKVPrB
+XNlU8DaVghclqSRaE4BY3FyUn+X3/JZOiuT1HPvOs0vfcStnDCPKMAkGByqGSM44
+BAMDLwAwLAIUSbN4XOW2SquJizOGzJWewunUsiECFDupQhdbq5lZwK1opVrwVvPm
+uM9Q
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/sistools/test/tsignsis/signingdata/emptylinescert.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,17 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQDWXaGWWZ8cuD14xTTwwOJ0Mye03mjxqiyb5HERi/BhtSJFmsh9
+gC5rtf8vZM7m3mXsQ4scnGFjLReX7aZIXQJfrrhFKZmQCxTWTVURNllBxsCyOG8i
+uHEXppMoNJqWiNQ4+0cpGZQ4tRuvLmT8GKvT9M8NaCzHR6AaV6ClGCl8BQIDAQAB
+AoGBAKjKyTWuFA91M1IpVmpMNwPwU8+jYVcI/F80HaQHYJxPGFFec4f+qo69m9Yh
+tpkrfW3wMVWx/S0ukGldA5XvRrHHGKr3UF8vFayp7fK4pd3kljetKfrvp/EFU43t
+VMMtwt7EVIC7ZQM6CqgA8uhmBuPED1EwKxWR1RRU3BkIW62BAkEA+hbJqPc2KeRi
+pANroqNtJIPL4G/d9LMJHXCc8tAW9K/P4dTEkSnkg8lCveHgb0FKvQ30IsYMCr81
+YOPX8X+dXQJBANtusWChSXjJ7A2si9jXgxrTaSyrtRwmglr/AhM0hOyDwW0rfKSk
+1Ylq3EyAcT3odBb6PdhXKmBTVyxF3s81xskCQFtTDvkArWrG166FAT026Jg4+K5Q
+q4C8EEwL34RbsMZRnVweUlmgLq5hRFoKreZytVQsUEaSg7s478kd6rFppJECQAPY
+AItsx9ix0My8hQabX9SMd38s0tNXaVkmtmaXuOxbsnuzE0/fA06Q7KL6bQFknQP6
+
+BjNP85IUY6aG4sxGaOECQQCLCaGXZpbB1rjA+KDUqZaaeY3tZG7np4il48plEvPr
+q7yj4ZctfhpTXFtsg6kMJXSRCSeVsTC12UrgaYX7GEwv
+
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/sistools/test/tsignsis/signingdata/emptylinescert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,36 @@
+-----BEGIN CERTIFICATE-----
+MIICCTCCAXKgAwIBAgIBAjANBgkqhkiG9w0BAQQFADAzMR0wGwYDVQQKExRTeW1i
+
+aWFuIFNvZnR3YXJlIEx0ZDESMBAGA1UEAxMJUm9vdDUtUlNBMB4XDTA0MDMwMzE2
+MzQ0NVoXDTE0MDMwMTE2MzQ0NVowMTEdMBsGA1UEChMUU3ltYmlhbiBTb2Z0d2Fy
+ZSBMdGQxEDAOBgNVBAMTB0dvb2QtUjUwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBANZdoZZZnxy4PXjFNPDA4nQzJ7TeaPGqLJvkcRGL8GG1IkWayH2ALmu1/y9k
+zubeZexDixycYWMtF5ftpkhdAl+uuEUpmZALFNZNVRE2WUHGwLI4byK4cRemkyg0
+
+mpaI1Dj7RykZlDi1G68uZPwYq9P0zw1oLMdHoBpXoKUYKXwFAgMBAAGjLzAtMBMG
+A1UdJQQMMAoGCCsGAQUFBwMDMBYGA1UdIAQPMA0wCwYJKoY6AAHt02sBMA0GCSqG
+SIb3DQEBBAUAA4GBACfm9aZVS9CJKKcIxqmyhnOhNDHhkO/6c0pTM3IUK0QZSSoT
+9gD9+MVfx2IX43+k/ePu4xHeSY/7cJXuWgWW7nVKwk/da96hRcTPM1in6vb03a5O
+CsnC7W9cI65EC2WvxI7htnicYg3XZCE42JHx0OfKYrUfEmkAT7xqUNvW31b7
+
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+
+MIICITCCAYqgAwIBAgIBADANBgkqhkiG9w0BAQQFADAzMR0wGwYDVQQKExRTeW1i
+aWFuIFNvZnR3YXJlIEx0ZDESMBAGA1UEAxMJUm9vdDUtUlNBMB4XDTA0MDMwMzE2
+
+MzQ0MloXDTE0MDMwMTE2MzQ0MlowMzEdMBsGA1UEChMUU3ltYmlhbiBTb2Z0d2Fy
+ZSBMdGQxEjAQBgNVBAMTCVJvb3Q1LVJTQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAw
+gYkCgYEAufV5zRvgR/ohzfb8AizbLePxK7QfBOuTtwy70/ifZCP5aZMri6DgObYM
+Jwh4lChQ+UnQgMX9sRP1kWZ6UEbrhm7oUz7keI6wu4m4myYmMjY3nc+7T/std+o/
+
+Vzt/bSyLNYpAqUW50g46SL1lof8fXKGkqFRH42czeMUwqnEffRsCAwEAAaNFMEMw
+
+DgYDVR0PAQH/BAQDAgIEMBIGA1UdEwEB/wQIMAYBAf8CAQUwHQYDVR0OBBYEFHzj
+BilRFiByFNQlr/0YW21eSK9vMA0GCSqGSIb3DQEBBAUAA4GBACEv1s039YBNfVn/
+dxZm+1XDLmrm6Of5p3SjBz94osLV+cNsddP5W+jmdtEL2u+x33foGFPOkDyFFnIW
+gkFVfAKKCH70K2liJWDS5D+mu32zU8Kc/JF0musvKZ/EbuddJS+x7t7kBl4fFgr1
+0/AO8YOgD1AV55Z9Bjf1lTTHZMcX
+
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/sistools/test/tsignsis/signingdata/good-r5.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQDWXaGWWZ8cuD14xTTwwOJ0Mye03mjxqiyb5HERi/BhtSJFmsh9
+gC5rtf8vZM7m3mXsQ4scnGFjLReX7aZIXQJfrrhFKZmQCxTWTVURNllBxsCyOG8i
+uHEXppMoNJqWiNQ4+0cpGZQ4tRuvLmT8GKvT9M8NaCzHR6AaV6ClGCl8BQIDAQAB
+AoGBAKjKyTWuFA91M1IpVmpMNwPwU8+jYVcI/F80HaQHYJxPGFFec4f+qo69m9Yh
+tpkrfW3wMVWx/S0ukGldA5XvRrHHGKr3UF8vFayp7fK4pd3kljetKfrvp/EFU43t
+VMMtwt7EVIC7ZQM6CqgA8uhmBuPED1EwKxWR1RRU3BkIW62BAkEA+hbJqPc2KeRi
+pANroqNtJIPL4G/d9LMJHXCc8tAW9K/P4dTEkSnkg8lCveHgb0FKvQ30IsYMCr81
+YOPX8X+dXQJBANtusWChSXjJ7A2si9jXgxrTaSyrtRwmglr/AhM0hOyDwW0rfKSk
+1Ylq3EyAcT3odBb6PdhXKmBTVyxF3s81xskCQFtTDvkArWrG166FAT026Jg4+K5Q
+q4C8EEwL34RbsMZRnVweUlmgLq5hRFoKreZytVQsUEaSg7s478kd6rFppJECQAPY
+AItsx9ix0My8hQabX9SMd38s0tNXaVkmtmaXuOxbsnuzE0/fA06Q7KL6bQFknQP6
+BjNP85IUY6aG4sxGaOECQQCLCaGXZpbB1rjA+KDUqZaaeY3tZG7np4il48plEvPr
+q7yj4ZctfhpTXFtsg6kMJXSRCSeVsTC12UrgaYX7GEwv
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/sistools/test/tsignsis/signingdata/good-r5.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,27 @@
+-----BEGIN CERTIFICATE-----
+MIICCTCCAXKgAwIBAgIBAjANBgkqhkiG9w0BAQQFADAzMR0wGwYDVQQKExRTeW1i
+aWFuIFNvZnR3YXJlIEx0ZDESMBAGA1UEAxMJUm9vdDUtUlNBMB4XDTA0MDMwMzE2
+MzQ0NVoXDTE0MDMwMTE2MzQ0NVowMTEdMBsGA1UEChMUU3ltYmlhbiBTb2Z0d2Fy
+ZSBMdGQxEDAOBgNVBAMTB0dvb2QtUjUwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBANZdoZZZnxy4PXjFNPDA4nQzJ7TeaPGqLJvkcRGL8GG1IkWayH2ALmu1/y9k
+zubeZexDixycYWMtF5ftpkhdAl+uuEUpmZALFNZNVRE2WUHGwLI4byK4cRemkyg0
+mpaI1Dj7RykZlDi1G68uZPwYq9P0zw1oLMdHoBpXoKUYKXwFAgMBAAGjLzAtMBMG
+A1UdJQQMMAoGCCsGAQUFBwMDMBYGA1UdIAQPMA0wCwYJKoY6AAHt02sBMA0GCSqG
+SIb3DQEBBAUAA4GBACfm9aZVS9CJKKcIxqmyhnOhNDHhkO/6c0pTM3IUK0QZSSoT
+9gD9+MVfx2IX43+k/ePu4xHeSY/7cJXuWgWW7nVKwk/da96hRcTPM1in6vb03a5O
+CsnC7W9cI65EC2WvxI7htnicYg3XZCE42JHx0OfKYrUfEmkAT7xqUNvW31b7
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICITCCAYqgAwIBAgIBADANBgkqhkiG9w0BAQQFADAzMR0wGwYDVQQKExRTeW1i
+aWFuIFNvZnR3YXJlIEx0ZDESMBAGA1UEAxMJUm9vdDUtUlNBMB4XDTA0MDMwMzE2
+MzQ0MloXDTE0MDMwMTE2MzQ0MlowMzEdMBsGA1UEChMUU3ltYmlhbiBTb2Z0d2Fy
+ZSBMdGQxEjAQBgNVBAMTCVJvb3Q1LVJTQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAw
+gYkCgYEAufV5zRvgR/ohzfb8AizbLePxK7QfBOuTtwy70/ifZCP5aZMri6DgObYM
+Jwh4lChQ+UnQgMX9sRP1kWZ6UEbrhm7oUz7keI6wu4m4myYmMjY3nc+7T/std+o/
+Vzt/bSyLNYpAqUW50g46SL1lof8fXKGkqFRH42czeMUwqnEffRsCAwEAAaNFMEMw
+DgYDVR0PAQH/BAQDAgIEMBIGA1UdEwEB/wQIMAYBAf8CAQUwHQYDVR0OBBYEFHzj
+BilRFiByFNQlr/0YW21eSK9vMA0GCSqGSIb3DQEBBAUAA4GBACEv1s039YBNfVn/
+dxZm+1XDLmrm6Of5p3SjBz94osLV+cNsddP5W+jmdtEL2u+x33foGFPOkDyFFnIW
+gkFVfAKKCH70K2liJWDS5D+mu32zU8Kc/JF0musvKZ/EbuddJS+x7t7kBl4fFgr1
+0/AO8YOgD1AV55Z9Bjf1lTTHZMcX
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tautosigning/createsis/cert-gen.cer	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDAzCCAsGgAwIBAgIBADALBgcqhkjOOAQDBQAwZzFSMFAGA1UEChNJVmVuZG9y
+LUVOZTg2NWMzOTk4NDJlNWJhZDlmMjJkODlkMjdjYjJiN2NiZjNkYTQzNDhlYzk3
+OTFjMmM1YTViNGYzM2Q0ZWM3NTERMA8GA1UEAxMIc2ltcGxlRU4wHhcNMDUwMjE1
+MTU0NTMzWhcNMDYwMjE1MTU0NTMzWjBnMVIwUAYDVQQKE0lWZW5kb3ItRU5lODY1
+YzM5OTg0MmU1YmFkOWYyMmQ4OWQyN2NiMmI3Y2JmM2RhNDM0OGVjOTc5MWMyYzVh
+NWI0ZjMzZDRlYzc1MREwDwYDVQQDEwhzaW1wbGVFTjCCAbYwggErBgcqhkjOOAQB
+MIIBHgKBgQC4JZyuDtfPWGmW8PItdLUkgDimI9hMyZm2Zdditjsm2NSH5B9Mkx3c
+EZUqMxufRAjZVIm8J6omP2HjLYmLK4tL6RtZLa2DDSAhqSP7RNQYJKcUxIuRpgUO
+5p+G6iYyOo6rBEF2OxyRj+f4y05BpjwGoLDDdkSGYWpSsgy5HtwPRwIVAMrGPoeN
+KiMX5yz6vBsVt/H7pGbbAoGAEb9dqTNQ4fHS/guj2xPpcdN/qLOsH/2k0oGPW57F
+plKrlnR7IW9VpV0iZgERdA6pc/m+POrrYoLsjczlYq/aeIhgdZEZkUX1ZJJVEiED
+ZAmVghWkbVnvGRP+VVWA7NfiyK878vGL6B3zSEPseVa18+s2DF7L18RL5bSCzurv
+Y9cDgYQAAoGAWHCRZ4BNZoG1x6RYgK3u8r0f9kJAeSivb/4C2m78b/xfVWadgMun
+qISEamg46Z4Q4tZGUIsUoleGLVJzyDTqGy+HmsWTeN3zPGlGTpwHujWFWoOTcgNm
+z2XR7IQAq3VEez8F1CzBBsZmhK5qGxRgGxgE/ZZPREil6cMMDq9I9FEwCwYHKoZI
+zjgEAwUAAy8AMCwCFB3eTiTlObBHf8CdyX2ibNZdCnZKAhQN6sPrulc03VQB1RB2
++nKHXhotyw==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tautosigning/createsis/cert.cer	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,18 @@
+-----BEGIN CERTIFICATE-----
+MIICzTCCAomgAwIBAgIBADALBgcqhkjOOAQDBQAwSzELMAkGA1UEBhMCR0IxFDAS
+BgNVBAoTC1N5bWJpYW4gTHRkMRQwEgYDVQQLEwtEZXZlbG9wbWVudDEQMA4GA1UE
+AxMHU3ltYmlhbjAeFw0wNTAxMjQxNzE2MjhaFw0wNjAxMjQxNzE2MjhaMEsxCzAJ
+BgNVBAYTAkdCMRQwEgYDVQQKEwtTeW1iaWFuIEx0ZDEUMBIGA1UECxMLRGV2ZWxv
+cG1lbnQxEDAOBgNVBAMTB1N5bWJpYW4wggG2MIIBKwYHKoZIzjgEATCCAR4CgYEA
+lx7iFRiDqWhhKK33b8z/VOrzxucRIBQwOZoB5RTmmSS8lZ9F483XnUS1LsDE5rdn
+O0PJRRnDbF4PtQk+BfaxHBk922QFtdfZnIiMXjNvEXV/En09QBgiXTyy3sf2f+CO
+/aV8jlxB+7BVH4NwcI70TutO+ebWw2ObEKljHCJk9AMCFQDdjgSR5mKnUyrBAnHX
+Arr5JRRcfQKBgDZRfgbKQtICE+vFPd0vB0gLJNRfl0+WAndjMFCMSR/XgdVRWg1Q
+XlTtW5bRjChQGHLUkHj3aUyNOYSP5EdJfeldvtA7BeiibaEPM8R2DmA37bpYuPdM
+rTEPnFmUYOqL7Ax/LX1q71/47o2ei/31l0wKtQaayjSCTaEwIJ5wohHTA4GEAAKB
+gCJfmKd19xyYhDFnURfkinVLVjhOgoSndNG43hYr7JGa0Wa/8KZi8gjt6U3sdybS
+ceYbRq18SWkuD12oYPc2QI22BAebtO5OmP6SxKqpwUek4L393ktaVCkNiYTmf6WG
+rHgkbz8DXArvxHL1ej7BLMXogNu3FMMFgkFpG+x+/aZGMAsGByqGSM44BAMFAAMx
+ADAuAhUAxpkT9rOlAMGVX76+aBJGc4zxWUoCFQC0b1DRA1eyjnK6Tfgc70Nr1vY/
+QA==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tautosigning/data/Root5RSA.cer	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICITCCAYqgAwIBAgIBADANBgkqhkiG9w0BAQQFADAzMR0wGwYDVQQKExRTeW1i
+aWFuIFNvZnR3YXJlIEx0ZDESMBAGA1UEAxMJUm9vdDUtUlNBMB4XDTA0MDMwMzE2
+MzQ0MloXDTE0MDMwMTE2MzQ0MlowMzEdMBsGA1UEChMUU3ltYmlhbiBTb2Z0d2Fy
+ZSBMdGQxEjAQBgNVBAMTCVJvb3Q1LVJTQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAw
+gYkCgYEAufV5zRvgR/ohzfb8AizbLePxK7QfBOuTtwy70/ifZCP5aZMri6DgObYM
+Jwh4lChQ+UnQgMX9sRP1kWZ6UEbrhm7oUz7keI6wu4m4myYmMjY3nc+7T/std+o/
+Vzt/bSyLNYpAqUW50g46SL1lof8fXKGkqFRH42czeMUwqnEffRsCAwEAAaNFMEMw
+DgYDVR0PAQH/BAQDAgIEMBIGA1UdEwEB/wQIMAYBAf8CAQUwHQYDVR0OBBYEFHzj
+BilRFiByFNQlr/0YW21eSK9vMA0GCSqGSIb3DQEBBAUAA4GBACEv1s039YBNfVn/
+dxZm+1XDLmrm6Of5p3SjBz94osLV+cNsddP5W+jmdtEL2u+x33foGFPOkDyFFnIW
+gkFVfAKKCH70K2liJWDS5D+mu32zU8Kc/JF0musvKZ/EbuddJS+x7t7kBl4fFgr1
+0/AO8YOgD1AV55Z9Bjf1lTTHZMcX
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tautosigning/data/TestCARSA.cer	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICRDCCAa2gAwIBAgIBADANBgkqhkiG9w0BAQQFADA8MR0wGwYDVQQKExRTeW1i
+aWFuIFNvZnR3YXJlIEx0ZDEbMBkGA1UEAxMSU3ltYmlhbiBUZXN0IC0gUlNBMB4X
+DTA0MDQxODE0MzYxNFoXDTIwMDkyMTE0MzYxNFowPDEdMBsGA1UEChMUU3ltYmlh
+biBTb2Z0d2FyZSBMdGQxGzAZBgNVBAMTElN5bWJpYW4gVGVzdCAtIFJTQTCBnzAN
+BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAoVRBvn0k7DfHX9O1AwbMRlGTuQfXoFba
+E+g6N4g9VtC8ADrj7O+C6UETIERVqbqInDJRDKGkyGfxj4ush4QuwjyRC5bwVtU1
+4G78zHYVL2nA8lCh42DIJCBePrdTs4h+nCgDdiNB/51mtZueGJmMlNnDQCN2kpLi
+KgT7/tAf14ECAwEAAaNWMFQwDgYDVR0PAQH/BAQDAgIEMBIGA1UdEwEB/wQIMAYB
+Af8CAQUwHQYDVR0OBBYEFOaTjrYQFlD8GQSM5KnKMYYmBZLWMA8GCSsGAQUFBzAB
+BQQCBQAwDQYJKoZIhvcNAQEEBQADgYEALXOi9zFgWw453UGQvw0HGNh6wemX2Ood
+pKceGDWyWFaQIxTA9dYVSqnhKWa728UklUi0CcRwp3leYHlvubkcSQANmRtM05PS
+kY2a2ENBf9afB/HNvOciFgGoHa494csZZ6ZS2GeKBxBOfajrjZrvQ3XDKptsRT1q
+50LsYyJhSg4=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/SymbianTestRootCARSA_OCSP/SymbianTestRootCARSA/certs/01.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,43 @@
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 1 (0x1)
+        Signature Algorithm: md5WithRSAEncryption
+        Issuer: O=Symbian Software Ltd, CN=Symbian Test - RSA
+        Validity
+            Not Before: Mar 21 15:34:46 2005 GMT
+            Not After : Mar 19 15:34:46 2015 GMT
+        Subject: O=Symbian, CN=Test
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+            RSA Public Key: (512 bit)
+                Modulus (512 bit):
+                    00:d0:23:55:f9:ab:49:9f:ec:2d:36:61:5d:03:87:
+                    36:84:2d:60:55:99:b6:25:3d:9b:06:6f:a7:21:91:
+                    6b:93:52:74:21:fd:a4:db:85:b9:03:b3:f5:72:6b:
+                    92:e8:b1:05:b4:58:02:3e:80:9c:2f:c6:4d:7f:8d:
+                    8e:cf:70:f7:2d
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            1.2.826.0.1.1796587.1.1.1.6: 
+                ......
+    Signature Algorithm: md5WithRSAEncryption
+        60:2b:31:ff:00:c5:48:1a:60:b5:8b:0b:8b:ac:02:7c:4e:25:
+        10:e5:1e:6b:d7:47:67:df:18:42:18:af:41:d9:44:8a:d5:d5:
+        e1:a8:79:21:61:95:17:b2:0d:85:a3:9f:1b:d3:8f:37:21:69:
+        5f:b5:10:a9:6b:4e:fc:62:5e:50:0f:54:b2:58:ae:f1:28:d2:
+        b4:49:30:4b:0b:f9:4b:65:8c:92:70:fe:f2:4e:48:48:19:f5:
+        22:76:35:15:b6:8e:76:55:9f:68:00:c7:a4:6b:08:a3:ae:a9:
+        d6:fc:c1:fb:cf:bf:86:93:a7:a9:91:01:5e:2d:80:23:aa:1f:
+        00:21
+-----BEGIN CERTIFICATE-----
+MIIBqTCCARKgAwIBAgIBATANBgkqhkiG9w0BAQQFADA8MR0wGwYDVQQKExRTeW1i
+aWFuIFNvZnR3YXJlIEx0ZDEbMBkGA1UEAxMSU3ltYmlhbiBUZXN0IC0gUlNBMB4X
+DTA1MDMyMTE1MzQ0NloXDTE1MDMxOTE1MzQ0NlowITEQMA4GA1UEChMHU3ltYmlh
+bjENMAsGA1UEAxMEVGVzdDBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQDQI1X5q0mf
+7C02YV0DhzaELWBVmbYlPZsGb6chkWuTUnQh/aTbhbkDs/Vya5LosQW0WAI+gJwv
+xk1/jY7PcPctAgMBAAGjGjAYMBYGDCqGOgAB7dNrAQEBBgQGAwQHAAOAMA0GCSqG
+SIb3DQEBBAUAA4GBAGArMf8AxUgaYLWLC4usAnxOJRDlHmvXR2ffGEIYr0HZRIrV
+1eGoeSFhlReyDYWjnxvTjzchaV+1EKlrTvxiXlAPVLJYrvEo0rRJMEsL+UtljJJw
+/vJOSEgZ9SJ2NRW2jnZVn2gAx6RrCKOuqdb8wfvPv4aTp6mRAV4tgCOqHwAh
+-----END CERTIFICATE-----
Binary file installationservices/switestfw/testcertificates/swi/test/tdevcerts/SymbianTestRootCARSA_OCSP/SymbianTestRootCARSA/certs/revoked_user_caps.cert.der has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/SymbianTestRootCARSA_OCSP/SymbianTestRootCARSA/certs/revoked_user_caps.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,43 @@
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 1 (0x1)
+        Signature Algorithm: md5WithRSAEncryption
+        Issuer: O=Symbian Software Ltd, CN=Symbian Test - RSA
+        Validity
+            Not Before: Mar 21 15:34:46 2005 GMT
+            Not After : Mar 19 15:34:46 2015 GMT
+        Subject: O=Symbian, CN=Test
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+            RSA Public Key: (512 bit)
+                Modulus (512 bit):
+                    00:d0:23:55:f9:ab:49:9f:ec:2d:36:61:5d:03:87:
+                    36:84:2d:60:55:99:b6:25:3d:9b:06:6f:a7:21:91:
+                    6b:93:52:74:21:fd:a4:db:85:b9:03:b3:f5:72:6b:
+                    92:e8:b1:05:b4:58:02:3e:80:9c:2f:c6:4d:7f:8d:
+                    8e:cf:70:f7:2d
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            1.2.826.0.1.1796587.1.1.1.6: 
+                ......
+    Signature Algorithm: md5WithRSAEncryption
+        60:2b:31:ff:00:c5:48:1a:60:b5:8b:0b:8b:ac:02:7c:4e:25:
+        10:e5:1e:6b:d7:47:67:df:18:42:18:af:41:d9:44:8a:d5:d5:
+        e1:a8:79:21:61:95:17:b2:0d:85:a3:9f:1b:d3:8f:37:21:69:
+        5f:b5:10:a9:6b:4e:fc:62:5e:50:0f:54:b2:58:ae:f1:28:d2:
+        b4:49:30:4b:0b:f9:4b:65:8c:92:70:fe:f2:4e:48:48:19:f5:
+        22:76:35:15:b6:8e:76:55:9f:68:00:c7:a4:6b:08:a3:ae:a9:
+        d6:fc:c1:fb:cf:bf:86:93:a7:a9:91:01:5e:2d:80:23:aa:1f:
+        00:21
+-----BEGIN CERTIFICATE-----
+MIIBqTCCARKgAwIBAgIBATANBgkqhkiG9w0BAQQFADA8MR0wGwYDVQQKExRTeW1i
+aWFuIFNvZnR3YXJlIEx0ZDEbMBkGA1UEAxMSU3ltYmlhbiBUZXN0IC0gUlNBMB4X
+DTA1MDMyMTE1MzQ0NloXDTE1MDMxOTE1MzQ0NlowITEQMA4GA1UEChMHU3ltYmlh
+bjENMAsGA1UEAxMEVGVzdDBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQDQI1X5q0mf
+7C02YV0DhzaELWBVmbYlPZsGb6chkWuTUnQh/aTbhbkDs/Vya5LosQW0WAI+gJwv
+xk1/jY7PcPctAgMBAAGjGjAYMBYGDCqGOgAB7dNrAQEBBgQGAwQHAAOAMA0GCSqG
+SIb3DQEBBAUAA4GBAGArMf8AxUgaYLWLC4usAnxOJRDlHmvXR2ffGEIYr0HZRIrV
+1eGoeSFhlReyDYWjnxvTjzchaV+1EKlrTvxiXlAPVLJYrvEo0rRJMEsL+UtljJJw
+/vJOSEgZ9SJ2NRW2jnZVn2gAx6RrCKOuqdb8wfvPv4aTp6mRAV4tgCOqHwAh
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/SymbianTestRootCARSA_OCSP/SymbianTestRootCARSA/certs/revoked_user_caps.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOwIBAAJBANAjVfmrSZ/sLTZhXQOHNoQtYFWZtiU9mwZvpyGRa5NSdCH9pNuF
+uQOz9XJrkuixBbRYAj6AnC/GTX+Njs9w9y0CAwEAAQJACU77Ql5BvbA/WWZDVawP
+aRvqagmk1seJjmEh9WNej0kVEEoODIIkddHEt2G0ADj/MGPG9PXsZLwkAP/TY1Ex
+YQIhAPRbGJ8kDKD1cIJY40P7DveGjWoNi/wWpr+5+yn1lbpFAiEA2g5q423qB7ne
+9ZNs79GvCI4h/meODgElFEQ7oRrJy8kCIQDoS0mG0CBpS6qfX5z9XUgHK5R4A1TW
+Wzo9/bG1W8/w+QIhAIuqumoLx9/E/Ps8v4ToQH1xVHK373Qm5ZISlkL9fo2JAiBm
++HD+I6C+h9GpPgAY03Hgos6mhZKeMIHe5s+GyS9wJw==
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/SymbianTestRootCARSA_OCSP/SymbianTestRootCARSA/certs/revoked_user_caps.req.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,8 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIIBAjCBrQIBADBIMQswCQYDVQQGEwJVSzEQMA4GA1UEChMHU3ltYmlhbjEYMBYG
+A1UECxMPU2VjdXJpdHkgLSBUZXN0MQ0wCwYDVQQDEwRUZXN0MFwwDQYJKoZIhvcN
+AQEBBQADSwAwSAJBANAjVfmrSZ/sLTZhXQOHNoQtYFWZtiU9mwZvpyGRa5NSdCH9
+pNuFuQOz9XJrkuixBbRYAj6AnC/GTX+Njs9w9y0CAwEAAaAAMA0GCSqGSIb3DQEB
+BAUAA0EAh7aqNfTKhrsBfoz765zZSsQAXkUMSWm0xbv2cLhVtjk7NSpo2g0JwdC9
+nn11reeaNC8TnEDk4xz0e5EU0ARyEg==
+-----END CERTIFICATE REQUEST-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/SymbianTestRootCARSA_OCSP/SymbianTestRootCARSA/private/ca.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICWwIBAAKBgQChVEG+fSTsN8df07UDBsxGUZO5B9egVtoT6Do3iD1W0LwAOuPs
+74LpQRMgRFWpuoicMlEMoaTIZ/GPi6yHhC7CPJELlvBW1TXgbvzMdhUvacDyUKHj
+YMgkIF4+t1OziH6cKAN2I0H/nWa1m54YmYyU2cNAI3aSkuIqBPv+0B/XgQIDAQAB
+AoGACVCcGyuOnjT6RgYrRWl3EfhT1zMkuBVLsiqOcfZj1EdpE3pS/rM1k9I2EH7h
+k1M54ArnsxsCMLAPuoIODCUNrgHoTKJtL8cU8Pa7ZALewSLfRDUqOJLi+W3Ups46
+6jvdqQkFRF2k9evJOyI7wMs1rG0c/MzBGC+5lRbOOWbfcYECQQDPLUO58npxgrup
+usp2LUdE/Vz/fsJOVCoyzJq29LMvTqmAWqPvU1YkoB+U1ZOtvxd8r6/vlUZvDx64
+y2m4htLdAkEAx1kOCcpLl+ElEDGV3z7F77JTh128DvczyOU3j639LvqTfQR3FHOP
++89RmP1axo/Qhh0tClkdif8ZV99iac6S9QJAdrDt/hfGwkUtkj2rRC0IiaPFpbJP
+S2S4kEXb1Tk3dsDQJvLGvJO35F+/+Bqr8nxpzkswtkeFBJda+G/A77B+GQJAWAT5
+TtdUo14U6F6Mh0MHULvTZ9y6cX0zD0wuSTGQrhKT1sqG7a/M7mlu5PdRAoVzlBQD
+1CLfCRRrE0KeCIvelQJAaSdqX9/vuiJOnGfL8SSXxfB3hXcJU0e2Lo252eeeQtux
+oMTb0/jADuN0nxfsU1yvxgX+1nsso8uwpFPiFwdPHQ==
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/SymbianTestRootCARSA_OCSP/SymbianTestRootCARSA/private/ca.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICRDCCAa2gAwIBAgIBADANBgkqhkiG9w0BAQQFADA8MR0wGwYDVQQKExRTeW1i
+aWFuIFNvZnR3YXJlIEx0ZDEbMBkGA1UEAxMSU3ltYmlhbiBUZXN0IC0gUlNBMB4X
+DTA0MDQxODE0MzYxNFoXDTIwMDkyMTE0MzYxNFowPDEdMBsGA1UEChMUU3ltYmlh
+biBTb2Z0d2FyZSBMdGQxGzAZBgNVBAMTElN5bWJpYW4gVGVzdCAtIFJTQTCBnzAN
+BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAoVRBvn0k7DfHX9O1AwbMRlGTuQfXoFba
+E+g6N4g9VtC8ADrj7O+C6UETIERVqbqInDJRDKGkyGfxj4ush4QuwjyRC5bwVtU1
+4G78zHYVL2nA8lCh42DIJCBePrdTs4h+nCgDdiNB/51mtZueGJmMlNnDQCN2kpLi
+KgT7/tAf14ECAwEAAaNWMFQwDgYDVR0PAQH/BAQDAgIEMBIGA1UdEwEB/wQIMAYB
+Af8CAQUwHQYDVR0OBBYEFOaTjrYQFlD8GQSM5KnKMYYmBZLWMA8GCSsGAQUFBzAB
+BQQCBQAwDQYJKoZIhvcNAQEEBQADgYEALXOi9zFgWw453UGQvw0HGNh6wemX2Ood
+pKceGDWyWFaQIxTA9dYVSqnhKWa728UklUi0CcRwp3leYHlvubkcSQANmRtM05PS
+kY2a2ENBf9afB/HNvOciFgGoHa494csZZ6ZS2GeKBxBOfajrjZrvQ3XDKptsRT1q
+50LsYyJhSg4=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/01_loader_capabilities_chain_0.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB7TCCAVagAwIBAgIJANV8hSQH4qoOMA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjM0WhcNMTYwNjE4MTEzMjM0WjBaMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjE5MDcGA1UEAxQwRW50aXR5IENlcnQgMDFf
+bG9hZGVyX2NhcGFiaWxpdGllcyB1c2VyX2NhcHMgMCAwMFwwDQYJKoZIhvcNAQEB
+BQADSwAwSAJBAK4+9en8OmevaVz3hy1jvf+1Ozq0TVK0JfEXsn3k0XluLKab3Fzr
+3RDaJw26PDp9AWfDeQX3Racrz7ws1HpAkdECAwEAAaMdMBswGQYMKoY6AAHt02sB
+AQEGAQH/BAYDBAcAA4AwDQYJKoZIhvcNAQEFBQADgYEASYYiL5392LhFv+KyyIWF
+zh4cdHc4xrFt9OAjpaEt8NZVFUWq5q9CZaUkuEvO0Syqlpn9hNq9GnENPSnWJCOA
+uh6Pux1qVokoUfZnj7SsYJ4g7p3ZzYeYJPKis8ksfj2qFMVUjEHwg4VCThe0RUdR
+BLsz6tBopaX/VsGM7lvxsYk=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/01_loader_capabilities_user_caps.0.0.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB7TCCAVagAwIBAgIJANV8hSQH4qoOMA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjM0WhcNMTYwNjE4MTEzMjM0WjBaMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjE5MDcGA1UEAxQwRW50aXR5IENlcnQgMDFf
+bG9hZGVyX2NhcGFiaWxpdGllcyB1c2VyX2NhcHMgMCAwMFwwDQYJKoZIhvcNAQEB
+BQADSwAwSAJBAK4+9en8OmevaVz3hy1jvf+1Ozq0TVK0JfEXsn3k0XluLKab3Fzr
+3RDaJw26PDp9AWfDeQX3Racrz7ws1HpAkdECAwEAAaMdMBswGQYMKoY6AAHt02sB
+AQEGAQH/BAYDBAcAA4AwDQYJKoZIhvcNAQEFBQADgYEASYYiL5392LhFv+KyyIWF
+zh4cdHc4xrFt9OAjpaEt8NZVFUWq5q9CZaUkuEvO0Syqlpn9hNq9GnENPSnWJCOA
+uh6Pux1qVokoUfZnj7SsYJ4g7p3ZzYeYJPKis8ksfj2qFMVUjEHwg4VCThe0RUdR
+BLsz6tBopaX/VsGM7lvxsYk=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/02_protected_vid_mismatch_bad_single_vid.0.0.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB9zCCAWCgAwIBAgIJANV8hSQH4qoPMA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjM1WhcNMTYwNjE4MTEzMjM1WjBiMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjFBMD8GA1UEAxQ4RW50aXR5IENlcnQgMDJf
+cHJvdGVjdGVkX3ZpZF9taXNtYXRjaCBiYWRfc2luZ2xlX3ZpZCAwIDAwXDANBgkq
+hkiG9w0BAQEFAANLADBIAkEAmj5oN9Tt4Hj+7tBZFj80xzxiqixOXqxlEucnMhIY
+ylnm751hQfwBKT0II+XYfYKEYFH1v8DK7jPR2/GRifgYoQIDAQABox8wHTAbBgwq
+hjoAAe3TawEBAQUBAf8ECDAGAgTAAcDeMA0GCSqGSIb3DQEBBQUAA4GBADY+8kJC
+9CXnEo4Ro7FQve1Cng+yBdDR3tIBRDFrD+GvRNYF15cW1VrHZsHAKOgLAF2di/iO
+braK7961pI1kb/PuPYQnaPGQVuHNSkG9UVB8TLvJ2cxjkE36h71CjhpsI1rIXocr
+dncOZvCULpLVTeOSyGypMcWW8tOLhLYrnpCO
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/02_protected_vid_mismatch_chain_0.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB9zCCAWCgAwIBAgIJANV8hSQH4qoPMA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjM1WhcNMTYwNjE4MTEzMjM1WjBiMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjFBMD8GA1UEAxQ4RW50aXR5IENlcnQgMDJf
+cHJvdGVjdGVkX3ZpZF9taXNtYXRjaCBiYWRfc2luZ2xlX3ZpZCAwIDAwXDANBgkq
+hkiG9w0BAQEFAANLADBIAkEAmj5oN9Tt4Hj+7tBZFj80xzxiqixOXqxlEucnMhIY
+ylnm751hQfwBKT0II+XYfYKEYFH1v8DK7jPR2/GRifgYoQIDAQABox8wHTAbBgwq
+hjoAAe3TawEBAQUBAf8ECDAGAgTAAcDeMA0GCSqGSIb3DQEBBQUAA4GBADY+8kJC
+9CXnEo4Ro7FQve1Cng+yBdDR3tIBRDFrD+GvRNYF15cW1VrHZsHAKOgLAF2di/iO
+braK7961pI1kb/PuPYQnaPGQVuHNSkG9UVB8TLvJ2cxjkE36h71CjhpsI1rIXocr
+dncOZvCULpLVTeOSyGypMcWW8tOLhLYrnpCO
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/03_protected_vid_match_chain_0.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB8TCCAVqgAwIBAgIJANV8hSQH4qoQMA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjM1WhcNMTYwNjE4MTEzMjM1WjBcMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjE7MDkGA1UEAxQyRW50aXR5IENlcnQgMDNf
+cHJvdGVjdGVkX3ZpZF9tYXRjaCBzaW5nbGVfdmlkMSAwIDAwXDANBgkqhkiG9w0B
+AQEFAANLADBIAkEAyd1OHBbfgdxyguiWPpN951f+zbmLXprYMlTAqjX1A1t4ec1q
+T/yGI8BxFk3u2qUV2wmlKAkYro/at8lyYmtxiQIDAQABox8wHTAbBgwqhjoAAe3T
+awEBAQUBAf8ECDAGAgRwAAABMA0GCSqGSIb3DQEBBQUAA4GBABcJSPTv1vjkn8U6
+wX20kpkwkvR7GFTronC1tSAPFjvOJqIRZ984lnynuYf3kSUFFgX0JtQa+DosEmRT
+CXLNEk3mX0UQlAlgChaupudD0lqGqwQGhZ5cHC4v/9p78sSxoriJ4wyyI1hKY0Qj
+iHMGyyWJhZ5ODLR1BmSTXsPKrOGd
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/03_protected_vid_match_single_vid1.0.0.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB8TCCAVqgAwIBAgIJANV8hSQH4qoQMA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjM1WhcNMTYwNjE4MTEzMjM1WjBcMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjE7MDkGA1UEAxQyRW50aXR5IENlcnQgMDNf
+cHJvdGVjdGVkX3ZpZF9tYXRjaCBzaW5nbGVfdmlkMSAwIDAwXDANBgkqhkiG9w0B
+AQEFAANLADBIAkEAyd1OHBbfgdxyguiWPpN951f+zbmLXprYMlTAqjX1A1t4ec1q
+T/yGI8BxFk3u2qUV2wmlKAkYro/at8lyYmtxiQIDAQABox8wHTAbBgwqhjoAAe3T
+awEBAQUBAf8ECDAGAgRwAAABMA0GCSqGSIb3DQEBBQUAA4GBABcJSPTv1vjkn8U6
+wX20kpkwkvR7GFTronC1tSAPFjvOJqIRZ984lnynuYf3kSUFFgX0JtQa+DosEmRT
+CXLNEk3mX0UQlAlgChaupudD0lqGqwQGhZ5cHC4v/9p78sSxoriJ4wyyI1hKY0Qj
+iHMGyyWJhZ5ODLR1BmSTXsPKrOGd
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/04_protpuid_constr_sid_mismatch_chain_0.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB+jCCAWOgAwIBAgIJANV8hSQH4qoRMA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjM2WhcNMTYwNjE4MTEzMjM2WjBlMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjFEMEIGA1UEAxQ7RW50aXR5IENlcnQgMDRf
+cHJvdHB1aWRfY29uc3RyX3NpZF9taXNtYXRjaCBzaW5nbGVfc2lkMSAwIDAwXDAN
+BgkqhkiG9w0BAQEFAANLADBIAkEA2jikKDgPMVtA9wUDtgFsMr0VOmSSBJCsmABl
+OoZk70N0sfaBIQHWnKq1NYOqCfh38xavY4o4b9Q7tlJUSzZfYwIDAQABox8wHTAb
+BgwqhjoAAe3TawEBAQQBAf8ECDAGAgQRAAAGMA0GCSqGSIb3DQEBBQUAA4GBAHFI
+JcxGIvFCJxaHJxl+GLwdgB9HS2EMH1vMpt3xc7LmO6nzjzq4bkcVSn8OPqcREcHE
+CrgJnAPw7DyxhsHg2DirmS7SH1pgRHXAduWsokeLH/J2FwBYSsEmGOuhpydn9pIE
+7p7OtCvhnFNdU9CvjgOsXyXeCcGgDAmvGOxUZ6ct
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/04_protpuid_constr_sid_mismatch_single_sid1.0.0.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB+jCCAWOgAwIBAgIJANV8hSQH4qoRMA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjM2WhcNMTYwNjE4MTEzMjM2WjBlMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjFEMEIGA1UEAxQ7RW50aXR5IENlcnQgMDRf
+cHJvdHB1aWRfY29uc3RyX3NpZF9taXNtYXRjaCBzaW5nbGVfc2lkMSAwIDAwXDAN
+BgkqhkiG9w0BAQEFAANLADBIAkEA2jikKDgPMVtA9wUDtgFsMr0VOmSSBJCsmABl
+OoZk70N0sfaBIQHWnKq1NYOqCfh38xavY4o4b9Q7tlJUSzZfYwIDAQABox8wHTAb
+BgwqhjoAAe3TawEBAQQBAf8ECDAGAgQRAAAGMA0GCSqGSIb3DQEBBQUAA4GBAHFI
+JcxGIvFCJxaHJxl+GLwdgB9HS2EMH1vMpt3xc7LmO6nzjzq4bkcVSn8OPqcREcHE
+CrgJnAPw7DyxhsHg2DirmS7SH1pgRHXAduWsokeLH/J2FwBYSsEmGOuhpydn9pIE
+7p7OtCvhnFNdU9CvjgOsXyXeCcGgDAmvGOxUZ6ct
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/05_protpuid_nonconstr_sid_match_chain_0.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,12 @@
+-----BEGIN CERTIFICATE-----
+MIIB2zCCAUSgAwIBAgIJANV8hSQH4qoSMA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjM2WhcNMTYwNjE4MTEzMjM2WjBnMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjFGMEQGA1UEAxQ9RW50aXR5IENlcnQgMDVf
+cHJvdHB1aWRfbm9uY29uc3RyX3NpZF9tYXRjaCB1bmNvbnN0cmFpbmVkIDAgMDBc
+MA0GCSqGSIb3DQEBAQUAA0sAMEgCQQDKxvo0UiugCu23sg3WNiyxVvfa0fCS0OjM
+ToVAyUgLDDGHPsmvvvNShyWeYZx7vru3pJ9qvq+TLl5xbFjXTB51AgMBAAEwDQYJ
+KoZIhvcNAQEFBQADgYEAJzVBPz5nQIHqpWMudLCUb2EcGzoZyIKbpZJE27KVjK6B
+wUxf4DjvYs9JZJLDV76LA5UttBJAogl7Al5nIhZUXPrHpSY33+7x9wgfSorl57mO
+vqZ9Em2Q2Bysl+ZAsVTA79cyBQQBu6AgC5Mn8QJnKfD4xD+s1NKYKlIHeuv9pTo=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/05_protpuid_nonconstr_sid_match_unconstrained.0.0.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,12 @@
+-----BEGIN CERTIFICATE-----
+MIIB2zCCAUSgAwIBAgIJANV8hSQH4qoSMA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjM2WhcNMTYwNjE4MTEzMjM2WjBnMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjFGMEQGA1UEAxQ9RW50aXR5IENlcnQgMDVf
+cHJvdHB1aWRfbm9uY29uc3RyX3NpZF9tYXRjaCB1bmNvbnN0cmFpbmVkIDAgMDBc
+MA0GCSqGSIb3DQEBAQUAA0sAMEgCQQDKxvo0UiugCu23sg3WNiyxVvfa0fCS0OjM
+ToVAyUgLDDGHPsmvvvNShyWeYZx7vru3pJ9qvq+TLl5xbFjXTB51AgMBAAEwDQYJ
+KoZIhvcNAQEFBQADgYEAJzVBPz5nQIHqpWMudLCUb2EcGzoZyIKbpZJE27KVjK6B
+wUxf4DjvYs9JZJLDV76LA5UttBJAogl7Al5nIhZUXPrHpSY33+7x9wgfSorl57mO
+vqZ9Em2Q2Bysl+ZAsVTA79cyBQQBu6AgC5Mn8QJnKfD4xD+s1NKYKlIHeuv9pTo=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/06_nonprotpuid_constr_sid_match_chain_0.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB+jCCAWOgAwIBAgIJANV8hSQH4qoTMA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjM3WhcNMTYwNjE4MTEzMjM3WjBlMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjFEMEIGA1UEAxQ7RW50aXR5IENlcnQgMDZf
+bm9ucHJvdHB1aWRfY29uc3RyX3NpZF9tYXRjaCBzaW5nbGVfc2lkMSAwIDAwXDAN
+BgkqhkiG9w0BAQEFAANLADBIAkEAxwLkiGdyqICb1CJCasEyeBvBrDNff9rpXxlf
+le+aFdZ+OHoYNefwEJJOGArQi2fD4VNZj5gFtI8BhqA/7lBzMQIDAQABox8wHTAb
+BgwqhjoAAe3TawEBAQQBAf8ECDAGAgQRAAAGMA0GCSqGSIb3DQEBBQUAA4GBAB4J
+12vgbt1ZnkNr/vTDK8J8P1nSkn+EccNgMUGdOiAwBSo7b+NSE244BonOzyfvTtJn
+7Wa35mamp3P6ZFWq13BUp2Z05zlKYXco6zdd0ovIT26HUZALZ5JHvSVoX3H+7x83
+K+Eh/yfwiGMkB7APSnQsiyFOzUhjTZGAc6hrkvzU
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/06_nonprotpuid_constr_sid_match_single_sid1.0.0.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB+jCCAWOgAwIBAgIJANV8hSQH4qoTMA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjM3WhcNMTYwNjE4MTEzMjM3WjBlMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjFEMEIGA1UEAxQ7RW50aXR5IENlcnQgMDZf
+bm9ucHJvdHB1aWRfY29uc3RyX3NpZF9tYXRjaCBzaW5nbGVfc2lkMSAwIDAwXDAN
+BgkqhkiG9w0BAQEFAANLADBIAkEAxwLkiGdyqICb1CJCasEyeBvBrDNff9rpXxlf
+le+aFdZ+OHoYNefwEJJOGArQi2fD4VNZj5gFtI8BhqA/7lBzMQIDAQABox8wHTAb
+BgwqhjoAAe3TawEBAQQBAf8ECDAGAgQRAAAGMA0GCSqGSIb3DQEBBQUAA4GBAB4J
+12vgbt1ZnkNr/vTDK8J8P1nSkn+EccNgMUGdOiAwBSo7b+NSE244BonOzyfvTtJn
+7Wa35mamp3P6ZFWq13BUp2Z05zlKYXco6zdd0ovIT26HUZALZ5JHvSVoX3H+7x83
+K+Eh/yfwiGMkB7APSnQsiyFOzUhjTZGAc6hrkvzU
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/aggregate_01_bad_single_dev.0.1.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,12 @@
+-----BEGIN CERTIFICATE-----
+MIIB0DCCAXqgAwIBAgIJANfobSsbdLRrMA0GCSqGSIb3DQEBBQUAMFIxCzAJBgNV
+BAYTAlVLMRAwDgYDVQQKEwdTeW1iaWFuMTEwLwYDVQQDFChFbnRpdHkgQ2VydCBh
+Z2dyZWdhdGVfMDEgc2luZ2xlX2RldjEgMCAwMB4XDTA2MDYyMTEzNDEwN1oXDTE2
+MDYxODEzNDEwN1owVTELMAkGA1UEBhMCVUsxEDAOBgNVBAoTB1N5bWJpYW4xNDAy
+BgNVBAMUK0VudGl0eSBDZXJ0IGFnZ3JlZ2F0ZV8wMSBiYWRfc2luZ2xlX2RldiAw
+IDEwXDANBgkqhkiG9w0BAQEFAANLADBIAkEAxFiIFAlht/O7pZzn/3ykIVKGkONC
+2Jmw+tno6lqhVY2gZxN2GE0ziBAoY3qEUzegPaYRM+0f/cx/qUv36ZbTBQIDAQAB
+ozAwLjAsBgwqhjoAAe3TawEBAQEBAf8EGTAXDBVUSElTIFNIT1VMRCBOT1QgTUFU
+Q0gwDQYJKoZIhvcNAQEFBQADQQBYHtXOqsq9o6v2ZK2r0MCdrfSKqb1XB8GOWama
+ea+SEWoEW2n9mz5X5Lw4SSETF855xpxdz6URlQg2fm8DymD2
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/aggregate_01_chain_0.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,26 @@
+-----BEGIN CERTIFICATE-----
+MIIB0DCCAXqgAwIBAgIJANfobSsbdLRrMA0GCSqGSIb3DQEBBQUAMFIxCzAJBgNV
+BAYTAlVLMRAwDgYDVQQKEwdTeW1iaWFuMTEwLwYDVQQDFChFbnRpdHkgQ2VydCBh
+Z2dyZWdhdGVfMDEgc2luZ2xlX2RldjEgMCAwMB4XDTA2MDYyMTEzNDEwN1oXDTE2
+MDYxODEzNDEwN1owVTELMAkGA1UEBhMCVUsxEDAOBgNVBAoTB1N5bWJpYW4xNDAy
+BgNVBAMUK0VudGl0eSBDZXJ0IGFnZ3JlZ2F0ZV8wMSBiYWRfc2luZ2xlX2RldiAw
+IDEwXDANBgkqhkiG9w0BAQEFAANLADBIAkEAxFiIFAlht/O7pZzn/3ykIVKGkONC
+2Jmw+tno6lqhVY2gZxN2GE0ziBAoY3qEUzegPaYRM+0f/cx/qUv36ZbTBQIDAQAB
+ozAwLjAsBgwqhjoAAe3TawEBAQEBAf8EGTAXDBVUSElTIFNIT1VMRCBOT1QgTUFU
+Q0gwDQYJKoZIhvcNAQEFBQADQQBYHtXOqsq9o6v2ZK2r0MCdrfSKqb1XB8GOWama
+ea+SEWoEW2n9mz5X5Lw4SSETF855xpxdz6URlQg2fm8DymD2
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICOjCCAaOgAwIBAgIJANV8hSQH4qocMA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTM0MTA3WhcNMTYwNjE4MTM0MTA3WjBSMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjExMC8GA1UEAxQoRW50aXR5IENlcnQgYWdn
+cmVnYXRlXzAxIHNpbmdsZV9kZXYxIDAgMDBcMA0GCSqGSIb3DQEBAQUAA0sAMEgC
+QQCdZ75JbU5ZfbwO7ihm1yrbaDx3SiLl83UHtpL+hdtkMK1pnRFmAwSuKRyuju4+
+WnmwCZoxHVy6lJK89F9xSKbhAgMBAAGjcjBwMCsGDCqGOgAB7dNrAQEBAQEB/wQY
+MBYMFDExMTExMTExLTIyMjIyMi0zLTAxMB0GA1UdDgQWBBSfwKfSvQkzPaiX0JfF
+TAX8TOyzzDASBgNVHRMBAf8ECDAGAQH/AgEFMA4GA1UdDwEB/wQEAwICBDANBgkq
+hkiG9w0BAQUFAAOBgQB5rZ+k4/xrz7dG0/iY4719Bs3Sx2BFOrPLVyWTs+K8em46
+vGQPJ6pRJO74rKTaw18CCdlbDcu5RrKeGmf2Das3LNNwijoX99uVpA38Sl9kIvx1
+cQ8B+yH0Ff/OqHTE1k6ZvXiUm5EdEzbUqxaUQXKLVyXw57ShPjjrsvUDL72RGQ==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/aggregate_01_single_dev1.0.0.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICOjCCAaOgAwIBAgIJANV8hSQH4qocMA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTM0MTA3WhcNMTYwNjE4MTM0MTA3WjBSMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjExMC8GA1UEAxQoRW50aXR5IENlcnQgYWdn
+cmVnYXRlXzAxIHNpbmdsZV9kZXYxIDAgMDBcMA0GCSqGSIb3DQEBAQUAA0sAMEgC
+QQCdZ75JbU5ZfbwO7ihm1yrbaDx3SiLl83UHtpL+hdtkMK1pnRFmAwSuKRyuju4+
+WnmwCZoxHVy6lJK89F9xSKbhAgMBAAGjcjBwMCsGDCqGOgAB7dNrAQEBAQEB/wQY
+MBYMFDExMTExMTExLTIyMjIyMi0zLTAxMB0GA1UdDgQWBBSfwKfSvQkzPaiX0JfF
+TAX8TOyzzDASBgNVHRMBAf8ECDAGAQH/AgEFMA4GA1UdDwEB/wQEAwICBDANBgkq
+hkiG9w0BAQUFAAOBgQB5rZ+k4/xrz7dG0/iY4719Bs3Sx2BFOrPLVyWTs+K8em46
+vGQPJ6pRJO74rKTaw18CCdlbDcu5RrKeGmf2Das3LNNwijoX99uVpA38Sl9kIvx1
+cQ8B+yH0Ff/OqHTE1k6ZvXiUm5EdEzbUqxaUQXKLVyXw57ShPjjrsvUDL72RGQ==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/aggregate_02_bad_single_sid.0.1.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,12 @@
+-----BEGIN CERTIFICATE-----
+MIIBvTCCAWegAwIBAgIJAI17gxS+td6TMA0GCSqGSIb3DQEBBQUAMFIxCzAJBgNV
+BAYTAlVLMRAwDgYDVQQKEwdTeW1iaWFuMTEwLwYDVQQDFChFbnRpdHkgQ2VydCBh
+Z2dyZWdhdGVfMDIgc2luZ2xlX3NpZDEgMCAwMB4XDTA2MDYyMTExMzIwN1oXDTE2
+MDYxODExMzIwN1owVTELMAkGA1UEBhMCVUsxEDAOBgNVBAoTB1N5bWJpYW4xNDAy
+BgNVBAMUK0VudGl0eSBDZXJ0IGFnZ3JlZ2F0ZV8wMiBiYWRfc2luZ2xlX3NpZCAw
+IDEwXDANBgkqhkiG9w0BAQEFAANLADBIAkEAz+B/32vEKFQJQLJTgWXcMAuXyNt9
+FFJR+TIe8W0HUGPYuFljJmOwY3ujv2N8jH9SgznRm2H04klFK5gw0uHTvQIDAQAB
+ox0wGzAZBgwqhjoAAe3TawEBAQQBAf8EBjAEAgLA3jANBgkqhkiG9w0BAQUFAANB
+ACSiaXI4dqPvGtB4nKEyyjIUyIdzDeKgJrKg2Pj5SNUP1B87CTAyprKeN/dXReTw
+fYTFHA+dwQvnvf1brLOw7yU=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/aggregate_02_chain_0.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,26 @@
+-----BEGIN CERTIFICATE-----
+MIIBvTCCAWegAwIBAgIJAI17gxS+td6TMA0GCSqGSIb3DQEBBQUAMFIxCzAJBgNV
+BAYTAlVLMRAwDgYDVQQKEwdTeW1iaWFuMTEwLwYDVQQDFChFbnRpdHkgQ2VydCBh
+Z2dyZWdhdGVfMDIgc2luZ2xlX3NpZDEgMCAwMB4XDTA2MDYyMTExMzIwN1oXDTE2
+MDYxODExMzIwN1owVTELMAkGA1UEBhMCVUsxEDAOBgNVBAoTB1N5bWJpYW4xNDAy
+BgNVBAMUK0VudGl0eSBDZXJ0IGFnZ3JlZ2F0ZV8wMiBiYWRfc2luZ2xlX3NpZCAw
+IDEwXDANBgkqhkiG9w0BAQEFAANLADBIAkEAz+B/32vEKFQJQLJTgWXcMAuXyNt9
+FFJR+TIe8W0HUGPYuFljJmOwY3ujv2N8jH9SgznRm2H04klFK5gw0uHTvQIDAQAB
+ox0wGzAZBgwqhjoAAe3TawEBAQQBAf8EBjAEAgLA3jANBgkqhkiG9w0BAQUFAANB
+ACSiaXI4dqPvGtB4nKEyyjIUyIdzDeKgJrKg2Pj5SNUP1B87CTAyprKeN/dXReTw
+fYTFHA+dwQvnvf1brLOw7yU=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICKjCCAZOgAwIBAgIJANV8hSQH4qnlMA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjA2WhcNMTYwNjE4MTEzMjA2WjBSMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjExMC8GA1UEAxQoRW50aXR5IENlcnQgYWdn
+cmVnYXRlXzAyIHNpbmdsZV9zaWQxIDAgMDBcMA0GCSqGSIb3DQEBAQUAA0sAMEgC
+QQDIGWIRGZYlM9x94YE5ZD8F2jcwcNtf9Q8ONcQNdan4rr/1KofPBqA9iTVz57Ei
+lfrK4TzjFjBEZgJOvEKGUccTAgMBAAGjYjBgMBsGDCqGOgAB7dNrAQEBBAEB/wQI
+MAYCBBEAAAYwHQYDVR0OBBYEFD2OXFGPUO2BFyrICAJjwbTF8xEOMBIGA1UdEwEB
+/wQIMAYBAf8CAQUwDgYDVR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBBQUAA4GBABg3
+T/7YcfOb8FHpX36j0itg86t6RTDa9yZt/XLFWF9HbcEEAqdGHoPjUpkKCfKvwzKv
+VuzOILikQlzsgXKvLHKw9PYaD7pccK5mWLOvEmxmDte/LZk680QmLW4ePeficxY3
+XpuBA6FUog54KSNGODjP0bTl/rn4iY/0EBowYoS5
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/aggregate_02_single_sid1.0.0.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICKjCCAZOgAwIBAgIJANV8hSQH4qnlMA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjA2WhcNMTYwNjE4MTEzMjA2WjBSMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjExMC8GA1UEAxQoRW50aXR5IENlcnQgYWdn
+cmVnYXRlXzAyIHNpbmdsZV9zaWQxIDAgMDBcMA0GCSqGSIb3DQEBAQUAA0sAMEgC
+QQDIGWIRGZYlM9x94YE5ZD8F2jcwcNtf9Q8ONcQNdan4rr/1KofPBqA9iTVz57Ei
+lfrK4TzjFjBEZgJOvEKGUccTAgMBAAGjYjBgMBsGDCqGOgAB7dNrAQEBBAEB/wQI
+MAYCBBEAAAYwHQYDVR0OBBYEFD2OXFGPUO2BFyrICAJjwbTF8xEOMBIGA1UdEwEB
+/wQIMAYBAf8CAQUwDgYDVR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBBQUAA4GBABg3
+T/7YcfOb8FHpX36j0itg86t6RTDa9yZt/XLFWF9HbcEEAqdGHoPjUpkKCfKvwzKv
+VuzOILikQlzsgXKvLHKw9PYaD7pccK5mWLOvEmxmDte/LZk680QmLW4ePeficxY3
+XpuBA6FUog54KSNGODjP0bTl/rn4iY/0EBowYoS5
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/aggregate_03_bad_single_vid.0.1.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,12 @@
+-----BEGIN CERTIFICATE-----
+MIIBvzCCAWmgAwIBAgIJALtz4cu15GDPMA0GCSqGSIb3DQEBBQUAMFIxCzAJBgNV
+BAYTAlVLMRAwDgYDVQQKEwdTeW1iaWFuMTEwLwYDVQQDFChFbnRpdHkgQ2VydCBh
+Z2dyZWdhdGVfMDMgc2luZ2xlX3ZpZDEgMCAwMB4XDTA2MDYyMTExMzIwOFoXDTE2
+MDYxODExMzIwOFowVTELMAkGA1UEBhMCVUsxEDAOBgNVBAoTB1N5bWJpYW4xNDAy
+BgNVBAMUK0VudGl0eSBDZXJ0IGFnZ3JlZ2F0ZV8wMyBiYWRfc2luZ2xlX3ZpZCAw
+IDEwXDANBgkqhkiG9w0BAQEFAANLADBIAkEAry0DToyeQPVsGZoJlw0G3VJ0coVx
+aLxKmPxRtAfptL/PxDKYrPCaEQD5sL1JO/fUIUmC2odwY3oCdqxEH47cVQIDAQAB
+ox8wHTAbBgwqhjoAAe3TawEBAQUBAf8ECDAGAgTAAcDeMA0GCSqGSIb3DQEBBQUA
+A0EAw/XgIyP/n7PtJcGSRnezGRcBagtoag7ZaZyZ6FnZSK09SgWrow1s36rtF3Bf
+3iauz7ZcwX6RK2/N/S8HWvKXkw==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/aggregate_03_chain_0.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,26 @@
+-----BEGIN CERTIFICATE-----
+MIIBvzCCAWmgAwIBAgIJALtz4cu15GDPMA0GCSqGSIb3DQEBBQUAMFIxCzAJBgNV
+BAYTAlVLMRAwDgYDVQQKEwdTeW1iaWFuMTEwLwYDVQQDFChFbnRpdHkgQ2VydCBh
+Z2dyZWdhdGVfMDMgc2luZ2xlX3ZpZDEgMCAwMB4XDTA2MDYyMTExMzIwOFoXDTE2
+MDYxODExMzIwOFowVTELMAkGA1UEBhMCVUsxEDAOBgNVBAoTB1N5bWJpYW4xNDAy
+BgNVBAMUK0VudGl0eSBDZXJ0IGFnZ3JlZ2F0ZV8wMyBiYWRfc2luZ2xlX3ZpZCAw
+IDEwXDANBgkqhkiG9w0BAQEFAANLADBIAkEAry0DToyeQPVsGZoJlw0G3VJ0coVx
+aLxKmPxRtAfptL/PxDKYrPCaEQD5sL1JO/fUIUmC2odwY3oCdqxEH47cVQIDAQAB
+ox8wHTAbBgwqhjoAAe3TawEBAQUBAf8ECDAGAgTAAcDeMA0GCSqGSIb3DQEBBQUA
+A0EAw/XgIyP/n7PtJcGSRnezGRcBagtoag7ZaZyZ6FnZSK09SgWrow1s36rtF3Bf
+3iauz7ZcwX6RK2/N/S8HWvKXkw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICKjCCAZOgAwIBAgIJANV8hSQH4qnmMA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjA3WhcNMTYwNjE4MTEzMjA3WjBSMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjExMC8GA1UEAxQoRW50aXR5IENlcnQgYWdn
+cmVnYXRlXzAzIHNpbmdsZV92aWQxIDAgMDBcMA0GCSqGSIb3DQEBAQUAA0sAMEgC
+QQDUui5MSZ0zdguKeBiYStLBhv8yjB8rjnWP4Gy36vYqgGS+xGMw4F8f65C5jFrT
+rIanflAS7IbQRWlrsHPOJJEBAgMBAAGjYjBgMBsGDCqGOgAB7dNrAQEBBQEB/wQI
+MAYCBHAAAAEwHQYDVR0OBBYEFAvBCLk4/+Bzc27JZ61zX610FkeyMBIGA1UdEwEB
+/wQIMAYBAf8CAQUwDgYDVR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBBQUAA4GBAIYW
+RCzMUxS3TVTVG2SGQX9AcSXJiaZvCzV6G6gkSIJueNvV4X8vvVcdG/QipjTH955A
+eXwumhz3IBE1FxNzIps0R9b6thBdY9oxHOCEYa0gyfdADwg8u58waF+Vy1KSNF35
+0Pe1CAV3NIyK4T5SGBEKCNJcdVK3JoQfad0PXhTW
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/aggregate_03_single_vid1.0.0.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICKjCCAZOgAwIBAgIJANV8hSQH4qnmMA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjA3WhcNMTYwNjE4MTEzMjA3WjBSMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjExMC8GA1UEAxQoRW50aXR5IENlcnQgYWdn
+cmVnYXRlXzAzIHNpbmdsZV92aWQxIDAgMDBcMA0GCSqGSIb3DQEBAQUAA0sAMEgC
+QQDUui5MSZ0zdguKeBiYStLBhv8yjB8rjnWP4Gy36vYqgGS+xGMw4F8f65C5jFrT
+rIanflAS7IbQRWlrsHPOJJEBAgMBAAGjYjBgMBsGDCqGOgAB7dNrAQEBBQEB/wQI
+MAYCBHAAAAEwHQYDVR0OBBYEFAvBCLk4/+Bzc27JZ61zX610FkeyMBIGA1UdEwEB
+/wQIMAYBAf8CAQUwDgYDVR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBBQUAA4GBAIYW
+RCzMUxS3TVTVG2SGQX9AcSXJiaZvCzV6G6gkSIJueNvV4X8vvVcdG/QipjTH955A
+eXwumhz3IBE1FxNzIps0R9b6thBdY9oxHOCEYa0gyfdADwg8u58waF+Vy1KSNF35
+0Pe1CAV3NIyK4T5SGBEKCNJcdVK3JoQfad0PXhTW
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/aggregate_04_chain_0.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,26 @@
+-----BEGIN CERTIFICATE-----
+MIIBszCCAV2gAwIBAgIJAIyumWEA0fDYMA0GCSqGSIb3DQEBBQUAMFAxCzAJBgNV
+BAYTAlVLMRAwDgYDVQQKEwdTeW1iaWFuMS8wLQYDVQQDFCZFbnRpdHkgQ2VydCBh
+Z2dyZWdhdGVfMDQgdXNlcl9jYXBzIDAgMDAeFw0wNjA2MjExMTMyMDlaFw0xNjA2
+MTgxMTMyMDlaMFExCzAJBgNVBAYTAlVLMRAwDgYDVQQKEwdTeW1iaWFuMTAwLgYD
+VQQDFCdFbnRpdHkgQ2VydCBhZ2dyZWdhdGVfMDQgZW1wdHlfY2FwcyAwIDEwXDAN
+BgkqhkiG9w0BAQEFAANLADBIAkEAr5Jmz6iuvU+9PWn0VZjALTEgXrm78/CacmnK
+MOWoAXBzzVsP/mVuuKknGCx2anctPSAlyPrxWblJShaby5OEVwIDAQABoxkwFzAV
+BgwqhjoAAe3TawEBAQYBAf8EAgMAMA0GCSqGSIb3DQEBBQUAA0EARvAUlT/OQgUy
+tMYG00GAWiS9z4+42R2YLDNtWSRs5eqosTKOPnnOE4o3n6LT1U5ghY3IS16Q5hRE
+2E2hzGibLA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICJjCCAY+gAwIBAgIJANV8hSQH4qnnMA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjA4WhcNMTYwNjE4MTEzMjA4WjBQMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjEvMC0GA1UEAxQmRW50aXR5IENlcnQgYWdn
+cmVnYXRlXzA0IHVzZXJfY2FwcyAwIDAwXDANBgkqhkiG9w0BAQEFAANLADBIAkEA
+rHSljz/n6OWivQ2wjM3Q7fFdL6+DpCTERQ9AprpCIW3NegSJMWpm4Otdl+IcpOAY
+5TStCg+m53lxOI+5OODcUQIDAQABo2AwXjAZBgwqhjoAAe3TawEBAQYBAf8EBgME
+BwADgDAdBgNVHQ4EFgQU4FV9sc7+/eg/4xdvadGutoARYL4wEgYDVR0TAQH/BAgw
+BgEB/wIBBTAOBgNVHQ8BAf8EBAMCAgQwDQYJKoZIhvcNAQEFBQADgYEATQmQLXSV
+ytWtW1ZlohG8A1qC9zzXjfP5fyvJWhvpqaVRphMzyAXDfwPRHbadXevNiNFI40dE
+PLAFGt3mfEcZW2c31kh0vvYSw+UC7x6uhJYSuzvnZ0/u34OLv14fw5VXsMF8o5oc
+rVfUmjQvsIohmv0u9sJ+IWHk75zH5GZ+cRE=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/aggregate_04_empty_caps.0.1.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,12 @@
+-----BEGIN CERTIFICATE-----
+MIIBszCCAV2gAwIBAgIJAIyumWEA0fDYMA0GCSqGSIb3DQEBBQUAMFAxCzAJBgNV
+BAYTAlVLMRAwDgYDVQQKEwdTeW1iaWFuMS8wLQYDVQQDFCZFbnRpdHkgQ2VydCBh
+Z2dyZWdhdGVfMDQgdXNlcl9jYXBzIDAgMDAeFw0wNjA2MjExMTMyMDlaFw0xNjA2
+MTgxMTMyMDlaMFExCzAJBgNVBAYTAlVLMRAwDgYDVQQKEwdTeW1iaWFuMTAwLgYD
+VQQDFCdFbnRpdHkgQ2VydCBhZ2dyZWdhdGVfMDQgZW1wdHlfY2FwcyAwIDEwXDAN
+BgkqhkiG9w0BAQEFAANLADBIAkEAr5Jmz6iuvU+9PWn0VZjALTEgXrm78/CacmnK
+MOWoAXBzzVsP/mVuuKknGCx2anctPSAlyPrxWblJShaby5OEVwIDAQABoxkwFzAV
+BgwqhjoAAe3TawEBAQYBAf8EAgMAMA0GCSqGSIb3DQEBBQUAA0EARvAUlT/OQgUy
+tMYG00GAWiS9z4+42R2YLDNtWSRs5eqosTKOPnnOE4o3n6LT1U5ghY3IS16Q5hRE
+2E2hzGibLA==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/aggregate_04_user_caps.0.0.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICJjCCAY+gAwIBAgIJANV8hSQH4qnnMA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjA4WhcNMTYwNjE4MTEzMjA4WjBQMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjEvMC0GA1UEAxQmRW50aXR5IENlcnQgYWdn
+cmVnYXRlXzA0IHVzZXJfY2FwcyAwIDAwXDANBgkqhkiG9w0BAQEFAANLADBIAkEA
+rHSljz/n6OWivQ2wjM3Q7fFdL6+DpCTERQ9AprpCIW3NegSJMWpm4Otdl+IcpOAY
+5TStCg+m53lxOI+5OODcUQIDAQABo2AwXjAZBgwqhjoAAe3TawEBAQYBAf8EBgME
+BwADgDAdBgNVHQ4EFgQU4FV9sc7+/eg/4xdvadGutoARYL4wEgYDVR0TAQH/BAgw
+BgEB/wIBBTAOBgNVHQ8BAf8EBAMCAgQwDQYJKoZIhvcNAQEFBQADgYEATQmQLXSV
+ytWtW1ZlohG8A1qC9zzXjfP5fyvJWhvpqaVRphMzyAXDfwPRHbadXevNiNFI40dE
+PLAFGt3mfEcZW2c31kh0vvYSw+UC7x6uhJYSuzvnZ0/u34OLv14fw5VXsMF8o5oc
+rVfUmjQvsIohmv0u9sJ+IWHk75zH5GZ+cRE=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/aggregate_05_chain_0.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,17 @@
+-----BEGIN CERTIFICATE-----
+MIICqjCCAhOgAwIBAgIJANV8hSQH4qotMA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTYxMTEzWhcNMTYwNjE4MTYxMTEzWjBQMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjEvMC0GA1UEAxQmRW50aXR5IENlcnQgYWdn
+cmVnYXRlXzA1IG11bHRpX2RldiAwIDAwXDANBgkqhkiG9w0BAQEFAANLADBIAkEA
+y07XoQAL516+GeqWvU5wC46ON3MxxnJFkd6z0lUGI9jtt1PrfEpvqdK19RYJalQR
+Rit5vc4IT7vHC1DbUQSAuQIDAQABo4HjMIHgMIHdBgwqhjoAAe3TawEBAQEBAf8E
+gckwgcYMFDExMTExMTExLTIyMjIyMi0zLTAxDBQxMTExMTExMS0yMjIyMjItMy0w
+MgwUMTExMTExMTEtMjIyMjIyLTMtMDMMFDExMTExMTExLTIyMjIyMi0zLTA0DBQx
+MTExMTExMS0yMjIyMjItMy0wNQwUMTExMTExMTEtMjIyMjIyLTMtMDYMFDExMTEx
+MTExLTIyMjIyMi0zLTA3DBQxMTExMTExMS0yMjIyMjItMy0wOAwUMTExMTExMTEt
+MjIyMjIyLTMtMDkwDQYJKoZIhvcNAQEFBQADgYEAlgDT/CNAyEXgYA8AY3SDkc8M
+AMkiu4Uu+I29X+p9jVpXjRg7r+atBHbitshtfLlLO0nbBI+TrgwIxb/czMls7JmB
+viNg/pj/XxcorXk7P8ypolp9WEM2DOt8TeJZzDwQAzkAZwBfYN0TeOErSXjdrIBy
+08mujTz3IX1daUVdFFM=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/aggregate_05_chain_1.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB4DCCAUmgAwIBAgIJANV8hSQH4qouMA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTYxMTEzWhcNMTYwNjE4MTYxMTEzWjBRMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjEwMC4GA1UEAxQnRW50aXR5IENlcnQgYWdn
+cmVnYXRlXzA1IGVtcHR5X2RldnMgMSAwMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJB
+AKQJPojzdKUv0VqrnmMFmYGUA8JCsGBam+QYWwkFJaGjjSA4fGq6GasXKMDsGq/g
+fQQSnPSsDykWDtSkat6OJLMCAwEAAaMZMBcwFQYMKoY6AAHt02sBAQEBAQH/BAIw
+ADANBgkqhkiG9w0BAQUFAAOBgQB55EGEYRQjqy7fYlyY/0V7g+2GmBkW6VG9WMiH
+AshLniV91Ydumund2NHDXpkXF1PvSyJOYrc5wSkJunLWjrnO1ThVWlcFFr6gtz3Q
+MXjTZk0a6iyE+GwTxbafcqAI9s1Z91sNAmvei/D7OgdWc6xERqezgqUjsJn8ColB
+QNTQ0w==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/aggregate_05_empty_devs.1.0.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB4DCCAUmgAwIBAgIJANV8hSQH4qouMA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTYxMTEzWhcNMTYwNjE4MTYxMTEzWjBRMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjEwMC4GA1UEAxQnRW50aXR5IENlcnQgYWdn
+cmVnYXRlXzA1IGVtcHR5X2RldnMgMSAwMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJB
+AKQJPojzdKUv0VqrnmMFmYGUA8JCsGBam+QYWwkFJaGjjSA4fGq6GasXKMDsGq/g
+fQQSnPSsDykWDtSkat6OJLMCAwEAAaMZMBcwFQYMKoY6AAHt02sBAQEBAQH/BAIw
+ADANBgkqhkiG9w0BAQUFAAOBgQB55EGEYRQjqy7fYlyY/0V7g+2GmBkW6VG9WMiH
+AshLniV91Ydumund2NHDXpkXF1PvSyJOYrc5wSkJunLWjrnO1ThVWlcFFr6gtz3Q
+MXjTZk0a6iyE+GwTxbafcqAI9s1Z91sNAmvei/D7OgdWc6xERqezgqUjsJn8ColB
+QNTQ0w==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/aggregate_05_multi_dev.0.0.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,17 @@
+-----BEGIN CERTIFICATE-----
+MIICqjCCAhOgAwIBAgIJANV8hSQH4qotMA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTYxMTEzWhcNMTYwNjE4MTYxMTEzWjBQMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjEvMC0GA1UEAxQmRW50aXR5IENlcnQgYWdn
+cmVnYXRlXzA1IG11bHRpX2RldiAwIDAwXDANBgkqhkiG9w0BAQEFAANLADBIAkEA
+y07XoQAL516+GeqWvU5wC46ON3MxxnJFkd6z0lUGI9jtt1PrfEpvqdK19RYJalQR
+Rit5vc4IT7vHC1DbUQSAuQIDAQABo4HjMIHgMIHdBgwqhjoAAe3TawEBAQEBAf8E
+gckwgcYMFDExMTExMTExLTIyMjIyMi0zLTAxDBQxMTExMTExMS0yMjIyMjItMy0w
+MgwUMTExMTExMTEtMjIyMjIyLTMtMDMMFDExMTExMTExLTIyMjIyMi0zLTA0DBQx
+MTExMTExMS0yMjIyMjItMy0wNQwUMTExMTExMTEtMjIyMjIyLTMtMDYMFDExMTEx
+MTExLTIyMjIyMi0zLTA3DBQxMTExMTExMS0yMjIyMjItMy0wOAwUMTExMTExMTEt
+MjIyMjIyLTMtMDkwDQYJKoZIhvcNAQEFBQADgYEAlgDT/CNAyEXgYA8AY3SDkc8M
+AMkiu4Uu+I29X+p9jVpXjRg7r+atBHbitshtfLlLO0nbBI+TrgwIxb/czMls7JmB
+viNg/pj/XxcorXk7P8ypolp9WEM2DOt8TeJZzDwQAzkAZwBfYN0TeOErSXjdrIBy
+08mujTz3IX1daUVdFFM=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/aggregate_06_chain_0.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICFTCCAX6gAwIBAgIJANV8hSQH4qnqMA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjEwWhcNMTYwNjE4MTEzMjEwWjBQMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjEvMC0GA1UEAxQmRW50aXR5IENlcnQgYWdn
+cmVnYXRlXzA2IG11bHRpX3NpZCAwIDAwXDANBgkqhkiG9w0BAQEFAANLADBIAkEA
+1mCG/O/PA3s9vuOx5VlrSTk4tMqDWULafBoz7suY55Z/RgqzVdjha7DBK9/PBbMX
+5WEGXEL7ifhwZnZNWFS11QIDAQABo08wTTBLBgwqhjoAAe3TawEBAQQBAf8EODA2
+AgQRAAABAgQRAAACAgQRAAADAgQRAAAEAgQRAAAFAgQRAAAGAgQRAAAHAgQRAAAI
+AgQRAAAJMA0GCSqGSIb3DQEBBQUAA4GBAFbv1mH6WGasb76hq4gldaoanALKo7Fi
+my4ksVJnbCeyP3nt7ZaEOy0GyulL9P7YOpjuAdCyhcFiRKV7L2mdZaK4tN0rzNve
+0QsGo+Rl7ou0A55FjW2833Q0FeHMh6ALxUWCnHddu0tsBGoo8MQ4dA0QaoCmSR7Q
+HuTSL7tHcxDx
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/aggregate_06_chain_1.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB4DCCAUmgAwIBAgIJANV8hSQH4qnrMA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjExWhcNMTYwNjE4MTEzMjExWjBRMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjEwMC4GA1UEAxQnRW50aXR5IENlcnQgYWdn
+cmVnYXRlXzA2IGVtcHR5X3NpZHMgMSAwMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJB
+AMWbzWc7xK0JVNaaqUFrVEeNqv26zftxKdO5Tmww2m5fObWWcgIE21pSQt20czxB
+Jz33HEYY8IERW2QaRUQPz28CAwEAAaMZMBcwFQYMKoY6AAHt02sBAQEEAQH/BAIw
+ADANBgkqhkiG9w0BAQUFAAOBgQBgDdvj8nfW2uXvZSRX3AmNhvPPfaqUBVUncn9v
+uXfodiNObFmKb7VusbP6SHWYI9CE3497+BVkv4MoyyexI0Z5v++mAPYxJvnlqm68
+dNgRkinQPREWvVmrcc74wt26pfSebsjcDCw9yds5UJSVFhGZes6ViX1duPD13GA3
+A026fw==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/aggregate_06_empty_sids.1.0.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB4DCCAUmgAwIBAgIJANV8hSQH4qnrMA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjExWhcNMTYwNjE4MTEzMjExWjBRMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjEwMC4GA1UEAxQnRW50aXR5IENlcnQgYWdn
+cmVnYXRlXzA2IGVtcHR5X3NpZHMgMSAwMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJB
+AMWbzWc7xK0JVNaaqUFrVEeNqv26zftxKdO5Tmww2m5fObWWcgIE21pSQt20czxB
+Jz33HEYY8IERW2QaRUQPz28CAwEAAaMZMBcwFQYMKoY6AAHt02sBAQEEAQH/BAIw
+ADANBgkqhkiG9w0BAQUFAAOBgQBgDdvj8nfW2uXvZSRX3AmNhvPPfaqUBVUncn9v
+uXfodiNObFmKb7VusbP6SHWYI9CE3497+BVkv4MoyyexI0Z5v++mAPYxJvnlqm68
+dNgRkinQPREWvVmrcc74wt26pfSebsjcDCw9yds5UJSVFhGZes6ViX1duPD13GA3
+A026fw==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/aggregate_06_multi_sid.0.0.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICFTCCAX6gAwIBAgIJANV8hSQH4qnqMA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjEwWhcNMTYwNjE4MTEzMjEwWjBQMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjEvMC0GA1UEAxQmRW50aXR5IENlcnQgYWdn
+cmVnYXRlXzA2IG11bHRpX3NpZCAwIDAwXDANBgkqhkiG9w0BAQEFAANLADBIAkEA
+1mCG/O/PA3s9vuOx5VlrSTk4tMqDWULafBoz7suY55Z/RgqzVdjha7DBK9/PBbMX
+5WEGXEL7ifhwZnZNWFS11QIDAQABo08wTTBLBgwqhjoAAe3TawEBAQQBAf8EODA2
+AgQRAAABAgQRAAACAgQRAAADAgQRAAAEAgQRAAAFAgQRAAAGAgQRAAAHAgQRAAAI
+AgQRAAAJMA0GCSqGSIb3DQEBBQUAA4GBAFbv1mH6WGasb76hq4gldaoanALKo7Fi
+my4ksVJnbCeyP3nt7ZaEOy0GyulL9P7YOpjuAdCyhcFiRKV7L2mdZaK4tN0rzNve
+0QsGo+Rl7ou0A55FjW2833Q0FeHMh6ALxUWCnHddu0tsBGoo8MQ4dA0QaoCmSR7Q
+HuTSL7tHcxDx
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/aggregate_07_chain_0.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICFTCCAX6gAwIBAgIJANV8hSQH4qnsMA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjExWhcNMTYwNjE4MTEzMjExWjBQMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjEvMC0GA1UEAxQmRW50aXR5IENlcnQgYWdn
+cmVnYXRlXzA3IG11bHRpX3ZpZCAwIDAwXDANBgkqhkiG9w0BAQEFAANLADBIAkEA
+1GK6Hg5qVN9vtQeYDug0CBrc5HAsmrQwBdeMCUqJqaYg9wKjrYdCGm8XE7kWHF7j
+fNLEYu/5pO69f4GN0u6LPQIDAQABo08wTTBLBgwqhjoAAe3TawEBAQUBAf8EODA2
+AgRwAAABAgRwAAACAgRwAAADAgRwAAAEAgRwAAAFAgRwAAAGAgRwAAAHAgRwAAAI
+AgRwAAAJMA0GCSqGSIb3DQEBBQUAA4GBAGCvBueVTjDtH5vs/20opddTwTZVEiC+
+nVa81CAB7ZKFj3jrSG2Gx+A/aOejHxmRe7ZsHYujPpSQMjEizz659bfUM9PZM/zg
+Xor5fW7/GWnQaCtyF/6v5EY+EMYa/ChwXZfIn/6so0ROxRhuvOYIYHsQIVc7z54F
+QyTu7Q5zXfmF
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/aggregate_07_chain_1.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB4DCCAUmgAwIBAgIJANV8hSQH4qntMA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjEyWhcNMTYwNjE4MTEzMjEyWjBRMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjEwMC4GA1UEAxQnRW50aXR5IENlcnQgYWdn
+cmVnYXRlXzA3IGVtcHR5X3ZpZHMgMSAwMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJB
+AM+1W2jZKKDWmZ3NYuK4xn3nqIJ9sc4MvO/vMY7nJeKgxD4hlF3xCnD4Zrzf1NWZ
+V7SN+WehTk0HcFMqgRwxNL0CAwEAAaMZMBcwFQYMKoY6AAHt02sBAQEFAQH/BAIw
+ADANBgkqhkiG9w0BAQUFAAOBgQBNi0ua3i/WjYZ05torzPHLF9v02trkdvvpBAZD
+WTIXN5zcozlva3eCoXCQjRlN0mnxj7R9vsKZ2bzzlRc4SDmlYGo8DT835hLN+PDD
+AGnQU5WrODLTJzntyJ4faYjpcnHqtTS/34OLUHvF2pdIzkmSc57SEMZLFTl8eDyb
+fpnVaQ==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/aggregate_07_empty_vids.1.0.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB4DCCAUmgAwIBAgIJANV8hSQH4qntMA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjEyWhcNMTYwNjE4MTEzMjEyWjBRMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjEwMC4GA1UEAxQnRW50aXR5IENlcnQgYWdn
+cmVnYXRlXzA3IGVtcHR5X3ZpZHMgMSAwMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJB
+AM+1W2jZKKDWmZ3NYuK4xn3nqIJ9sc4MvO/vMY7nJeKgxD4hlF3xCnD4Zrzf1NWZ
+V7SN+WehTk0HcFMqgRwxNL0CAwEAAaMZMBcwFQYMKoY6AAHt02sBAQEFAQH/BAIw
+ADANBgkqhkiG9w0BAQUFAAOBgQBNi0ua3i/WjYZ05torzPHLF9v02trkdvvpBAZD
+WTIXN5zcozlva3eCoXCQjRlN0mnxj7R9vsKZ2bzzlRc4SDmlYGo8DT835hLN+PDD
+AGnQU5WrODLTJzntyJ4faYjpcnHqtTS/34OLUHvF2pdIzkmSc57SEMZLFTl8eDyb
+fpnVaQ==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/aggregate_07_multi_vid.0.0.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICFTCCAX6gAwIBAgIJANV8hSQH4qnsMA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjExWhcNMTYwNjE4MTEzMjExWjBQMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjEvMC0GA1UEAxQmRW50aXR5IENlcnQgYWdn
+cmVnYXRlXzA3IG11bHRpX3ZpZCAwIDAwXDANBgkqhkiG9w0BAQEFAANLADBIAkEA
+1GK6Hg5qVN9vtQeYDug0CBrc5HAsmrQwBdeMCUqJqaYg9wKjrYdCGm8XE7kWHF7j
+fNLEYu/5pO69f4GN0u6LPQIDAQABo08wTTBLBgwqhjoAAe3TawEBAQUBAf8EODA2
+AgRwAAABAgRwAAACAgRwAAADAgRwAAAEAgRwAAAFAgRwAAAGAgRwAAAHAgRwAAAI
+AgRwAAAJMA0GCSqGSIb3DQEBBQUAA4GBAGCvBueVTjDtH5vs/20opddTwTZVEiC+
+nVa81CAB7ZKFj3jrSG2Gx+A/aOejHxmRe7ZsHYujPpSQMjEizz659bfUM9PZM/zg
+Xor5fW7/GWnQaCtyF/6v5EY+EMYa/ChwXZfIn/6so0ROxRhuvOYIYHsQIVc7z54F
+QyTu7Q5zXfmF
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/aggregate_08_chain_0.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB4zCCAUygAwIBAgIJANV8hSQH4qnuMA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjEyWhcNMTYwNjE4MTEzMjEyWjBQMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjEvMC0GA1UEAxQmRW50aXR5IENlcnQgYWdn
+cmVnYXRlXzA4IHVzZXJfY2FwcyAwIDAwXDANBgkqhkiG9w0BAQEFAANLADBIAkEA
+2l+XJvCJCPBm5ltZXGaJ6w7evHSqORF83ZoBK3XE46Wp7ct+2Oc5Vsi+pIS1yT4u
+MVjZO5BRKq9gfe7PH0+3swIDAQABox0wGzAZBgwqhjoAAe3TawEBAQYBAf8EBgME
+BwADgDANBgkqhkiG9w0BAQUFAAOBgQAxYpLamPPrH69W8HV69iorzIN2qoDf/dFg
+OC9Nr2PZqq79YsZPwZgYz4KIPfqfZHgMSJUAVEzqHOgqalWKmtdCRdzISYS1BylB
+3pne0iV5cep/hpaP7njJdg5BL1NVlyEmXIREEIP9lo9uXjpIVBGnn/BpBHDnuURN
+zueyDiEOAw==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/aggregate_08_chain_1.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB4zCCAUygAwIBAgIJANV8hSQH4qnvMA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjEzWhcNMTYwNjE4MTEzMjEzWjBSMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjExMC8GA1UEAxQoRW50aXR5IENlcnQgYWdn
+cmVnYXRlXzA4IHN5c3RlbV9jYXBzIDEgMDBcMA0GCSqGSIb3DQEBAQUAA0sAMEgC
+QQCV9OlM2eCbE8DJA/wioIqup7C6rPAnoqRyTy5MVtfRVdQfjBQmqMM+6K54eLbz
+zSRBb4dMyehLe74IbrLgJUr5AgMBAAGjGzAZMBcGDCqGOgAB7dNrAQEBBgEB/wQE
+AwICDDANBgkqhkiG9w0BAQUFAAOBgQAyMMq1/tEaTbBIwHXJfWO96df+aTcxE/P9
+QZGVQyh0ai6MOxXOhK4d6nNai+hbdekqzMpGnhHWhugHC7AaUI9o0B8oiGpqSnaN
+9nrfFNeXi6ss6EKemiNkGNCdm9Xh7EwpFbZ0iOJZMVl5wFvYABQBTRXK0L0jC+WJ
+sGr+yi9/wQ==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/aggregate_08_system_caps.1.0.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB4zCCAUygAwIBAgIJANV8hSQH4qnvMA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjEzWhcNMTYwNjE4MTEzMjEzWjBSMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjExMC8GA1UEAxQoRW50aXR5IENlcnQgYWdn
+cmVnYXRlXzA4IHN5c3RlbV9jYXBzIDEgMDBcMA0GCSqGSIb3DQEBAQUAA0sAMEgC
+QQCV9OlM2eCbE8DJA/wioIqup7C6rPAnoqRyTy5MVtfRVdQfjBQmqMM+6K54eLbz
+zSRBb4dMyehLe74IbrLgJUr5AgMBAAGjGzAZMBcGDCqGOgAB7dNrAQEBBgEB/wQE
+AwICDDANBgkqhkiG9w0BAQUFAAOBgQAyMMq1/tEaTbBIwHXJfWO96df+aTcxE/P9
+QZGVQyh0ai6MOxXOhK4d6nNai+hbdekqzMpGnhHWhugHC7AaUI9o0B8oiGpqSnaN
+9nrfFNeXi6ss6EKemiNkGNCdm9Xh7EwpFbZ0iOJZMVl5wFvYABQBTRXK0L0jC+WJ
+sGr+yi9/wQ==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/aggregate_08_user_caps.0.0.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB4zCCAUygAwIBAgIJANV8hSQH4qnuMA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjEyWhcNMTYwNjE4MTEzMjEyWjBQMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjEvMC0GA1UEAxQmRW50aXR5IENlcnQgYWdn
+cmVnYXRlXzA4IHVzZXJfY2FwcyAwIDAwXDANBgkqhkiG9w0BAQEFAANLADBIAkEA
+2l+XJvCJCPBm5ltZXGaJ6w7evHSqORF83ZoBK3XE46Wp7ct+2Oc5Vsi+pIS1yT4u
+MVjZO5BRKq9gfe7PH0+3swIDAQABox0wGzAZBgwqhjoAAe3TawEBAQYBAf8EBgME
+BwADgDANBgkqhkiG9w0BAQUFAAOBgQAxYpLamPPrH69W8HV69iorzIN2qoDf/dFg
+OC9Nr2PZqq79YsZPwZgYz4KIPfqfZHgMSJUAVEzqHOgqalWKmtdCRdzISYS1BylB
+3pne0iV5cep/hpaP7njJdg5BL1NVlyEmXIREEIP9lo9uXjpIVBGnn/BpBHDnuURN
+zueyDiEOAw==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/backuprestore_01_chain_0.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB3jCCAUegAwIBAgIJANV8hSQH4qoXMA0GCSqGSIb3DQEBBQUAMDMxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRIwEAYDVQQDEwlSb290NS1SU0EwHhcN
+MDYwNjIxMTEzMjQyWhcNMTYwNjE4MTEzMjQyWjBWMQswCQYDVQQGEwJVSzEQMA4G
+A1UEChMHU3ltYmlhbjE1MDMGA1UEAxQsRW50aXR5IENlcnQgYmFja3VwcmVzdG9y
+ZV8wMSBzeXN0ZW1fY2FwcyAwIDAwXDANBgkqhkiG9w0BAQEFAANLADBIAkEAx694
+VsiPNdQLODoTjPJ7mqeh2guwO6FbvUZfMQbh9kJuahAReMZrLVDZFOeXmy7qMnHV
+KpTln9OTp+ats562AQIDAQABoxswGTAXBgwqhjoAAe3TawEBAQYBAf8EBAMCAgww
+DQYJKoZIhvcNAQEFBQADgYEAX9Wlk7pQvSNCIndvCUZBnS7fO08PyxVB8JzJDdEk
+n9DqtOYPvhYTv4Z8CEoq4sqqHs5K5DCBUYaTpe5y2QVrVtwFLSUFcCu/S/4cJK+X
+j0KK3MlC3C4Bomuesz1MO6b9Ut8occJ5UuTxkKcrniVj74HlH7QOEoNesex073Bg
+usM=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/backuprestore_01_system_caps.0.0.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB3jCCAUegAwIBAgIJANV8hSQH4qoXMA0GCSqGSIb3DQEBBQUAMDMxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRIwEAYDVQQDEwlSb290NS1SU0EwHhcN
+MDYwNjIxMTEzMjQyWhcNMTYwNjE4MTEzMjQyWjBWMQswCQYDVQQGEwJVSzEQMA4G
+A1UEChMHU3ltYmlhbjE1MDMGA1UEAxQsRW50aXR5IENlcnQgYmFja3VwcmVzdG9y
+ZV8wMSBzeXN0ZW1fY2FwcyAwIDAwXDANBgkqhkiG9w0BAQEFAANLADBIAkEAx694
+VsiPNdQLODoTjPJ7mqeh2guwO6FbvUZfMQbh9kJuahAReMZrLVDZFOeXmy7qMnHV
+KpTln9OTp+ats562AQIDAQABoxswGTAXBgwqhjoAAe3TawEBAQYBAf8EBAMCAgww
+DQYJKoZIhvcNAQEFBQADgYEAX9Wlk7pQvSNCIndvCUZBnS7fO08PyxVB8JzJDdEk
+n9DqtOYPvhYTv4Z8CEoq4sqqHs5K5DCBUYaTpe5y2QVrVtwFLSUFcCu/S/4cJK+X
+j0KK3MlC3C4Bomuesz1MO6b9Ut8occJ5UuTxkKcrniVj74HlH7QOEoNesex073Bg
+usM=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/backuprestore_02_chain_0.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,52 @@
+-----BEGIN CERTIFICATE-----
+MIIB1DCCAX6gAwIBAgIJAPEQXdSr1TcJMA0GCSqGSIb3DQEBBQUAMFYxCzAJBgNV
+BAYTAlVLMRAwDgYDVQQKEwdTeW1iaWFuMTUwMwYDVQQDFCxFbnRpdHkgQ2VydCBi
+YWNrdXByZXN0b3JlXzAyIHNpbmdsZV9zaWQxIDAgMjAeFw0wNjA2MjExMTMyNDNa
+Fw0xNjA2MTgxMTMyNDNaMFYxCzAJBgNVBAYTAlVLMRAwDgYDVQQKEwdTeW1iaWFu
+MTUwMwYDVQQDFCxFbnRpdHkgQ2VydCBiYWNrdXByZXN0b3JlXzAyIHNpbmdsZV9k
+ZXYxIDAgMzBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQDFjbnm8mS/EI4K7ET/A4ov
+3YkGKvFR6Li/cZ0QzWT3febA+schVjLkGBMaKYlzmvFRReZzMz5YWiAW2slGJIdN
+AgMBAAGjLzAtMCsGDCqGOgAB7dNrAQEBAQEB/wQYMBYMFDExMTExMTExLTIyMjIy
+Mi0zLTAxMA0GCSqGSIb3DQEBBQUAA0EAG6f3w/Unt9TetOKN+Hd2RcGD7Zg0nAsS
+P4cMt7t36dNFdAkyVGMQIK0zNjTKLm9taNNfbLu5e/Olz3fi33O9ow==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICBzCCAbGgAwIBAgIJAJakqNPipDeKMA0GCSqGSIb3DQEBBQUAMFYxCzAJBgNV
+BAYTAlVLMRAwDgYDVQQKEwdTeW1iaWFuMTUwMwYDVQQDFCxFbnRpdHkgQ2VydCBi
+YWNrdXByZXN0b3JlXzAyIHNpbmdsZV92aWQxIDAgMTAeFw0wNjA2MjExMTMyNDNa
+Fw0xNjA2MTgxMTMyNDNaMFYxCzAJBgNVBAYTAlVLMRAwDgYDVQQKEwdTeW1iaWFu
+MTUwMwYDVQQDFCxFbnRpdHkgQ2VydCBiYWNrdXByZXN0b3JlXzAyIHNpbmdsZV9z
+aWQxIDAgMjBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQDhYebVoxFWqEGIEnWFx7iL
+jzZafe60b0D1nVKJRvWnvBY2wEFHyOZm3EFjkucd5Jb8UjWOYnDbW+eV8q44ITEX
+AgMBAAGjYjBgMBsGDCqGOgAB7dNrAQEBBAEB/wQIMAYCBBEAAAYwHQYDVR0OBBYE
+FCRnthsiHtJ8+Dy3iyIQ1zSv6zQbMBIGA1UdEwEB/wQIMAYBAf8CAQUwDgYDVR0P
+AQH/BAQDAgIEMA0GCSqGSIb3DQEBBQUAA0EAOvRuEC/NaDlVZVqMAtxKiAhcZM5G
+LUnNnB4uLky0c/7yE3NUgz5pGwAm1aRxzf2Ae0Fwkdp1+U+GdfAtaAFf7g==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICBTCCAa+gAwIBAgIJAI0Tnk0aLxyLMA0GCSqGSIb3DQEBBQUAMFQxCzAJBgNV
+BAYTAlVLMRAwDgYDVQQKEwdTeW1iaWFuMTMwMQYDVQQDFCpFbnRpdHkgQ2VydCBi
+YWNrdXByZXN0b3JlXzAyIHVzZXJfY2FwcyAwIDAwHhcNMDYwNjIxMTEzMjQzWhcN
+MTYwNjE4MTEzMjQzWjBWMQswCQYDVQQGEwJVSzEQMA4GA1UEChMHU3ltYmlhbjE1
+MDMGA1UEAxQsRW50aXR5IENlcnQgYmFja3VwcmVzdG9yZV8wMiBzaW5nbGVfdmlk
+MSAwIDEwXDANBgkqhkiG9w0BAQEFAANLADBIAkEA2eM7sCgMvhPMTmL/If3OoDkk
+w/TjD+9LSQKa7N5XtG+dXSOFV52h044Yv8NDbDGnycis4uX6vXiOxlllide68QID
+AQABo2IwYDAbBgwqhjoAAe3TawEBAQUBAf8ECDAGAgRwAAABMB0GA1UdDgQWBBS0
+IvIg2XlvtIugoL+HZ7odgbzhWjASBgNVHRMBAf8ECDAGAQH/AgEFMA4GA1UdDwEB
+/wQEAwICBDANBgkqhkiG9w0BAQUFAANBAA+w6DnrgUvAdubyN5uE66yn7b2/1GsZ
+CeZdLJagrRQDnnvdmE+Ca1KCl4oN0d2z/y5bEOPi1BkGN7Ou38k9zRg=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICKjCCAZOgAwIBAgIJANV8hSQH4qoYMA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjQyWhcNMTYwNjE4MTEzMjQyWjBUMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjEzMDEGA1UEAxQqRW50aXR5IENlcnQgYmFj
+a3VwcmVzdG9yZV8wMiB1c2VyX2NhcHMgMCAwMFwwDQYJKoZIhvcNAQEBBQADSwAw
+SAJBAMXOCwbaV5+w2qWu/1uBloK/aBbhekGu/pXurSapWY1deSKxsDEtm5WxRd2H
+IXwJGQdYOiY1K806thKLfIeE1gECAwEAAaNgMF4wGQYMKoY6AAHt02sBAQEGAQH/
+BAYDBAcAA4AwHQYDVR0OBBYEFCLOcaeEU272Me7oU2Bt4V06pfgwMBIGA1UdEwEB
+/wQIMAYBAf8CAQUwDgYDVR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBBQUAA4GBAE7y
+7gksD35uE+zr6ea2hKgF7nH2ZaIbP6oH1vmvqzwA8JKfKyUIoZ4FkIITMtG914lH
+3NeWK7bojJT1Lvswt6n+lmTEVTyDQCGg02/z2SET20Axdh1pwq4ECrgi2+bxfo/P
+91BQxqyPD3rb1k4KRGneM0zFk2sFN5dXKeghzqPC
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/backuprestore_02_single_dev1.0.3.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,12 @@
+-----BEGIN CERTIFICATE-----
+MIIB1DCCAX6gAwIBAgIJAPEQXdSr1TcJMA0GCSqGSIb3DQEBBQUAMFYxCzAJBgNV
+BAYTAlVLMRAwDgYDVQQKEwdTeW1iaWFuMTUwMwYDVQQDFCxFbnRpdHkgQ2VydCBi
+YWNrdXByZXN0b3JlXzAyIHNpbmdsZV9zaWQxIDAgMjAeFw0wNjA2MjExMTMyNDNa
+Fw0xNjA2MTgxMTMyNDNaMFYxCzAJBgNVBAYTAlVLMRAwDgYDVQQKEwdTeW1iaWFu
+MTUwMwYDVQQDFCxFbnRpdHkgQ2VydCBiYWNrdXByZXN0b3JlXzAyIHNpbmdsZV9k
+ZXYxIDAgMzBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQDFjbnm8mS/EI4K7ET/A4ov
+3YkGKvFR6Li/cZ0QzWT3febA+schVjLkGBMaKYlzmvFRReZzMz5YWiAW2slGJIdN
+AgMBAAGjLzAtMCsGDCqGOgAB7dNrAQEBAQEB/wQYMBYMFDExMTExMTExLTIyMjIy
+Mi0zLTAxMA0GCSqGSIb3DQEBBQUAA0EAG6f3w/Unt9TetOKN+Hd2RcGD7Zg0nAsS
+P4cMt7t36dNFdAkyVGMQIK0zNjTKLm9taNNfbLu5e/Olz3fi33O9ow==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/backuprestore_02_single_sid1.0.2.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIICBzCCAbGgAwIBAgIJAJakqNPipDeKMA0GCSqGSIb3DQEBBQUAMFYxCzAJBgNV
+BAYTAlVLMRAwDgYDVQQKEwdTeW1iaWFuMTUwMwYDVQQDFCxFbnRpdHkgQ2VydCBi
+YWNrdXByZXN0b3JlXzAyIHNpbmdsZV92aWQxIDAgMTAeFw0wNjA2MjExMTMyNDNa
+Fw0xNjA2MTgxMTMyNDNaMFYxCzAJBgNVBAYTAlVLMRAwDgYDVQQKEwdTeW1iaWFu
+MTUwMwYDVQQDFCxFbnRpdHkgQ2VydCBiYWNrdXByZXN0b3JlXzAyIHNpbmdsZV9z
+aWQxIDAgMjBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQDhYebVoxFWqEGIEnWFx7iL
+jzZafe60b0D1nVKJRvWnvBY2wEFHyOZm3EFjkucd5Jb8UjWOYnDbW+eV8q44ITEX
+AgMBAAGjYjBgMBsGDCqGOgAB7dNrAQEBBAEB/wQIMAYCBBEAAAYwHQYDVR0OBBYE
+FCRnthsiHtJ8+Dy3iyIQ1zSv6zQbMBIGA1UdEwEB/wQIMAYBAf8CAQUwDgYDVR0P
+AQH/BAQDAgIEMA0GCSqGSIb3DQEBBQUAA0EAOvRuEC/NaDlVZVqMAtxKiAhcZM5G
+LUnNnB4uLky0c/7yE3NUgz5pGwAm1aRxzf2Ae0Fwkdp1+U+GdfAtaAFf7g==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/backuprestore_02_single_vid1.0.1.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIICBTCCAa+gAwIBAgIJAI0Tnk0aLxyLMA0GCSqGSIb3DQEBBQUAMFQxCzAJBgNV
+BAYTAlVLMRAwDgYDVQQKEwdTeW1iaWFuMTMwMQYDVQQDFCpFbnRpdHkgQ2VydCBi
+YWNrdXByZXN0b3JlXzAyIHVzZXJfY2FwcyAwIDAwHhcNMDYwNjIxMTEzMjQzWhcN
+MTYwNjE4MTEzMjQzWjBWMQswCQYDVQQGEwJVSzEQMA4GA1UEChMHU3ltYmlhbjE1
+MDMGA1UEAxQsRW50aXR5IENlcnQgYmFja3VwcmVzdG9yZV8wMiBzaW5nbGVfdmlk
+MSAwIDEwXDANBgkqhkiG9w0BAQEFAANLADBIAkEA2eM7sCgMvhPMTmL/If3OoDkk
+w/TjD+9LSQKa7N5XtG+dXSOFV52h044Yv8NDbDGnycis4uX6vXiOxlllide68QID
+AQABo2IwYDAbBgwqhjoAAe3TawEBAQUBAf8ECDAGAgRwAAABMB0GA1UdDgQWBBS0
+IvIg2XlvtIugoL+HZ7odgbzhWjASBgNVHRMBAf8ECDAGAQH/AgEFMA4GA1UdDwEB
+/wQEAwICBDANBgkqhkiG9w0BAQUFAANBAA+w6DnrgUvAdubyN5uE66yn7b2/1GsZ
+CeZdLJagrRQDnnvdmE+Ca1KCl4oN0d2z/y5bEOPi1BkGN7Ou38k9zRg=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/backuprestore_02_user_caps.0.0.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICKjCCAZOgAwIBAgIJANV8hSQH4qoYMA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjQyWhcNMTYwNjE4MTEzMjQyWjBUMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjEzMDEGA1UEAxQqRW50aXR5IENlcnQgYmFj
+a3VwcmVzdG9yZV8wMiB1c2VyX2NhcHMgMCAwMFwwDQYJKoZIhvcNAQEBBQADSwAw
+SAJBAMXOCwbaV5+w2qWu/1uBloK/aBbhekGu/pXurSapWY1deSKxsDEtm5WxRd2H
+IXwJGQdYOiY1K806thKLfIeE1gECAwEAAaNgMF4wGQYMKoY6AAHt02sBAQEGAQH/
+BAYDBAcAA4AwHQYDVR0OBBYEFCLOcaeEU272Me7oU2Bt4V06pfgwMBIGA1UdEwEB
+/wQIMAYBAf8CAQUwDgYDVR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBBQUAA4GBAE7y
+7gksD35uE+zr6ea2hKgF7nH2ZaIbP6oH1vmvqzwA8JKfKyUIoZ4FkIITMtG914lH
+3NeWK7bojJT1Lvswt6n+lmTEVTyDQCGg02/z2SET20Axdh1pwq4ECrgi2+bxfo/P
+91BQxqyPD3rb1k4KRGneM0zFk2sFN5dXKeghzqPC
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/backuprestore_03_chain_0.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,40 @@
+-----BEGIN CERTIFICATE-----
+MIIBwjCCAWygAwIBAgIJAJPAbFgN+T3MMA0GCSqGSIb3DQEBBQUAMFQxCzAJBgNV
+BAYTAlVLMRAwDgYDVQQKEwdTeW1iaWFuMTMwMQYDVQQDFCpFbnRpdHkgQ2VydCBi
+YWNrdXByZXN0b3JlXzAzIG11bHRpX3ZpZCAwIDEwHhcNMDYwNjIxMTEzMjQ1WhcN
+MTYwNjE4MTEzMjQ1WjBWMQswCQYDVQQGEwJVSzEQMA4GA1UEChMHU3ltYmlhbjE1
+MDMGA1UEAxQsRW50aXR5IENlcnQgYmFja3VwcmVzdG9yZV8wMyBzaW5nbGVfc2lk
+MSAwIDIwXDANBgkqhkiG9w0BAQEFAANLADBIAkEAl/4Rb5EHjNZ6eHWMYLK50zyY
+TrzuQT6ME4j6VdFtnn08Xl7NP9D4J0fcyx3Qv3g1m7R6gfo1J7Ts2ZHMQ0RqmQID
+AQABox8wHTAbBgwqhjoAAe3TawEBAQQBAf8ECDAGAgQRAAAGMA0GCSqGSIb3DQEB
+BQUAA0EAKuauCDCaJAjKME4QwfmbLeZ0cCzx1CqJFCAXSwMUD2v2Bmti0aifNRGA
+PizyBIIzK1K0r02JTYE7qpNmh5wUnA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICNTCCAd+gAwIBAgIJANNlOZS0RkT/MA0GCSqGSIb3DQEBBQUAMFQxCzAJBgNV
+BAYTAlVLMRAwDgYDVQQKEwdTeW1iaWFuMTMwMQYDVQQDFCpFbnRpdHkgQ2VydCBi
+YWNrdXByZXN0b3JlXzAzIHVzZXJfY2FwcyAwIDAwHhcNMDYwNjIxMTEzMjQ0WhcN
+MTYwNjE4MTEzMjQ0WjBUMQswCQYDVQQGEwJVSzEQMA4GA1UEChMHU3ltYmlhbjEz
+MDEGA1UEAxQqRW50aXR5IENlcnQgYmFja3VwcmVzdG9yZV8wMyBtdWx0aV92aWQg
+MCAxMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAMAGcZq6MjGXiQZmQG/0MMDB9cJ6
+4GItO70QtovgSSUfR3HNijGs/rrior/bSqJcO56qB48HG6AfvpXbArVsoeUCAwEA
+AaOBkzCBkDBLBgwqhjoAAe3TawEBAQUBAf8EODA2AgRwAAABAgRwAAACAgRwAAAD
+AgRwAAAEAgRwAAAFAgRwAAAGAgRwAAAHAgRwAAAIAgRwAAAJMB0GA1UdDgQWBBSv
+JlR6LyrDnW9E1j3TI4qUhcRrYDASBgNVHRMBAf8ECDAGAQH/AgEFMA4GA1UdDwEB
+/wQEAwICBDANBgkqhkiG9w0BAQUFAANBAFJbb4tdBfl9/uh+rvSSJc2QlNIcN9Cd
+W4Aw0BdIJrKoG5jomPMZuArTF31Q9V8A5wrfuA1GC8YBkUudp2OuyDA=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICKjCCAZOgAwIBAgIJANV8hSQH4qoZMA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjQ0WhcNMTYwNjE4MTEzMjQ0WjBUMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjEzMDEGA1UEAxQqRW50aXR5IENlcnQgYmFj
+a3VwcmVzdG9yZV8wMyB1c2VyX2NhcHMgMCAwMFwwDQYJKoZIhvcNAQEBBQADSwAw
+SAJBAMGLC9i1Cw6GuajVy3afjF8h81KcC7gerURc5oL8t1Jvna4pP9aPyR11ZMG4
+LPElh7+VSPzQmtqY94yPHkmwZyMCAwEAAaNgMF4wGQYMKoY6AAHt02sBAQEGAQH/
+BAYDBAcAA4AwHQYDVR0OBBYEFA8FEEZjYwOnrQOK4eJSJeJXufvMMBIGA1UdEwEB
+/wQIMAYBAf8CAQUwDgYDVR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBBQUAA4GBABLR
+Jax5aBMkb9CAKPOHSlUEmOXY+rKn5nvQFvq/JuE1iIfrfgR6G0l08H4n9T+G01Iy
+P5DbI37oLO/zR8q922hIAu9Oq+7TMlpg9TuDAdTrWPOl0B+mVVPJJx+TP4IJTvem
+1CDcz4JgyWSb3Pv1lJPPi23CQ7EkZ/pCwhWQNJEI
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/backuprestore_03_multi_vid.0.1.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICNTCCAd+gAwIBAgIJANNlOZS0RkT/MA0GCSqGSIb3DQEBBQUAMFQxCzAJBgNV
+BAYTAlVLMRAwDgYDVQQKEwdTeW1iaWFuMTMwMQYDVQQDFCpFbnRpdHkgQ2VydCBi
+YWNrdXByZXN0b3JlXzAzIHVzZXJfY2FwcyAwIDAwHhcNMDYwNjIxMTEzMjQ0WhcN
+MTYwNjE4MTEzMjQ0WjBUMQswCQYDVQQGEwJVSzEQMA4GA1UEChMHU3ltYmlhbjEz
+MDEGA1UEAxQqRW50aXR5IENlcnQgYmFja3VwcmVzdG9yZV8wMyBtdWx0aV92aWQg
+MCAxMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAMAGcZq6MjGXiQZmQG/0MMDB9cJ6
+4GItO70QtovgSSUfR3HNijGs/rrior/bSqJcO56qB48HG6AfvpXbArVsoeUCAwEA
+AaOBkzCBkDBLBgwqhjoAAe3TawEBAQUBAf8EODA2AgRwAAABAgRwAAACAgRwAAAD
+AgRwAAAEAgRwAAAFAgRwAAAGAgRwAAAHAgRwAAAIAgRwAAAJMB0GA1UdDgQWBBSv
+JlR6LyrDnW9E1j3TI4qUhcRrYDASBgNVHRMBAf8ECDAGAQH/AgEFMA4GA1UdDwEB
+/wQEAwICBDANBgkqhkiG9w0BAQUFAANBAFJbb4tdBfl9/uh+rvSSJc2QlNIcN9Cd
+W4Aw0BdIJrKoG5jomPMZuArTF31Q9V8A5wrfuA1GC8YBkUudp2OuyDA=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/backuprestore_03_single_sid1.0.2.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,12 @@
+-----BEGIN CERTIFICATE-----
+MIIBwjCCAWygAwIBAgIJAJPAbFgN+T3MMA0GCSqGSIb3DQEBBQUAMFQxCzAJBgNV
+BAYTAlVLMRAwDgYDVQQKEwdTeW1iaWFuMTMwMQYDVQQDFCpFbnRpdHkgQ2VydCBi
+YWNrdXByZXN0b3JlXzAzIG11bHRpX3ZpZCAwIDEwHhcNMDYwNjIxMTEzMjQ1WhcN
+MTYwNjE4MTEzMjQ1WjBWMQswCQYDVQQGEwJVSzEQMA4GA1UEChMHU3ltYmlhbjE1
+MDMGA1UEAxQsRW50aXR5IENlcnQgYmFja3VwcmVzdG9yZV8wMyBzaW5nbGVfc2lk
+MSAwIDIwXDANBgkqhkiG9w0BAQEFAANLADBIAkEAl/4Rb5EHjNZ6eHWMYLK50zyY
+TrzuQT6ME4j6VdFtnn08Xl7NP9D4J0fcyx3Qv3g1m7R6gfo1J7Ts2ZHMQ0RqmQID
+AQABox8wHTAbBgwqhjoAAe3TawEBAQQBAf8ECDAGAgQRAAAGMA0GCSqGSIb3DQEB
+BQUAA0EAKuauCDCaJAjKME4QwfmbLeZ0cCzx1CqJFCAXSwMUD2v2Bmti0aifNRGA
+PizyBIIzK1K0r02JTYE7qpNmh5wUnA==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/backuprestore_03_user_caps.0.0.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICKjCCAZOgAwIBAgIJANV8hSQH4qoZMA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjQ0WhcNMTYwNjE4MTEzMjQ0WjBUMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjEzMDEGA1UEAxQqRW50aXR5IENlcnQgYmFj
+a3VwcmVzdG9yZV8wMyB1c2VyX2NhcHMgMCAwMFwwDQYJKoZIhvcNAQEBBQADSwAw
+SAJBAMGLC9i1Cw6GuajVy3afjF8h81KcC7gerURc5oL8t1Jvna4pP9aPyR11ZMG4
+LPElh7+VSPzQmtqY94yPHkmwZyMCAwEAAaNgMF4wGQYMKoY6AAHt02sBAQEGAQH/
+BAYDBAcAA4AwHQYDVR0OBBYEFA8FEEZjYwOnrQOK4eJSJeJXufvMMBIGA1UdEwEB
+/wQIMAYBAf8CAQUwDgYDVR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBBQUAA4GBABLR
+Jax5aBMkb9CAKPOHSlUEmOXY+rKn5nvQFvq/JuE1iIfrfgR6G0l08H4n9T+G01Iy
+P5DbI37oLO/zR8q922hIAu9Oq+7TMlpg9TuDAdTrWPOl0B+mVVPJJx+TP4IJTvem
+1CDcz4JgyWSb3Pv1lJPPi23CQ7EkZ/pCwhWQNJEI
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/corrupt_01_chain_0.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB4jCCAUugAwIBAgIJANV8hSQH4qnwMA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjEzWhcNMTYwNjE4MTEzMjEzWjBQMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjEvMC0GA1UEAxQmRW50aXR5IENlcnQgY29y
+cnVwdF8wMSBjb3JydXB0X2RldiAwIDAwXDANBgkqhkiG9w0BAQEFAANLADBIAkEA
+y+Hi9lZU/kw+KuhH2hzGRyVN1G9y/Dkes2c+uldpdR2oBsUDe7mh/snx+nWqRk3s
+2OYeYUGvspviF5v4aYwWJQIDAQABoxwwGjAYBgwqhjoAAe3TawEBAQEECDAGAgQR
+AAAGMA0GCSqGSIb3DQEBBQUAA4GBACMBYpgmlZUmTQ2gtdqR9Jqn2Tj6WPXwiIMH
+xKcc4oIHnv7nKOBCqLlzemRaPEPMy6fMXe7p+dRuV6OQtYE70NFHokk/zMKFYttn
+0uh3drNpY7j67fwJVU9iBgo7SSE6dlaMY+5wobVM0s+u4QtSKjV6c7TtNH2F7+b0
+FL2AvmVy
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/corrupt_01_corrupt_dev.0.0.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB4jCCAUugAwIBAgIJANV8hSQH4qnwMA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjEzWhcNMTYwNjE4MTEzMjEzWjBQMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjEvMC0GA1UEAxQmRW50aXR5IENlcnQgY29y
+cnVwdF8wMSBjb3JydXB0X2RldiAwIDAwXDANBgkqhkiG9w0BAQEFAANLADBIAkEA
+y+Hi9lZU/kw+KuhH2hzGRyVN1G9y/Dkes2c+uldpdR2oBsUDe7mh/snx+nWqRk3s
+2OYeYUGvspviF5v4aYwWJQIDAQABoxwwGjAYBgwqhjoAAe3TawEBAQEECDAGAgQR
+AAAGMA0GCSqGSIb3DQEBBQUAA4GBACMBYpgmlZUmTQ2gtdqR9Jqn2Tj6WPXwiIMH
+xKcc4oIHnv7nKOBCqLlzemRaPEPMy6fMXe7p+dRuV6OQtYE70NFHokk/zMKFYttn
+0uh3drNpY7j67fwJVU9iBgo7SSE6dlaMY+5wobVM0s+u4QtSKjV6c7TtNH2F7+b0
+FL2AvmVy
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/corrupt_02_chain_0.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB8jCCAVugAwIBAgIJANV8hSQH4qnxMA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjE0WhcNMTYwNjE4MTEzMjE0WjBQMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjEvMC0GA1UEAxQmRW50aXR5IENlcnQgY29y
+cnVwdF8wMiBjb3JydXB0X3NpZCAwIDAwXDANBgkqhkiG9w0BAQEFAANLADBIAkEA
+2EXhiHKTOa6ZfDfAYia3tjA8z8qChkU3pSKc0VLGnbKLckemklQpfKdf+IYOSkqD
+lpJnTmlRM83utwRcfAf0ywIDAQABoywwKjAoBgwqhjoAAe3TawEBAQQEGDAWDBQx
+MTExMTExMS0yMjIyMjItMy0wMTANBgkqhkiG9w0BAQUFAAOBgQB3OcH8dAaGOrj7
+ueLHceOAPKhUKgbdb/zwX6oiBZ1NOmelWWuws7jMI2q4yXftMgPVGeFIZGrtY8zu
+2jcreYsh32Q16MCIsEh7T81F/fm5UMsTezDv6wQR0+02+PnDcIrSf5G6gEl+1ru6
+fWLJa9jJ/HuucwWjorPzdxH4cmGvvg==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/corrupt_02_corrupt_sid.0.0.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB8jCCAVugAwIBAgIJANV8hSQH4qnxMA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjE0WhcNMTYwNjE4MTEzMjE0WjBQMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjEvMC0GA1UEAxQmRW50aXR5IENlcnQgY29y
+cnVwdF8wMiBjb3JydXB0X3NpZCAwIDAwXDANBgkqhkiG9w0BAQEFAANLADBIAkEA
+2EXhiHKTOa6ZfDfAYia3tjA8z8qChkU3pSKc0VLGnbKLckemklQpfKdf+IYOSkqD
+lpJnTmlRM83utwRcfAf0ywIDAQABoywwKjAoBgwqhjoAAe3TawEBAQQEGDAWDBQx
+MTExMTExMS0yMjIyMjItMy0wMTANBgkqhkiG9w0BAQUFAAOBgQB3OcH8dAaGOrj7
+ueLHceOAPKhUKgbdb/zwX6oiBZ1NOmelWWuws7jMI2q4yXftMgPVGeFIZGrtY8zu
+2jcreYsh32Q16MCIsEh7T81F/fm5UMsTezDv6wQR0+02+PnDcIrSf5G6gEl+1ru6
+fWLJa9jJ/HuucwWjorPzdxH4cmGvvg==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/corrupt_03_chain_0.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB8jCCAVugAwIBAgIJANV8hSQH4qnyMA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjE1WhcNMTYwNjE4MTEzMjE1WjBQMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjEvMC0GA1UEAxQmRW50aXR5IENlcnQgY29y
+cnVwdF8wMyBjb3JydXB0X3ZpZCAwIDAwXDANBgkqhkiG9w0BAQEFAANLADBIAkEA
+yLAbxdkYED9iBkHeQs5ygKc5f7WqXTauu0mNF19bokm7p0Cip1yL7M9kyJlYfqvh
+uOC4Cx2dqovnbCv0ej3ffwIDAQABoywwKjAoBgwqhjoAAe3TawEBAQUEGDAWDBQx
+MTExMTExMS0yMjIyMjItMy0wMTANBgkqhkiG9w0BAQUFAAOBgQCCk015L7biBbys
+yxvYKP/Vmt2wgfQHW8O7mA/aBfMDw10wPO0dozmgkRo9BOpAmJDZXKI9ifX5SdFw
+KTLdVzhNJ4ffCMcP/3V+o2ARsNWiir3q9QJSXpnOdzLkOk0fC6KfVdoy4g0hLSA2
+RgrrH1M6DWQ87pceN/u05v+WsUAwdg==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/corrupt_03_corrupt_vid.0.0.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB8jCCAVugAwIBAgIJANV8hSQH4qnyMA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjE1WhcNMTYwNjE4MTEzMjE1WjBQMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjEvMC0GA1UEAxQmRW50aXR5IENlcnQgY29y
+cnVwdF8wMyBjb3JydXB0X3ZpZCAwIDAwXDANBgkqhkiG9w0BAQEFAANLADBIAkEA
+yLAbxdkYED9iBkHeQs5ygKc5f7WqXTauu0mNF19bokm7p0Cip1yL7M9kyJlYfqvh
+uOC4Cx2dqovnbCv0ej3ffwIDAQABoywwKjAoBgwqhjoAAe3TawEBAQUEGDAWDBQx
+MTExMTExMS0yMjIyMjItMy0wMTANBgkqhkiG9w0BAQUFAAOBgQCCk015L7biBbys
+yxvYKP/Vmt2wgfQHW8O7mA/aBfMDw10wPO0dozmgkRo9BOpAmJDZXKI9ifX5SdFw
+KTLdVzhNJ4ffCMcP/3V+o2ARsNWiir3q9QJSXpnOdzLkOk0fC6KfVdoy4g0hLSA2
+RgrrH1M6DWQ87pceN/u05v+WsUAwdg==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/corrupt_04_chain_0.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB8zCCAVygAwIBAgIJANV8hSQH4qnzMA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjE1WhcNMTYwNjE4MTEzMjE1WjBRMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjEwMC4GA1UEAxQnRW50aXR5IENlcnQgY29y
+cnVwdF8wNCBjb3JydXB0X2NhcHMgMCAwMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJB
+AMFaWLe5X4KwlFjtFQV8a5dZQTbID+Oj847AEtmI+lnXf28bdIOWmvFJfFV0T5k8
+zOgC7/kF8Ea/f1Zx3h9kyXsCAwEAAaMsMCowKAYMKoY6AAHt02sBAQEGBBgwFgwU
+MTExMTExMTEtMjIyMjIyLTMtMDEwDQYJKoZIhvcNAQEFBQADgYEAN7N6XK6BE1nA
+nWiHloGEtO1gHiD/AQSo318A+3LxTmMFWZv+7ZW9mnT3QoLiFl3G3jlhHU3e7MF7
+5FWYaoO59U1zmwH3pBezhX96W+ANYzQkNMSr8gpPdTq2RRVoxj0fP2T8LMbjL8Ez
+c9YLeWrKe76H2DT8gqTlb1be5Z+8v3c=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/corrupt_04_corrupt_caps.0.0.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB8zCCAVygAwIBAgIJANV8hSQH4qnzMA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjE1WhcNMTYwNjE4MTEzMjE1WjBRMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjEwMC4GA1UEAxQnRW50aXR5IENlcnQgY29y
+cnVwdF8wNCBjb3JydXB0X2NhcHMgMCAwMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJB
+AMFaWLe5X4KwlFjtFQV8a5dZQTbID+Oj847AEtmI+lnXf28bdIOWmvFJfFV0T5k8
+zOgC7/kF8Ea/f1Zx3h9kyXsCAwEAAaMsMCowKAYMKoY6AAHt02sBAQEGBBgwFgwU
+MTExMTExMTEtMjIyMjIyLTMtMDEwDQYJKoZIhvcNAQEFBQADgYEAN7N6XK6BE1nA
+nWiHloGEtO1gHiD/AQSo318A+3LxTmMFWZv+7ZW9mnT3QoLiFl3G3jlhHU3e7MF7
+5FWYaoO59U1zmwH3pBezhX96W+ANYzQkNMSr8gpPdTq2RRVoxj0fP2T8LMbjL8Ez
+c9YLeWrKe76H2DT8gqTlb1be5Z+8v3c=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/devcertwarn_chain_0.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,37 @@
+-----BEGIN CERTIFICATE-----
+MIIBmzCCAUWgAwIBAgIJANrXmkHskQdDMA0GCSqGSIb3DQEBBQUAMFExCzAJBgNV
+BAYTAlVLMRAwDgYDVQQKEwdTeW1iaWFuMTAwLgYDVQQDFCdFbnRpdHkgQ2VydCBk
+ZXZjZXJ0d2FybiBzeXN0ZW1fY2FwcyAwIDEwHhcNMDYwNzExMDkxNDA4WhcNMTYw
+NzA4MDkxNDA4WjBTMQswCQYDVQQGEwJVSzEQMA4GA1UEChMHU3ltYmlhbjEyMDAG
+A1UEAxMpRW50aXR5IENlcnQgZGV2Y2VydHdhcm4gdW5jb25zdHJhaW5lZCAwIDIw
+XDANBgkqhkiG9w0BAQEFAANLADBIAkEAw8iZIpHVJ2rNTlmQbiIlo8OUeNFeH0zj
+tR9zo2F3JStg4InhwJVGEUjO3ZUs3Cak1WmU5Wy2keOvrnmaZhoucQIDAQABMA0G
+CSqGSIb3DQEBBQUAA0EAfDe2nIX70gEyZeSSJmbk3ZWJpxBOXoDwFstjy8gKzN3k
+nywEu1RwowmuJHzjtxPh6BQgsOXYh2BD5ONRxAB+Ug==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIB+zCCAaWgAwIBAgIJAOvQjIAoM2ZLMA0GCSqGSIb3DQEBBQUAMFMxCzAJBgNV
+BAYTAlVLMRAwDgYDVQQKEwdTeW1iaWFuMTIwMAYDVQQDEylFbnRpdHkgQ2VydCBk
+ZXZjZXJ0d2FybiB1bmNvbnN0cmFpbmVkIDAgMDAeFw0wNjA3MTEwOTE0MDdaFw0x
+NjA3MDgwOTE0MDdaMFExCzAJBgNVBAYTAlVLMRAwDgYDVQQKEwdTeW1iaWFuMTAw
+LgYDVQQDFCdFbnRpdHkgQ2VydCBkZXZjZXJ0d2FybiBzeXN0ZW1fY2FwcyAwIDEw
+XDANBgkqhkiG9w0BAQEFAANLADBIAkEAuAmBmZUg75yoWfrk5y+eEVW+h6KwlS8i
+ECb9EIlOSxkTI+UPS/ME5jEUQy8jF+TTDCLM0Jqflwc8oYKSEyFEVwIDAQABo14w
+XDAXBgwqhjoAAe3TawEBAQYBAf8EBAMCAgwwHQYDVR0OBBYEFP37oraauBUBboO3
+6q89BG9/KOqXMBIGA1UdEwEB/wQIMAYBAf8CAQUwDgYDVR0PAQH/BAQDAgIEMA0G
+CSqGSIb3DQEBBQUAA0EAJhdba2nEz1UHFEC8OtUgtf88rLdcAU3qBbOCL1VvWbu9
+UO2hu8x6ifCohLY6RwVSf4ZgEFqnNyn7N673IMZH8w==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICBTCCAW6gAwIBAgIJANV8hSQH4rD9MA0GCSqGSIb3DQEBBQUAMDMxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRIwEAYDVQQDEwlSb290NS1SU0EwHhcN
+MDYwNzExMDkxNDA3WhcNMTYwNzA4MDkxNDA3WjBTMQswCQYDVQQGEwJVSzEQMA4G
+A1UEChMHU3ltYmlhbjEyMDAGA1UEAxMpRW50aXR5IENlcnQgZGV2Y2VydHdhcm4g
+dW5jb25zdHJhaW5lZCAwIDAwXDANBgkqhkiG9w0BAQEFAANLADBIAkEA7JQh0Aro
+FOFqlZtru+ud0IEmWLl4yurbbS/iIwGdg3svUnCGwmKjgFnAyCHFxBHVWwN6KgUc
+hycShS0JC4vwFQIDAQABo0UwQzAdBgNVHQ4EFgQUmpvOlCvhGKm0e/oLohHeblA/
+CzIwEgYDVR0TAQH/BAgwBgEB/wIBBTAOBgNVHQ8BAf8EBAMCAgQwDQYJKoZIhvcN
+AQEFBQADgYEAgBywVgQK9z8gk+HuZzqjBZnt151IL6XngEo+Rf7GVhT08qaHmE6j
+pJaoBb9E9VXIZDrM5v1kPUisjyhVDfNmNT698iM0bcNT3mFJeeCspNxbGUkp1s9+
+gI26DvzSeV5LaqIf7xlrv8F/LTcfgely9ZhUbwu5BGe/t7UksZUm564=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/devcertwarn_system_caps.0.1.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB+zCCAaWgAwIBAgIJAOvQjIAoM2ZLMA0GCSqGSIb3DQEBBQUAMFMxCzAJBgNV
+BAYTAlVLMRAwDgYDVQQKEwdTeW1iaWFuMTIwMAYDVQQDEylFbnRpdHkgQ2VydCBk
+ZXZjZXJ0d2FybiB1bmNvbnN0cmFpbmVkIDAgMDAeFw0wNjA3MTEwOTE0MDdaFw0x
+NjA3MDgwOTE0MDdaMFExCzAJBgNVBAYTAlVLMRAwDgYDVQQKEwdTeW1iaWFuMTAw
+LgYDVQQDFCdFbnRpdHkgQ2VydCBkZXZjZXJ0d2FybiBzeXN0ZW1fY2FwcyAwIDEw
+XDANBgkqhkiG9w0BAQEFAANLADBIAkEAuAmBmZUg75yoWfrk5y+eEVW+h6KwlS8i
+ECb9EIlOSxkTI+UPS/ME5jEUQy8jF+TTDCLM0Jqflwc8oYKSEyFEVwIDAQABo14w
+XDAXBgwqhjoAAe3TawEBAQYBAf8EBAMCAgwwHQYDVR0OBBYEFP37oraauBUBboO3
+6q89BG9/KOqXMBIGA1UdEwEB/wQIMAYBAf8CAQUwDgYDVR0PAQH/BAQDAgIEMA0G
+CSqGSIb3DQEBBQUAA0EAJhdba2nEz1UHFEC8OtUgtf88rLdcAU3qBbOCL1VvWbu9
+UO2hu8x6ifCohLY6RwVSf4ZgEFqnNyn7N673IMZH8w==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/devcertwarn_unconstrained.0.0.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIICBTCCAW6gAwIBAgIJANV8hSQH4rD9MA0GCSqGSIb3DQEBBQUAMDMxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRIwEAYDVQQDEwlSb290NS1SU0EwHhcN
+MDYwNzExMDkxNDA3WhcNMTYwNzA4MDkxNDA3WjBTMQswCQYDVQQGEwJVSzEQMA4G
+A1UEChMHU3ltYmlhbjEyMDAGA1UEAxMpRW50aXR5IENlcnQgZGV2Y2VydHdhcm4g
+dW5jb25zdHJhaW5lZCAwIDAwXDANBgkqhkiG9w0BAQEFAANLADBIAkEA7JQh0Aro
+FOFqlZtru+ud0IEmWLl4yurbbS/iIwGdg3svUnCGwmKjgFnAyCHFxBHVWwN6KgUc
+hycShS0JC4vwFQIDAQABo0UwQzAdBgNVHQ4EFgQUmpvOlCvhGKm0e/oLohHeblA/
+CzIwEgYDVR0TAQH/BAgwBgEB/wIBBTAOBgNVHQ8BAf8EBAMCAgQwDQYJKoZIhvcN
+AQEFBQADgYEAgBywVgQK9z8gk+HuZzqjBZnt151IL6XngEo+Rf7GVhT08qaHmE6j
+pJaoBb9E9VXIZDrM5v1kPUisjyhVDfNmNT698iM0bcNT3mFJeeCspNxbGUkp1s9+
+gI26DvzSeV5LaqIf7xlrv8F/LTcfgely9ZhUbwu5BGe/t7UksZUm564=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/devcertwarn_unconstrained.0.2.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBmzCCAUWgAwIBAgIJANrXmkHskQdDMA0GCSqGSIb3DQEBBQUAMFExCzAJBgNV
+BAYTAlVLMRAwDgYDVQQKEwdTeW1iaWFuMTAwLgYDVQQDFCdFbnRpdHkgQ2VydCBk
+ZXZjZXJ0d2FybiBzeXN0ZW1fY2FwcyAwIDEwHhcNMDYwNzExMDkxNDA4WhcNMTYw
+NzA4MDkxNDA4WjBTMQswCQYDVQQGEwJVSzEQMA4GA1UEChMHU3ltYmlhbjEyMDAG
+A1UEAxMpRW50aXR5IENlcnQgZGV2Y2VydHdhcm4gdW5jb25zdHJhaW5lZCAwIDIw
+XDANBgkqhkiG9w0BAQEFAANLADBIAkEAw8iZIpHVJ2rNTlmQbiIlo8OUeNFeH0zj
+tR9zo2F3JStg4InhwJVGEUjO3ZUs3Cak1WmU5Wy2keOvrnmaZhoucQIDAQABMA0G
+CSqGSIb3DQEBBQUAA0EAfDe2nIX70gEyZeSSJmbk3ZWJpxBOXoDwFstjy8gKzN3k
+nywEu1RwowmuJHzjtxPh6BQgsOXYh2BD5ONRxAB+Ug==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_01_chain_0.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB8zCCAVygAwIBAgIJANV8hSQH4qn0MA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjE2WhcNMTYwNjE4MTEzMjE2WjBOMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjEtMCsGA1UEAxQkRW50aXR5IENlcnQgbWF0
+Y2hfMDEgc2luZ2xlX2RldjEgMCAwMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAM9Z
+OBY4HUaweyyGcRtqMzqdvcVXIj8KnxHtOyvHx5WIYi73b2BEioCNC/YLvAKBPXjO
+8iNhNQcKnTRdnB7MUNUCAwEAAaMvMC0wKwYMKoY6AAHt02sBAQEBAQH/BBgwFgwU
+MTExMTExMTEtMjIyMjIyLTMtMDEwDQYJKoZIhvcNAQEFBQADgYEAeGlaqy+KRZCU
+hqSv8qo2umsG7OUk3EaqxZODb0otAzknWRIWcUZooPh4P10VGv6QLYWQ1aOhsZri
+TMYJSz5tjh2njzdU5zXarjTraONG2poUeF6SdrDCbblB3yQszlTxmYopDHgaTwUY
+KCZNqjwGeGOxHpB2yKYtKc6TESt2JTE=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_01_single_dev1.0.0.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB8zCCAVygAwIBAgIJANV8hSQH4qn0MA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjE2WhcNMTYwNjE4MTEzMjE2WjBOMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjEtMCsGA1UEAxQkRW50aXR5IENlcnQgbWF0
+Y2hfMDEgc2luZ2xlX2RldjEgMCAwMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAM9Z
+OBY4HUaweyyGcRtqMzqdvcVXIj8KnxHtOyvHx5WIYi73b2BEioCNC/YLvAKBPXjO
+8iNhNQcKnTRdnB7MUNUCAwEAAaMvMC0wKwYMKoY6AAHt02sBAQEBAQH/BBgwFgwU
+MTExMTExMTEtMjIyMjIyLTMtMDEwDQYJKoZIhvcNAQEFBQADgYEAeGlaqy+KRZCU
+hqSv8qo2umsG7OUk3EaqxZODb0otAzknWRIWcUZooPh4P10VGv6QLYWQ1aOhsZri
+TMYJSz5tjh2njzdU5zXarjTraONG2poUeF6SdrDCbblB3yQszlTxmYopDHgaTwUY
+KCZNqjwGeGOxHpB2yKYtKc6TESt2JTE=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_02_chain_0.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB4zCCAUygAwIBAgIJANV8hSQH4qn1MA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjE2WhcNMTYwNjE4MTEzMjE2WjBOMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjEtMCsGA1UEAxQkRW50aXR5IENlcnQgbWF0
+Y2hfMDIgc2luZ2xlX3NpZDEgMCAwMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALn1
+ywNvOm0K7rQsSXMC5tcnV0vjhgqJ6Sc0FpoxeWJ2GOb5yNbYSPU+5Sn0i5QtyN7k
+pXOISiAYkgRL3O6g6QsCAwEAAaMfMB0wGwYMKoY6AAHt02sBAQEEAQH/BAgwBgIE
+EQAABjANBgkqhkiG9w0BAQUFAAOBgQB2v2tNSSXmareXYMnBQOUZThsNMmUzx3/Y
+qxoU0A0gWTDaNrt3n6CtltK49bBRtatN9In3tfefahXxjhfstdBX7KH7eHDjCgvk
+K4Clzh7sAjdQCXWHb4zBHpwTo1WAvrZI+3+RmnlDOagv1vF684FqxTJdq/l6HDxq
+jvek/tcH3Q==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_02_single_sid1.0.0.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB4zCCAUygAwIBAgIJANV8hSQH4qn1MA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjE2WhcNMTYwNjE4MTEzMjE2WjBOMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjEtMCsGA1UEAxQkRW50aXR5IENlcnQgbWF0
+Y2hfMDIgc2luZ2xlX3NpZDEgMCAwMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALn1
+ywNvOm0K7rQsSXMC5tcnV0vjhgqJ6Sc0FpoxeWJ2GOb5yNbYSPU+5Sn0i5QtyN7k
+pXOISiAYkgRL3O6g6QsCAwEAAaMfMB0wGwYMKoY6AAHt02sBAQEEAQH/BAgwBgIE
+EQAABjANBgkqhkiG9w0BAQUFAAOBgQB2v2tNSSXmareXYMnBQOUZThsNMmUzx3/Y
+qxoU0A0gWTDaNrt3n6CtltK49bBRtatN9In3tfefahXxjhfstdBX7KH7eHDjCgvk
+K4Clzh7sAjdQCXWHb4zBHpwTo1WAvrZI+3+RmnlDOagv1vF684FqxTJdq/l6HDxq
+jvek/tcH3Q==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_03_chain_0.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB4zCCAUygAwIBAgIJANV8hSQH4qn2MA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjE3WhcNMTYwNjE4MTEzMjE3WjBOMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjEtMCsGA1UEAxQkRW50aXR5IENlcnQgbWF0
+Y2hfMDMgc2luZ2xlX3ZpZDEgMCAwMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANuG
+KSduLQ7DMdTz+HnQRt/CY7Nt0IerjCOu/GP8Z64pQGSfB1Z3ailLrnR2Xf24IqoB
+n01dZURv70ua3HYUptkCAwEAAaMfMB0wGwYMKoY6AAHt02sBAQEFAQH/BAgwBgIE
+cAAAATANBgkqhkiG9w0BAQUFAAOBgQCSoeiIHZ7GAhCmU+ERA0GU97USQU6d31tg
+wIR/MLYFyXpeemk06aXKv6VfMhiS2tBXWDmDXhG0A7zpvl78OYBWsNEfUgjtTTso
+3ut1LiV31AFazeAo/c40ofwZNnriV+8Hp3J9xwQMqUJ78vHACIvOLAoL/RmZlFCx
+meCYafG+Sg==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_03_single_vid1.0.0.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB4zCCAUygAwIBAgIJANV8hSQH4qn2MA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjE3WhcNMTYwNjE4MTEzMjE3WjBOMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjEtMCsGA1UEAxQkRW50aXR5IENlcnQgbWF0
+Y2hfMDMgc2luZ2xlX3ZpZDEgMCAwMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANuG
+KSduLQ7DMdTz+HnQRt/CY7Nt0IerjCOu/GP8Z64pQGSfB1Z3ailLrnR2Xf24IqoB
+n01dZURv70ua3HYUptkCAwEAAaMfMB0wGwYMKoY6AAHt02sBAQEFAQH/BAgwBgIE
+cAAAATANBgkqhkiG9w0BAQUFAAOBgQCSoeiIHZ7GAhCmU+ERA0GU97USQU6d31tg
+wIR/MLYFyXpeemk06aXKv6VfMhiS2tBXWDmDXhG0A7zpvl78OYBWsNEfUgjtTTso
+3ut1LiV31AFazeAo/c40ofwZNnriV+8Hp3J9xwQMqUJ78vHACIvOLAoL/RmZlFCx
+meCYafG+Sg==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_04_chain_0.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB3zCCAUigAwIBAgIJANV8hSQH4qn3MA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjE3WhcNMTYwNjE4MTEzMjE3WjBMMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjErMCkGA1UEAxQiRW50aXR5IENlcnQgbWF0
+Y2hfMDQgdXNlcl9jYXBzIDAgMDBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQDEWUks
+jy99mprzGqooiKLcobP7qzbOFL0elr0Fopb/TqvIGBswq0KCVHnkG47L9zByJ5Hl
+8RWzmEFX/J6EfM7/AgMBAAGjHTAbMBkGDCqGOgAB7dNrAQEBBgEB/wQGAwQHAAOA
+MA0GCSqGSIb3DQEBBQUAA4GBAA8uFgUzlbkQmVlKyXZZNH1SfML1W42PfluOPwU8
+MWdOWJrkuBig4DPQNSbtXjHZFRSpVbb/8mJqokNXz5MIwAWDaFQpH0jY7PzntLvW
+8+hGtxzXhsfdkuhl9KZHMuPiBDR8PJiElbHOphhsgyB2Fr+MJVzQV0zQZX+SAm5P
+YtQD
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_04_user_caps.0.0.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB3zCCAUigAwIBAgIJANV8hSQH4qn3MA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjE3WhcNMTYwNjE4MTEzMjE3WjBMMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjErMCkGA1UEAxQiRW50aXR5IENlcnQgbWF0
+Y2hfMDQgdXNlcl9jYXBzIDAgMDBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQDEWUks
+jy99mprzGqooiKLcobP7qzbOFL0elr0Fopb/TqvIGBswq0KCVHnkG47L9zByJ5Hl
+8RWzmEFX/J6EfM7/AgMBAAGjHTAbMBkGDCqGOgAB7dNrAQEBBgEB/wQGAwQHAAOA
+MA0GCSqGSIb3DQEBBQUAA4GBAA8uFgUzlbkQmVlKyXZZNH1SfML1W42PfluOPwU8
+MWdOWJrkuBig4DPQNSbtXjHZFRSpVbb/8mJqokNXz5MIwAWDaFQpH0jY7PzntLvW
+8+hGtxzXhsfdkuhl9KZHMuPiBDR8PJiElbHOphhsgyB2Fr+MJVzQV0zQZX+SAm5P
+YtQD
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_05_chain_0.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,12 @@
+-----BEGIN CERTIFICATE-----
+MIIB1jCCAT+gAwIBAgIJANV8hSQH4qn4MA0GCSqGSIb3DQEBBQUAMDMxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRIwEAYDVQQDEwlSb290NS1SU0EwHhcN
+MDYwNjIxMTEzMjE4WhcNMTYwNjE4MTEzMjE4WjBOMQswCQYDVQQGEwJVSzEQMA4G
+A1UEChMHU3ltYmlhbjEtMCsGA1UEAxQkRW50aXR5IENlcnQgbWF0Y2hfMDUgc3lz
+dGVtX2NhcHMgMCAwMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAOaOPQKZSGL2ekni
+HP6np5v/iM5XPR3ug/Z23QIyJfl/2AjOLevKHHmKndUhIavuo+ie5EvSws9DsqYZ
+nqPVyYkCAwEAAaMbMBkwFwYMKoY6AAHt02sBAQEGAQH/BAQDAgIMMA0GCSqGSIb3
+DQEBBQUAA4GBAHumktTRl6ZjTvnFLz9Lq9YNrew2mrkXZX6LdHU25H0QTVBx77Md
+K0XGMmSgj7T8ZBrr+53xTeLCp55fNY9uiaDgraIv4uTWWan4xfxaCCilq6bfBVuZ
+EiQMGFagWEWiEKJ6Nhpd0ToJl1tUU3kXW5IOdlmMz3TVnj3ZeIgbc6Ek
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_05_system_caps.0.0.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,12 @@
+-----BEGIN CERTIFICATE-----
+MIIB1jCCAT+gAwIBAgIJANV8hSQH4qn4MA0GCSqGSIb3DQEBBQUAMDMxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRIwEAYDVQQDEwlSb290NS1SU0EwHhcN
+MDYwNjIxMTEzMjE4WhcNMTYwNjE4MTEzMjE4WjBOMQswCQYDVQQGEwJVSzEQMA4G
+A1UEChMHU3ltYmlhbjEtMCsGA1UEAxQkRW50aXR5IENlcnQgbWF0Y2hfMDUgc3lz
+dGVtX2NhcHMgMCAwMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAOaOPQKZSGL2ekni
+HP6np5v/iM5XPR3ug/Z23QIyJfl/2AjOLevKHHmKndUhIavuo+ie5EvSws9DsqYZ
+nqPVyYkCAwEAAaMbMBkwFwYMKoY6AAHt02sBAQEGAQH/BAQDAgIMMA0GCSqGSIb3
+DQEBBQUAA4GBAHumktTRl6ZjTvnFLz9Lq9YNrew2mrkXZX6LdHU25H0QTVBx77Md
+K0XGMmSgj7T8ZBrr+53xTeLCp55fNY9uiaDgraIv4uTWWan4xfxaCCilq6bfBVuZ
+EiQMGFagWEWiEKJ6Nhpd0ToJl1tUU3kXW5IOdlmMz3TVnj3ZeIgbc6Ek
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_06_chain_0.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB8zCCAVygAwIBAgIJANV8hSQH4qn5MA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjE5WhcNMTYwNjE4MTEzMjE5WjBOMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjEtMCsGA1UEAxQkRW50aXR5IENlcnQgbWF0
+Y2hfMDYgc2luZ2xlX2RldjEgMCAwMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAMW+
++pTpw8wmMcfBMSkImI2qpB6k2cwvPJTFu9KDchuuhjlV6NZiQ0EvSnyWjsw0H6ph
+Tf2q6xzgAWv7KS+/8hcCAwEAAaMvMC0wKwYMKoY6AAHt02sBAQEBAQH/BBgwFgwU
+MTExMTExMTEtMjIyMjIyLTMtMDEwDQYJKoZIhvcNAQEFBQADgYEAJz/ttTdkEc0d
+FO/Fb5XRcQ6VJO87d1oyai4+nXEXo6iMdky8CIdArfX0hOtlPDqASbtd23gL/6fQ
+rzG0iMAQGGvibGObCts2A8o0DfTQt54OhCdrjMDGKoGj+uE/bpw9d1hRF5BrSF0S
+I0Gq9e0T7s2Izqb9HAw3gBeEmwAQzH4=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_06_chain_1.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB3zCCAUigAwIBAgIJANV8hSQH4qn6MA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjE5WhcNMTYwNjE4MTEzMjE5WjBMMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjErMCkGA1UEAxQiRW50aXR5IENlcnQgbWF0
+Y2hfMDYgdXNlcl9jYXBzIDEgMDBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQC2xeEi
+ImjbwACcofe40VCe25GRVqdT2AzLSqjMPrGuo1XFXnUDxZY/qYH0wqQ6MtJ46Wq4
+XbZSUhTJ8pW57zcnAgMBAAGjHTAbMBkGDCqGOgAB7dNrAQEBBgEB/wQGAwQHAAOA
+MA0GCSqGSIb3DQEBBQUAA4GBABSRGBX79EQTsVIQ9xY1Xo60brSPSWtWS3MiUFW9
+pG2cnCflqijH+pTYbaGV+pC9s7vkm1rUxE5sjBBIqHdFJtQCzqmwhbyyt70XazRN
+2+rJ+/w5/hGfR6WEdWGyTLUbOltkWeWMtzYmeEu+4nXloUXHxYkqlxH7JkMKeq18
+nz7p
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_06_single_dev1.0.0.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB8zCCAVygAwIBAgIJANV8hSQH4qn5MA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjE5WhcNMTYwNjE4MTEzMjE5WjBOMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjEtMCsGA1UEAxQkRW50aXR5IENlcnQgbWF0
+Y2hfMDYgc2luZ2xlX2RldjEgMCAwMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAMW+
++pTpw8wmMcfBMSkImI2qpB6k2cwvPJTFu9KDchuuhjlV6NZiQ0EvSnyWjsw0H6ph
+Tf2q6xzgAWv7KS+/8hcCAwEAAaMvMC0wKwYMKoY6AAHt02sBAQEBAQH/BBgwFgwU
+MTExMTExMTEtMjIyMjIyLTMtMDEwDQYJKoZIhvcNAQEFBQADgYEAJz/ttTdkEc0d
+FO/Fb5XRcQ6VJO87d1oyai4+nXEXo6iMdky8CIdArfX0hOtlPDqASbtd23gL/6fQ
+rzG0iMAQGGvibGObCts2A8o0DfTQt54OhCdrjMDGKoGj+uE/bpw9d1hRF5BrSF0S
+I0Gq9e0T7s2Izqb9HAw3gBeEmwAQzH4=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_06_user_caps.1.0.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB3zCCAUigAwIBAgIJANV8hSQH4qn6MA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjE5WhcNMTYwNjE4MTEzMjE5WjBMMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjErMCkGA1UEAxQiRW50aXR5IENlcnQgbWF0
+Y2hfMDYgdXNlcl9jYXBzIDEgMDBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQC2xeEi
+ImjbwACcofe40VCe25GRVqdT2AzLSqjMPrGuo1XFXnUDxZY/qYH0wqQ6MtJ46Wq4
+XbZSUhTJ8pW57zcnAgMBAAGjHTAbMBkGDCqGOgAB7dNrAQEBBgEB/wQGAwQHAAOA
+MA0GCSqGSIb3DQEBBQUAA4GBABSRGBX79EQTsVIQ9xY1Xo60brSPSWtWS3MiUFW9
+pG2cnCflqijH+pTYbaGV+pC9s7vkm1rUxE5sjBBIqHdFJtQCzqmwhbyyt70XazRN
+2+rJ+/w5/hGfR6WEdWGyTLUbOltkWeWMtzYmeEu+4nXloUXHxYkqlxH7JkMKeq18
+nz7p
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_07_chain_0.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICRDCCAa2gAwIBAgIJANV8hSQH4qn7MA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjIwWhcNMTYwNjE4MTEzMjIwWjBIMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjEnMCUGA1UEAxQeRW50aXR5IENlcnQgbWF0
+Y2hfMDcgY29tYjEgMCAwMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAMfip/GsTQms
+OemRWcUSIfibcdsv+n4MWXeGratPvB22uHlWzHxtF9zd6iRhgimC72EWkOzDPg0p
+TrSRFnflbc8CAwEAAaOBhTCBgjArBgwqhjoAAe3TawEBAQEBAf8EGDAWDBQxMTEx
+MTExMS0yMjIyMjItMy0wMTAbBgwqhjoAAe3TawEBAQQBAf8ECDAGAgQRAAAGMBsG
+DCqGOgAB7dNrAQEBBQEB/wQIMAYCBHAAAAEwGQYMKoY6AAHt02sBAQEGAQH/BAYD
+BAcAA4AwDQYJKoZIhvcNAQEFBQADgYEAgcrSH3Gd+wFzGKjDHEAl50Cz0DFiPjd1
+K23+tu/Y0u0YKDA+EUXVmTsDzTcqBfkfEJOx981+DP8vKZ/SeoyzmTlDFtorHMXg
+dreHhRzPYGHGQWWZIZ8nWMxLSgClb1e1ulJ+gueGtcb9IqJ87nYBliNQYsweB0jA
+AM8y1B2tbLQ=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_07_comb1.0.0.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICRDCCAa2gAwIBAgIJANV8hSQH4qn7MA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjIwWhcNMTYwNjE4MTEzMjIwWjBIMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjEnMCUGA1UEAxQeRW50aXR5IENlcnQgbWF0
+Y2hfMDcgY29tYjEgMCAwMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAMfip/GsTQms
+OemRWcUSIfibcdsv+n4MWXeGratPvB22uHlWzHxtF9zd6iRhgimC72EWkOzDPg0p
+TrSRFnflbc8CAwEAAaOBhTCBgjArBgwqhjoAAe3TawEBAQEBAf8EGDAWDBQxMTEx
+MTExMS0yMjIyMjItMy0wMTAbBgwqhjoAAe3TawEBAQQBAf8ECDAGAgQRAAAGMBsG
+DCqGOgAB7dNrAQEBBQEB/wQIMAYCBHAAAAEwGQYMKoY6AAHt02sBAQEGAQH/BAYD
+BAcAA4AwDQYJKoZIhvcNAQEFBQADgYEAgcrSH3Gd+wFzGKjDHEAl50Cz0DFiPjd1
+K23+tu/Y0u0YKDA+EUXVmTsDzTcqBfkfEJOx981+DP8vKZ/SeoyzmTlDFtorHMXg
+dreHhRzPYGHGQWWZIZ8nWMxLSgClb1e1ulJ+gueGtcb9IqJ87nYBliNQYsweB0jA
+AM8y1B2tbLQ=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_08_all_caps.0.0.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICGDCCAYGgAwIBAgIJANV8hSQH4qn8MA0GCSqGSIb3DQEBBQUAMDMxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRIwEAYDVQQDEwlSb290NS1SU0EwHhcN
+MDYwNjIxMTEzMjIwWhcNMTYwNjE4MTEzMjIwWjBLMQswCQYDVQQGEwJVSzEQMA4G
+A1UEChMHU3ltYmlhbjEqMCgGA1UEAxQhRW50aXR5IENlcnQgbWF0Y2hfMDggYWxs
+X2NhcHMgMCAwMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAL4MEW4R5XMuBtvPXvxd
+wJfqJJtipmcVUXWlor7SPg2aoGbC8H11ATUJbhSLkCLa5+5vqBUWmFZxD4z981rC
+fy8CAwEAAaNgMF4wGQYMKoY6AAHt02sBAQEGAQH/BAYDBAcMA4AwHQYDVR0OBBYE
+FHYva7l5mxnQyWvXveTddkcE+3qeMBIGA1UdEwEB/wQIMAYBAf8CAQUwDgYDVR0P
+AQH/BAQDAgIEMA0GCSqGSIb3DQEBBQUAA4GBAC44k7/QzrTAOYfLj9KDa5gr0H0v
+9jaRSKrFrv4FTrOrHLFyZrWVqyVlE/hfpOJ8bReLNjetNyI1HWkorWmlThehUnpR
+ozBLZbAYUaxYYxKMiMpr3EE8KuuI5/pVT+RLNCQdVlRk5kTRr3mGdeJwzugO43EU
+t2W0wqcII8P1jVq2
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_08_chain_0.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,26 @@
+-----BEGIN CERTIFICATE-----
+MIIBrTCCAVegAwIBAgIJAO36oeKkdl2yMA0GCSqGSIb3DQEBBQUAMEsxCzAJBgNV
+BAYTAlVLMRAwDgYDVQQKEwdTeW1iaWFuMSowKAYDVQQDFCFFbnRpdHkgQ2VydCBt
+YXRjaF8wOCBhbGxfY2FwcyAwIDAwHhcNMDYwNjIxMTEzMjIxWhcNMTYwNjE4MTEz
+MjIxWjBOMQswCQYDVQQGEwJVSzEQMA4GA1UEChMHU3ltYmlhbjEtMCsGA1UEAxQk
+RW50aXR5IENlcnQgbWF0Y2hfMDggc3lzdGVtX2NhcHMgMCAxMFwwDQYJKoZIhvcN
+AQEBBQADSwAwSAJBALhRVdfRwi2Jmajija9wjpyRKsq9jCYjZrPFGsy2y/EvAyZf
+8CRSB+kN7onhN4cYpIt4cIbpWO9ChLFnSP2qAHMCAwEAAaMbMBkwFwYMKoY6AAHt
+02sBAQEGAQH/BAQDAgIMMA0GCSqGSIb3DQEBBQUAA0EANcATz4mowtajpGltTBPy
++HTkN6gYUZTj2BHZ92bwbWDkcdVyQPLloc3ZIxdek5z/dsMRZDieSXR3zElR2Fmz
+Gw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICGDCCAYGgAwIBAgIJANV8hSQH4qn8MA0GCSqGSIb3DQEBBQUAMDMxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRIwEAYDVQQDEwlSb290NS1SU0EwHhcN
+MDYwNjIxMTEzMjIwWhcNMTYwNjE4MTEzMjIwWjBLMQswCQYDVQQGEwJVSzEQMA4G
+A1UEChMHU3ltYmlhbjEqMCgGA1UEAxQhRW50aXR5IENlcnQgbWF0Y2hfMDggYWxs
+X2NhcHMgMCAwMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAL4MEW4R5XMuBtvPXvxd
+wJfqJJtipmcVUXWlor7SPg2aoGbC8H11ATUJbhSLkCLa5+5vqBUWmFZxD4z981rC
+fy8CAwEAAaNgMF4wGQYMKoY6AAHt02sBAQEGAQH/BAYDBAcMA4AwHQYDVR0OBBYE
+FHYva7l5mxnQyWvXveTddkcE+3qeMBIGA1UdEwEB/wQIMAYBAf8CAQUwDgYDVR0P
+AQH/BAQDAgIEMA0GCSqGSIb3DQEBBQUAA4GBAC44k7/QzrTAOYfLj9KDa5gr0H0v
+9jaRSKrFrv4FTrOrHLFyZrWVqyVlE/hfpOJ8bReLNjetNyI1HWkorWmlThehUnpR
+ozBLZbAYUaxYYxKMiMpr3EE8KuuI5/pVT+RLNCQdVlRk5kTRr3mGdeJwzugO43EU
+t2W0wqcII8P1jVq2
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_08_system_caps.0.1.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,12 @@
+-----BEGIN CERTIFICATE-----
+MIIBrTCCAVegAwIBAgIJAO36oeKkdl2yMA0GCSqGSIb3DQEBBQUAMEsxCzAJBgNV
+BAYTAlVLMRAwDgYDVQQKEwdTeW1iaWFuMSowKAYDVQQDFCFFbnRpdHkgQ2VydCBt
+YXRjaF8wOCBhbGxfY2FwcyAwIDAwHhcNMDYwNjIxMTEzMjIxWhcNMTYwNjE4MTEz
+MjIxWjBOMQswCQYDVQQGEwJVSzEQMA4GA1UEChMHU3ltYmlhbjEtMCsGA1UEAxQk
+RW50aXR5IENlcnQgbWF0Y2hfMDggc3lzdGVtX2NhcHMgMCAxMFwwDQYJKoZIhvcN
+AQEBBQADSwAwSAJBALhRVdfRwi2Jmajija9wjpyRKsq9jCYjZrPFGsy2y/EvAyZf
+8CRSB+kN7onhN4cYpIt4cIbpWO9ChLFnSP2qAHMCAwEAAaMbMBkwFwYMKoY6AAHt
+02sBAQEGAQH/BAQDAgIMMA0GCSqGSIb3DQEBBQUAA0EANcATz4mowtajpGltTBPy
++HTkN6gYUZTj2BHZ92bwbWDkcdVyQPLloc3ZIxdek5z/dsMRZDieSXR3zElR2Fmz
+Gw==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_09_chain_0.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB4zCCAUygAwIBAgIJANV8hSQH4qn9MA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjIxWhcNMTYwNjE4MTEzMjIxWjBOMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjEtMCsGA1UEAxQkRW50aXR5IENlcnQgbWF0
+Y2hfMDkgc2luZ2xlX3NpZDEgMCAwMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAMob
+G9nFLiw0NPthp6KuhEO7K+bevml+/D2tmFS7wCbzSseqNAI/C2cepLuqu61t6bUq
+Vvam5TMduog1j467mJ0CAwEAAaMfMB0wGwYMKoY6AAHt02sBAQEEAQH/BAgwBgIE
+EQAABjANBgkqhkiG9w0BAQUFAAOBgQArkmk9lehByOSezih9iNjndvhultP8s7ki
+scfGy+FmQ1ll/SKxxsAmQWye8zaKpeg8hIlNHMYbQoLoLUOfwhhK8LKeagq9lB1d
+tf6/M4sdp3BC52xRXgAy536cBpMEo4ewNnnj+SgXGxZtHHXRtGy+MM7jpbY5WQDz
++eKLb7ETkQ==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_09_single_sid1.0.0.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB4zCCAUygAwIBAgIJANV8hSQH4qn9MA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjIxWhcNMTYwNjE4MTEzMjIxWjBOMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjEtMCsGA1UEAxQkRW50aXR5IENlcnQgbWF0
+Y2hfMDkgc2luZ2xlX3NpZDEgMCAwMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAMob
+G9nFLiw0NPthp6KuhEO7K+bevml+/D2tmFS7wCbzSseqNAI/C2cepLuqu61t6bUq
+Vvam5TMduog1j467mJ0CAwEAAaMfMB0wGwYMKoY6AAHt02sBAQEEAQH/BAgwBgIE
+EQAABjANBgkqhkiG9w0BAQUFAAOBgQArkmk9lehByOSezih9iNjndvhultP8s7ki
+scfGy+FmQ1ll/SKxxsAmQWye8zaKpeg8hIlNHMYbQoLoLUOfwhhK8LKeagq9lB1d
+tf6/M4sdp3BC52xRXgAy536cBpMEo4ewNnnj+SgXGxZtHHXRtGy+MM7jpbY5WQDz
++eKLb7ETkQ==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_10_chain_0.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB4zCCAUygAwIBAgIJANV8hSQH4qn+MA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjIyWhcNMTYwNjE4MTEzMjIyWjBOMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjEtMCsGA1UEAxQkRW50aXR5IENlcnQgbWF0
+Y2hfMTAgc2luZ2xlX3ZpZDEgMCAwMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAOpX
+tLPD/WLNoTZLJvH5aAcu9HxDvxWl4R/Fc/gc6Or3iAO896PG5nI8NTOBxEJyCJvw
+1Edx6qZzbWi7xGU/5eMCAwEAAaMfMB0wGwYMKoY6AAHt02sBAQEFAQH/BAgwBgIE
+cAAAATANBgkqhkiG9w0BAQUFAAOBgQAUrn1fGP2Wm5+gAxA94I+MI7crXaNPHp+7
+S0HrfuVf4Y5t6EF1U4Vp09n2o7nndkSStH0iy7eMfL+DfjsGw8ND66n2ZOBcp3c9
+W/I8GNcLmjPjPcyzg8vFVqZ4oODfv/6Qeqtp0jJxwDJKb6fpejbCMnavo6DsVG6E
+7E6NYX5n2w==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_10_single_vid1.0.0.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB4zCCAUygAwIBAgIJANV8hSQH4qn+MA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjIyWhcNMTYwNjE4MTEzMjIyWjBOMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjEtMCsGA1UEAxQkRW50aXR5IENlcnQgbWF0
+Y2hfMTAgc2luZ2xlX3ZpZDEgMCAwMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAOpX
+tLPD/WLNoTZLJvH5aAcu9HxDvxWl4R/Fc/gc6Or3iAO896PG5nI8NTOBxEJyCJvw
+1Edx6qZzbWi7xGU/5eMCAwEAAaMfMB0wGwYMKoY6AAHt02sBAQEFAQH/BAgwBgIE
+cAAAATANBgkqhkiG9w0BAQUFAAOBgQAUrn1fGP2Wm5+gAxA94I+MI7crXaNPHp+7
+S0HrfuVf4Y5t6EF1U4Vp09n2o7nndkSStH0iy7eMfL+DfjsGw8ND66n2ZOBcp3c9
+W/I8GNcLmjPjPcyzg8vFVqZ4oODfv/6Qeqtp0jJxwDJKb6fpejbCMnavo6DsVG6E
+7E6NYX5n2w==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_11_chain_0.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,26 @@
+-----BEGIN CERTIFICATE-----
+MIIBtDCCAV6gAwIBAgIJALo3qc1CAOvlMA0GCSqGSIb3DQEBBQUAME4xCzAJBgNV
+BAYTAlVLMRAwDgYDVQQKEwdTeW1iaWFuMS0wKwYDVQQDFCRFbnRpdHkgQ2VydCBt
+YXRjaF8xMSBzaW5nbGVfc2lkMSAwIDAwHhcNMDYwNjIxMTEzMjIzWhcNMTYwNjE4
+MTEzMjIzWjBOMQswCQYDVQQGEwJVSzEQMA4GA1UEChMHU3ltYmlhbjEtMCsGA1UE
+AxQkRW50aXR5IENlcnQgbWF0Y2hfMTEgc2luZ2xlX3ZpZDEgMCAxMFwwDQYJKoZI
+hvcNAQEBBQADSwAwSAJBALUbArEyGePxa3+UY2m5dzxs3PZY8iq9oVMAuHkRF9ny
+cHiLwx+eVuvzLHzpm1qTCrztMeen2u+tjzCTrwLGgNECAwEAAaMfMB0wGwYMKoY6
+AAHt02sBAQEFAQH/BAgwBgIEcAAAATANBgkqhkiG9w0BAQUFAANBAG9CdFzX9Vxy
+UA3bkQXVBNiyQq9wDjAHHdu4CLKAsgI9mbG7kqJYLHNVKwS/2W0wD1owseR5mdnb
+eVBjQYJz5Gw=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICJjCCAY+gAwIBAgIJANV8hSQH4qn/MA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjIzWhcNMTYwNjE4MTEzMjIzWjBOMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjEtMCsGA1UEAxQkRW50aXR5IENlcnQgbWF0
+Y2hfMTEgc2luZ2xlX3NpZDEgMCAwMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALng
+1q7JJnZqpBGLi558+81qgZRkLyQPIKicp7ZHxMb8AIMUEcYvdDc1p8F5DBR2KwYT
+/wnQmbPA/pLjuRUWd/UCAwEAAaNiMGAwGwYMKoY6AAHt02sBAQEEAQH/BAgwBgIE
+EQAABjAdBgNVHQ4EFgQU6rd7zR1wi3sRUpivsTx5NkNYf80wEgYDVR0TAQH/BAgw
+BgEB/wIBBTAOBgNVHQ8BAf8EBAMCAgQwDQYJKoZIhvcNAQEFBQADgYEAKTh7NVoc
+6VGpDx75giiw/UQDPaiByoNw/3JE0Q66bEJvjrtMByWYiDkamdWsF4/JdPja3EG7
+1GlbKhuWrw6BGr7KHumlQYDZVwv0ac8fE5EFE3O6U6qmmgkz36RmacLX9Fw05dU6
+6kNKyTf9uRort2iS6sleYGY9JkCuBrXEKEo=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_11_single_sid1.0.0.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICJjCCAY+gAwIBAgIJANV8hSQH4qn/MA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjIzWhcNMTYwNjE4MTEzMjIzWjBOMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjEtMCsGA1UEAxQkRW50aXR5IENlcnQgbWF0
+Y2hfMTEgc2luZ2xlX3NpZDEgMCAwMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALng
+1q7JJnZqpBGLi558+81qgZRkLyQPIKicp7ZHxMb8AIMUEcYvdDc1p8F5DBR2KwYT
+/wnQmbPA/pLjuRUWd/UCAwEAAaNiMGAwGwYMKoY6AAHt02sBAQEEAQH/BAgwBgIE
+EQAABjAdBgNVHQ4EFgQU6rd7zR1wi3sRUpivsTx5NkNYf80wEgYDVR0TAQH/BAgw
+BgEB/wIBBTAOBgNVHQ8BAf8EBAMCAgQwDQYJKoZIhvcNAQEFBQADgYEAKTh7NVoc
+6VGpDx75giiw/UQDPaiByoNw/3JE0Q66bEJvjrtMByWYiDkamdWsF4/JdPja3EG7
+1GlbKhuWrw6BGr7KHumlQYDZVwv0ac8fE5EFE3O6U6qmmgkz36RmacLX9Fw05dU6
+6kNKyTf9uRort2iS6sleYGY9JkCuBrXEKEo=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_11_single_vid1.0.1.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,12 @@
+-----BEGIN CERTIFICATE-----
+MIIBtDCCAV6gAwIBAgIJALo3qc1CAOvlMA0GCSqGSIb3DQEBBQUAME4xCzAJBgNV
+BAYTAlVLMRAwDgYDVQQKEwdTeW1iaWFuMS0wKwYDVQQDFCRFbnRpdHkgQ2VydCBt
+YXRjaF8xMSBzaW5nbGVfc2lkMSAwIDAwHhcNMDYwNjIxMTEzMjIzWhcNMTYwNjE4
+MTEzMjIzWjBOMQswCQYDVQQGEwJVSzEQMA4GA1UEChMHU3ltYmlhbjEtMCsGA1UE
+AxQkRW50aXR5IENlcnQgbWF0Y2hfMTEgc2luZ2xlX3ZpZDEgMCAxMFwwDQYJKoZI
+hvcNAQEBBQADSwAwSAJBALUbArEyGePxa3+UY2m5dzxs3PZY8iq9oVMAuHkRF9ny
+cHiLwx+eVuvzLHzpm1qTCrztMeen2u+tjzCTrwLGgNECAwEAAaMfMB0wGwYMKoY6
+AAHt02sBAQEFAQH/BAgwBgIEcAAAATANBgkqhkiG9w0BAQUFAANBAG9CdFzX9Vxy
+UA3bkQXVBNiyQq9wDjAHHdu4CLKAsgI9mbG7kqJYLHNVKwS/2W0wD1owseR5mdnb
+eVBjQYJz5Gw=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_12_chain_0.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB3zCCAUigAwIBAgIJANV8hSQH4qoAMA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjI0WhcNMTYwNjE4MTEzMjI0WjBMMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjErMCkGA1UEAxQiRW50aXR5IENlcnQgbWF0
+Y2hfMTIgdXNlcl9jYXBzIDAgMDBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQDnmeyF
+lwG2orJxkutgS1SY1mjjxn4vzcxQpEcJjeJP4VEd89N/FMOkO5x5k9k6eDvWDL7S
+oujbBSJGYbj/KNYxAgMBAAGjHTAbMBkGDCqGOgAB7dNrAQEBBgEB/wQGAwQHAAOA
+MA0GCSqGSIb3DQEBBQUAA4GBACgwJBijeCzkEnNz022fCtUuRMarNJxDcQtTxQBz
+aMGpCDAO4GpVLrbXaiknw5L88gGbRaiWjOiESd2mOMhZref7ctTfsQTTO5VY/UTv
+713i+g060ooF3uA45WA17Dm6Z1jf9WDfsZFESWUrgTxiOqH55ofTXnjbP8/yHBk+
+OQYv
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_12_user_caps.0.0.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB3zCCAUigAwIBAgIJANV8hSQH4qoAMA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjI0WhcNMTYwNjE4MTEzMjI0WjBMMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjErMCkGA1UEAxQiRW50aXR5IENlcnQgbWF0
+Y2hfMTIgdXNlcl9jYXBzIDAgMDBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQDnmeyF
+lwG2orJxkutgS1SY1mjjxn4vzcxQpEcJjeJP4VEd89N/FMOkO5x5k9k6eDvWDL7S
+oujbBSJGYbj/KNYxAgMBAAGjHTAbMBkGDCqGOgAB7dNrAQEBBgEB/wQGAwQHAAOA
+MA0GCSqGSIb3DQEBBQUAA4GBACgwJBijeCzkEnNz022fCtUuRMarNJxDcQtTxQBz
+aMGpCDAO4GpVLrbXaiknw5L88gGbRaiWjOiESd2mOMhZref7ctTfsQTTO5VY/UTv
+713i+g060ooF3uA45WA17Dm6Z1jf9WDfsZFESWUrgTxiOqH55ofTXnjbP8/yHBk+
+OQYv
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_13_chain_0.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,37 @@
+-----BEGIN CERTIFICATE-----
+MIIBlTCCAT+gAwIBAgIJANfE4i8EoH0sMA0GCSqGSIb3DQEBBQUAME4xCzAJBgNV
+BAYTAlVLMRAwDgYDVQQKEwdTeW1iaWFuMS0wKwYDVQQDFCRFbnRpdHkgQ2VydCBt
+YXRjaF8xMyBzeXN0ZW1fY2FwcyAwIDEwHhcNMDYwNjIxMTEzMjI1WhcNMTYwNjE4
+MTEzMjI1WjBQMQswCQYDVQQGEwJVSzEQMA4GA1UEChMHU3ltYmlhbjEvMC0GA1UE
+AxQmRW50aXR5IENlcnQgbWF0Y2hfMTMgdW5jb25zdHJhaW5lZCAwIDIwXDANBgkq
+hkiG9w0BAQEFAANLADBIAkEAu3TF2vf8/ic1nTH1+lrW6KEwcggOxuIMX2JNRteU
+7W5f4SiKkdqM9U7b6JKeNPRuC8k5JekK9CqpO1VNRHmoyQIDAQABMA0GCSqGSIb3
+DQEBBQUAA0EAsSgMx81vZGuo1AgPwrk4VMiBOGqZcwPi6tC3F4UX1TVOUQxPoKs7
+qpTJgPYT0rMecfXlqS7ixq4tDwyJr3uzRg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIB9TCCAZ+gAwIBAgIJAOOp4xD7pqkLMA0GCSqGSIb3DQEBBQUAMFAxCzAJBgNV
+BAYTAlVLMRAwDgYDVQQKEwdTeW1iaWFuMS8wLQYDVQQDFCZFbnRpdHkgQ2VydCBt
+YXRjaF8xMyB1bmNvbnN0cmFpbmVkIDAgMDAeFw0wNjA2MjExMTMyMjVaFw0xNjA2
+MTgxMTMyMjVaME4xCzAJBgNVBAYTAlVLMRAwDgYDVQQKEwdTeW1iaWFuMS0wKwYD
+VQQDFCRFbnRpdHkgQ2VydCBtYXRjaF8xMyBzeXN0ZW1fY2FwcyAwIDEwXDANBgkq
+hkiG9w0BAQEFAANLADBIAkEAx2w9tyZStpNvHnJxtGVaT0jWRRYkhHDZbiFPeA4G
+rXspZ2iwy+JRw0gdS0aLmDCx8elKtzfw7N6DsNzWUrtygQIDAQABo14wXDAXBgwq
+hjoAAe3TawEBAQYBAf8EBAMCAgwwHQYDVR0OBBYEFPYdnDo1YDK7LD/8a1DjLI3H
+falcMBIGA1UdEwEB/wQIMAYBAf8CAQUwDgYDVR0PAQH/BAQDAgIEMA0GCSqGSIb3
+DQEBBQUAA0EAnsNcfi+Yc53Zai0NSRvEAfcqCfmey/s6x2S67V/QDGo4+C3iWgKy
+KpxwJLSx4A73WMNfzfU3UYbFvI86U9uMKA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICAjCCAWugAwIBAgIJANV8hSQH4qoBMA0GCSqGSIb3DQEBBQUAMDMxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRIwEAYDVQQDEwlSb290NS1SU0EwHhcN
+MDYwNjIxMTEzMjI0WhcNMTYwNjE4MTEzMjI0WjBQMQswCQYDVQQGEwJVSzEQMA4G
+A1UEChMHU3ltYmlhbjEvMC0GA1UEAxQmRW50aXR5IENlcnQgbWF0Y2hfMTMgdW5j
+b25zdHJhaW5lZCAwIDAwXDANBgkqhkiG9w0BAQEFAANLADBIAkEAzsDUcciCvn3N
+XqE/n5xDAy9yJSN32wnJHsuTzanxqjTEAhJvrt1Z0WkAygr8oICOyWfbGlbVVGU+
+cL0nuh5XQwIDAQABo0UwQzAdBgNVHQ4EFgQU+qv+2NDJDCUSWX0oyTTpManMsEMw
+EgYDVR0TAQH/BAgwBgEB/wIBBTAOBgNVHQ8BAf8EBAMCAgQwDQYJKoZIhvcNAQEF
+BQADgYEAhYGpSQeh2ES98s48Hr5obC1safmv7DzOW5GR9szjx2Dsh09NZytaHc4u
+P80skIyCY1QGm+brvGYsTsyobKgfnTNNwC0ucV6eJ6HRDo0eZWqPrjYq18fPrZYY
+AtzH5SSpBzCPnC66wgMS3VDalepbvqKmiLKoOn5lo2LebREu/vE=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_13_system_caps.0.1.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB9TCCAZ+gAwIBAgIJAOOp4xD7pqkLMA0GCSqGSIb3DQEBBQUAMFAxCzAJBgNV
+BAYTAlVLMRAwDgYDVQQKEwdTeW1iaWFuMS8wLQYDVQQDFCZFbnRpdHkgQ2VydCBt
+YXRjaF8xMyB1bmNvbnN0cmFpbmVkIDAgMDAeFw0wNjA2MjExMTMyMjVaFw0xNjA2
+MTgxMTMyMjVaME4xCzAJBgNVBAYTAlVLMRAwDgYDVQQKEwdTeW1iaWFuMS0wKwYD
+VQQDFCRFbnRpdHkgQ2VydCBtYXRjaF8xMyBzeXN0ZW1fY2FwcyAwIDEwXDANBgkq
+hkiG9w0BAQEFAANLADBIAkEAx2w9tyZStpNvHnJxtGVaT0jWRRYkhHDZbiFPeA4G
+rXspZ2iwy+JRw0gdS0aLmDCx8elKtzfw7N6DsNzWUrtygQIDAQABo14wXDAXBgwq
+hjoAAe3TawEBAQYBAf8EBAMCAgwwHQYDVR0OBBYEFPYdnDo1YDK7LD/8a1DjLI3H
+falcMBIGA1UdEwEB/wQIMAYBAf8CAQUwDgYDVR0PAQH/BAQDAgIEMA0GCSqGSIb3
+DQEBBQUAA0EAnsNcfi+Yc53Zai0NSRvEAfcqCfmey/s6x2S67V/QDGo4+C3iWgKy
+KpxwJLSx4A73WMNfzfU3UYbFvI86U9uMKA==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_13_unconstrained.0.0.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIICAjCCAWugAwIBAgIJANV8hSQH4qoBMA0GCSqGSIb3DQEBBQUAMDMxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRIwEAYDVQQDEwlSb290NS1SU0EwHhcN
+MDYwNjIxMTEzMjI0WhcNMTYwNjE4MTEzMjI0WjBQMQswCQYDVQQGEwJVSzEQMA4G
+A1UEChMHU3ltYmlhbjEvMC0GA1UEAxQmRW50aXR5IENlcnQgbWF0Y2hfMTMgdW5j
+b25zdHJhaW5lZCAwIDAwXDANBgkqhkiG9w0BAQEFAANLADBIAkEAzsDUcciCvn3N
+XqE/n5xDAy9yJSN32wnJHsuTzanxqjTEAhJvrt1Z0WkAygr8oICOyWfbGlbVVGU+
+cL0nuh5XQwIDAQABo0UwQzAdBgNVHQ4EFgQU+qv+2NDJDCUSWX0oyTTpManMsEMw
+EgYDVR0TAQH/BAgwBgEB/wIBBTAOBgNVHQ8BAf8EBAMCAgQwDQYJKoZIhvcNAQEF
+BQADgYEAhYGpSQeh2ES98s48Hr5obC1safmv7DzOW5GR9szjx2Dsh09NZytaHc4u
+P80skIyCY1QGm+brvGYsTsyobKgfnTNNwC0ucV6eJ6HRDo0eZWqPrjYq18fPrZYY
+AtzH5SSpBzCPnC66wgMS3VDalepbvqKmiLKoOn5lo2LebREu/vE=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/match_13_unconstrained.0.2.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBlTCCAT+gAwIBAgIJANfE4i8EoH0sMA0GCSqGSIb3DQEBBQUAME4xCzAJBgNV
+BAYTAlVLMRAwDgYDVQQKEwdTeW1iaWFuMS0wKwYDVQQDFCRFbnRpdHkgQ2VydCBt
+YXRjaF8xMyBzeXN0ZW1fY2FwcyAwIDEwHhcNMDYwNjIxMTEzMjI1WhcNMTYwNjE4
+MTEzMjI1WjBQMQswCQYDVQQGEwJVSzEQMA4GA1UEChMHU3ltYmlhbjEvMC0GA1UE
+AxQmRW50aXR5IENlcnQgbWF0Y2hfMTMgdW5jb25zdHJhaW5lZCAwIDIwXDANBgkq
+hkiG9w0BAQEFAANLADBIAkEAu3TF2vf8/ic1nTH1+lrW6KEwcggOxuIMX2JNRteU
+7W5f4SiKkdqM9U7b6JKeNPRuC8k5JekK9CqpO1VNRHmoyQIDAQABMA0GCSqGSIb3
+DQEBBQUAA0EAsSgMx81vZGuo1AgPwrk4VMiBOGqZcwPi6tC3F4UX1TVOUQxPoKs7
+qpTJgPYT0rMecfXlqS7ixq4tDwyJr3uzRg==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/mismatch_01_chain_0.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,12 @@
+-----BEGIN CERTIFICATE-----
+MIIB1jCCAT+gAwIBAgIJANV8hSQH4qoCMA0GCSqGSIb3DQEBBQUAMDMxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRIwEAYDVQQDEwlSb290NS1SU0EwHhcN
+MDYwNjIxMTEzMjI2WhcNMTYwNjE4MTEzMjI2WjBQMQswCQYDVQQGEwJVSzEQMA4G
+A1UEChMHU3ltYmlhbjEvMC0GA1UEAxQmRW50aXR5IENlcnQgbWlzbWF0Y2hfMDEg
+ZW1wdHlfZGV2cyAwIDAwXDANBgkqhkiG9w0BAQEFAANLADBIAkEAxz+u1Kz4EWRG
+nV1BH4dJISDz4chqAU/K/qjY9iIMFxNjIiQy5K3j+xS6JnNxrfkwH8i3oXH9k0hJ
+RSxFnnnPgQIDAQABoxkwFzAVBgwqhjoAAe3TawEBAQEBAf8EAjAAMA0GCSqGSIb3
+DQEBBQUAA4GBAKY5iQtNh0aVhCVhprBFAOJwfjOL1JA+GB+Qlu0WGeTc7zXmvtzl
+QFG8XWjiW871tYWPvPVLIDJm1yXNoh+dG6thtWpox/qHgk7bfPjAHRpMevjj906K
+7sWXldYDIPTxE1hqPZgDM+M6Wrl5tVpxcKBi8m2fyZen34lqaK/jaOKU
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/mismatch_01_empty_devs.0.0.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,12 @@
+-----BEGIN CERTIFICATE-----
+MIIB1jCCAT+gAwIBAgIJANV8hSQH4qoCMA0GCSqGSIb3DQEBBQUAMDMxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRIwEAYDVQQDEwlSb290NS1SU0EwHhcN
+MDYwNjIxMTEzMjI2WhcNMTYwNjE4MTEzMjI2WjBQMQswCQYDVQQGEwJVSzEQMA4G
+A1UEChMHU3ltYmlhbjEvMC0GA1UEAxQmRW50aXR5IENlcnQgbWlzbWF0Y2hfMDEg
+ZW1wdHlfZGV2cyAwIDAwXDANBgkqhkiG9w0BAQEFAANLADBIAkEAxz+u1Kz4EWRG
+nV1BH4dJISDz4chqAU/K/qjY9iIMFxNjIiQy5K3j+xS6JnNxrfkwH8i3oXH9k0hJ
+RSxFnnnPgQIDAQABoxkwFzAVBgwqhjoAAe3TawEBAQEBAf8EAjAAMA0GCSqGSIb3
+DQEBBQUAA4GBAKY5iQtNh0aVhCVhprBFAOJwfjOL1JA+GB+Qlu0WGeTc7zXmvtzl
+QFG8XWjiW871tYWPvPVLIDJm1yXNoh+dG6thtWpox/qHgk7bfPjAHRpMevjj906K
+7sWXldYDIPTxE1hqPZgDM+M6Wrl5tVpxcKBi8m2fyZen34lqaK/jaOKU
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/mismatch_02_chain_0.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,12 @@
+-----BEGIN CERTIFICATE-----
+MIIB1jCCAT+gAwIBAgIJANV8hSQH4qoDMA0GCSqGSIb3DQEBBQUAMDMxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRIwEAYDVQQDEwlSb290NS1SU0EwHhcN
+MDYwNjIxMTEzMjI2WhcNMTYwNjE4MTEzMjI2WjBQMQswCQYDVQQGEwJVSzEQMA4G
+A1UEChMHU3ltYmlhbjEvMC0GA1UEAxQmRW50aXR5IENlcnQgbWlzbWF0Y2hfMDIg
+ZW1wdHlfc2lkcyAwIDAwXDANBgkqhkiG9w0BAQEFAANLADBIAkEAsTXLRMQSq2z5
+BJD2ULTZO6wHT3qQTSTwdT06TER824cMDvV5AM5FrKRBc3GOZgSjGLn9dACal5wH
+Jp3DQgyopQIDAQABoxkwFzAVBgwqhjoAAe3TawEBAQQBAf8EAjAAMA0GCSqGSIb3
+DQEBBQUAA4GBAFAWhfow2/xVmxXiXKa3sM+d6jaBFPbez7yjpieYNLZw9YM/1HVS
+6mWpFjlMBu7x2052+gLiooyeC6FNFe9tIsRnZY6SJXrE0aagcSMD30i4HbMl36pO
+aUG/IYOfg80HJ+3dcPStr4juEp+FH018STmWmL1eAHoeuBbRodMJVpcp
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/mismatch_02_empty_sids.0.0.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,12 @@
+-----BEGIN CERTIFICATE-----
+MIIB1jCCAT+gAwIBAgIJANV8hSQH4qoDMA0GCSqGSIb3DQEBBQUAMDMxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRIwEAYDVQQDEwlSb290NS1SU0EwHhcN
+MDYwNjIxMTEzMjI2WhcNMTYwNjE4MTEzMjI2WjBQMQswCQYDVQQGEwJVSzEQMA4G
+A1UEChMHU3ltYmlhbjEvMC0GA1UEAxQmRW50aXR5IENlcnQgbWlzbWF0Y2hfMDIg
+ZW1wdHlfc2lkcyAwIDAwXDANBgkqhkiG9w0BAQEFAANLADBIAkEAsTXLRMQSq2z5
+BJD2ULTZO6wHT3qQTSTwdT06TER824cMDvV5AM5FrKRBc3GOZgSjGLn9dACal5wH
+Jp3DQgyopQIDAQABoxkwFzAVBgwqhjoAAe3TawEBAQQBAf8EAjAAMA0GCSqGSIb3
+DQEBBQUAA4GBAFAWhfow2/xVmxXiXKa3sM+d6jaBFPbez7yjpieYNLZw9YM/1HVS
+6mWpFjlMBu7x2052+gLiooyeC6FNFe9tIsRnZY6SJXrE0aagcSMD30i4HbMl36pO
+aUG/IYOfg80HJ+3dcPStr4juEp+FH018STmWmL1eAHoeuBbRodMJVpcp
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/mismatch_03_chain_0.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,12 @@
+-----BEGIN CERTIFICATE-----
+MIIB1jCCAT+gAwIBAgIJANV8hSQH4qoEMA0GCSqGSIb3DQEBBQUAMDMxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRIwEAYDVQQDEwlSb290NS1SU0EwHhcN
+MDYwNjIxMTEzMjI3WhcNMTYwNjE4MTEzMjI3WjBQMQswCQYDVQQGEwJVSzEQMA4G
+A1UEChMHU3ltYmlhbjEvMC0GA1UEAxQmRW50aXR5IENlcnQgbWlzbWF0Y2hfMDMg
+ZW1wdHlfc2lkcyAwIDAwXDANBgkqhkiG9w0BAQEFAANLADBIAkEAoS9TuzwZX2Fl
+OZ3I83mKuG7dq6Tsy5TgVFNcFN64JFFykpLU5Qlc22duYrGnB/QP5hYlhUIeA52h
+cjcFG5LgWQIDAQABoxkwFzAVBgwqhjoAAe3TawEBAQQBAf8EAjAAMA0GCSqGSIb3
+DQEBBQUAA4GBADOqB9qxjYfaD/B/894nxjPNj6348LaV2xO+2d0MAyDLQcXt/HF6
+pg4t7FER/yCFgjK5gbZ4trTLhLzG+AQppSapa5f234iFay5Ta0qUcfe9Mq6xr9tG
+gGlPPFnuqUH7MoUm28zJARaT3ATJP9KlVpghCsb/pLcWaz/DXbcy7ByO
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/mismatch_03_empty_sids.0.0.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,12 @@
+-----BEGIN CERTIFICATE-----
+MIIB1jCCAT+gAwIBAgIJANV8hSQH4qoEMA0GCSqGSIb3DQEBBQUAMDMxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRIwEAYDVQQDEwlSb290NS1SU0EwHhcN
+MDYwNjIxMTEzMjI3WhcNMTYwNjE4MTEzMjI3WjBQMQswCQYDVQQGEwJVSzEQMA4G
+A1UEChMHU3ltYmlhbjEvMC0GA1UEAxQmRW50aXR5IENlcnQgbWlzbWF0Y2hfMDMg
+ZW1wdHlfc2lkcyAwIDAwXDANBgkqhkiG9w0BAQEFAANLADBIAkEAoS9TuzwZX2Fl
+OZ3I83mKuG7dq6Tsy5TgVFNcFN64JFFykpLU5Qlc22duYrGnB/QP5hYlhUIeA52h
+cjcFG5LgWQIDAQABoxkwFzAVBgwqhjoAAe3TawEBAQQBAf8EAjAAMA0GCSqGSIb3
+DQEBBQUAA4GBADOqB9qxjYfaD/B/894nxjPNj6348LaV2xO+2d0MAyDLQcXt/HF6
+pg4t7FER/yCFgjK5gbZ4trTLhLzG+AQppSapa5f234iFay5Ta0qUcfe9Mq6xr9tG
+gGlPPFnuqUH7MoUm28zJARaT3ATJP9KlVpghCsb/pLcWaz/DXbcy7ByO
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/mismatch_04_chain_0.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,12 @@
+-----BEGIN CERTIFICATE-----
+MIIB1jCCAT+gAwIBAgIJANV8hSQH4qoFMA0GCSqGSIb3DQEBBQUAMDMxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRIwEAYDVQQDEwlSb290NS1SU0EwHhcN
+MDYwNjIxMTEzMjI3WhcNMTYwNjE4MTEzMjI3WjBQMQswCQYDVQQGEwJVSzEQMA4G
+A1UEChMHU3ltYmlhbjEvMC0GA1UEAxQmRW50aXR5IENlcnQgbWlzbWF0Y2hfMDQg
+ZW1wdHlfY2FwcyAwIDAwXDANBgkqhkiG9w0BAQEFAANLADBIAkEAvS4tyuyqzSec
+NU6ph8wFUhxJQZmXu1938jyMpVeo/uEmiMtAnyFvSP+Qba6J7NHSPrCgEJ8B2ash
+AYwSSn4NywIDAQABoxkwFzAVBgwqhjoAAe3TawEBAQYBAf8EAgMAMA0GCSqGSIb3
+DQEBBQUAA4GBADYwmSxNHOvUjs2RutIqxdjfpQfscP2+nSdMPsmg6M1Nvy15iI91
+LVfcN3C2Z2qQ5GwWwm58j/rRffyS4ArsSiR0koY/SsXH+pfsO0x+lvtggB2+frLA
+lO94dwxstAtRgOZBW+PtlVMiZhVs9qRLxoaq7idyVSAmRqhsnM3+Oepq
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/mismatch_04_empty_caps.0.0.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,12 @@
+-----BEGIN CERTIFICATE-----
+MIIB1jCCAT+gAwIBAgIJANV8hSQH4qoFMA0GCSqGSIb3DQEBBQUAMDMxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRIwEAYDVQQDEwlSb290NS1SU0EwHhcN
+MDYwNjIxMTEzMjI3WhcNMTYwNjE4MTEzMjI3WjBQMQswCQYDVQQGEwJVSzEQMA4G
+A1UEChMHU3ltYmlhbjEvMC0GA1UEAxQmRW50aXR5IENlcnQgbWlzbWF0Y2hfMDQg
+ZW1wdHlfY2FwcyAwIDAwXDANBgkqhkiG9w0BAQEFAANLADBIAkEAvS4tyuyqzSec
+NU6ph8wFUhxJQZmXu1938jyMpVeo/uEmiMtAnyFvSP+Qba6J7NHSPrCgEJ8B2ash
+AYwSSn4NywIDAQABoxkwFzAVBgwqhjoAAe3TawEBAQYBAf8EAgMAMA0GCSqGSIb3
+DQEBBQUAA4GBADYwmSxNHOvUjs2RutIqxdjfpQfscP2+nSdMPsmg6M1Nvy15iI91
+LVfcN3C2Z2qQ5GwWwm58j/rRffyS4ArsSiR0koY/SsXH+pfsO0x+lvtggB2+frLA
+lO94dwxstAtRgOZBW+PtlVMiZhVs9qRLxoaq7idyVSAmRqhsnM3+Oepq
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/mismatch_05_bad_single_dev.0.0.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB8TCCAVqgAwIBAgIJANV8hSQH4qoGMA0GCSqGSIb3DQEBBQUAMDMxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRIwEAYDVQQDEwlSb290NS1SU0EwHhcN
+MDYwNjIxMTEzMjI4WhcNMTYwNjE4MTEzMjI4WjBUMQswCQYDVQQGEwJVSzEQMA4G
+A1UEChMHU3ltYmlhbjEzMDEGA1UEAxQqRW50aXR5IENlcnQgbWlzbWF0Y2hfMDUg
+YmFkX3NpbmdsZV9kZXYgMCAwMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKX3k0Ty
+5Bg39SLzIXXBb8Pfc17FNpchl9R4d7001kM2lOiEUSux7BP1lr247xhm6VeQDwKH
+pZNYTBBclTl3j2UCAwEAAaMwMC4wLAYMKoY6AAHt02sBAQEBAQH/BBkwFwwVVEhJ
+UyBTSE9VTEQgTk9UIE1BVENIMA0GCSqGSIb3DQEBBQUAA4GBAJ3zSMPs9Lsnev3/
+U6ud+zfTQ0OsAbfogM36P19IMm9CFYbN1+l4rruMQv9hWB0qGuAe8PPGQUSxRkn5
+uh2IgnVAzPO1dPWb0ocsQ5x30SggX/rL1Rgw1t84udGSn66/RNTUpXc/T9813qUh
+os5lCjKpeoErnRJW7tZ95QULE78Z
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/mismatch_05_chain_0.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB8TCCAVqgAwIBAgIJANV8hSQH4qoGMA0GCSqGSIb3DQEBBQUAMDMxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRIwEAYDVQQDEwlSb290NS1SU0EwHhcN
+MDYwNjIxMTEzMjI4WhcNMTYwNjE4MTEzMjI4WjBUMQswCQYDVQQGEwJVSzEQMA4G
+A1UEChMHU3ltYmlhbjEzMDEGA1UEAxQqRW50aXR5IENlcnQgbWlzbWF0Y2hfMDUg
+YmFkX3NpbmdsZV9kZXYgMCAwMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKX3k0Ty
+5Bg39SLzIXXBb8Pfc17FNpchl9R4d7001kM2lOiEUSux7BP1lr247xhm6VeQDwKH
+pZNYTBBclTl3j2UCAwEAAaMwMC4wLAYMKoY6AAHt02sBAQEBAQH/BBkwFwwVVEhJ
+UyBTSE9VTEQgTk9UIE1BVENIMA0GCSqGSIb3DQEBBQUAA4GBAJ3zSMPs9Lsnev3/
+U6ud+zfTQ0OsAbfogM36P19IMm9CFYbN1+l4rruMQv9hWB0qGuAe8PPGQUSxRkn5
+uh2IgnVAzPO1dPWb0ocsQ5x30SggX/rL1Rgw1t84udGSn66/RNTUpXc/T9813qUh
+os5lCjKpeoErnRJW7tZ95QULE78Z
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/mismatch_06_bad_single_sid.0.0.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB3jCCAUegAwIBAgIJANV8hSQH4qoHMA0GCSqGSIb3DQEBBQUAMDMxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRIwEAYDVQQDEwlSb290NS1SU0EwHhcN
+MDYwNjIxMTEzMjI5WhcNMTYwNjE4MTEzMjI5WjBUMQswCQYDVQQGEwJVSzEQMA4G
+A1UEChMHU3ltYmlhbjEzMDEGA1UEAxQqRW50aXR5IENlcnQgbWlzbWF0Y2hfMDYg
+YmFkX3NpbmdsZV9zaWQgMCAwMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAK1W7Tts
+qCljPy8H1pJtpyY/Qadq+7jInJQCPIRCkR8nC+4lHQ/yaXG/wTAZUpy7IPloyJrN
+5+JzemZT8tyA5uMCAwEAAaMdMBswGQYMKoY6AAHt02sBAQEEAQH/BAYwBAICwN4w
+DQYJKoZIhvcNAQEFBQADgYEAOgEHyPZOTM87uDCs8M8qKO5apQqYmHwT0ErvkdFf
+iIPlAZJvbVqPyE5WRNGRdn0fHBs2WK0WhPJ+pjF30JJW99sC82R5Yqp8zW+zXWuv
+Zv31sd55cmHRs5XcwAaKgSZxlQp2zq7leUYK9PYkUKUQOF5BA1vP7AlbgnY6OM9e
+//Y=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/mismatch_06_chain_0.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB3jCCAUegAwIBAgIJANV8hSQH4qoHMA0GCSqGSIb3DQEBBQUAMDMxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRIwEAYDVQQDEwlSb290NS1SU0EwHhcN
+MDYwNjIxMTEzMjI5WhcNMTYwNjE4MTEzMjI5WjBUMQswCQYDVQQGEwJVSzEQMA4G
+A1UEChMHU3ltYmlhbjEzMDEGA1UEAxQqRW50aXR5IENlcnQgbWlzbWF0Y2hfMDYg
+YmFkX3NpbmdsZV9zaWQgMCAwMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAK1W7Tts
+qCljPy8H1pJtpyY/Qadq+7jInJQCPIRCkR8nC+4lHQ/yaXG/wTAZUpy7IPloyJrN
+5+JzemZT8tyA5uMCAwEAAaMdMBswGQYMKoY6AAHt02sBAQEEAQH/BAYwBAICwN4w
+DQYJKoZIhvcNAQEFBQADgYEAOgEHyPZOTM87uDCs8M8qKO5apQqYmHwT0ErvkdFf
+iIPlAZJvbVqPyE5WRNGRdn0fHBs2WK0WhPJ+pjF30JJW99sC82R5Yqp8zW+zXWuv
+Zv31sd55cmHRs5XcwAaKgSZxlQp2zq7leUYK9PYkUKUQOF5BA1vP7AlbgnY6OM9e
+//Y=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/mismatch_07_bad_single_vid.0.0.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB4DCCAUmgAwIBAgIJANV8hSQH4qoIMA0GCSqGSIb3DQEBBQUAMDMxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRIwEAYDVQQDEwlSb290NS1SU0EwHhcN
+MDYwNjIxMTEzMjI5WhcNMTYwNjE4MTEzMjI5WjBUMQswCQYDVQQGEwJVSzEQMA4G
+A1UEChMHU3ltYmlhbjEzMDEGA1UEAxQqRW50aXR5IENlcnQgbWlzbWF0Y2hfMDcg
+YmFkX3NpbmdsZV92aWQgMCAwMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANepZM8Y
+LIKMlE24OCE4/Hr8DCKPPCacBpcfWdB6Q1mZ+klq8pzl7zed2hbN32PVJ3Fjd5jK
+A6IgYkYG7iHmsfMCAwEAAaMfMB0wGwYMKoY6AAHt02sBAQEFAQH/BAgwBgIEwAHA
+3jANBgkqhkiG9w0BAQUFAAOBgQCY9wthVIvCxDbP2uKpe9UYwOxVQpUlKP3fKJdV
+60NK2HYu+yPSt93N0B3mz6MLOMu/dXqYsJPaqFNYHj09mas0Am42QUOMm+rY7YBE
+4jNNGtpJ0AMPebPSiNtHszXgMTJLtlvSqIigtrgLdKrES/ppvk9fvvpAJ7cNIRU9
+2Un7AQ==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/mismatch_07_chain_0.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB4DCCAUmgAwIBAgIJANV8hSQH4qoIMA0GCSqGSIb3DQEBBQUAMDMxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRIwEAYDVQQDEwlSb290NS1SU0EwHhcN
+MDYwNjIxMTEzMjI5WhcNMTYwNjE4MTEzMjI5WjBUMQswCQYDVQQGEwJVSzEQMA4G
+A1UEChMHU3ltYmlhbjEzMDEGA1UEAxQqRW50aXR5IENlcnQgbWlzbWF0Y2hfMDcg
+YmFkX3NpbmdsZV92aWQgMCAwMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANepZM8Y
+LIKMlE24OCE4/Hr8DCKPPCacBpcfWdB6Q1mZ+klq8pzl7zed2hbN32PVJ3Fjd5jK
+A6IgYkYG7iHmsfMCAwEAAaMfMB0wGwYMKoY6AAHt02sBAQEFAQH/BAgwBgIEwAHA
+3jANBgkqhkiG9w0BAQUFAAOBgQCY9wthVIvCxDbP2uKpe9UYwOxVQpUlKP3fKJdV
+60NK2HYu+yPSt93N0B3mz6MLOMu/dXqYsJPaqFNYHj09mas0Am42QUOMm+rY7YBE
+4jNNGtpJ0AMPebPSiNtHszXgMTJLtlvSqIigtrgLdKrES/ppvk9fvvpAJ7cNIRU9
+2Un7AQ==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/mismatch_08_all_caps.0.0.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICGzCCAYSgAwIBAgIJANV8hSQH4qoJMA0GCSqGSIb3DQEBBQUAMDMxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRIwEAYDVQQDEwlSb290NS1SU0EwHhcN
+MDYwNjIxMTEzMjMwWhcNMTYwNjE4MTEzMjMwWjBOMQswCQYDVQQGEwJVSzEQMA4G
+A1UEChMHU3ltYmlhbjEtMCsGA1UEAxQkRW50aXR5IENlcnQgbWlzbWF0Y2hfMDgg
+YWxsX2NhcHMgMCAwMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAOofeVWNb7btsemQ
+yMi2get/N+UxwccavDP/4J0vhF3Hmoj8/2ouLW7OrV8+l+vI0gaeGa+r1sHhjDmN
+zOwJgzECAwEAAaNgMF4wGQYMKoY6AAHt02sBAQEGAQH/BAYDBAcMA4AwHQYDVR0O
+BBYEFFdO67zwGpOX59yH93XjEAXcnf5wMBIGA1UdEwEB/wQIMAYBAf8CAQUwDgYD
+VR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBBQUAA4GBAGPThRRcz2QRlE697o/DVNvi
+nYB9+0iPydAy/35JR3u/T8nj9a+UEUxdo34GPBiD9oz5cNUBOUzky1tX64pCB0c/
+2gEwJNXJDQ6+ZhaMprvaCTD0WTRlUvIZC6GXW7RyrwFYNtUeHfuWQnaikWxTD+Xy
+J6mwZhpC08sEeoMogI6o
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/mismatch_08_chain_0.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,26 @@
+-----BEGIN CERTIFICATE-----
+MIIBszCCAV2gAwIBAgIJALljq8GXwbxsMA0GCSqGSIb3DQEBBQUAME4xCzAJBgNV
+BAYTAlVLMRAwDgYDVQQKEwdTeW1iaWFuMS0wKwYDVQQDFCRFbnRpdHkgQ2VydCBt
+aXNtYXRjaF8wOCBhbGxfY2FwcyAwIDAwHhcNMDYwNjIxMTEzMjMwWhcNMTYwNjE4
+MTEzMjMwWjBRMQswCQYDVQQGEwJVSzEQMA4GA1UEChMHU3ltYmlhbjEwMC4GA1UE
+AxQnRW50aXR5IENlcnQgbWlzbWF0Y2hfMDggc3lzdGVtX2NhcHMgMCAxMFwwDQYJ
+KoZIhvcNAQEBBQADSwAwSAJBAO0NCbbrEm0bHRLzx9bPlwRqn+gMHdCrcZyeBGNU
+Eqn0vAXxcXZUh3SxoHXP3ETs1qcMOzrQH3U/Ta5LBNaDgWUCAwEAAaMbMBkwFwYM
+KoY6AAHt02sBAQEGAQH/BAQDAgIMMA0GCSqGSIb3DQEBBQUAA0EAZk4vDBH3gEqy
+YizhVrfp864Rv/AwBg6/CV5iAXm7zvnIy+ERisDGuEjgxxD0N1sKeKJyEzyFUpk5
+hemw0Cc7NA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICGzCCAYSgAwIBAgIJANV8hSQH4qoJMA0GCSqGSIb3DQEBBQUAMDMxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRIwEAYDVQQDEwlSb290NS1SU0EwHhcN
+MDYwNjIxMTEzMjMwWhcNMTYwNjE4MTEzMjMwWjBOMQswCQYDVQQGEwJVSzEQMA4G
+A1UEChMHU3ltYmlhbjEtMCsGA1UEAxQkRW50aXR5IENlcnQgbWlzbWF0Y2hfMDgg
+YWxsX2NhcHMgMCAwMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAOofeVWNb7btsemQ
+yMi2get/N+UxwccavDP/4J0vhF3Hmoj8/2ouLW7OrV8+l+vI0gaeGa+r1sHhjDmN
+zOwJgzECAwEAAaNgMF4wGQYMKoY6AAHt02sBAQEGAQH/BAYDBAcMA4AwHQYDVR0O
+BBYEFFdO67zwGpOX59yH93XjEAXcnf5wMBIGA1UdEwEB/wQIMAYBAf8CAQUwDgYD
+VR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBBQUAA4GBAGPThRRcz2QRlE697o/DVNvi
+nYB9+0iPydAy/35JR3u/T8nj9a+UEUxdo34GPBiD9oz5cNUBOUzky1tX64pCB0c/
+2gEwJNXJDQ6+ZhaMprvaCTD0WTRlUvIZC6GXW7RyrwFYNtUeHfuWQnaikWxTD+Xy
+J6mwZhpC08sEeoMogI6o
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/mismatch_08_system_caps.0.1.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,12 @@
+-----BEGIN CERTIFICATE-----
+MIIBszCCAV2gAwIBAgIJALljq8GXwbxsMA0GCSqGSIb3DQEBBQUAME4xCzAJBgNV
+BAYTAlVLMRAwDgYDVQQKEwdTeW1iaWFuMS0wKwYDVQQDFCRFbnRpdHkgQ2VydCBt
+aXNtYXRjaF8wOCBhbGxfY2FwcyAwIDAwHhcNMDYwNjIxMTEzMjMwWhcNMTYwNjE4
+MTEzMjMwWjBRMQswCQYDVQQGEwJVSzEQMA4GA1UEChMHU3ltYmlhbjEwMC4GA1UE
+AxQnRW50aXR5IENlcnQgbWlzbWF0Y2hfMDggc3lzdGVtX2NhcHMgMCAxMFwwDQYJ
+KoZIhvcNAQEBBQADSwAwSAJBAO0NCbbrEm0bHRLzx9bPlwRqn+gMHdCrcZyeBGNU
+Eqn0vAXxcXZUh3SxoHXP3ETs1qcMOzrQH3U/Ta5LBNaDgWUCAwEAAaMbMBkwFwYM
+KoY6AAHt02sBAQEGAQH/BAQDAgIMMA0GCSqGSIb3DQEBBQUAA0EAZk4vDBH3gEqy
+YizhVrfp864Rv/AwBg6/CV5iAXm7zvnIy+ERisDGuEjgxxD0N1sKeKJyEzyFUpk5
+hemw0Cc7NA==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/mismatch_09_chain_0.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB4jCCAUugAwIBAgIJANV8hSQH4qoKMA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjMxWhcNMTYwNjE4MTEzMjMxWjBPMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjEuMCwGA1UEAxQlRW50aXR5IENlcnQgbWlz
+bWF0Y2hfMDkgdXNlcl9jYXBzIDAgMDBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQCs
+voTPyTI66oA6pdj2hAmrZX6vngxH78CKRiYKrJhy+8BdZ9eXnOz7W1Tp3GQrEb0X
+RATMIJl4/0um0uHtOJePAgMBAAGjHTAbMBkGDCqGOgAB7dNrAQEBBgEB/wQGAwQH
+AAOAMA0GCSqGSIb3DQEBBQUAA4GBAJgy7RLCNG8O3VUVSWpooDUqtO+iRmebFdG/
+KW+Xr5p0JZN22p2jQ0aCPCP2TlmkzfcQulvdQY8KE8Vfd56PIaaiDM+wfP8kz0YS
+JfoQljXzivAttmXDvpAI1z9VhGZRiyzOls/HZ8Bp6aVq5ggscFDkHSZ0IoJf2lOX
+yS+1fZgt
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/mismatch_09_user_caps.0.0.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB4jCCAUugAwIBAgIJANV8hSQH4qoKMA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjMxWhcNMTYwNjE4MTEzMjMxWjBPMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjEuMCwGA1UEAxQlRW50aXR5IENlcnQgbWlz
+bWF0Y2hfMDkgdXNlcl9jYXBzIDAgMDBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQCs
+voTPyTI66oA6pdj2hAmrZX6vngxH78CKRiYKrJhy+8BdZ9eXnOz7W1Tp3GQrEb0X
+RATMIJl4/0um0uHtOJePAgMBAAGjHTAbMBkGDCqGOgAB7dNrAQEBBgEB/wQGAwQH
+AAOAMA0GCSqGSIb3DQEBBQUAA4GBAJgy7RLCNG8O3VUVSWpooDUqtO+iRmebFdG/
+KW+Xr5p0JZN22p2jQ0aCPCP2TlmkzfcQulvdQY8KE8Vfd56PIaaiDM+wfP8kz0YS
+JfoQljXzivAttmXDvpAI1z9VhGZRiyzOls/HZ8Bp6aVq5ggscFDkHSZ0IoJf2lOX
+yS+1fZgt
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/mismatch_10_chain_0.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,38 @@
+-----BEGIN CERTIFICATE-----
+MIIBmTCCAUOgAwIBAgIJAOef9imgr4IrMA0GCSqGSIb3DQEBBQUAME8xCzAJBgNV
+BAYTAlVLMRAwDgYDVQQKEwdTeW1iaWFuMS4wLAYDVQQDFCVFbnRpdHkgQ2VydCBt
+aXNtYXRjaF8xMCB1c2VyX2NhcHMgMCAxMB4XDTA2MDYyMTExMzIzMloXDTE2MDYx
+ODExMzIzMlowUzELMAkGA1UEBhMCVUsxEDAOBgNVBAoTB1N5bWJpYW4xMjAwBgNV
+BAMUKUVudGl0eSBDZXJ0IG1pc21hdGNoXzEwIHVuY29uc3RyYWluZWQgMCAyMFww
+DQYJKoZIhvcNAQEBBQADSwAwSAJBALWL+caaw0RbaZD7k+KWoyFTs7oZ8+fjYytR
+XVU3lKlxuio4aEPE7E4RZ9IhD3VI8JumclKt2DVfQgHsfvn+950CAwEAATANBgkq
+hkiG9w0BAQUFAANBAA05uQJk6Pc/GtMaRRCC9PmGYkHcqsCPGIJaGCuqZQ7S20At
+s+z2rqNgoQgF8sVMIJUEj2OysXboqO1U4zdxahg=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIB+zCCAaWgAwIBAgIJANuY0w9+ls4bMA0GCSqGSIb3DQEBBQUAMFMxCzAJBgNV
+BAYTAlVLMRAwDgYDVQQKEwdTeW1iaWFuMTIwMAYDVQQDFClFbnRpdHkgQ2VydCBt
+aXNtYXRjaF8xMCB1bmNvbnN0cmFpbmVkIDAgMDAeFw0wNjA2MjExMTMyMzJaFw0x
+NjA2MTgxMTMyMzJaME8xCzAJBgNVBAYTAlVLMRAwDgYDVQQKEwdTeW1iaWFuMS4w
+LAYDVQQDFCVFbnRpdHkgQ2VydCBtaXNtYXRjaF8xMCB1c2VyX2NhcHMgMCAxMFww
+DQYJKoZIhvcNAQEBBQADSwAwSAJBANjmt2PHYaDOkGVqnjnNqsBNd4P0gkj8hcvD
+oApuNqMnJu3YEwAdOJxY0/Pbo+BF6vnSTIGKkASHvEKsIXPrAYsCAwEAAaNgMF4w
+GQYMKoY6AAHt02sBAQEGAQH/BAYDBAcAA4AwHQYDVR0OBBYEFEzqr580o8nzZCLm
++4A/Uc6M0c6CMBIGA1UdEwEB/wQIMAYBAf8CAQUwDgYDVR0PAQH/BAQDAgIEMA0G
+CSqGSIb3DQEBBQUAA0EArkMawU9vsjW4isTUUu13WivHOBzNB9m5ofBxFit8/IPi
+cr0dMxoLByeHsxJtrFDquT2ReVMxqzfsMMSmfEicxw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICDjCCAXegAwIBAgIJANV8hSQH4qoLMA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjMxWhcNMTYwNjE4MTEzMjMxWjBTMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjEyMDAGA1UEAxQpRW50aXR5IENlcnQgbWlz
+bWF0Y2hfMTAgdW5jb25zdHJhaW5lZCAwIDAwXDANBgkqhkiG9w0BAQEFAANLADBI
+AkEAutmrA0F+N8GeFooqJ7qtZC/dg9udirPy+nw02IbgO2NwE3h/jbSdPQSo3x6V
+lDM6V8T5/UUILTI4NOe/Kzz3aQIDAQABo0UwQzAdBgNVHQ4EFgQUvC7j5fFNOiZ0
+zmWOGLU82a5dg3EwEgYDVR0TAQH/BAgwBgEB/wIBBTAOBgNVHQ8BAf8EBAMCAgQw
+DQYJKoZIhvcNAQEFBQADgYEAP/vhsja3YjxcCASMHoiRwX8Ice4tIo8Gt5SZ64a2
+XE6h9vr97IjWnuNb5f7cX35nRrM6lrlo6MTM6KKxRpw7hdcC7HQZFQfPoBfNBFL2
+akcX9d8ajXLoZAoxbBNc+50bloinScrL0lSSrkiHQmcDkYuBDn0QrelbaNlxjLHq
+vTc=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/mismatch_10_unconstrained.0.0.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICDjCCAXegAwIBAgIJANV8hSQH4qoLMA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDYwNjIxMTEzMjMxWhcNMTYwNjE4MTEzMjMxWjBTMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjEyMDAGA1UEAxQpRW50aXR5IENlcnQgbWlz
+bWF0Y2hfMTAgdW5jb25zdHJhaW5lZCAwIDAwXDANBgkqhkiG9w0BAQEFAANLADBI
+AkEAutmrA0F+N8GeFooqJ7qtZC/dg9udirPy+nw02IbgO2NwE3h/jbSdPQSo3x6V
+lDM6V8T5/UUILTI4NOe/Kzz3aQIDAQABo0UwQzAdBgNVHQ4EFgQUvC7j5fFNOiZ0
+zmWOGLU82a5dg3EwEgYDVR0TAQH/BAgwBgEB/wIBBTAOBgNVHQ8BAf8EBAMCAgQw
+DQYJKoZIhvcNAQEFBQADgYEAP/vhsja3YjxcCASMHoiRwX8Ice4tIo8Gt5SZ64a2
+XE6h9vr97IjWnuNb5f7cX35nRrM6lrlo6MTM6KKxRpw7hdcC7HQZFQfPoBfNBFL2
+akcX9d8ajXLoZAoxbBNc+50bloinScrL0lSSrkiHQmcDkYuBDn0QrelbaNlxjLHq
+vTc=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/mismatch_10_unconstrained.0.2.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBmTCCAUOgAwIBAgIJAOef9imgr4IrMA0GCSqGSIb3DQEBBQUAME8xCzAJBgNV
+BAYTAlVLMRAwDgYDVQQKEwdTeW1iaWFuMS4wLAYDVQQDFCVFbnRpdHkgQ2VydCBt
+aXNtYXRjaF8xMCB1c2VyX2NhcHMgMCAxMB4XDTA2MDYyMTExMzIzMloXDTE2MDYx
+ODExMzIzMlowUzELMAkGA1UEBhMCVUsxEDAOBgNVBAoTB1N5bWJpYW4xMjAwBgNV
+BAMUKUVudGl0eSBDZXJ0IG1pc21hdGNoXzEwIHVuY29uc3RyYWluZWQgMCAyMFww
+DQYJKoZIhvcNAQEBBQADSwAwSAJBALWL+caaw0RbaZD7k+KWoyFTs7oZ8+fjYytR
+XVU3lKlxuio4aEPE7E4RZ9IhD3VI8JumclKt2DVfQgHsfvn+950CAwEAATANBgkq
+hkiG9w0BAQUFAANBAA05uQJk6Pc/GtMaRRCC9PmGYkHcqsCPGIJaGCuqZQ7S20At
+s+z2rqNgoQgF8sVMIJUEj2OysXboqO1U4zdxahg=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/mismatch_10_user_caps.0.1.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB+zCCAaWgAwIBAgIJANuY0w9+ls4bMA0GCSqGSIb3DQEBBQUAMFMxCzAJBgNV
+BAYTAlVLMRAwDgYDVQQKEwdTeW1iaWFuMTIwMAYDVQQDFClFbnRpdHkgQ2VydCBt
+aXNtYXRjaF8xMCB1bmNvbnN0cmFpbmVkIDAgMDAeFw0wNjA2MjExMTMyMzJaFw0x
+NjA2MTgxMTMyMzJaME8xCzAJBgNVBAYTAlVLMRAwDgYDVQQKEwdTeW1iaWFuMS4w
+LAYDVQQDFCVFbnRpdHkgQ2VydCBtaXNtYXRjaF8xMCB1c2VyX2NhcHMgMCAxMFww
+DQYJKoZIhvcNAQEBBQADSwAwSAJBANjmt2PHYaDOkGVqnjnNqsBNd4P0gkj8hcvD
+oApuNqMnJu3YEwAdOJxY0/Pbo+BF6vnSTIGKkASHvEKsIXPrAYsCAwEAAaNgMF4w
+GQYMKoY6AAHt02sBAQEGAQH/BAYDBAcAA4AwHQYDVR0OBBYEFEzqr580o8nzZCLm
++4A/Uc6M0c6CMBIGA1UdEwEB/wQIMAYBAf8CAQUwDgYDVR0PAQH/BAQDAgIEMA0G
+CSqGSIb3DQEBBQUAA0EArkMawU9vsjW4isTUUu13WivHOBzNB9m5ofBxFit8/IPi
+cr0dMxoLByeHsxJtrFDquT2ReVMxqzfsMMSmfEicxw==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/ocsp_02_chain_0.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,12 @@
+-----BEGIN CERTIFICATE-----
+MIIB2TCCAUKgAwIBAgIJANV8hSQH4qoMMA0GCSqGSIb3DQEBBQUAMDMxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRIwEAYDVQQDEwlSb290NS1SU0EwHhcN
+MDYwNjIxMTEzMjMzWhcNMTYwNjE4MTEzMjMzWjBNMQswCQYDVQQGEwJVSzEQMA4G
+A1UEChMHU3ltYmlhbjEsMCoGA1UEAxQjRW50aXR5IENlcnQgb2NzcF8wMiBzaW5n
+bGVfc2lkMSAwIDAwXDANBgkqhkiG9w0BAQEFAANLADBIAkEAsbynYDY23FC3gyVB
+5joRqX2qypvhizJMp8VXnJi/BpwLNJN/af9dYkv6642mtN2Ax650MMA3QlOIwGck
+PWXtDwIDAQABox8wHTAbBgwqhjoAAe3TawEBAQQBAf8ECDAGAgQRAAAGMA0GCSqG
+SIb3DQEBBQUAA4GBAGt4x/Z0Cb5pm9vpzrhLrul1VAKhw+1Prq5Jb0CcBb/Z035R
+CVklRcLMDCyhbK7lURctIxKD6ZTHkHnLAzG/QL0tqpCbgl4bxWe4j/vfhbjSPEvE
+P2GaOcyG0nnL6ggCt/qJ+yDdVY3MkIXJy6C6Q7zrkm9OL6J5zyhKY+ii956+
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/ocsp_02_single_sid1.0.0.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,12 @@
+-----BEGIN CERTIFICATE-----
+MIIB2TCCAUKgAwIBAgIJANV8hSQH4qoMMA0GCSqGSIb3DQEBBQUAMDMxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRIwEAYDVQQDEwlSb290NS1SU0EwHhcN
+MDYwNjIxMTEzMjMzWhcNMTYwNjE4MTEzMjMzWjBNMQswCQYDVQQGEwJVSzEQMA4G
+A1UEChMHU3ltYmlhbjEsMCoGA1UEAxQjRW50aXR5IENlcnQgb2NzcF8wMiBzaW5n
+bGVfc2lkMSAwIDAwXDANBgkqhkiG9w0BAQEFAANLADBIAkEAsbynYDY23FC3gyVB
+5joRqX2qypvhizJMp8VXnJi/BpwLNJN/af9dYkv6642mtN2Ax650MMA3QlOIwGck
+PWXtDwIDAQABox8wHTAbBgwqhjoAAe3TawEBAQQBAf8ECDAGAgQRAAAGMA0GCSqG
+SIb3DQEBBQUAA4GBAGt4x/Z0Cb5pm9vpzrhLrul1VAKhw+1Prq5Jb0CcBb/Z035R
+CVklRcLMDCyhbK7lURctIxKD6ZTHkHnLAzG/QL0tqpCbgl4bxWe4j/vfhbjSPEvE
+P2GaOcyG0nnL6ggCt/qJ+yDdVY3MkIXJy6C6Q7zrkm9OL6J5zyhKY+ii956+
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/ocsp_03_chain_0.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICQzCCAaygAwIBAgIJANV8hSQH4qoNMA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDEwMzAxMTIzMjMzWhcNMDEwMzMxMTIzMjMzWjBHMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjEmMCQGA1UEAxQdRW50aXR5IENlcnQgb2Nz
+cF8wMyBjb21iMSAwIDAwXDANBgkqhkiG9w0BAQEFAANLADBIAkEAx79+RcpCvhsG
+FZX5y580RVMJyOpDv0ANkVWxiNDU+L8C+y8OkyXy7dvfL/XhtitEq6J+mjVHIHh0
+JgPNZrvLWQIDAQABo4GFMIGCMCsGDCqGOgAB7dNrAQEBAQEB/wQYMBYMFDExMTEx
+MTExLTIyMjIyMi0zLTAxMBsGDCqGOgAB7dNrAQEBBAEB/wQIMAYCBBEAAAYwGwYM
+KoY6AAHt02sBAQEFAQH/BAgwBgIEcAAAATAZBgwqhjoAAe3TawEBAQYBAf8EBgME
+BwADgDANBgkqhkiG9w0BAQUFAAOBgQASa6WFa+YW5Xdye7/XxGdowwGt1hRPFiel
+J6BTza/W7JLPzVG46nMw3jmMFDiy+qUUlcFr0aM3RDt0psBwJbZbbpBkiTWm6UWi
+sQs7UdvlI/KsLAmlKjN5iL10QRdddrvlMHLaCB4mK7dY7doD7RR4warqnaJg4FOc
+Y+SDClqHVA==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/certs/ocsp_03_comb1.0.0.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICQzCCAaygAwIBAgIJANV8hSQH4qoNMA0GCSqGSIb3DQEBBQUAMDwxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3Qg
+LSBSU0EwHhcNMDEwMzAxMTIzMjMzWhcNMDEwMzMxMTIzMjMzWjBHMQswCQYDVQQG
+EwJVSzEQMA4GA1UEChMHU3ltYmlhbjEmMCQGA1UEAxQdRW50aXR5IENlcnQgb2Nz
+cF8wMyBjb21iMSAwIDAwXDANBgkqhkiG9w0BAQEFAANLADBIAkEAx79+RcpCvhsG
+FZX5y580RVMJyOpDv0ANkVWxiNDU+L8C+y8OkyXy7dvfL/XhtitEq6J+mjVHIHh0
+JgPNZrvLWQIDAQABo4GFMIGCMCsGDCqGOgAB7dNrAQEBAQEB/wQYMBYMFDExMTEx
+MTExLTIyMjIyMi0zLTAxMBsGDCqGOgAB7dNrAQEBBAEB/wQIMAYCBBEAAAYwGwYM
+KoY6AAHt02sBAQEFAQH/BAgwBgIEcAAAATAZBgwqhjoAAe3TawEBAQYBAf8EBgME
+BwADgDANBgkqhkiG9w0BAQUFAAOBgQASa6WFa+YW5Xdye7/XxGdowwGt1hRPFiel
+J6BTza/W7JLPzVG46nMw3jmMFDiy+qUUlcFr0aM3RDt0psBwJbZbbpBkiTWm6UWi
+sQs7UdvlI/KsLAmlKjN5iL10QRdddrvlMHLaCB4mK7dY7doD7RR4warqnaJg4FOc
+Y+SDClqHVA==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/01_loader_capabilities_user_caps.0.0.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOgIBAAJBAK4+9en8OmevaVz3hy1jvf+1Ozq0TVK0JfEXsn3k0XluLKab3Fzr
+3RDaJw26PDp9AWfDeQX3Racrz7ws1HpAkdECAwEAAQJBAIy3b+VcutYNROu9Qr+X
+M1OUSpboESHfNlzzpEQjTD/hMnnl2nv7pUhHG+bPK0LSOxf96+e6fUbUPYZegKoi
+FiECIQDa0GaAzhsrPdPlTG1qdORoZGU+v4v6lAsrY7BUcTDtLQIhAMvbmtgybdJH
+0zT3cwVwq+g9vrwcJunTkopjPlmggwW1AiBWi3DPZzWlv7mMitMH9R3WEEdfLyGt
+RVq5mZ9HdtGULQIgOVGO8TkErfpqBVuKKL5sZ4ls5sFXo6lMa8LJ1jOOg30CIGVu
+BuuJS/NItpjOTezyJzr67oGs1UYJu5kvqmbLy0Jr
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/02_protected_vid_mismatch_bad_single_vid.0.0.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOwIBAAJBAJo+aDfU7eB4/u7QWRY/NMc8YqosTl6sZRLnJzISGMpZ5u+dYUH8
+ASk9CCPl2H2ChGBR9b/Ayu4z0dvxkYn4GKECAwEAAQJAe4VMqqF/WgsrhQ4eub0m
+RANstADFRfXi/29TqTpq1ehIslMuCwdUmy9wDl2c37YgEcWGag72Lqd92q13p3jI
+vQIhAMwIgR27L6t4ddBi5qvp9GMumHXXkZ7IvP4hNFpsDUaTAiEAwYeAeIwBfVRk
+nMxAXAaXr7Bke+yCTtgC+4CAecbaEHsCIAwjeWMGbuiZqxCxwZ16tsJr1EA2igBT
+WwMXgKDcitGnAiEAsc4ApsBbDf7fgX/XEbWs32m8qG6fOjkUZGWnpDqiVskCIQCD
+sGus/x8ZPrF3RcOQdtzJkZO4mB1vHGeZbVVyBJORhw==
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/03_protected_vid_match_single_vid1.0.0.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBPAIBAAJBAMndThwW34HccoLolj6TfedX/s25i16a2DJUwKo19QNbeHnNak/8
+hiPAcRZN7tqlFdsJpSgJGK6P2rfJcmJrcYkCAwEAAQJALaK6Zd9F6DXOLYonbT4q
+2IIsOJYZy+l1tusyI0jPe1JrnX8F8t3NWOfQ7H5Ki6ODNe8LGjVNc2VveWatH7OF
+gQIhAO916I+oX4viUyES0x/VwdYBTpyaPA9Wl1Q/NqbFKMEfAiEA186hVsBt+dz7
+y4QL09Lh4xLrHoK8URKHrk0QMcskMFcCIQDqLVnYm6WM7DG1p242tNmSCscxGRhh
+O6JUbllo8GjxqwIhAJ0J5enE+cJbBnegTSMFUA73U1TOec7dFxLFTUWOt3TdAiEA
+incn9jCqDX4igC5tcdsev18l2QSji8FRfzTYJKnxdFM=
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/04_protpuid_constr_sid_mismatch_single_sid1.0.0.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBPQIBAAJBANo4pCg4DzFbQPcFA7YBbDK9FTpkkgSQrJgAZTqGZO9DdLH2gSEB
+1pyqtTWDqgn4d/MWr2OKOG/UO7ZSVEs2X2MCAwEAAQJBAMw3Y5Br3fPvlR1WaQGj
+1TCqeLo7sdZp2csp25HogX7SJBHJE+qLMRHyj0nlITifdjn1zT+6QT/2i/lzbyEw
+dIkCIQD2tlvzxekITI7e8E0ufGNOV7TndIVYeeS2DOJVvLex5wIhAOJvtHUsQDcF
+6ok6RVVftO6Yqh3lfvIXiaqrUGkxde8lAiEA3Y/X9I0AQpu+kyhrqBu9c1YA+PwD
+5PlTFMttWGIq9nECIQDDujzpX7OuHB4MOmM+Fblm2G2L5BkkGDZ2YRjjpM5FRQIh
+AMuwfchfKLLRgEv0RZCNAzDnR4DC71kVRTaaIpxTVRNy
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/05_protpuid_nonconstr_sid_match_unconstrained.0.0.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOgIBAAJBAMrG+jRSK6AK7beyDdY2LLFW99rR8JLQ6MxOhUDJSAsMMYc+ya++
+81KHJZ5hnHu+u7ekn2q+r5MuXnFsWNdMHnUCAwEAAQJBAI+CjyVkWjekRGVTgHNw
+V+USdcvJ9QcTDw85KxmU2oXl0f6wKiQv/RE+sn++Wa1jzTqMTA93mXLaP8GavrRv
+awECIQD0pNSzuH/j7V2Nx2lJnwQVF0j/W2HUk2o5XtjzSGe3IQIhANQwoltagZV3
+FzndQeZ2hih8CC4KunK2oAAjPdViqMDVAiBu2zYrDiKdpNSsxzy1iKHv8LI6TC1j
+hz0uLAWBEEE3IQIgFndryVZk4Aly+Rp3Lsqf28t+JjnWkezKNhmFI4HFsl0CIAqv
+YgHTX3rqKB09MzmcXD+n/N+wOQDf9rX19L1wy0rw
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/06_nonprotpuid_constr_sid_match_single_sid1.0.0.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOgIBAAJBAMcC5IhncqiAm9QiQmrBMngbwawzX3/a6V8ZX5XvmhXWfjh6GDXn
+8BCSThgK0Itnw+FTWY+YBbSPAYagP+5QczECAwEAAQJAY8iThcE4wDwb5fV3j8dm
+4sooBYuMqrK8qK40Ox10CNYs5dK5KpXZ1WqohGbzlaI/6IxT6yepARsLNxfQAiIH
+AQIhAOjo/ds1wtaffU7GIYNT1I6izR8zr7z8m1ogJQwUqwvZAiEA2r2V3JrP5dei
+TeNR2hklaROsjeDph4FK2Bc2H0yGwxkCIQCyTSOBvF9jJIeuVXl0aymu5Cz5tPzV
+ReC8Fx2laPEkyQIgTk03bDTu3vQF4aPSFSSTQ74LMu6kKiGaTShh82pNg2ECIAg4
+NvR1bDCdklMapWqlai7J6YB3q/SWSvvxnmj0lXeu
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/aggregate_01_bad_single_dev.0.1.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOwIBAAJBAMRYiBQJYbfzu6Wc5/98pCFShpDjQtiZsPrZ6OpaoVWNoGcTdhhN
+M4gQKGN6hFM3oD2mETPtH/3Mf6lL9+mW0wUCAwEAAQJBAKWmN3AIFjw20lo/zW87
+vdErKcJ1KYFJ8QlB7QJC4hglP2V+rWzffKdyspzRKGzOD9US8Om8y1HQmMFP45R8
+EcECIQD2tKVrZewfVdfpyNQF6hS4m677ZGfpneqg/JbfxHf6NQIhAMu+MJjGyyMQ
+RUOTC1SbLPez9Dbx2oCT11HnL8I5NQ+RAiEAjYhpdknMwtVevzKF4LbAGIDITFT4
+AGCmYKFIdSujoRkCIHIPQkN1Hum9RRlka3Zs/MqbGr/bu7g5i9RVOX5g6lyRAiBN
+QGFgY3qto4RScE6SclKX1fcoOZg/wDNI14ETsVaB6Q==
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/aggregate_01_single_dev1.0.0.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOgIBAAJBAJ1nvkltTll9vA7uKGbXKttoPHdKIuXzdQe2kv6F22QwrWmdEWYD
+BK4pHK6O7j5aebAJmjEdXLqUkrz0X3FIpuECAwEAAQJAVsiNBGTMjtCg78Zk5hZ5
+nZCBze9FAG1TN9Z0gvoANOM4SeGKvZytDgBxkGRQ8abGBmqXUwYW+73rocLGH6HR
+8QIhAMtrkVGxppdvP01iPcaSIwgUNaejiD8zdh1FnHTA3ng9AiEAxhdXHv7vIwpY
+vd7OVhm8zkrgzvfYtKEisziC5uGyr3UCICYedS/i433zOeCNbVgdoHTuHJPagDif
+sx2PIt96GPZdAiBebn3/rrQ9Vg9b5D0k2nwhM5zbzVcnNLGgEk6E1g8iiQIhALmU
+y2Ug2J0lXJbGZYpMQ916Nblx/T2R3R6Hrd/e0Io2
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/aggregate_02_bad_single_sid.0.1.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBPAIBAAJBAM/gf99rxChUCUCyU4Fl3DALl8jbfRRSUfkyHvFtB1Bj2LhZYyZj
+sGN7o79jfIx/UoM50Zth9OJJRSuYMNLh070CAwEAAQJBALp543viynZ63EoDLlG3
+tEwNOj3eV1fxeMOYqJVeft8m9It6rLTf9HjtTlw2WU1v/QK7/nEmB0oamljBi4an
+hOkCIQDpYy5aA/X2vgj5ox2BkQSgmWQja+MgFN+usaxDmxyLMwIhAOQEke5onHyI
+GYOREPHmWrsq+2lGdXwQ8TXlieorOaVPAiEAy4JjubR4dybwdpYotYF58nyvGEAM
+dj4dapydZPpNoocCIQCNnkkEyfRnZCB0lqTvmSLBHPEJcbmGVP97ehUuW6pyAQIg
+Ynl6q1KabLq5vJzvYSFduXipmiRjP1u10HVNWJX6ymo=
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/aggregate_02_single_sid1.0.0.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOgIBAAJBAMgZYhEZliUz3H3hgTlkPwXaNzBw21/1Dw41xA11qfiuv/Uqh88G
+oD2JNXPnsSKV+srhPOMWMERmAk68QoZRxxMCAwEAAQJARskz9/ilNOPzzFRJ8pOT
+9+4KOAi0km2OtegvQtOtHVuTuly4850jTKhL6TkEV14hdMrncDQufuU/JsQTa8ex
+gQIhAPYfu0UkO9EyQNzH8XFnveHLWnPcnoVE2sSv0i1rHh53AiEA0CDehzZ5STGr
+XZoQPzISTXAblgVHc0/jmVu+J6iYN0UCIQDdgquBy92GJstXqR+06CBuIh3zXuDQ
+oqqeEHuB4wFFewIgJUrudK3nF51lxlTXumsfam6/EqeJgPj8oDsXHIYSGD0CIAZa
+L/xLshD0vwRFAwT04xg2VBYymq/sWHVuRqhs2tiN
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/aggregate_03_bad_single_vid.0.1.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOQIBAAJBAK8tA06MnkD1bBmaCZcNBt1SdHKFcWi8Spj8UbQH6bS/z8QymKzw
+mhEA+bC9STv31CFJgtqHcGN6AnasRB+O3FUCAwEAAQJAB+SmVn69jr3APjMTpYu/
+uG9DsflTT93UGqqb39nPbQZ4YOZTNqrd3P1iZ0SuLZ9unBi+9Hv73hPYH6GHXDev
+gQIhAOk0CjFf+gJ7Nc+98GF3deMwicCmA3DFvnQhj42QJiJhAiEAwEzTAKiW1rWA
+UKSY8DyyHxnljTd36vpuS+K1oz/+5nUCIG/aYBEyoa3S/wp3Zfa537dqrofSmM/c
+aO82sa4Kt9/BAiB3LSV3uwQAfOvRDrFZ8cPSUpJZOo8vKZVBonc/fWHUIQIgIeW7
+oXHRFZdFPfGB+Ri9j1arm5Fj+etXijhcSHZ+wNs=
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/aggregate_03_single_vid1.0.0.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOwIBAAJBANS6LkxJnTN2C4p4GJhK0sGG/zKMHyuOdY/gbLfq9iqAZL7EYzDg
+Xx/rkLmMWtOshqd+UBLshtBFaWuwc84kkQECAwEAAQJBALx9dASYvbgZgsRhAbn/
+optkWL+bNQtNIZIo02xrv0+L8ssedOkwC9xFMiKvvISmvIOnOVGbSzX7siNcyMS2
+CSECIQDze+4UMMmAu9MwcXJ5i9RgSTZ4gBSj5ds+W0svQZCNHQIhAN+pg4ay1L7u
+RQy92hoK3F44z00k1yRkvK05VB5Ep6I1AiAI9Rc2IPFYzhAf6RyIAi/m9uqNFlEs
+Emm1apBihav2tQIhANJoMPCFybg4hMLg044OS5NkFDi5gJ+fGRRIy0aSRbVFAiAD
+Rce/uOq5yoFDC4bWb9DTPgmXJQOoERxKaATm/S9jJw==
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/aggregate_04_empty_caps.0.1.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOgIBAAJBAK+SZs+orr1PvT1p9FWYwC0xIF65u/PwmnJpyjDlqAFwc81bD/5l
+bripJxgsdmp3LT0gJcj68Vm5SUoWm8uThFcCAwEAAQJAaNKnv2OesDhja79Ouawx
+UMn74ZJSvRnxnE29AeSbof9bcf9i9vUR+O3kMJ1FlPzAQcEQE/lNs57b5qyRYK6D
+gQIhAOgis4Q0qAq2MusvvSmez5sk8EPUGjf3xseMoVCxHazvAiEAwZ8Rjnfg0cgn
+ovorN1In4GgNAvNnOsouSIwmXN1ubxkCIGPyNOqSJVvfUJMUTdSyrN42jEAX/WXl
+h695LCdq6sT/AiA60NtAb+H3V9nShDQEhgxe+ryZHN9K2IfeudQdeZZGYQIhAIh9
+J9ha14TY0ScrK+RJaeStT6dmpn2tU43dyk8UWCBW
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/aggregate_04_user_caps.0.0.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOgIBAAJBAKx0pY8/5+jlor0NsIzN0O3xXS+vg6QkxEUPQKa6QiFtzXoEiTFq
+ZuDrXZfiHKTgGOU0rQoPpud5cTiPuTjg3FECAwEAAQJAK6Jf+XzL6suff4IlN5sj
+z/CQCW65OiDrYCXZz9W0wcwiK1XkTjkjPJFfbmfTXhGU/TOVxJDO26T72yhxO/ii
+2QIhANK5xIhxpvou8BY2X6dd87aE4U9VQDIpHmD+B+oxg/GPAiEA0YH4b5hfg/M3
+Bor9Gr9ry/aIXdu8uQFcZhhQeKjppB8CIQCRaxUPO68JM18HVRqJezJ2IBkEEEau
+1uVZ9bQsj2MITQIgTN6xNtDjith8QgxRHbVKagXEtxtevUrAij01mW/weeUCIFSu
+N3euSEzz46QedIooRVk1amFi5KK2B5QRnpfKRV60
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/aggregate_05_empty_devs.1.0.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOgIBAAJBAKQJPojzdKUv0VqrnmMFmYGUA8JCsGBam+QYWwkFJaGjjSA4fGq6
+GasXKMDsGq/gfQQSnPSsDykWDtSkat6OJLMCAwEAAQJAKxSyc81cyTVxylpgUqlZ
+04pIInDZWbTyVEmBPzE23OhntODESRi8Ae+EscITjEURAJrzwwN0Pqi57b7v+hdz
+YQIhANA88Wk2YqthpDgUlCCMzLSXufGuK3l3iTEVXUOH05gfAiEAyajoWCErY6hJ
+2b/Q95p4qiz8kV3V2YtIFUb4LipLsO0CIQC1hOpLdIT+L9ceq5GT7ihjI/+KlPCA
+qZqFlsH9o+DmsQIgdnNXXoTFNrlf/54zAW1jmRnplP1YIns0cQMJvhwr75UCIEUh
+2el55kUF95pchZN5pg6otpM3ym8nWniooDODEMDE
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/aggregate_05_multi_dev.0.0.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOgIBAAJBAMtO16EAC+devhnqlr1OcAuOjjdzMcZyRZHes9JVBiPY7bdT63xK
+b6nStfUWCWpUEUYreb3OCE+7xwtQ21EEgLkCAwEAAQJAJt7SFzQdEoVoryfM3jDK
+90qwIiXiFGDwsCz2EHa1D9EokmOxs5LVo2ond7OCDjQZe0Q0h0D6Zd/SNosGdFQw
+CQIhAOfnUvAgpJkw1LQUyy1+uwfmZSr0Oen9jNdjXz/3T1zTAiEA4G7enXjk3Ox4
+5ukEVhp2mLCbHvL7V8FnsQxQ9Uz8hMMCIQCYm+pAi7rF9RSEzYpHjjaWpE+/TKkw
+CuM8evCbr6xScQIgCAtRRVmo8lYzeytM8X0fVRe3Z6OT6LBQ9CKZ4EDzKBsCIBpO
+6nZiCwcZjQ6qRNetKRff1ajHdWKQrGW8VFh9WOZF
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/aggregate_06_empty_sids.1.0.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOgIBAAJBAMWbzWc7xK0JVNaaqUFrVEeNqv26zftxKdO5Tmww2m5fObWWcgIE
+21pSQt20czxBJz33HEYY8IERW2QaRUQPz28CAwEAAQJATw/oHa6nIQhDvl1A7OCx
+ZrOCv2O3OCvtrT1N6DGfo1qX6g5EivHZZv7sD5gVas63lfJfqxsyHGDa8QO1LZ5T
+sQIhAO4WIgLZlyKqrXzoPUY/5OzP0YVjFb+olzCg51bKloqpAiEA1HoC5HrV7hoW
+mfsCdPr9+wWS7k0tsBBXprAJiykPMFcCID5JCgLG29QU5KgNtaIAKyqMv5purozi
+VRNCtOKuwy1pAiBvQjhzhXKyDA0bshlWQftuTzvh9p3e3J/ZE8LbkLN4XwIhAOMj
+cR5FtqGtkFCdSI7DZZ9FgzJ+zwyF5eqJp5/FojYR
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/aggregate_06_multi_sid.0.0.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOwIBAAJBANZghvzvzwN7Pb7jseVZa0k5OLTKg1lC2nwaM+7LmOeWf0YKs1XY
+4WuwwSvfzwWzF+VhBlxC+4n4cGZ2TVhUtdUCAwEAAQJADZaMt9eTbYsQPNs92WWz
+kS6ZU4xKiwvbwWX/yLEK/hLEQ8Yw0uaT3BIXvLU4ds8erKYnSjrS+XfteD0oAnNh
+wQIhAPH/9RvmzfUDeVyBBS5QSeav1vwA3WyHLQQpBO/5pJrJAiEA4sd5RIoShLW/
+G8ZH4eiWVdR8nAU8EiLJBe2okUjJPK0CIQDwHOkUsCN2keXe1N1RILTSwXHsROdu
+gYk28YRGn0qlkQIhAJ4E5KkvlIvIoKvX1ArEKM0RzOpic2Mnve9VlNn3X9HZAiBu
+luKPzxkYZ/5J28zp7oIwoIuZkBiqlBvVtoHTbMSfSw==
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/aggregate_07_empty_vids.1.0.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBPAIBAAJBAM+1W2jZKKDWmZ3NYuK4xn3nqIJ9sc4MvO/vMY7nJeKgxD4hlF3x
+CnD4Zrzf1NWZV7SN+WehTk0HcFMqgRwxNL0CAwEAAQJBALLGjh74ipelHiNMnEg4
+cd/8fHWUam3HWPfLEQTGvz0HQ+kjXxwlmywnPRnl0uYl1JZqBW6SHfZWh3OPvpy9
+8AECIQD/DR46cKHqQeW5RYQtgfwxXSb5JwlhyjtY4hA696U5PQIhANB7J7GAXfEo
+kCYJTGtUX3z8mucELklYerOWnH87sKGBAiEA5CXX5G7cZ7CKzjBhDFQ6Q+4P7s/8
+lH1SmS+fVSAxrAECIEvfdjuwNwAsPgHJwokRJMtM92b564p/6+/t8TiQ1aCBAiEA
+6u0Xf3KmWaKtOs+BGWjnd9oWSSw+ARzXMptF2NaLAwM=
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/aggregate_07_multi_vid.0.0.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOgIBAAJBANRiuh4OalTfb7UHmA7oNAga3ORwLJq0MAXXjAlKiammIPcCo62H
+QhpvFxO5Fhxe43zSxGLv+aTuvX+BjdLuiz0CAwEAAQJBAMPZLqucu2z8hbQ4Bn5o
+neKDcwKsdlVKp6YbeCTxOTTYL+0nWPQbrc6tB18a8axdNppIaMYbn0EGTHOktju2
+H0ECIQD7rdDQPRi+XjPX8VaofmNINUf6qPMd+dpRcOAUHL2cFQIhANgINWaTW/pk
+sdRpS1JU4djw8ewamfDsAvAg0uS4avSJAiAMheiXBANALbXMr/CM78UG6cfMHC4E
+ttL7LG+p8IgqxQIgeD5pasTOx1pQ2QgakqMIanYCUgakdMMJB5tdh01WyvECIAcZ
+OvxfQLc1Z/Ow8KjouB+rhNH0MUE5WGB7dUt/pFc5
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/aggregate_08_system_caps.1.0.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOgIBAAJBAJX06UzZ4JsTwMkD/CKgiq6nsLqs8CeipHJPLkxW19FV1B+MFCao
+wz7ornh4tvPNJEFvh0zJ6Et7vghusuAlSvkCAwEAAQJBAII4vKDQVAxXiwMFQt+P
+Kt+hIAf8RlElHEloGXyRrblKyylIVzdexzjQ2Qngk9Hij3dK9/w4OAjPFAT/GXco
+SQECIQDGNHcVHfbtgNuSSevScZbcMI/jeokhAOg5jq+RBettrQIhAMGu06T/9ZDV
+C6mOX0YEmCfZxN67pz7m78xbJR8pUGP9AiAtnBsfD+MnqjRcyIfsyFjH2KDz3tm5
+b4UA4bXC8JLJjQIgERu9TDzj1yhKgG64EbpEKnj8/+O5kT/a/MUsUUVX+Y0CIDId
+UIE3uhiN9/Xq2rdu7hpPHhW8NDxESTZNmzkn+zo2
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/aggregate_08_user_caps.0.0.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBPAIBAAJBANpflybwiQjwZuZbWVxmiesO3rx0qjkRfN2aASt1xOOlqe3Lftjn
+OVbIvqSEtck+LjFY2TuQUSqvYH3uzx9Pt7MCAwEAAQJBAIF4e12S7yxlnBynvGuU
+P+Elh9mkMehz/dxFGrxxrrJoxavE42jcadwM1Sn4MaYujn0PvelkKrT+NooVxuF+
+94ECIQD1u37BXXNzI1ObjxJI7UrRqUpdj2/jYGcNv3WMhiABWQIhAON/clNzICmN
+LJqG1oumqXzROeT5b04Neno4Tgif//PrAiEAoNu09TWMfsGQWJOGn7CeOrM8WBSu
+ZMTVkR1VAMFIMDkCIQDRiK76IY07+CVe5lZxJb3xkpuqQ/u6fjuSmo108DlEpQIg
+JUVcTiFpmm/56anvLYkIVSMyyCQYq57wWkOoG9iCCNY=
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/backuprestore_01_system_caps.0.0.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOgIBAAJBAMeveFbIjzXUCzg6E4zye5qnodoLsDuhW71GXzEG4fZCbmoQEXjG
+ay1Q2RTnl5su6jJx1SqU5Z/Tk6fmrbOetgECAwEAAQJBAJiClgCCMY7FIsSQ5rmx
+wWG/QkiMwM7qUGzhQHbrcM1pWV/AtCZLj3DULhVJaW47GnemJmHSXHg7VHIIjov+
+ESECIQDxNyAGFWJWWTS6kkfwniUxRFmew+HGuPneBEuDnfrFrQIhANPstI2rV8b7
+9rpKKZNpe4vt1fBfuEEQPOAx3YGkPTQlAiAo2ObpYNGoQa72MTNRgdZWg3aRtiYT
+mttlR2DqRuRieQIgE9hRnAaUhKypkQ5K0GQLTrIp24WLIoSbvr7MqEwx8wUCICVZ
+mv6gmqF0tV7NBx4DnwH/Q4OR3RCgZupjFUu/lKaX
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/backuprestore_02_single_dev1.0.3.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOgIBAAJBAMWNuebyZL8QjgrsRP8Dii/diQYq8VHouL9xnRDNZPd95sD6xyFW
+MuQYExopiXOa8VFF5nMzPlhaIBbayUYkh00CAwEAAQJASk32YGFHd334jy8y/GAO
+d9ZxlXpNbiuEYa2QECPRGCz/Kv8QW44ygpRdgipRo42VQAV3pnmCnzaGr1B0lddh
+QQIhAPEYqUvBNeuhjnHRPlOx2pUH629ruQdzwK/DV/45pR1JAiEA0cQA2z89ez27
+AFOTdJb+D+qcP9zSqnRCTm4Qnf5vreUCIF6Xr2yifLZbZ5juYMbTpBAO0Geh2zG6
+T6JmQTLkiQzJAiEAgup3Nl6junTubue6Ubui2MAtwFXLTQK+F0DuMg0IGlkCIFad
+o/nkRzIhfVt8jbtNFHIv5njR+URS7ZxNJ89kqaYs
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/backuprestore_02_single_sid1.0.2.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOgIBAAJBAOFh5tWjEVaoQYgSdYXHuIuPNlp97rRvQPWdUolG9ae8FjbAQUfI
+5mbcQWOS5x3klvxSNY5icNtb55XyrjghMRcCAwEAAQJATolj+6vwHcdR1o3AIBcB
+arhD03KwnHVsKGpi2W09qu3LNRHtWlhxc2c/VvsA8xBCQYYn2ZbyZWTurzc0A0jj
+8QIhAPmEy6siiGaVPIsoEZYlTt4V0C/YUWE91urHZ3cf0A//AiEA5zyb4MRBUeTI
+8dUzLylKGMrK3wGfnf/WcAgQHfIdXukCIQCAqetj6cCwNRAtKZI3/DD48AKUSVVd
+cUfbdMtzb+IX/QIgWVOzj8egyCcObUWECVL0+dDVQALbi2i6iPrEZx0RtYkCIAEB
+RZsl16WH16cV08FsIRK8JA/0QrPRSAIBOjNrq+sD
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/backuprestore_02_single_vid1.0.1.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOwIBAAJBANnjO7AoDL4TzE5i/yH9zqA5JMP04w/vS0kCmuzeV7RvnV0jhVed
+odOOGL/DQ2wxp8nIrOLl+r14jsZZZYnXuvECAwEAAQJBAIXe0Wt4D+wxKdP3ix4N
+XQigU3B6Y5AEzFK9YQarzWM0Fk+Zdz/Etd6MmtE2iXLC0xg2huLqbxOdSt7ZXzyJ
+9IECIQDwFuLYfKKwp2Yvbz3QB3UOwvEOqDMkC+8uNFERRphjKQIhAOhTsbxL+44C
+a7oT7HEO7mEvxpKI3V8xhyYhHix6BJqJAiEAjD1CCiRbP4a4iJKY74+7j4DNH7ue
+C7sw3bNPeyDaWGkCIFrRlNIp1b1OvvPvo+cSUidVuMdBj2AOCWnjWltCm5gZAiBa
+x9UKeEHfO+fgz172xAfB1eRB4ta77K49HZsxXML6+A==
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/backuprestore_02_user_caps.0.0.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOQIBAAJBAMXOCwbaV5+w2qWu/1uBloK/aBbhekGu/pXurSapWY1deSKxsDEt
+m5WxRd2HIXwJGQdYOiY1K806thKLfIeE1gECAwEAAQJAUXiBACyUJJjiJZXDZXwl
+curFQ49RHJaoEzcAKEleMiPRVS/7ogKMFnMhC7hy8cAmsb2BexdY0qPV/QBUGpMk
+FQIhAOiYTdRNLmbAJGus5KUdBoEK29g973DzJBvbpOKhXcfDAiEA2bWJ/HCHOWCE
+LeWLsIpXYqi7NiId11xae4Q4aJymUusCIBc0Kn+Fe52QiZGcW+sE7EMvXCNEeoCg
+IPgOf3KEeqCVAiABjSSdkuOzyfdHKHKVYHb88fzbhuS1iyft52RLgopA3wIgLFQk
+TRhcRlX+t/5lkcpm3r3QoqpSU3L9CjbvN6032DE=
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/backuprestore_03_multi_vid.0.1.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOwIBAAJBAMAGcZq6MjGXiQZmQG/0MMDB9cJ64GItO70QtovgSSUfR3HNijGs
+/rrior/bSqJcO56qB48HG6AfvpXbArVsoeUCAwEAAQJAZ+eUtUqnOlpq1MGjgHC7
+qLHLT665l6YuOwG+JTX5nlG8hE9LUVN9DGmOcGYvSMq6mMxbTdKuMrFML4Tgd4Ae
+AQIhAORZe6/ecvxbSkn/XFz/CMoQM+XP7va7sMcwwxg42R2lAiEA10b0r+qPTmPg
++mKzvqZUNpSptB4U+2bteutJcDkWv0ECIQDahhvMwQevIrnkOKEuSc4ieQEBU0zv
+B8zzwmFhg72bFQIgRdDHLf3998hAgDNeY6gBi6nu13EiEN4yijigGnsJO4ECIQCm
+8oH4KJYhCunF/AMwr502wVTHGI/lWa2LupGEmGnW7A==
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/backuprestore_03_single_sid1.0.2.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOgIBAAJBAJf+EW+RB4zWenh1jGCyudM8mE687kE+jBOI+lXRbZ59PF5ezT/Q
++CdH3Msd0L94NZu0eoH6NSe07NmRzENEapkCAwEAAQJAL4D97BO0+2SxZGLA3Bwg
+DhBbPgi4onWtDBH8w8Ov8h+Q51UEqNXxPHkp6dcLVtNkVYEa1RdTCGC9EWcL4dlZ
+nQIhAMaJZNiKge7rzxcX3o9EqzyH68Iv3dTd0dYVG8yD3FAnAiEAw/v4vmFp2zJE
+oze6bEmcemJ3kK/FKZAXlpJqtajrZz8CIQDCvnCyS6LKVnprn5lLFUOWe4kRkNxa
++j7jbQ84nDtWTwIgfM8SceuHhlhU7byntB6M0EO08Sd+4CErZHCKFHYms/ECIBPf
+GojlahmivRdzp9+uUD6OGYrFdjoiUtvO/aSiDo/u
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/backuprestore_03_user_caps.0.0.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBPAIBAAJBAMGLC9i1Cw6GuajVy3afjF8h81KcC7gerURc5oL8t1Jvna4pP9aP
+yR11ZMG4LPElh7+VSPzQmtqY94yPHkmwZyMCAwEAAQJAUvO+kxYddA9oWaWwe9os
+NsX9XQXGvBZh2vAaWD/qbqjrUTxEBfVc4pcHHdvhtCFTtqdJIw7xzf2m6+RlfUqL
+wQIhAOEs3sscZ8pTcKCXLjpCb0P2eFDVlnz4sk1MUwoTAvCDAiEA3AmlxAHAXNhK
+sNGDsNNNz9tsR8KJOf2Auhz9Bo4BrOECIQCRTVUPF+tZwfIhjqzD527JGliVQN51
+Ej5sZt4G2DHDZQIhANaBLTFch7u7O20OgrQR+kxE21VFh2OaBzDoa55FN8rhAiEA
+wCMAR1qhx8vdl+tPmsLnvxq2F6ltlkansl4B3+0nI1A=
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/corrupt_01_corrupt_dev.0.0.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOgIBAAJBAMvh4vZWVP5MPiroR9ocxkclTdRvcvw5HrNnPrpXaXUdqAbFA3u5
+of7J8fp1qkZN7NjmHmFBr7Kb4heb+GmMFiUCAwEAAQJAT0nuqRxT+32NI8SnxNQx
+7BM+3GHnVt2j6eM6Ct/ZvFh1YQ+0UYDl9m6P4qUDw/VxsLy6m/6I+6wVgF32Z8PE
+FQIhAO0lk/3hb+6dipghoUI6UHvd08VP/m6MtkUCfsZUTy1zAiEA3BdPPdGZkY6p
+paEihvQaO19PV/xEwuiixt9XkMigyAcCIBKcK1P2GAmatWCg6v2+g8hkrRTD5UyZ
+oEgkHPzFav0/AiEAoSWMBpZeG75aJoSp1CgMwOYTITf7XL6a2IQVCFRtrKcCIG1o
+NDAOHYXbcw20juVVE8gr2BaPmHJmoUreRLNtdqoS
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/corrupt_02_corrupt_sid.0.0.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOwIBAAJBANhF4YhykzmumXw3wGImt7YwPM/KgoZFN6UinNFSxp2yi3JHppJU
+KXynX/iGDkpKg5aSZ05pUTPN7rcEXHwH9MsCAwEAAQJAUppGLL5OGv7j4nzMvvA4
+xJ4h699WAQCY4zqYGJ77+yiNdgi1L7fgAJVJJvMakGJU9ehPAnH2k3nZ5ZH3n35a
+sQIhAPh2VMbh1amCGr0hhZJeFBiCVkDj5u+ZyIjbtX/FcJtTAiEA3tWNu8wjUOXO
+L4jfbzHnD50aumCO805F8EywgrfmiakCIQDXqD3lcle2DYuP5ey+IpJmw5qCME5e
+YajBwZJEGOeoqQIgZiSr4G61rYp5le5+xQCx8sVIEDDctgimJH1y16imo2kCIQC5
+DX8gwiv/0epODUq/okYN0legtuRlufnmgr0M1wRahA==
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/corrupt_03_corrupt_vid.0.0.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOwIBAAJBAMiwG8XZGBA/YgZB3kLOcoCnOX+1ql02rrtJjRdfW6JJu6dAoqdc
+i+zPZMiZWH6r4bjguAsdnaqL52wr9Ho9338CAwEAAQJBALHU4/dQZPNYxurWiTXX
+rDz2cYwKFVmd7/2DsmOImzFU5HYGHTm1MASfAeSkqDHVZJ1YrUPtQ611JqeEbO6P
+C3kCIQDwHII+HbG5z7QRohKmJIcB17EXYdClI2T7bN6oMsyzTQIhANX3xBHHNX37
+slBRScIA7op618uGQdd8JlpLA2Dnwt/7AiEAt13+NPO2Y2F0cbblKQ5iMA0JiALC
+NSr3lm8JB0hsPU0CIH/e6GAvizpVN0Vkrw2v/N7pdxl8jNC4szr25Xf+SaoNAiBx
+hcB3Fnv+/8HwNseIhJpEeduW/9AzCYGSRx8uJWwVXw==
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/corrupt_04_corrupt_caps.0.0.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOwIBAAJBAMFaWLe5X4KwlFjtFQV8a5dZQTbID+Oj847AEtmI+lnXf28bdIOW
+mvFJfFV0T5k8zOgC7/kF8Ea/f1Zx3h9kyXsCAwEAAQJAIE18xu0EZOwlTJoHSgxY
+WUfDGmjgJrLsbOvv+kHlOX751Iaor8ZJxa+cuQ2iCv8WT8RY3h5qf8CQELIpK9B7
+UQIhAOic0MEuqKRC692+ygo3Z3wD72LTmzz2Zn0757C4ssgJAiEA1MsIPxIVXxQW
+iAKbg+l201xtUe8qez3x/scKWxalfmMCIQCRjt+Ko1ngQAg8oFDph7X4ArZfzy6L
+PVzw7PWUvl8RkQIhAM85gahaJfHXkDGXyHbnzs36foOCE669HoNstksKfNPdAiAh
+hvgjdyEgztW21Gj73/mdv6v418EXDCVPczNeEdz+8w==
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/devcertwarn_system_caps.0.1.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOQIBAAJBALgJgZmVIO+cqFn65OcvnhFVvoeisJUvIhAm/RCJTksZEyPlD0vz
+BOYxFEMvIxfk0wwizNCan5cHPKGCkhMhRFcCAwEAAQJAF+q8Wf5Ecn9UbaUqfFT2
+4N/Yy/27nxeqAJlgh/agIygdnM7GFxxqPunnLaGumIF7dFERETX4B1NM03+P83Ot
+yQIhAOFW4ya21dZ2lvG3/nnbQFahkMPOILDPhkkp4h8rNDXFAiEA0RP2MGxmoZtF
+bhefgaU9ikdjMatO8XnD2sQcivtLT2sCICtCB8c10CUkjOOIQ8TWzyoSR/0ew+3N
+WOUQskTzgUlVAiB9zN3/6umh6XRQNsSR1GP/9M45j5LzdsmiswddlLCOuwIgctZD
+ovoDCtZAJi3nWLRjzsL4yQWX0wHkQDnzWMZ04sw=
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/devcertwarn_unconstrained.0.0.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOQIBAAJBAOyUIdAK6BThapWba7vrndCBJli5eMrq220v4iMBnYN7L1JwhsJi
+o4BZwMghxcQR1VsDeioFHIcnEoUtCQuL8BUCAwEAAQJAUGql97bNXtOkzEfxXgZg
+NZDA/SXGhotAnSPKpYWWCiu9AY4yPjyq43tW5hgiFILg10IKh7HDVx/8ppK3cQA7
+fQIhAPfMP+sDvRoQs2Lb8HG0iXFueRyrFGvqkmM/5LwPZSHzAiEA9GjQmQcXVmNu
+fXB2I3R54kAZCWoRZRERcNpZIseAH9cCIBLHySRfsSpTj7TzZGLJwwz0yXsRwEd5
+jMS25/gU1p5fAiAy9hvwnILoN2lVbHqln+a+H0FZLi2cVje9wTluwAxeFwIgQRTa
+XoZlONIS37zpbWSAYrsImo3zJY/xscz0SRWB+rY=
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/devcertwarn_unconstrained.0.2.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOQIBAAJBAMPImSKR1SdqzU5ZkG4iJaPDlHjRXh9M47Ufc6NhdyUrYOCJ4cCV
+RhFIzt2VLNwmpNVplOVstpHjr655mmYaLnECAwEAAQJAKgFnAajCT+O1SuMifs6q
+vrkeqNFa3WJU1K571Aj8VCfa1iyoBwxYOWoXCZQTpRYPlJ5N73VvajhXWQtQMUFh
+QQIhAPjGCg1NYtb6eZ33jo3zLYIvzcq3oEFgfQ2QenlItIg5AiEAyXiCFXPBL2z+
+HmzS6RkdwSOr8mtZA21zNBtviAHJJ/kCIFRUjcPEn+TQM7ng2Wo1LRActF4rsR94
+XevjNiE3DDvBAiB179FWdXh1JrxrWxDr2wQL97HEKwrkcsGpkxXq7ACxIQIgdhpj
+MqRXU0Nl1KU/UscKKeWLqvjeGxZPg7/4hZ63k4E=
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/match_01_single_dev1.0.0.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOgIBAAJBAM9ZOBY4HUaweyyGcRtqMzqdvcVXIj8KnxHtOyvHx5WIYi73b2BE
+ioCNC/YLvAKBPXjO8iNhNQcKnTRdnB7MUNUCAwEAAQJBALRojnJWtLJSz3k4KKWP
+y68OnJVdcQCk/y6b2MYI91DUXMxfevdMl/pMag8EVxC5YVa+7OMGEaT1nXvXeg6G
+30ECIQD9XsYh1EcUFFyCJ3jhDCMq0Wl+U1A62l+e+q1rA0oSLQIhANGAKV5TN8jN
+BGxEwycnP0G2U8Gm4BoCZe8Eco98UOpJAiAQ9d4nd5FGe9Jxd/j0f55/CEOajDMr
+rWCHQNqI9lBoBQIgOQaIvCsswRTFQm9JK6wsNMfbbpfs4keK1Y/BWzs8jzkCIE9x
+O4ITE/Z+6GFOew5MOsJeeUYT1i8H+k7WQTB1mca4
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/match_02_single_sid1.0.0.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBPAIBAAJBALn1ywNvOm0K7rQsSXMC5tcnV0vjhgqJ6Sc0FpoxeWJ2GOb5yNbY
+SPU+5Sn0i5QtyN7kpXOISiAYkgRL3O6g6QsCAwEAAQJAEQWlyq+wynB4vzdaldOL
+K+CnBgRSrb5IAFWtR/oFYXTD44jLtD27ez1UIhQausFHTWypBvfpZLq6XGkOVE/3
+cQIhAO40J3v9Ngs5uBD1DwkcTyQdlRXHOA5Jqq8t07a3PLtzAiEAx9pvq8FKhAR2
+2mB/vamrbr4njn58AGiKARZrZqNX5gkCIQDLtRJnOH41T2EYL1pyYiFUM3BBtaM8
+pMcxFLHPuhhX/QIhAIfSCNCGNVkRG6D/sfC4rXw+mO17QlSYtylUDjubyPHZAiEA
+tZsNw05InmeFV3lg9/zbDESCIL2/IRXyNIbFhWWPfXA=
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/match_03_single_vid1.0.0.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOwIBAAJBANuGKSduLQ7DMdTz+HnQRt/CY7Nt0IerjCOu/GP8Z64pQGSfB1Z3
+ailLrnR2Xf24IqoBn01dZURv70ua3HYUptkCAwEAAQJBAIl0fBhgeH4h4vYAvbko
+nPhG877KKCSLWfiN/SNuTE1UBeENZ96A4OgYhajLdl8v1umXkjqXtQuO/IfcRRQH
+pLECIQD50p0eFJ8sgkxa/gw+IyZpEI74LA8tBEl3B2VoShS2ywIhAODzwWzQTPpY
+m9/kzX7JPNHFRqkc5tBZFC2ctu7EfMBrAiB4Q0Bpo6nApnUVdKj2HLu35kW9CJDB
+rgejqkbR/p+cIwIhAMXEZ2wT4WlDF58KV8O8hhTiPFIXT7Eib4P+QDHAWvELAiAu
+d8G0ZkLanLTQLqM6drmYFsFfAcOuVHDCsYCZZNNqJg==
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/match_04_user_caps.0.0.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOwIBAAJBAMRZSSyPL32amvMaqiiIotyhs/urNs4UvR6WvQWilv9Oq8gYGzCr
+QoJUeeQbjsv3MHInkeXxFbOYQVf8noR8zv8CAwEAAQJAVi4ORQWPxaR/UCaq+uGG
+AirjUZoDkw5dN7jXvEpx1hqPwNlF+sC9FqXQG8UnvBRoM3FcJI03/pKggqaitmHT
+aQIhAOYaRxfUtKkXs5ZKx4lf+JMXoU3cJdRBN8YuKtTYxm/TAiEA2nJ9pGh2AkT3
+PrxRyrDMBHCyknslcwUeWwYoNaaU1KUCIQDDu66l8uYKwIKfYdUCYoTMetlXpeD4
+ANI03qjIje2eyQIhAImKbPGHlEX5hnNJv3YPu2VQUB9KylmRb3uAdPDS4gLBAiAh
+aQJ5fXJkJ7voHDhjvMC5pDkkYIf2iDldp74o2Jdahw==
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/match_05_system_caps.0.0.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOwIBAAJBAOaOPQKZSGL2ekniHP6np5v/iM5XPR3ug/Z23QIyJfl/2AjOLevK
+HHmKndUhIavuo+ie5EvSws9DsqYZnqPVyYkCAwEAAQJBAONgGelLNGls/XOKDOBU
+hedCXzBoNv0i8oAJ/7KftHXWcQt4ffWVclQ1AcK7HiA3cGY8ztpWIIU1jdeZyOvX
+tiUCIQD0UrXtTfgEjIKZ3dRH0CG0f+Ba34ZhYPCNNIjqDVMHWwIhAPGTFTd6gySG
+0ymRMc+fXC0NgYAJCkhsyKLRpwK+kWvrAiAt9nVlLDrRWEGlgpbR37THiRsC3XQh
+U6RNXCm5pkINawIgH4briO8DOHwkCNO7JXaNyA9wLC6B2gvgb2dfHXuTbPsCIQC/
+BCZ4QChZ++++KxfkxDnkXHsU1+135cjBZMxnKyN4Qg==
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/match_06_single_dev1.0.0.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOgIBAAJBAMW++pTpw8wmMcfBMSkImI2qpB6k2cwvPJTFu9KDchuuhjlV6NZi
+Q0EvSnyWjsw0H6phTf2q6xzgAWv7KS+/8hcCAwEAAQJAYbvlT4pGGnVaLzc92+EC
+vSn0mayydKd4ErO0A/SxhhoaUHrmu9+FCMnIY6gCT0R8Cn7Y/QFYteR+h2wApIAo
+cQIhAOx0Fi1A4+Seny62IrRzUcep/2taqXSyQZvKibs9wjlPAiEA1hfAS9DAZUmK
+RjyjJbZN6DEbnrdAbGy2JsBplLMg+LkCIQCpO+TrerghVw5jZmSsdqUfnKJ8+aSz
+KyoeEPZHF0q9rQIgPHYArGiLrQ8Tqbo+KMxPPB+COVRvMS+SUWdNad0clqECIFD9
+T0M9RbEAB+91xf9cidmr/rliXtp+c2WLveBgTj5g
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/match_06_user_caps.1.0.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOgIBAAJBALbF4SIiaNvAAJyh97jRUJ7bkZFWp1PYDMtKqMw+sa6jVcVedQPF
+lj+pgfTCpDoy0njparhdtlJSFMnylbnvNycCAwEAAQJAQxpBPqP9dXh3gQoiBdOr
+UrdwKTj0M98lS1m8wUffOisUdPFcv9nLc3XQXXv++AK44/Dg6zycBiKou+ISPxQd
+EQIhAOD21AmCaqovUMZEBz4P6FkIFI6SNK+G9Xd36SSyBlv/AiEAz/z2m17l9SBI
+LgVFSKabieoauKH9PeDg40Jzr/vkxNkCIFrlYGc3OsHovEpf0k1RQCA5E5VHneIO
+NcA/wwQAqnEhAiA3ZSmNYi4fJnTzBOZaHj3I8rghOsvHIlDjVnyXf6CDqQIhAJjc
+hNoIa56jH3WOCAlSc0qSe9Wf6dO4NKyVev/p27m0
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/match_07_comb1.0.0.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOwIBAAJBAMfip/GsTQmsOemRWcUSIfibcdsv+n4MWXeGratPvB22uHlWzHxt
+F9zd6iRhgimC72EWkOzDPg0pTrSRFnflbc8CAwEAAQJAZhUNbFFwrqX0laKT1B+k
+ldDdXvGr3j/0WSTBASKhkhJd+vRMamesUJV3I+vIi0NfiFwz/VWH4znN9cvIhyup
+cQIhAOtoy7L/B8jS+iFqXZ4sQiDX4by6EOfK+pkve688pN3lAiEA2V5rcGNnrKAc
+WwTrPjw3pyXCwSA4n1fYg94xNhLxQaMCIQDTXjjn8w0uSCDGuBZu2xZVHwFUz0w2
+k44G1Rec9Dqj8QIgVYdUaQ2EDqWVYq8FzSAumcM+5XTDMteC5yg3XtqHOVcCIQDG
+WJOFBudiu40taRbc39NkWEIU1oL5GqNRZoUCQRRm8w==
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/match_08_all_caps.0.0.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOgIBAAJBAL4MEW4R5XMuBtvPXvxdwJfqJJtipmcVUXWlor7SPg2aoGbC8H11
+ATUJbhSLkCLa5+5vqBUWmFZxD4z981rCfy8CAwEAAQJAB/o7tRIdPpN9CDcRNqi8
+z+OtO7SNZaBYdgbI6ResMSfs0xgpFrO6Acx0NRuGrtnM3X5rcyNLJ2vxd0RetoV3
+YQIhAPiood7C0MbPShbHgpQ1Rp6/l03Im2VZNyJLGISUjrnfAiEAw6hywZ6mBfUb
+AG0qIcRnLfujIRwdjn2i0ASWPjVjhLECIB7054oTGOjXX7LsTa5j35Hd6llNs0Lv
+03RagwfmcspjAiAMD65DUUxawalQdWpLepgBtalwuRL5XbVTrXS1kQT5gQIhAMTC
+0D4khRYwMCfJ2Iq+l339O4vSCIPNje0U8KFgQDei
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/match_08_system_caps.0.1.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOwIBAAJBALhRVdfRwi2Jmajija9wjpyRKsq9jCYjZrPFGsy2y/EvAyZf8CRS
+B+kN7onhN4cYpIt4cIbpWO9ChLFnSP2qAHMCAwEAAQJAHBIfDcBfX0oOgd8HDwoI
+XiXpq3jUqFZJ5OUG4NiSFMf+wq6PY3aiJvFhmcaX/majq+Qoy1QiC6SAWHPTynhl
+2QIhAOvGTArHsS/AyrkoZA/KJfwIiPQfPX+u/4By1ssot9b1AiEAyCEGYJPml9dT
+vO4qzZU6N2MO9wtwt/2JEEZbcZb5SMcCIQC8F580fmi5eul/W1ywSAmTjk+LyZxr
+T3WfyH3Y52v6PQIhAJDpkPOXxO6IBeOVVbsdZlU6zlhGmW0xEfGN8KMUnhd7AiAV
+WnlKBDJb/VVVECA/IKrgHh6Sznqxz/fY2qnDFyf/QQ==
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/match_09_single_sid1.0.0.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOwIBAAJBAMobG9nFLiw0NPthp6KuhEO7K+bevml+/D2tmFS7wCbzSseqNAI/
+C2cepLuqu61t6bUqVvam5TMduog1j467mJ0CAwEAAQJBAMCtt4+V/L8HxrsiDr95
+wX8RInmoQcAx4CitJ10g4cA+3+Tbg7LmT/wj2uWYcseQx4llRlbFQvkmtHwEaVVz
+NgECIQDwDdmvscUXENWDefy+It1mwx2pbOj4NZjsqY46N82MGQIhANeH8cjkuan8
+QpxmPyovfcQRRIiUguJxL+rme+mnlEElAiBvRGw3RLXvCA1/gIaG9xAadqwEAQhH
+LEiywbC8CWuL2QIhAMWjI1PUaWw2pd5E5CcK5YilTPLxPBPpNsdwErBvusMBAiB2
+wXbR6rUHhHObQIX5comVR6KVLGfKRUI+uN7pDp7BWw==
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/match_10_single_vid1.0.0.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBPAIBAAJBAOpXtLPD/WLNoTZLJvH5aAcu9HxDvxWl4R/Fc/gc6Or3iAO896PG
+5nI8NTOBxEJyCJvw1Edx6qZzbWi7xGU/5eMCAwEAAQJAcEu5Fw/LI4agQzE+J2Q5
+un+Avu+D6O7Fc4EeMn5ACx/KLtcApcuAnmpp35h5Ywkd5dDe8y+9ttr7EV4ejwus
+oQIhAPnLOcgjdjpQ7OiWL+EfCCkE71pPcUE1vMFpQTqwr96zAiEA8Co0dj4AOrW5
+oD/iPleSQ9SLOTqBbtmgcXNX8XkzdBECIQDiL3pH1oyEq6iJxwzdzSqncfeGEC9e
+O9mKTNOq4Div7wIhAM1TZ/LHYy7Oetr0gxrFh7kSF81fpZT93lvgPwmlk0XhAiEA
+6gyu6FK7QpZp5+yZD7oWW8lGRGjAKkk/bjCM18WT6hw=
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/match_11_single_sid1.0.0.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOwIBAAJBALng1q7JJnZqpBGLi558+81qgZRkLyQPIKicp7ZHxMb8AIMUEcYv
+dDc1p8F5DBR2KwYT/wnQmbPA/pLjuRUWd/UCAwEAAQJATv6qviVmXzT6/Snc8EIV
+kTsOTs406pIzQvUwoVrm2dlNmELT32+69hhtrHFbCFI+p41ZsC5erRXNs8KZWQh7
+AQIhAOPGj4MiN35SfpcIBKh9TK+SNKyHg2VvxiFQtFAMuscRAiEA0Ok4mQ+ovrpd
+1kJE2xBUi1sOL+9ik1jI8pF8dg0ViqUCIF03lOIg7b8X+dDLqkReSzULS91T9FVe
+IiLeSXz9SK9RAiEAoD3T0OvG9o0C/x6TrChpgP7V8gS/auAWOqFHg1Fj7ZUCIQDR
+HSJ3G6xKul7ApS0DSDBXerN2NG2p2zbijLW5xAs67Q==
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/match_11_single_vid1.0.1.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOQIBAAJBALUbArEyGePxa3+UY2m5dzxs3PZY8iq9oVMAuHkRF9nycHiLwx+e
+VuvzLHzpm1qTCrztMeen2u+tjzCTrwLGgNECAwEAAQJAALrDIAObpxdp33GxlNNy
+b4Pgv/1LvHBXHgZ6t8Ih3nbh0N8FhTLJlJ1iICxgp8RzEUrf/i7Kk9ex5b+cmscv
+gQIhANyplEfH2HQX/fYIaCxK/gmtDaDRBhAsvsyzJ3AqrvPNAiEA0hu6+yEr6ypL
+xHX0/m96+355eMo8NNA+huiQwGfPhRUCIHdiJABF5hzBUjxHRh0YoaKYhvQHwpED
+tGLJVr//x9HNAiBAUVjV03u8S4BSLcHHuZyuLDNHNLFlgXICnmLhY2X1WQIgR/OX
+nVBNDZJ0Pv0lI8bQXIGSY5EcIr5b1T0s6prDb40=
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/match_12_user_caps.0.0.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOgIBAAJBAOeZ7IWXAbaisnGS62BLVJjWaOPGfi/NzFCkRwmN4k/hUR3z038U
+w6Q7nHmT2Tp4O9YMvtKi6NsFIkZhuP8o1jECAwEAAQJBAKzRf9ujdcTZnLwA/KBL
+NeIiQ/yLVgfH0kjufI+VjyU4uhA6pq/kFwfb3Xou9AaRmbif63wIkAfKTVhM0oTe
+UP0CIQD0sR4D9YuIhPe7lAqliiPXytO+8N5GkJzBekSS7/FzxwIhAPJN73ORipOj
+diBHq+W9NZe3RJlyUV4NcN5LZf9xjHZHAiB9TCD5mAfeXXBZzkHxaJ5YBtWM5dx8
+N9r9O/XXZCS4ywIgLb/VVEbImXOlnBasOCZvdgPeafKRtmZnRzGJQp/X24UCIHwH
+cgG6+WBZ95G7fH9bHWzgr53XufDHatkGI/EqbahY
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/match_13_system_caps.0.1.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOgIBAAJBAMdsPbcmUraTbx5ycbRlWk9I1kUWJIRw2W4hT3gOBq17KWdosMvi
+UcNIHUtGi5gwsfHpSrc38Ozeg7Dc1lK7coECAwEAAQJBAJf0GT6CHAp0YvovOAa+
+J8c799Dio2arWnH5PcV74oiyc5kA9TIe6VB50NGFXeBeiLUkyav//QF2Xtp3+DSA
+cZUCIQD0o2HoU6y+wEOmvqgG6la5MYSkBCv4BEbW7bJU5sKqqwIhANCvRZDY2kzw
+/Kyq58dJ3jX7zmk1Z3Q1NeqyKZg/WleDAiBVxOZxrsx0wDG3x0Zfzk8DdNH9Mx07
+QjyX5BRO4ezEKwIgCQVam31USnksYwZsSIgf6/N7o76kPzjBoOictbEfZaMCIFEK
+EYqTfkbb13BKPYyfq8NYSOTW9k2a2kLlS5bkmKwl
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/match_13_unconstrained.0.0.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOwIBAAJBAM7A1HHIgr59zV6hP5+cQwMvciUjd9sJyR7Lk82p8ao0xAISb67d
+WdFpAMoK/KCAjsln2xpW1VRlPnC9J7oeV0MCAwEAAQJBAKaTA1Z85qGU955TKdBt
+dCwf0MYNMmZ+FtTBzd44GmU21IANx4iyXZ1pTqXwiipVPObqpaAWgjzCvwq4fl5b
+T3ECIQD0lmJDjnMUxZ2Kd+K/v8g0nYH8zYhQyv+15eXb2RRtGQIhANhmg3oe00jN
+/iCrA0SvMRwqJR4sjfbyoY12EWE1Npa7AiA+mfcQn3cpC+Nku4aX2XherynEEL8h
+HrQQVIVendMykQIgSqW6LtMZUSD1y7ESNIw2ZZ/IJAt8gTYbMmALCLxBc2cCIQDA
+n1aZ1vhvKQkzdrArT6JbHh6gwFHkePfNvQNNRaMa3g==
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/match_13_unconstrained.0.2.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOgIBAAJBALt0xdr3/P4nNZ0x9fpa1uihMHIIDsbiDF9iTUbXlO1uX+EoipHa
+jPVO2+iSnjT0bgvJOSXpCvQqqTtVTUR5qMkCAwEAAQJAJ7N7k/yhoFI9kKVcK0HB
+8lLxJ7V9K7IEXM88/pv59q7k43efnQ27PuMAukavTANjVSfrjiaONqSjaoPfH+zl
+gQIhAN14npYENQ9j84ESzO7MsMREXcsx41PUpPczmefxmA9VAiEA2K6KyKUCJYrl
+nd+FeMOMaumXYuwpyOF/m54/IMpSq6UCIQCML0xacsFPQ5ofilHzmdcN9KRV+PcG
+2iOtYZk6yp7QnQIgUsTJir9NRJ37/ARH7ct0tdoo08a2Z1+L6RvXrWTbk2kCIDdV
+ZKRtud1Ke6HKMMLwqJNmgDj70B3t09znoW10D1rm
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/mismatch_01_empty_devs.0.0.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOgIBAAJBAMc/rtSs+BFkRp1dQR+HSSEg8+HIagFPyv6o2PYiDBcTYyIkMuSt
+4/sUuiZzca35MB/It6Fx/ZNISUUsRZ55z4ECAwEAAQJBAIESGdkfa1so0C2keUlJ
+Q/A3/oRmZXUQEXnCOznGeHqBKTmEzutI6gjEXvr2KtPHDlbS12Sxl3AUwm0x7Pa7
+biECIQDyxBF57pJasiM54H9FgffID5B/juwN84TWKGpH7be5BQIhANIcTyQaUzjP
+SmK3y1mv5UUBXdI3J+cNIqxZkyYHDtVNAiBvvDae/GN4Qw1bkiyB/XPiLOfBDjMv
+qKm3OBrSyGMLUQIgMKg/p6O1DB3tIwlfPUjftmhHmuwNAJPpKLKhwhe2Vq0CIEgD
+jc6/fRqVyHRssDKW/h/X9lmfZnEH8ZQvtYhagKaN
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/mismatch_02_empty_sids.0.0.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOQIBAAJBALE1y0TEEqts+QSQ9lC02TusB096kE0k8HU9OkxEfNuHDA71eQDO
+RaykQXNxjmYEoxi5/XQAmpecByadw0IMqKUCAwEAAQJAAOaCEuZgJejW1xQZfE1+
+8ROtsdSwmQPACQh3nF2YuNDTrkfrfdmjuo8jW7SyHwzE3VyvGEDIpYC23f/xaHlZ
+IQIhAOUM2G9wiFgDz2hyP7y5UgxlOxw2IO022t1PL7OE9qN5AiEAxg99Tu32TNWF
+ul+2Lh9UGIW3auZT1qvRBe3ewcW6140CIHJ97EYwEwcjyG4mBbQZUmj9xQFCEU1h
+yR8ssORkR0DJAiAfYO7aZWsDK0T/jRBg6Ee7htvTTOB1f00jYldLXddHNQIgWjAw
+CartQgZDwNOCe7bi24H5oOq/dWkCsOAZB9gIt2Y=
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/mismatch_03_empty_sids.0.0.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBPAIBAAJBAKEvU7s8GV9hZTmdyPN5irhu3auk7MuU4FRTXBTeuCRRcpKS1OUJ
+XNtnbmKxpwf0D+YWJYVCHgOdoXI3BRuS4FkCAwEAAQJBAJGXiz1bmtuBwQpbEJGE
+Hp5bXhVVoqJ9NmhU557eUlxSWh40xnuR4COcefVqNJeKCWkkc16NfyGndnGQyOdL
+lIECIQDUmLdiNlyxmKbFxO8wNWYmsM5/Kxc0uyWoeh6mY2090QIhAMIXmPoNUMlj
+Qwc4bje6foLwx5tEtbaSpRyYNvoiaXQJAiBY5J5RT5/ElqqtKSJGSx2ycd12KQNk
+BhjB8IYeVpaX8QIhAIAERHgZNEHAYMNwavIC5dLDsUQuC5SCILk9hHVzIQ7RAiEA
+nxtor6t1in8hC5wz8hiiMZdniOUMoZDEpufuYqW+cjk=
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/mismatch_04_empty_caps.0.0.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOwIBAAJBAL0uLcrsqs0nnDVOqYfMBVIcSUGZl7tfd/I8jKVXqP7hJojLQJ8h
+b0j/kG2uiezR0j6woBCfAdmrIQGMEkp+DcsCAwEAAQJAI7gSYVwqK64s6ku96qv0
+3ToGAuLTKUevSAdyrs1MVUMubp8WLHEJ3lMpM5fq6HwI5p+gqktC8fCgnol8YZCp
+QQIhAOTd8vUDMHDWBiEzpbjn88z5+I/yAS71mPYGPC5PS3A7AiEA05vAkeCPlfwz
+ad+aNIXHW9DPlHHzkqYY0WrnZPkmD7ECIQCGzhyvKIO90rKll9BDS4yU7Z/02WzN
+BihksWN9O4OJxQIhANBfhC5h+iKQmbQ86qWjwp+ILJCZ8WdMRg4Z/kgxC6jRAiBS
+MrfIpAntgWHygC3u2UOEG8lmbMEwZVwV7sA6TGDRCw==
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/mismatch_05_bad_single_dev.0.0.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOQIBAAJBAKX3k0Ty5Bg39SLzIXXBb8Pfc17FNpchl9R4d7001kM2lOiEUSux
+7BP1lr247xhm6VeQDwKHpZNYTBBclTl3j2UCAwEAAQJAYhp1B/WXVKWHFpCm/6dG
+/H5SAPwMJ8uopuRKyyG3YWSnGMyU9eFRfQDWmlYEfLZYFO/whF3CVwRH0blUDxei
+ZQIhANmIVIeRgVVliDczHEQm6Kye64+ZwLhaFBM7v8yRQtxrAiEAw1DiR6+m3Ky0
++G45oUHfDqIHWvL5pcNB6rGRR7gdN28CIE0PLmKX+Oj3frmPMYQzBFmiMnA8Vzj3
+MAVgNSGSk8zhAiAm7ANrzbEu4KvfpfeODxZoUBmvIiRlyBdmsaQF6sbHuQIgUcib
+1V7PJ3Vh1S84y/JVIEdDkKcmPBzce/JcBiG5qLE=
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/mismatch_06_bad_single_sid.0.0.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOgIBAAJBAK1W7TtsqCljPy8H1pJtpyY/Qadq+7jInJQCPIRCkR8nC+4lHQ/y
+aXG/wTAZUpy7IPloyJrN5+JzemZT8tyA5uMCAwEAAQJAMA+JCU/wNEGDVEvtD359
+uNoTHxNHpg1hdJxGITm/uQ4KcTRSDKeIHgmtkAZhZGqveBbM48CgfZYSdM3C0iDj
++QIhAOBtEYbG+0cLcBeUK8jukuDaSr3ZZVI6+PuK8SfBt23PAiEAxbntLbUSSTDn
+rotRiAGzQxyJDsNNnbIX3Lcs+yXHrq0CIQCkh5Fny40AIqSExL3syuqnKaHN2Qjs
+5gsO7mepi90cBQIgQb/298kLoJ0LncYkQYbXNozpoqgdSkAroTCkW4uPoC0CIESQ
+SRz7yI0mJG1BoiUO14l4XBCwtNPaxNn0SdYexG8z
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/mismatch_07_bad_single_vid.0.0.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOwIBAAJBANepZM8YLIKMlE24OCE4/Hr8DCKPPCacBpcfWdB6Q1mZ+klq8pzl
+7zed2hbN32PVJ3Fjd5jKA6IgYkYG7iHmsfMCAwEAAQJAVsq2Zl39M8DtwmV8OWqc
+ucYMADCS7ZrnUBRu6eb6iekf3OUev64JvSZhJjdQSRFGfKiisTB9pSQbSYHkfQTo
+gQIhAO2/vvFWe5fKXtx27QES9oMCcbkvgdO8GmeLaqs9XW/BAiEA6DeWSTqQ9VCm
+ivg1rQ2tnu49Swunkjc/NmV+zZq1DrMCIQCu5EjAHBBa/uF9aHa8PYjdouSph4sH
+iO4bkXFsen3LgQIhANoHnw6gc4wxLj2a8OLLzfFEJL56cdqCDtLnFti64jarAiAb
++y50VMDNXqDUMd5Cx+zNKYEGWyPhs+u/blqQRiqaOA==
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/mismatch_08_all_caps.0.0.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOgIBAAJBAOofeVWNb7btsemQyMi2get/N+UxwccavDP/4J0vhF3Hmoj8/2ou
+LW7OrV8+l+vI0gaeGa+r1sHhjDmNzOwJgzECAwEAAQJBAJq4PgkJtSAgqQh/hBEQ
+e39TzW6LmVGpG2MJ4DhAZKtLr8wqMNJzkPRyjS4WQHfYwqI55ntPQRF1PMyS8TWH
+rNkCIQD91J1xNxJwBfLQoiy5eYvdTLJtk2/Fy+rkCshhl6Dv4wIhAOwfvQxATJQ7
+/4rhiAw1KOE58m4fJ/qW/2FA2SCdDETbAiAjw5tTYmEUq6Hkx5TppTiRu8bALa/n
+/K1h6CsHpSel5QIgSKgDfe+TINHNciivukHpUFSKWoRPwvYPoxdXOIfarJ0CIGu2
+BrbiqyyJK6GeYHmzNJrKd8C1rtIzwquaqqLVoXPk
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/mismatch_08_system_caps.0.1.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOwIBAAJBAO0NCbbrEm0bHRLzx9bPlwRqn+gMHdCrcZyeBGNUEqn0vAXxcXZU
+h3SxoHXP3ETs1qcMOzrQH3U/Ta5LBNaDgWUCAwEAAQJBAMaO6Dc2mh2X23eXiSmu
+gpGpej3VgFfcc3K7jXNh5axC/TyUYsNdqnXcE8iAwu34HhMIVDtf4/80i4vW5r5e
+5WECIQD76EQiJ0HNSZoev+qJhlHShpyeRPTEnvqu0QOAg7CuuQIhAPDm+y2vw1n6
+Q1StdQLpiEhogMcuEcoe0vk2VJq+frINAiB8q/hEeu9bHWk0fMEj7SFDszGCNxh4
+00G4EWPNT9+6qQIgelH+hkMx4TUnDQ8KVBE6ZvHROdHVrJicLXh92xkRAd0CIQDK
+idIQKCBbDoqsaKJ86Hd9/wKHp7lD0Arei7Auzo2xqQ==
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/mismatch_09_user_caps.0.0.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOQIBAAJBAKy+hM/JMjrqgDql2PaECatlfq+eDEfvwIpGJgqsmHL7wF1n15ec
+7PtbVOncZCsRvRdEBMwgmXj/S6bS4e04l48CAwEAAQJAcHkv4laexOuQiB8Z8BAy
+d42C+fePCXuaQq2/8S1FqX8dU/8C2XP7vOA+vvgNIYkm9i6Y9pk3NR5fuWUrJjXW
+EQIhANmrAcM9twxDVxfsKNngHhmaN8MziycM/QYV2O5Hjvi3AiEAyyo9lBr7vQqR
+emlX9wQmtV1ZiJRjnf/dylcYSxwmj+kCIGnDcePQRPUsc1EoauESyQ1fpeCvVtnu
+sbMXQoTlOE8ZAiA85+HkB57WUlfAidosHFt6XYzczBd9I1qbMTcANWU+GQIgKVFQ
+8iuZx7qYg+Qn7y4izyaI0J+bUuFsxzLdjSC1UY4=
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/mismatch_10_unconstrained.0.0.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOgIBAAJBALrZqwNBfjfBnhaKKie6rWQv3YPbnYqz8vp8NNiG4DtjcBN4f420
+nT0EqN8elZQzOlfE+f1FCC0yODTnvys892kCAwEAAQJAcybUOsRxCeGcEN4DTsrA
+Mx9AkBOXirSNyQsk8lBk/pOjEvUMxz/V4zRcZZ7Tx8N/9dGxUamq9yt3AZy+FfS7
+JQIhAN3rjPfdSguGCNS8wd7dvL1m6D76ZD4p62VfrXcGhhu/AiEA14tmWaBZ2qTI
+4ilAI0qbh/ry4dgYIBa4Us3M+o0W1tcCIQCNyUF329rDIg/iW/dB/UnpeSZJlpEV
+ZpMPYeHiejiU4QIgGU7d2qIwSrLUf3GWfU5SSroVcJ0d4A6q39YYPkb4qosCIDUR
+j28lCKZgId9h373OGo4GX4rESeor86o/qLarJTKM
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/mismatch_10_unconstrained.0.2.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOwIBAAJBALWL+caaw0RbaZD7k+KWoyFTs7oZ8+fjYytRXVU3lKlxuio4aEPE
+7E4RZ9IhD3VI8JumclKt2DVfQgHsfvn+950CAwEAAQJBAJ7Ogv+oAYeaLw4UA5kC
+DFDq1xzD9wexcN5DnlEc/X359IOQlQPjwHpN3sXuPscKPNcXp+sFXhBSGOiR8V+X
+2kECIQDdWLGH95j4Iqh6joyvkMzHWTzwsHjOA4pR166qnJtbewIhANH4KGIHL0rY
+ZOKZ5xdG+OSXanCLpD6cyhuzchXgUCHHAiEAxlG0Zs2J6jErYPudw6PqRmaHOmPz
+KSp04RVtMwI0FEcCIAv51YPR2RaxxP9Pu+iN+cBACqgkrteLZdOypn0s8CUdAiB8
+RGbMfR6O8G5tW0rlHuPQlePyyosIKLwD86v+Q/iavA==
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/mismatch_10_user_caps.0.1.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOgIBAAJBANjmt2PHYaDOkGVqnjnNqsBNd4P0gkj8hcvDoApuNqMnJu3YEwAd
+OJxY0/Pbo+BF6vnSTIGKkASHvEKsIXPrAYsCAwEAAQJAAaAA4bt9rMG/bTMWSmKT
+E+vAqHltfHR/4B3wFgPrXt+Jrgt86U3mhbHB82atv5zhG7Xc1u8ivHmtUl0qVc+e
+4QIhAPyTSwAKFq/ZBCCniOGFoZIbK+GTzDC6vlg3taY7q/WRAiEA29eYkT6YnMlx
+CkljXZMlRlBTwIqxgmyBBiwT1fP3x1sCIBpkSbH3W+eEBapj1ym5jOh3bl5j0zJE
+UR9mstRr58wBAiEAxp8sNZXTdlw9qCiUAPgvxi5O7Peh1w9HJxdtuHEanV8CICa8
+AOa24j1W86uKM4v6/rbtYQQysyRC6HSFtOgEnCGk
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/ocsp_02_single_sid1.0.0.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOgIBAAJBALG8p2A2NtxQt4MlQeY6Eal9qsqb4YsyTKfFV5yYvwacCzSTf2n/
+XWJL+uuNprTdgMeudDDAN0JTiMBnJD1l7Q8CAwEAAQJAdmXutYfH6eGXLbS+/mfG
+ZjrBcDCBAaHjMIukPjv+XJ6v09BLr4yPyqK7Hkx1sPKHq6zCGjohxMqlmpfabx88
+iQIhAN99kd/pRw0f7EF1i2x521DjoWR7CrO+fJlNlRuhMJRlAiEAy5dLLsO2qGv4
+JWXBp4H0Wbv/hF8+mxCZlEB4amQIwmMCIQDNRuVKKVbds0iqB3F8vaC4d5yyUmHO
+H1UK6rvemPuqEQIgKtUdwCz01OJCRrvtziwNGIPw8gyHw1/ur74Ql3GMVjkCIH9o
++nq04hSD2yO2XOLY68ytDafz0FV4hvTkyV0oFbM8
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/keys/ocsp_03_comb1.0.0.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOQIBAAJBAMe/fkXKQr4bBhWV+cufNEVTCcjqQ79ADZFVsYjQ1Pi/AvsvDpMl
+8u3b3y/14bYrRKuifpo1RyB4dCYDzWa7y1kCAwEAAQJAPsI0u1q8M5ysAbY4YLip
+pKpdZantFTbbzHD/MbxjXa+fS2/M1+7eQXPkcuG4qI1j1eOv74/pVBBiUeXvIncn
+AQIhAPlB4mHwZgSUgVSpHTeUwAVV9n4gZ6bmRFnc5cCf+RF5AiEAzSbBTR6ITiA8
+hH/ug698X+3z1vXO26sCGzobqZWC8OECIF64q9f+LDanXLKYhbLeg05DyaVKmTky
+nlzr9h+Ka3M5AiA1pbbS5fMbCw8ITzQeN5u8sksboXgQta19VTq6pCBzwQIgMDgi
+bI7mehP7TBY+fdFCy04J1RYJJfOY5UUq7TdDKxs=
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/ocsp/revoked_user_caps.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,43 @@
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 1 (0x1)
+        Signature Algorithm: md5WithRSAEncryption
+        Issuer: O=Symbian Software Ltd, CN=Symbian Test - RSA
+        Validity
+            Not Before: Mar 21 15:34:46 2005 GMT
+            Not After : Mar 19 15:34:46 2015 GMT
+        Subject: O=Symbian, CN=Test
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+            RSA Public Key: (512 bit)
+                Modulus (512 bit):
+                    00:d0:23:55:f9:ab:49:9f:ec:2d:36:61:5d:03:87:
+                    36:84:2d:60:55:99:b6:25:3d:9b:06:6f:a7:21:91:
+                    6b:93:52:74:21:fd:a4:db:85:b9:03:b3:f5:72:6b:
+                    92:e8:b1:05:b4:58:02:3e:80:9c:2f:c6:4d:7f:8d:
+                    8e:cf:70:f7:2d
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            1.2.826.0.1.1796587.1.1.1.6: 
+                ......
+    Signature Algorithm: md5WithRSAEncryption
+        60:2b:31:ff:00:c5:48:1a:60:b5:8b:0b:8b:ac:02:7c:4e:25:
+        10:e5:1e:6b:d7:47:67:df:18:42:18:af:41:d9:44:8a:d5:d5:
+        e1:a8:79:21:61:95:17:b2:0d:85:a3:9f:1b:d3:8f:37:21:69:
+        5f:b5:10:a9:6b:4e:fc:62:5e:50:0f:54:b2:58:ae:f1:28:d2:
+        b4:49:30:4b:0b:f9:4b:65:8c:92:70:fe:f2:4e:48:48:19:f5:
+        22:76:35:15:b6:8e:76:55:9f:68:00:c7:a4:6b:08:a3:ae:a9:
+        d6:fc:c1:fb:cf:bf:86:93:a7:a9:91:01:5e:2d:80:23:aa:1f:
+        00:21
+-----BEGIN CERTIFICATE-----
+MIIBqTCCARKgAwIBAgIBATANBgkqhkiG9w0BAQQFADA8MR0wGwYDVQQKExRTeW1i
+aWFuIFNvZnR3YXJlIEx0ZDEbMBkGA1UEAxMSU3ltYmlhbiBUZXN0IC0gUlNBMB4X
+DTA1MDMyMTE1MzQ0NloXDTE1MDMxOTE1MzQ0NlowITEQMA4GA1UEChMHU3ltYmlh
+bjENMAsGA1UEAxMEVGVzdDBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQDQI1X5q0mf
+7C02YV0DhzaELWBVmbYlPZsGb6chkWuTUnQh/aTbhbkDs/Vya5LosQW0WAI+gJwv
+xk1/jY7PcPctAgMBAAGjGjAYMBYGDCqGOgAB7dNrAQEBBgQGAwQHAAOAMA0GCSqG
+SIb3DQEBBAUAA4GBAGArMf8AxUgaYLWLC4usAnxOJRDlHmvXR2ffGEIYr0HZRIrV
+1eGoeSFhlReyDYWjnxvTjzchaV+1EKlrTvxiXlAPVLJYrvEo0rRJMEsL+UtljJJw
+/vJOSEgZ9SJ2NRW2jnZVn2gAx6RrCKOuqdb8wfvPv4aTp6mRAV4tgCOqHwAh
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tdevcerts/ocsp/revoked_user_caps.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOwIBAAJBANAjVfmrSZ/sLTZhXQOHNoQtYFWZtiU9mwZvpyGRa5NSdCH9pNuF
+uQOz9XJrkuixBbRYAj6AnC/GTX+Njs9w9y0CAwEAAQJACU77Ql5BvbA/WWZDVawP
+aRvqagmk1seJjmEh9WNej0kVEEoODIIkddHEt2G0ADj/MGPG9PXsZLwkAP/TY1Ex
+YQIhAPRbGJ8kDKD1cIJY40P7DveGjWoNi/wWpr+5+yn1lbpFAiEA2g5q423qB7ne
+9ZNs79GvCI4h/meODgElFEQ7oRrJy8kCIQDoS0mG0CBpS6qfX5z9XUgHK5R4A1TW
+Wzo9/bG1W8/w+QIhAIuqumoLx9/E/Ps8v4ToQH1xVHK373Qm5ZISlkL9fo2JAiBm
++HD+I6C+h9GpPgAY03Hgos6mhZKeMIHe5s+GyS9wJw==
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/testexes/certs/default.cer	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDBDCCAsSgAwIBAgIBADAJBgcqhkjOOAQDMGkxCzAJBgNVBAYTAkdCMRkwFwYD
+VQQKExBTeW1iaWFuIFNvZnR3YXJlMRkwFwYDVQQLExBDb3JlIERldmVsb3BtZW50
+MSQwIgYDVQQDExtEZWZhdWx0IFNpZ25pbmcgQ2VydGlmaWNhdGUwHhcNMDYwMjAy
+MTExNTI0WhcNMTYwMjAyMTExNTI0WjBpMQswCQYDVQQGEwJHQjEZMBcGA1UEChMQ
+U3ltYmlhbiBTb2Z0d2FyZTEZMBcGA1UECxMQQ29yZSBEZXZlbG9wbWVudDEkMCIG
+A1UEAxMbRGVmYXVsdCBTaWduaW5nIENlcnRpZmljYXRlMIIBtzCCASsGByqGSM44
+BAEwggEeAoGBALnfndoLyYr7KxvNenPJnEHXjw2/5A2sSgPqAS9Fa4za5O56V0Y8
+z5QcxL7PgzbhPPnPuzuxt2dZKKdWdCcls5YdB0acanKoMEgT6NmNxUxhSwvDlQBT
+dEujcdULpEZI+y/lTJLJZrh8Ak6e7FeXJEPMska56oeamvvyp2Dfz7y7AhUA7HTW
+0hQzOLdU0EoVF8LoFfp4CH0CgYBwo0ieIVUa35CUbpgkpG0EBJQbW3rSOvr1ATSZ
+qwzamHyqeVNqfv1ZMerpeikowFejifFFy7LJfgizgWlK2Z2Vw5Mp2900VJWIdvYZ
+g+QeLFqitMqjvhmhVgJYYWIjHj/w4QB6prEBW92ZfbRjW82g6WgfNQm7eY0XiJv0
+vBLf/AOBhQACgYEAg+0/wVe+LY9ZEB4HOL8y9Jl3vA7P8cqHPpr8ZuDgrAjVsXAk
+kjnvI/e86jUDUKnlWj/of+xCBwpTa/PYvdWHndBbRLm2XPgz3aFZLqgz7oMMUJwH
+f2qeqatOLfjY2SfgQwcqzY4T4Sbj/U7D89oLCCm3qizfn2MfIagivB5B9oYwCQYH
+KoZIzjgEAwMvADAsAhRCrW9kWjeAzf+NT2h2Ru+iMRqYkgIUVJghz8UIi17lFGod
+pBqu3ZY+1+I=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/testexes/certs/signing.cer	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICaTCCAdICAQIwDQYJKoZIhvcNAQEEBQAwMzEdMBsGA1UEChMUU3ltYmlhbiBT
+b2Z0d2FyZSBMdGQxEjAQBgNVBAMTCVJvb3Q1LVJTQTAeFw0wNDA5MDEwOTM3MzZa
+Fw0xNDA4MzAwOTM3MzZaMHYxCzAJBgNVBAYTAlVLMQ8wDQYDVQQHEwZMb25kb24x
+GDAWBgNVBAMTD0pvaGFuIEdyb3RoIERTQTEUMBIGA1UEChMLU3ltYmlhbiBMdGQx
+JjAkBgkqhkiG9w0BCQEWF2pvaGFuLmdyb3RoQHN5bWJpYW4uY29tMIHwMIGoBgcq
+hkjOOAQBMIGcAkEAoZlsMI7fbUusygPAuy5rVKeYjHlFFBAI3Fm4/vRvz6AIXG/t
+i8PRr/di3HmpKzf4+nrpfrMDsHVEBZJvs12NKwIVALrQ4ij0GHpmhKPsUcL5Ur0M
+bUrlAkAwaCcVcQMsoYnZ7WGomaNH4XqkJ/Eo4ODM51syfG1u0ALTHqUvnX8EvhaK
+KAiRKTTvlWcEyUE1ViUpemt+Sv4MA0MAAkBuSEJNaOv4REzZSUPbUetl6e/886Dz
+l/PsC+2D9j583shY81TX1xtjQyuII/WTsZEc+HBvhHjnPDI5xzZNDbPsMA0GCSqG
+SIb3DQEBBAUAA4GBAHAPL48ztI+jfpNr+eQA/VOUg6ChgsoUQu2TVFo9tew/Cfrt
+ViqozDiVU4YGeGGNrTI19r9mTuI4xEbHwANxArNBtZvlN+Peu/ynqcYOcOV+RvV0
+cNeiKaguT71nzJJxlN/S+IX8+32LDvk/5FS2vJ5abaVc+WEV2/wZn4bPWqS/
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev1/SymbianTestRootCARSATRev/certs/01.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,40 @@
+Certificate:
+    Data:
+        Version: 1 (0x0)
+        Serial Number: 1 (0x1)
+        Signature Algorithm: md5WithRSAEncryption
+        Issuer: O=Symbian Software Ltd, CN=Symbian Test - RSA
+        Validity
+            Not Before: May 12 10:18:43 2005 GMT
+            Not After : May 10 10:18:43 2015 GMT
+        Subject: O=Symbian, CN=certTrev1
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+            RSA Public Key: (512 bit)
+                Modulus (512 bit):
+                    00:c4:40:88:bb:5e:38:6e:36:4e:21:a6:07:a3:d7:
+                    db:68:6a:f1:43:36:35:eb:c7:44:2e:b0:d9:f6:f0:
+                    47:b6:c9:20:5b:39:11:49:dd:79:25:ee:39:74:8d:
+                    50:30:3d:82:89:11:f1:3e:13:83:7b:47:dc:4c:ff:
+                    63:14:5f:1d:c3
+                Exponent: 65537 (0x10001)
+    Signature Algorithm: md5WithRSAEncryption
+        9b:f1:63:21:ec:54:72:6f:6c:d0:4f:6a:6b:ef:b3:e4:ec:b4:
+        d9:be:30:10:b5:7e:89:5c:1a:28:0a:ba:49:eb:3b:81:f3:ed:
+        52:4d:89:6b:e3:16:67:22:f9:78:4c:9c:99:d4:83:4b:ef:2b:
+        8b:73:b9:85:d1:27:fa:15:2e:5e:ce:f2:7e:6d:ec:68:1d:e5:
+        99:fc:6d:17:12:03:c9:e2:61:a2:02:75:05:f7:8a:77:05:ec:
+        c8:42:7e:60:6f:23:ea:25:ff:99:bc:7c:39:3b:42:46:a2:21:
+        77:2f:10:66:d1:df:b4:f1:9d:5d:60:e9:12:5a:64:60:ba:1f:
+        50:b0
+-----BEGIN CERTIFICATE-----
+MIIBjDCB9gIBATANBgkqhkiG9w0BAQQFADA8MR0wGwYDVQQKExRTeW1iaWFuIFNv
+ZnR3YXJlIEx0ZDEbMBkGA1UEAxMSU3ltYmlhbiBUZXN0IC0gUlNBMB4XDTA1MDUx
+MjEwMTg0M1oXDTE1MDUxMDEwMTg0M1owJjEQMA4GA1UEChMHU3ltYmlhbjESMBAG
+A1UEAxMJY2VydFRyZXYxMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAMRAiLteOG42
+TiGmB6PX22hq8UM2NevHRC6w2fbwR7bJIFs5EUndeSXuOXSNUDA9gokR8T4Tg3tH
+3Ez/YxRfHcMCAwEAATANBgkqhkiG9w0BAQQFAAOBgQCb8WMh7FRyb2zQT2pr77Pk
+7LTZvjAQtX6JXBooCrpJ6zuB8+1STYlr4xZnIvl4TJyZ1INL7yuLc7mF0Sf6FS5e
+zvJ+bexoHeWZ/G0XEgPJ4mGiAnUF94p3BezIQn5gbyPqJf+ZvHw5O0JGoiF3LxBm
+0d+08Z1dYOkSWmRguh9QsA==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev1/SymbianTestRootCARSATRev/certs/02.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,40 @@
+Certificate:
+    Data:
+        Version: 1 (0x0)
+        Serial Number: 2 (0x2)
+        Signature Algorithm: md5WithRSAEncryption
+        Issuer: O=Symbian Software Ltd, CN=Symbian Test - RSA
+        Validity
+            Not Before: May 12 10:18:43 2005 GMT
+            Not After : May 10 10:18:43 2015 GMT
+        Subject: O=Symbian, CN=certTrev2
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+            RSA Public Key: (512 bit)
+                Modulus (512 bit):
+                    00:c7:7d:76:75:e8:6e:87:97:a3:1c:16:4e:55:c2:
+                    19:77:e0:73:8c:af:2b:07:a1:69:b9:c2:f4:a1:34:
+                    54:93:5e:5a:5a:e9:cd:66:ef:1d:ee:48:5e:74:cb:
+                    a3:1b:5e:74:4d:05:8f:8b:f6:5e:1c:95:72:2b:c6:
+                    7f:58:25:dd:f9
+                Exponent: 65537 (0x10001)
+    Signature Algorithm: md5WithRSAEncryption
+        70:81:71:f5:6a:55:62:cb:e4:62:2f:65:a6:6a:3d:a9:ad:20:
+        55:14:27:ea:10:ae:42:b3:d7:7a:ed:33:24:b8:6f:ae:64:09:
+        c3:a3:8b:b5:80:89:39:b8:1f:c2:b5:d6:e9:fc:dd:60:df:a4:
+        dc:2d:2e:e2:04:ec:15:0f:4c:6f:e1:fd:82:8f:4b:71:10:32:
+        63:56:f1:7b:d2:53:98:71:fb:99:79:5b:69:c0:40:07:65:d7:
+        81:67:d6:ba:b3:5f:19:74:1a:54:2e:6d:5c:c8:82:f4:aa:a0:
+        a0:be:e8:bb:fd:15:85:8c:1c:bc:54:aa:c4:d8:fe:73:77:67:
+        b9:69
+-----BEGIN CERTIFICATE-----
+MIIBjDCB9gIBAjANBgkqhkiG9w0BAQQFADA8MR0wGwYDVQQKExRTeW1iaWFuIFNv
+ZnR3YXJlIEx0ZDEbMBkGA1UEAxMSU3ltYmlhbiBUZXN0IC0gUlNBMB4XDTA1MDUx
+MjEwMTg0M1oXDTE1MDUxMDEwMTg0M1owJjEQMA4GA1UEChMHU3ltYmlhbjESMBAG
+A1UEAxMJY2VydFRyZXYyMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAMd9dnXoboeX
+oxwWTlXCGXfgc4yvKwehabnC9KE0VJNeWlrpzWbvHe5IXnTLoxtedE0Fj4v2XhyV
+civGf1gl3fkCAwEAATANBgkqhkiG9w0BAQQFAAOBgQBwgXH1alViy+RiL2Wmaj2p
+rSBVFCfqEK5Cs9d67TMkuG+uZAnDo4u1gIk5uB/Ctdbp/N1g36TcLS7iBOwVD0xv
+4f2Cj0txEDJjVvF70lOYcfuZeVtpwEAHZdeBZ9a6s18ZdBpULm1cyIL0qqCgvui7
+/RWFjBy8VKrE2P5zd2e5aQ==
+-----END CERTIFICATE-----
Binary file installationservices/switestfw/testcertificates/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev1/SymbianTestRootCARSATRev/certs/certTrev1.cert.der has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev1/SymbianTestRootCARSATRev/certs/certTrev1.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,40 @@
+Certificate:
+    Data:
+        Version: 1 (0x0)
+        Serial Number: 1 (0x1)
+        Signature Algorithm: md5WithRSAEncryption
+        Issuer: O=Symbian Software Ltd, CN=Symbian Test - RSA
+        Validity
+            Not Before: May 12 10:18:43 2005 GMT
+            Not After : May 10 10:18:43 2015 GMT
+        Subject: O=Symbian, CN=certTrev1
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+            RSA Public Key: (512 bit)
+                Modulus (512 bit):
+                    00:c4:40:88:bb:5e:38:6e:36:4e:21:a6:07:a3:d7:
+                    db:68:6a:f1:43:36:35:eb:c7:44:2e:b0:d9:f6:f0:
+                    47:b6:c9:20:5b:39:11:49:dd:79:25:ee:39:74:8d:
+                    50:30:3d:82:89:11:f1:3e:13:83:7b:47:dc:4c:ff:
+                    63:14:5f:1d:c3
+                Exponent: 65537 (0x10001)
+    Signature Algorithm: md5WithRSAEncryption
+        9b:f1:63:21:ec:54:72:6f:6c:d0:4f:6a:6b:ef:b3:e4:ec:b4:
+        d9:be:30:10:b5:7e:89:5c:1a:28:0a:ba:49:eb:3b:81:f3:ed:
+        52:4d:89:6b:e3:16:67:22:f9:78:4c:9c:99:d4:83:4b:ef:2b:
+        8b:73:b9:85:d1:27:fa:15:2e:5e:ce:f2:7e:6d:ec:68:1d:e5:
+        99:fc:6d:17:12:03:c9:e2:61:a2:02:75:05:f7:8a:77:05:ec:
+        c8:42:7e:60:6f:23:ea:25:ff:99:bc:7c:39:3b:42:46:a2:21:
+        77:2f:10:66:d1:df:b4:f1:9d:5d:60:e9:12:5a:64:60:ba:1f:
+        50:b0
+-----BEGIN CERTIFICATE-----
+MIIBjDCB9gIBATANBgkqhkiG9w0BAQQFADA8MR0wGwYDVQQKExRTeW1iaWFuIFNv
+ZnR3YXJlIEx0ZDEbMBkGA1UEAxMSU3ltYmlhbiBUZXN0IC0gUlNBMB4XDTA1MDUx
+MjEwMTg0M1oXDTE1MDUxMDEwMTg0M1owJjEQMA4GA1UEChMHU3ltYmlhbjESMBAG
+A1UEAxMJY2VydFRyZXYxMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAMRAiLteOG42
+TiGmB6PX22hq8UM2NevHRC6w2fbwR7bJIFs5EUndeSXuOXSNUDA9gokR8T4Tg3tH
+3Ez/YxRfHcMCAwEAATANBgkqhkiG9w0BAQQFAAOBgQCb8WMh7FRyb2zQT2pr77Pk
+7LTZvjAQtX6JXBooCrpJ6zuB8+1STYlr4xZnIvl4TJyZ1INL7yuLc7mF0Sf6FS5e
+zvJ+bexoHeWZ/G0XEgPJ4mGiAnUF94p3BezIQn5gbyPqJf+ZvHw5O0JGoiF3LxBm
+0d+08Z1dYOkSWmRguh9QsA==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev1/SymbianTestRootCARSATRev/certs/certTrev1.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOwIBAAJBAMRAiLteOG42TiGmB6PX22hq8UM2NevHRC6w2fbwR7bJIFs5EUnd
+eSXuOXSNUDA9gokR8T4Tg3tH3Ez/YxRfHcMCAwEAAQJBAKonoeWCfb7hCsEV6Q3f
+u/Y+sswplnrFHJK292SpVCRfm1doGBrt2QYEGyxLHnhSZA2w1WIsBser2g80RCWk
+jAECIQD20d4gbZEoleFaX6RvlgotLcfngGgG8WV4k4fXyvlSwwIhAMuNLaNGU3OI
+jrDRyddnsTf/7UKX3TPg5+MhKM/74FkBAiB97XOUPfKqr1Wrw1JlMDr+8/WjMotg
+x3bK/xJ20fNE+wIhAI/pdc3NR+0ULEZJXJol3r8H+7gsZKFsLqZ/6Dn8C6cBAiAI
+8WY2otPZNIbXQ7qDcj/UCFz02Cbx2guigKZWmmD3kQ==
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev1/SymbianTestRootCARSATRev/certs/certTrev1.req.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,8 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIIBADCBqwIBADBGMQswCQYDVQQGEwJVSzEQMA4GA1UEChMHU3ltYmlhbjERMA8G
+A1UECxMIU2VjdXJpdHkxEjAQBgNVBAMTCWNlcnRUcmV2MTBcMA0GCSqGSIb3DQEB
+AQUAA0sAMEgCQQDEQIi7XjhuNk4hpgej19toavFDNjXrx0QusNn28Ee2ySBbORFJ
+3Xkl7jl0jVAwPYKJEfE+E4N7R9xM/2MUXx3DAgMBAAGgADANBgkqhkiG9w0BAQQF
+AANBAAk3QvPIa2h0lEARrVaLYOa3Bv5OnsgXxM3kbiqSlGYA79TYi4ZJzA3GarfD
+tklnj/sVlrPmeOt5UHGss8Gr/Og=
+-----END CERTIFICATE REQUEST-----
Binary file installationservices/switestfw/testcertificates/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev1/SymbianTestRootCARSATRev/certs/certTrev2.cert.der has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev1/SymbianTestRootCARSATRev/certs/certTrev2.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,40 @@
+Certificate:
+    Data:
+        Version: 1 (0x0)
+        Serial Number: 2 (0x2)
+        Signature Algorithm: md5WithRSAEncryption
+        Issuer: O=Symbian Software Ltd, CN=Symbian Test - RSA
+        Validity
+            Not Before: May 12 10:18:43 2005 GMT
+            Not After : May 10 10:18:43 2015 GMT
+        Subject: O=Symbian, CN=certTrev2
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+            RSA Public Key: (512 bit)
+                Modulus (512 bit):
+                    00:c7:7d:76:75:e8:6e:87:97:a3:1c:16:4e:55:c2:
+                    19:77:e0:73:8c:af:2b:07:a1:69:b9:c2:f4:a1:34:
+                    54:93:5e:5a:5a:e9:cd:66:ef:1d:ee:48:5e:74:cb:
+                    a3:1b:5e:74:4d:05:8f:8b:f6:5e:1c:95:72:2b:c6:
+                    7f:58:25:dd:f9
+                Exponent: 65537 (0x10001)
+    Signature Algorithm: md5WithRSAEncryption
+        70:81:71:f5:6a:55:62:cb:e4:62:2f:65:a6:6a:3d:a9:ad:20:
+        55:14:27:ea:10:ae:42:b3:d7:7a:ed:33:24:b8:6f:ae:64:09:
+        c3:a3:8b:b5:80:89:39:b8:1f:c2:b5:d6:e9:fc:dd:60:df:a4:
+        dc:2d:2e:e2:04:ec:15:0f:4c:6f:e1:fd:82:8f:4b:71:10:32:
+        63:56:f1:7b:d2:53:98:71:fb:99:79:5b:69:c0:40:07:65:d7:
+        81:67:d6:ba:b3:5f:19:74:1a:54:2e:6d:5c:c8:82:f4:aa:a0:
+        a0:be:e8:bb:fd:15:85:8c:1c:bc:54:aa:c4:d8:fe:73:77:67:
+        b9:69
+-----BEGIN CERTIFICATE-----
+MIIBjDCB9gIBAjANBgkqhkiG9w0BAQQFADA8MR0wGwYDVQQKExRTeW1iaWFuIFNv
+ZnR3YXJlIEx0ZDEbMBkGA1UEAxMSU3ltYmlhbiBUZXN0IC0gUlNBMB4XDTA1MDUx
+MjEwMTg0M1oXDTE1MDUxMDEwMTg0M1owJjEQMA4GA1UEChMHU3ltYmlhbjESMBAG
+A1UEAxMJY2VydFRyZXYyMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAMd9dnXoboeX
+oxwWTlXCGXfgc4yvKwehabnC9KE0VJNeWlrpzWbvHe5IXnTLoxtedE0Fj4v2XhyV
+civGf1gl3fkCAwEAATANBgkqhkiG9w0BAQQFAAOBgQBwgXH1alViy+RiL2Wmaj2p
+rSBVFCfqEK5Cs9d67TMkuG+uZAnDo4u1gIk5uB/Ctdbp/N1g36TcLS7iBOwVD0xv
+4f2Cj0txEDJjVvF70lOYcfuZeVtpwEAHZdeBZ9a6s18ZdBpULm1cyIL0qqCgvui7
+/RWFjBy8VKrE2P5zd2e5aQ==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev1/SymbianTestRootCARSATRev/certs/certTrev2.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOgIBAAJBAMd9dnXoboeXoxwWTlXCGXfgc4yvKwehabnC9KE0VJNeWlrpzWbv
+He5IXnTLoxtedE0Fj4v2XhyVcivGf1gl3fkCAwEAAQJAJs6cVdGSduQjwdoBASPS
+KoTKVarZ1xEqbQ2k4xs3/La8nol/+A6zZ1NFNzoSWWNFKqcmadM84xfmWzp0y3vz
+AQIhAP3Q4pHukB2OGZ6dbjvuCmaEZ1g9bZILDK0Snt0wgs+hAiEAyTToHkM+/BP8
+TCuihuTtbxKliz3f/YTWgrs0SIn5T1kCIAQsyW1JFUnHKpi3UjbeJYGmL+T9ra23
+TNAT/FT7FUvBAiEAql+YZXe/r6gkrUMNnnfe7Xy2nM9KCdwf4Bcw0HO0nhECIGYT
+amV/8ie79ccsjNYsB5/TXIwmHp95BfgT+0W8ikBI
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev1/SymbianTestRootCARSATRev/certs/certTrev2.req.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,7 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIHtMIGYAgEAMDMxCzAJBgNVBAYTAlVLMRAwDgYDVQQKEwdTeW1iaWFuMRIwEAYD
+VQQDEwljZXJ0VHJldjIwXDANBgkqhkiG9w0BAQEFAANLADBIAkEAx312dehuh5ej
+HBZOVcIZd+BzjK8rB6FpucL0oTRUk15aWunNZu8d7khedMujG150TQWPi/ZeHJVy
+K8Z/WCXd+QIDAQABoAAwDQYJKoZIhvcNAQEEBQADQQBcWWJNdWAiwqWcdh1GnwEq
+knJImcEm4V88Ag8vf2Knru6o8wTOmsiETr4JgN26hQVr/bl8MvYAUhxrQWXcw7Ib
+-----END CERTIFICATE REQUEST-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev1/SymbianTestRootCARSATRev/private/ca.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICWwIBAAKBgQChVEG+fSTsN8df07UDBsxGUZO5B9egVtoT6Do3iD1W0LwAOuPs
+74LpQRMgRFWpuoicMlEMoaTIZ/GPi6yHhC7CPJELlvBW1TXgbvzMdhUvacDyUKHj
+YMgkIF4+t1OziH6cKAN2I0H/nWa1m54YmYyU2cNAI3aSkuIqBPv+0B/XgQIDAQAB
+AoGACVCcGyuOnjT6RgYrRWl3EfhT1zMkuBVLsiqOcfZj1EdpE3pS/rM1k9I2EH7h
+k1M54ArnsxsCMLAPuoIODCUNrgHoTKJtL8cU8Pa7ZALewSLfRDUqOJLi+W3Ups46
+6jvdqQkFRF2k9evJOyI7wMs1rG0c/MzBGC+5lRbOOWbfcYECQQDPLUO58npxgrup
+usp2LUdE/Vz/fsJOVCoyzJq29LMvTqmAWqPvU1YkoB+U1ZOtvxd8r6/vlUZvDx64
+y2m4htLdAkEAx1kOCcpLl+ElEDGV3z7F77JTh128DvczyOU3j639LvqTfQR3FHOP
++89RmP1axo/Qhh0tClkdif8ZV99iac6S9QJAdrDt/hfGwkUtkj2rRC0IiaPFpbJP
+S2S4kEXb1Tk3dsDQJvLGvJO35F+/+Bqr8nxpzkswtkeFBJda+G/A77B+GQJAWAT5
+TtdUo14U6F6Mh0MHULvTZ9y6cX0zD0wuSTGQrhKT1sqG7a/M7mlu5PdRAoVzlBQD
+1CLfCRRrE0KeCIvelQJAaSdqX9/vuiJOnGfL8SSXxfB3hXcJU0e2Lo252eeeQtux
+oMTb0/jADuN0nxfsU1yvxgX+1nsso8uwpFPiFwdPHQ==
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev1/SymbianTestRootCARSATRev/private/ca.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICRDCCAa2gAwIBAgIBADANBgkqhkiG9w0BAQQFADA8MR0wGwYDVQQKExRTeW1i
+aWFuIFNvZnR3YXJlIEx0ZDEbMBkGA1UEAxMSU3ltYmlhbiBUZXN0IC0gUlNBMB4X
+DTA0MDQxODE0MzYxNFoXDTIwMDkyMTE0MzYxNFowPDEdMBsGA1UEChMUU3ltYmlh
+biBTb2Z0d2FyZSBMdGQxGzAZBgNVBAMTElN5bWJpYW4gVGVzdCAtIFJTQTCBnzAN
+BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAoVRBvn0k7DfHX9O1AwbMRlGTuQfXoFba
+E+g6N4g9VtC8ADrj7O+C6UETIERVqbqInDJRDKGkyGfxj4ush4QuwjyRC5bwVtU1
+4G78zHYVL2nA8lCh42DIJCBePrdTs4h+nCgDdiNB/51mtZueGJmMlNnDQCN2kpLi
+KgT7/tAf14ECAwEAAaNWMFQwDgYDVR0PAQH/BAQDAgIEMBIGA1UdEwEB/wQIMAYB
+Af8CAQUwHQYDVR0OBBYEFOaTjrYQFlD8GQSM5KnKMYYmBZLWMA8GCSsGAQUFBzAB
+BQQCBQAwDQYJKoZIhvcNAQEEBQADgYEALXOi9zFgWw453UGQvw0HGNh6wemX2Ood
+pKceGDWyWFaQIxTA9dYVSqnhKWa728UklUi0CcRwp3leYHlvubkcSQANmRtM05PS
+kY2a2ENBf9afB/HNvOciFgGoHa494csZZ6ZS2GeKBxBOfajrjZrvQ3XDKptsRT1q
+50LsYyJhSg4=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev2/SymbianTestRootCARSATRev/certs/01.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,40 @@
+Certificate:
+    Data:
+        Version: 1 (0x0)
+        Serial Number: 1 (0x1)
+        Signature Algorithm: md5WithRSAEncryption
+        Issuer: O=Symbian Software Ltd, CN=Symbian Test - RSA
+        Validity
+            Not Before: May 12 10:18:43 2005 GMT
+            Not After : May 10 10:18:43 2015 GMT
+        Subject: O=Symbian, CN=certTrev1
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+            RSA Public Key: (512 bit)
+                Modulus (512 bit):
+                    00:c4:40:88:bb:5e:38:6e:36:4e:21:a6:07:a3:d7:
+                    db:68:6a:f1:43:36:35:eb:c7:44:2e:b0:d9:f6:f0:
+                    47:b6:c9:20:5b:39:11:49:dd:79:25:ee:39:74:8d:
+                    50:30:3d:82:89:11:f1:3e:13:83:7b:47:dc:4c:ff:
+                    63:14:5f:1d:c3
+                Exponent: 65537 (0x10001)
+    Signature Algorithm: md5WithRSAEncryption
+        9b:f1:63:21:ec:54:72:6f:6c:d0:4f:6a:6b:ef:b3:e4:ec:b4:
+        d9:be:30:10:b5:7e:89:5c:1a:28:0a:ba:49:eb:3b:81:f3:ed:
+        52:4d:89:6b:e3:16:67:22:f9:78:4c:9c:99:d4:83:4b:ef:2b:
+        8b:73:b9:85:d1:27:fa:15:2e:5e:ce:f2:7e:6d:ec:68:1d:e5:
+        99:fc:6d:17:12:03:c9:e2:61:a2:02:75:05:f7:8a:77:05:ec:
+        c8:42:7e:60:6f:23:ea:25:ff:99:bc:7c:39:3b:42:46:a2:21:
+        77:2f:10:66:d1:df:b4:f1:9d:5d:60:e9:12:5a:64:60:ba:1f:
+        50:b0
+-----BEGIN CERTIFICATE-----
+MIIBjDCB9gIBATANBgkqhkiG9w0BAQQFADA8MR0wGwYDVQQKExRTeW1iaWFuIFNv
+ZnR3YXJlIEx0ZDEbMBkGA1UEAxMSU3ltYmlhbiBUZXN0IC0gUlNBMB4XDTA1MDUx
+MjEwMTg0M1oXDTE1MDUxMDEwMTg0M1owJjEQMA4GA1UEChMHU3ltYmlhbjESMBAG
+A1UEAxMJY2VydFRyZXYxMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAMRAiLteOG42
+TiGmB6PX22hq8UM2NevHRC6w2fbwR7bJIFs5EUndeSXuOXSNUDA9gokR8T4Tg3tH
+3Ez/YxRfHcMCAwEAATANBgkqhkiG9w0BAQQFAAOBgQCb8WMh7FRyb2zQT2pr77Pk
+7LTZvjAQtX6JXBooCrpJ6zuB8+1STYlr4xZnIvl4TJyZ1INL7yuLc7mF0Sf6FS5e
+zvJ+bexoHeWZ/G0XEgPJ4mGiAnUF94p3BezIQn5gbyPqJf+ZvHw5O0JGoiF3LxBm
+0d+08Z1dYOkSWmRguh9QsA==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev2/SymbianTestRootCARSATRev/certs/02.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,40 @@
+Certificate:
+    Data:
+        Version: 1 (0x0)
+        Serial Number: 2 (0x2)
+        Signature Algorithm: md5WithRSAEncryption
+        Issuer: O=Symbian Software Ltd, CN=Symbian Test - RSA
+        Validity
+            Not Before: May 12 10:18:43 2005 GMT
+            Not After : May 10 10:18:43 2015 GMT
+        Subject: O=Symbian, CN=certTrev2
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+            RSA Public Key: (512 bit)
+                Modulus (512 bit):
+                    00:c7:7d:76:75:e8:6e:87:97:a3:1c:16:4e:55:c2:
+                    19:77:e0:73:8c:af:2b:07:a1:69:b9:c2:f4:a1:34:
+                    54:93:5e:5a:5a:e9:cd:66:ef:1d:ee:48:5e:74:cb:
+                    a3:1b:5e:74:4d:05:8f:8b:f6:5e:1c:95:72:2b:c6:
+                    7f:58:25:dd:f9
+                Exponent: 65537 (0x10001)
+    Signature Algorithm: md5WithRSAEncryption
+        70:81:71:f5:6a:55:62:cb:e4:62:2f:65:a6:6a:3d:a9:ad:20:
+        55:14:27:ea:10:ae:42:b3:d7:7a:ed:33:24:b8:6f:ae:64:09:
+        c3:a3:8b:b5:80:89:39:b8:1f:c2:b5:d6:e9:fc:dd:60:df:a4:
+        dc:2d:2e:e2:04:ec:15:0f:4c:6f:e1:fd:82:8f:4b:71:10:32:
+        63:56:f1:7b:d2:53:98:71:fb:99:79:5b:69:c0:40:07:65:d7:
+        81:67:d6:ba:b3:5f:19:74:1a:54:2e:6d:5c:c8:82:f4:aa:a0:
+        a0:be:e8:bb:fd:15:85:8c:1c:bc:54:aa:c4:d8:fe:73:77:67:
+        b9:69
+-----BEGIN CERTIFICATE-----
+MIIBjDCB9gIBAjANBgkqhkiG9w0BAQQFADA8MR0wGwYDVQQKExRTeW1iaWFuIFNv
+ZnR3YXJlIEx0ZDEbMBkGA1UEAxMSU3ltYmlhbiBUZXN0IC0gUlNBMB4XDTA1MDUx
+MjEwMTg0M1oXDTE1MDUxMDEwMTg0M1owJjEQMA4GA1UEChMHU3ltYmlhbjESMBAG
+A1UEAxMJY2VydFRyZXYyMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAMd9dnXoboeX
+oxwWTlXCGXfgc4yvKwehabnC9KE0VJNeWlrpzWbvHe5IXnTLoxtedE0Fj4v2XhyV
+civGf1gl3fkCAwEAATANBgkqhkiG9w0BAQQFAAOBgQBwgXH1alViy+RiL2Wmaj2p
+rSBVFCfqEK5Cs9d67TMkuG+uZAnDo4u1gIk5uB/Ctdbp/N1g36TcLS7iBOwVD0xv
+4f2Cj0txEDJjVvF70lOYcfuZeVtpwEAHZdeBZ9a6s18ZdBpULm1cyIL0qqCgvui7
+/RWFjBy8VKrE2P5zd2e5aQ==
+-----END CERTIFICATE-----
Binary file installationservices/switestfw/testcertificates/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev2/SymbianTestRootCARSATRev/certs/certTrev1.cert.der has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev2/SymbianTestRootCARSATRev/certs/certTrev1.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,40 @@
+Certificate:
+    Data:
+        Version: 1 (0x0)
+        Serial Number: 1 (0x1)
+        Signature Algorithm: md5WithRSAEncryption
+        Issuer: O=Symbian Software Ltd, CN=Symbian Test - RSA
+        Validity
+            Not Before: May 12 10:18:43 2005 GMT
+            Not After : May 10 10:18:43 2015 GMT
+        Subject: O=Symbian, CN=certTrev1
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+            RSA Public Key: (512 bit)
+                Modulus (512 bit):
+                    00:c4:40:88:bb:5e:38:6e:36:4e:21:a6:07:a3:d7:
+                    db:68:6a:f1:43:36:35:eb:c7:44:2e:b0:d9:f6:f0:
+                    47:b6:c9:20:5b:39:11:49:dd:79:25:ee:39:74:8d:
+                    50:30:3d:82:89:11:f1:3e:13:83:7b:47:dc:4c:ff:
+                    63:14:5f:1d:c3
+                Exponent: 65537 (0x10001)
+    Signature Algorithm: md5WithRSAEncryption
+        9b:f1:63:21:ec:54:72:6f:6c:d0:4f:6a:6b:ef:b3:e4:ec:b4:
+        d9:be:30:10:b5:7e:89:5c:1a:28:0a:ba:49:eb:3b:81:f3:ed:
+        52:4d:89:6b:e3:16:67:22:f9:78:4c:9c:99:d4:83:4b:ef:2b:
+        8b:73:b9:85:d1:27:fa:15:2e:5e:ce:f2:7e:6d:ec:68:1d:e5:
+        99:fc:6d:17:12:03:c9:e2:61:a2:02:75:05:f7:8a:77:05:ec:
+        c8:42:7e:60:6f:23:ea:25:ff:99:bc:7c:39:3b:42:46:a2:21:
+        77:2f:10:66:d1:df:b4:f1:9d:5d:60:e9:12:5a:64:60:ba:1f:
+        50:b0
+-----BEGIN CERTIFICATE-----
+MIIBjDCB9gIBATANBgkqhkiG9w0BAQQFADA8MR0wGwYDVQQKExRTeW1iaWFuIFNv
+ZnR3YXJlIEx0ZDEbMBkGA1UEAxMSU3ltYmlhbiBUZXN0IC0gUlNBMB4XDTA1MDUx
+MjEwMTg0M1oXDTE1MDUxMDEwMTg0M1owJjEQMA4GA1UEChMHU3ltYmlhbjESMBAG
+A1UEAxMJY2VydFRyZXYxMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAMRAiLteOG42
+TiGmB6PX22hq8UM2NevHRC6w2fbwR7bJIFs5EUndeSXuOXSNUDA9gokR8T4Tg3tH
+3Ez/YxRfHcMCAwEAATANBgkqhkiG9w0BAQQFAAOBgQCb8WMh7FRyb2zQT2pr77Pk
+7LTZvjAQtX6JXBooCrpJ6zuB8+1STYlr4xZnIvl4TJyZ1INL7yuLc7mF0Sf6FS5e
+zvJ+bexoHeWZ/G0XEgPJ4mGiAnUF94p3BezIQn5gbyPqJf+ZvHw5O0JGoiF3LxBm
+0d+08Z1dYOkSWmRguh9QsA==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev2/SymbianTestRootCARSATRev/certs/certTrev1.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOwIBAAJBAMRAiLteOG42TiGmB6PX22hq8UM2NevHRC6w2fbwR7bJIFs5EUnd
+eSXuOXSNUDA9gokR8T4Tg3tH3Ez/YxRfHcMCAwEAAQJBAKonoeWCfb7hCsEV6Q3f
+u/Y+sswplnrFHJK292SpVCRfm1doGBrt2QYEGyxLHnhSZA2w1WIsBser2g80RCWk
+jAECIQD20d4gbZEoleFaX6RvlgotLcfngGgG8WV4k4fXyvlSwwIhAMuNLaNGU3OI
+jrDRyddnsTf/7UKX3TPg5+MhKM/74FkBAiB97XOUPfKqr1Wrw1JlMDr+8/WjMotg
+x3bK/xJ20fNE+wIhAI/pdc3NR+0ULEZJXJol3r8H+7gsZKFsLqZ/6Dn8C6cBAiAI
+8WY2otPZNIbXQ7qDcj/UCFz02Cbx2guigKZWmmD3kQ==
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev2/SymbianTestRootCARSATRev/certs/certTrev1.req.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,8 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIIBADCBqwIBADBGMQswCQYDVQQGEwJVSzEQMA4GA1UEChMHU3ltYmlhbjERMA8G
+A1UECxMIU2VjdXJpdHkxEjAQBgNVBAMTCWNlcnRUcmV2MTBcMA0GCSqGSIb3DQEB
+AQUAA0sAMEgCQQDEQIi7XjhuNk4hpgej19toavFDNjXrx0QusNn28Ee2ySBbORFJ
+3Xkl7jl0jVAwPYKJEfE+E4N7R9xM/2MUXx3DAgMBAAGgADANBgkqhkiG9w0BAQQF
+AANBAAk3QvPIa2h0lEARrVaLYOa3Bv5OnsgXxM3kbiqSlGYA79TYi4ZJzA3GarfD
+tklnj/sVlrPmeOt5UHGss8Gr/Og=
+-----END CERTIFICATE REQUEST-----
Binary file installationservices/switestfw/testcertificates/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev2/SymbianTestRootCARSATRev/certs/certTrev2.cert.der has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev2/SymbianTestRootCARSATRev/certs/certTrev2.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,40 @@
+Certificate:
+    Data:
+        Version: 1 (0x0)
+        Serial Number: 2 (0x2)
+        Signature Algorithm: md5WithRSAEncryption
+        Issuer: O=Symbian Software Ltd, CN=Symbian Test - RSA
+        Validity
+            Not Before: May 12 10:18:43 2005 GMT
+            Not After : May 10 10:18:43 2015 GMT
+        Subject: O=Symbian, CN=certTrev2
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+            RSA Public Key: (512 bit)
+                Modulus (512 bit):
+                    00:c7:7d:76:75:e8:6e:87:97:a3:1c:16:4e:55:c2:
+                    19:77:e0:73:8c:af:2b:07:a1:69:b9:c2:f4:a1:34:
+                    54:93:5e:5a:5a:e9:cd:66:ef:1d:ee:48:5e:74:cb:
+                    a3:1b:5e:74:4d:05:8f:8b:f6:5e:1c:95:72:2b:c6:
+                    7f:58:25:dd:f9
+                Exponent: 65537 (0x10001)
+    Signature Algorithm: md5WithRSAEncryption
+        70:81:71:f5:6a:55:62:cb:e4:62:2f:65:a6:6a:3d:a9:ad:20:
+        55:14:27:ea:10:ae:42:b3:d7:7a:ed:33:24:b8:6f:ae:64:09:
+        c3:a3:8b:b5:80:89:39:b8:1f:c2:b5:d6:e9:fc:dd:60:df:a4:
+        dc:2d:2e:e2:04:ec:15:0f:4c:6f:e1:fd:82:8f:4b:71:10:32:
+        63:56:f1:7b:d2:53:98:71:fb:99:79:5b:69:c0:40:07:65:d7:
+        81:67:d6:ba:b3:5f:19:74:1a:54:2e:6d:5c:c8:82:f4:aa:a0:
+        a0:be:e8:bb:fd:15:85:8c:1c:bc:54:aa:c4:d8:fe:73:77:67:
+        b9:69
+-----BEGIN CERTIFICATE-----
+MIIBjDCB9gIBAjANBgkqhkiG9w0BAQQFADA8MR0wGwYDVQQKExRTeW1iaWFuIFNv
+ZnR3YXJlIEx0ZDEbMBkGA1UEAxMSU3ltYmlhbiBUZXN0IC0gUlNBMB4XDTA1MDUx
+MjEwMTg0M1oXDTE1MDUxMDEwMTg0M1owJjEQMA4GA1UEChMHU3ltYmlhbjESMBAG
+A1UEAxMJY2VydFRyZXYyMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAMd9dnXoboeX
+oxwWTlXCGXfgc4yvKwehabnC9KE0VJNeWlrpzWbvHe5IXnTLoxtedE0Fj4v2XhyV
+civGf1gl3fkCAwEAATANBgkqhkiG9w0BAQQFAAOBgQBwgXH1alViy+RiL2Wmaj2p
+rSBVFCfqEK5Cs9d67TMkuG+uZAnDo4u1gIk5uB/Ctdbp/N1g36TcLS7iBOwVD0xv
+4f2Cj0txEDJjVvF70lOYcfuZeVtpwEAHZdeBZ9a6s18ZdBpULm1cyIL0qqCgvui7
+/RWFjBy8VKrE2P5zd2e5aQ==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev2/SymbianTestRootCARSATRev/certs/certTrev2.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOgIBAAJBAMd9dnXoboeXoxwWTlXCGXfgc4yvKwehabnC9KE0VJNeWlrpzWbv
+He5IXnTLoxtedE0Fj4v2XhyVcivGf1gl3fkCAwEAAQJAJs6cVdGSduQjwdoBASPS
+KoTKVarZ1xEqbQ2k4xs3/La8nol/+A6zZ1NFNzoSWWNFKqcmadM84xfmWzp0y3vz
+AQIhAP3Q4pHukB2OGZ6dbjvuCmaEZ1g9bZILDK0Snt0wgs+hAiEAyTToHkM+/BP8
+TCuihuTtbxKliz3f/YTWgrs0SIn5T1kCIAQsyW1JFUnHKpi3UjbeJYGmL+T9ra23
+TNAT/FT7FUvBAiEAql+YZXe/r6gkrUMNnnfe7Xy2nM9KCdwf4Bcw0HO0nhECIGYT
+amV/8ie79ccsjNYsB5/TXIwmHp95BfgT+0W8ikBI
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev2/SymbianTestRootCARSATRev/certs/certTrev2.req.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,7 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIHtMIGYAgEAMDMxCzAJBgNVBAYTAlVLMRAwDgYDVQQKEwdTeW1iaWFuMRIwEAYD
+VQQDEwljZXJ0VHJldjIwXDANBgkqhkiG9w0BAQEFAANLADBIAkEAx312dehuh5ej
+HBZOVcIZd+BzjK8rB6FpucL0oTRUk15aWunNZu8d7khedMujG150TQWPi/ZeHJVy
+K8Z/WCXd+QIDAQABoAAwDQYJKoZIhvcNAQEEBQADQQBcWWJNdWAiwqWcdh1GnwEq
+knJImcEm4V88Ag8vf2Knru6o8wTOmsiETr4JgN26hQVr/bl8MvYAUhxrQWXcw7Ib
+-----END CERTIFICATE REQUEST-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev2/SymbianTestRootCARSATRev/private/ca.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICWwIBAAKBgQChVEG+fSTsN8df07UDBsxGUZO5B9egVtoT6Do3iD1W0LwAOuPs
+74LpQRMgRFWpuoicMlEMoaTIZ/GPi6yHhC7CPJELlvBW1TXgbvzMdhUvacDyUKHj
+YMgkIF4+t1OziH6cKAN2I0H/nWa1m54YmYyU2cNAI3aSkuIqBPv+0B/XgQIDAQAB
+AoGACVCcGyuOnjT6RgYrRWl3EfhT1zMkuBVLsiqOcfZj1EdpE3pS/rM1k9I2EH7h
+k1M54ArnsxsCMLAPuoIODCUNrgHoTKJtL8cU8Pa7ZALewSLfRDUqOJLi+W3Ups46
+6jvdqQkFRF2k9evJOyI7wMs1rG0c/MzBGC+5lRbOOWbfcYECQQDPLUO58npxgrup
+usp2LUdE/Vz/fsJOVCoyzJq29LMvTqmAWqPvU1YkoB+U1ZOtvxd8r6/vlUZvDx64
+y2m4htLdAkEAx1kOCcpLl+ElEDGV3z7F77JTh128DvczyOU3j639LvqTfQR3FHOP
++89RmP1axo/Qhh0tClkdif8ZV99iac6S9QJAdrDt/hfGwkUtkj2rRC0IiaPFpbJP
+S2S4kEXb1Tk3dsDQJvLGvJO35F+/+Bqr8nxpzkswtkeFBJda+G/A77B+GQJAWAT5
+TtdUo14U6F6Mh0MHULvTZ9y6cX0zD0wuSTGQrhKT1sqG7a/M7mlu5PdRAoVzlBQD
+1CLfCRRrE0KeCIvelQJAaSdqX9/vuiJOnGfL8SSXxfB3hXcJU0e2Lo252eeeQtux
+oMTb0/jADuN0nxfsU1yvxgX+1nsso8uwpFPiFwdPHQ==
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev2/SymbianTestRootCARSATRev/private/ca.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICRDCCAa2gAwIBAgIBADANBgkqhkiG9w0BAQQFADA8MR0wGwYDVQQKExRTeW1i
+aWFuIFNvZnR3YXJlIEx0ZDEbMBkGA1UEAxMSU3ltYmlhbiBUZXN0IC0gUlNBMB4X
+DTA0MDQxODE0MzYxNFoXDTIwMDkyMTE0MzYxNFowPDEdMBsGA1UEChMUU3ltYmlh
+biBTb2Z0d2FyZSBMdGQxGzAZBgNVBAMTElN5bWJpYW4gVGVzdCAtIFJTQTCBnzAN
+BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAoVRBvn0k7DfHX9O1AwbMRlGTuQfXoFba
+E+g6N4g9VtC8ADrj7O+C6UETIERVqbqInDJRDKGkyGfxj4ush4QuwjyRC5bwVtU1
+4G78zHYVL2nA8lCh42DIJCBePrdTs4h+nCgDdiNB/51mtZueGJmMlNnDQCN2kpLi
+KgT7/tAf14ECAwEAAaNWMFQwDgYDVR0PAQH/BAQDAgIEMBIGA1UdEwEB/wQIMAYB
+Af8CAQUwHQYDVR0OBBYEFOaTjrYQFlD8GQSM5KnKMYYmBZLWMA8GCSsGAQUFBzAB
+BQQCBQAwDQYJKoZIhvcNAQEEBQADgYEALXOi9zFgWw453UGQvw0HGNh6wemX2Ood
+pKceGDWyWFaQIxTA9dYVSqnhKWa728UklUi0CcRwp3leYHlvubkcSQANmRtM05PS
+kY2a2ENBf9afB/HNvOciFgGoHa494csZZ6ZS2GeKBxBOfajrjZrvQ3XDKptsRT1q
+50LsYyJhSg4=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev3/SymbianTestRootCARSATRev/private/ca.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICWwIBAAKBgQChVEG+fSTsN8df07UDBsxGUZO5B9egVtoT6Do3iD1W0LwAOuPs
+74LpQRMgRFWpuoicMlEMoaTIZ/GPi6yHhC7CPJELlvBW1TXgbvzMdhUvacDyUKHj
+YMgkIF4+t1OziH6cKAN2I0H/nWa1m54YmYyU2cNAI3aSkuIqBPv+0B/XgQIDAQAB
+AoGACVCcGyuOnjT6RgYrRWl3EfhT1zMkuBVLsiqOcfZj1EdpE3pS/rM1k9I2EH7h
+k1M54ArnsxsCMLAPuoIODCUNrgHoTKJtL8cU8Pa7ZALewSLfRDUqOJLi+W3Ups46
+6jvdqQkFRF2k9evJOyI7wMs1rG0c/MzBGC+5lRbOOWbfcYECQQDPLUO58npxgrup
+usp2LUdE/Vz/fsJOVCoyzJq29LMvTqmAWqPvU1YkoB+U1ZOtvxd8r6/vlUZvDx64
+y2m4htLdAkEAx1kOCcpLl+ElEDGV3z7F77JTh128DvczyOU3j639LvqTfQR3FHOP
++89RmP1axo/Qhh0tClkdif8ZV99iac6S9QJAdrDt/hfGwkUtkj2rRC0IiaPFpbJP
+S2S4kEXb1Tk3dsDQJvLGvJO35F+/+Bqr8nxpzkswtkeFBJda+G/A77B+GQJAWAT5
+TtdUo14U6F6Mh0MHULvTZ9y6cX0zD0wuSTGQrhKT1sqG7a/M7mlu5PdRAoVzlBQD
+1CLfCRRrE0KeCIvelQJAaSdqX9/vuiJOnGfL8SSXxfB3hXcJU0e2Lo252eeeQtux
+oMTb0/jADuN0nxfsU1yvxgX+1nsso8uwpFPiFwdPHQ==
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev3/SymbianTestRootCARSATRev/private/ca.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICRDCCAa2gAwIBAgIBADANBgkqhkiG9w0BAQQFADA8MR0wGwYDVQQKExRTeW1i
+aWFuIFNvZnR3YXJlIEx0ZDEbMBkGA1UEAxMSU3ltYmlhbiBUZXN0IC0gUlNBMB4X
+DTA0MDQxODE0MzYxNFoXDTIwMDkyMTE0MzYxNFowPDEdMBsGA1UEChMUU3ltYmlh
+biBTb2Z0d2FyZSBMdGQxGzAZBgNVBAMTElN5bWJpYW4gVGVzdCAtIFJTQTCBnzAN
+BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAoVRBvn0k7DfHX9O1AwbMRlGTuQfXoFba
+E+g6N4g9VtC8ADrj7O+C6UETIERVqbqInDJRDKGkyGfxj4ush4QuwjyRC5bwVtU1
+4G78zHYVL2nA8lCh42DIJCBePrdTs4h+nCgDdiNB/51mtZueGJmMlNnDQCN2kpLi
+KgT7/tAf14ECAwEAAaNWMFQwDgYDVR0PAQH/BAQDAgIEMBIGA1UdEwEB/wQIMAYB
+Af8CAQUwHQYDVR0OBBYEFOaTjrYQFlD8GQSM5KnKMYYmBZLWMA8GCSsGAQUFBzAB
+BQQCBQAwDQYJKoZIhvcNAQEEBQADgYEALXOi9zFgWw453UGQvw0HGNh6wemX2Ood
+pKceGDWyWFaQIxTA9dYVSqnhKWa728UklUi0CcRwp3leYHlvubkcSQANmRtM05PS
+kY2a2ENBf9afB/HNvOciFgGoHa494csZZ6ZS2GeKBxBOfajrjZrvQ3XDKptsRT1q
+50LsYyJhSg4=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/trevocation/ocsp/responder1/01.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,40 @@
+Certificate:
+    Data:
+        Version: 1 (0x0)
+        Serial Number: 1 (0x1)
+        Signature Algorithm: md5WithRSAEncryption
+        Issuer: O=Symbian Software Ltd, CN=Symbian Test - RSA
+        Validity
+            Not Before: May 12 10:18:43 2005 GMT
+            Not After : May 10 10:18:43 2015 GMT
+        Subject: O=Symbian, CN=certTrev1
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+            RSA Public Key: (512 bit)
+                Modulus (512 bit):
+                    00:c4:40:88:bb:5e:38:6e:36:4e:21:a6:07:a3:d7:
+                    db:68:6a:f1:43:36:35:eb:c7:44:2e:b0:d9:f6:f0:
+                    47:b6:c9:20:5b:39:11:49:dd:79:25:ee:39:74:8d:
+                    50:30:3d:82:89:11:f1:3e:13:83:7b:47:dc:4c:ff:
+                    63:14:5f:1d:c3
+                Exponent: 65537 (0x10001)
+    Signature Algorithm: md5WithRSAEncryption
+        9b:f1:63:21:ec:54:72:6f:6c:d0:4f:6a:6b:ef:b3:e4:ec:b4:
+        d9:be:30:10:b5:7e:89:5c:1a:28:0a:ba:49:eb:3b:81:f3:ed:
+        52:4d:89:6b:e3:16:67:22:f9:78:4c:9c:99:d4:83:4b:ef:2b:
+        8b:73:b9:85:d1:27:fa:15:2e:5e:ce:f2:7e:6d:ec:68:1d:e5:
+        99:fc:6d:17:12:03:c9:e2:61:a2:02:75:05:f7:8a:77:05:ec:
+        c8:42:7e:60:6f:23:ea:25:ff:99:bc:7c:39:3b:42:46:a2:21:
+        77:2f:10:66:d1:df:b4:f1:9d:5d:60:e9:12:5a:64:60:ba:1f:
+        50:b0
+-----BEGIN CERTIFICATE-----
+MIIBjDCB9gIBATANBgkqhkiG9w0BAQQFADA8MR0wGwYDVQQKExRTeW1iaWFuIFNv
+ZnR3YXJlIEx0ZDEbMBkGA1UEAxMSU3ltYmlhbiBUZXN0IC0gUlNBMB4XDTA1MDUx
+MjEwMTg0M1oXDTE1MDUxMDEwMTg0M1owJjEQMA4GA1UEChMHU3ltYmlhbjESMBAG
+A1UEAxMJY2VydFRyZXYxMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAMRAiLteOG42
+TiGmB6PX22hq8UM2NevHRC6w2fbwR7bJIFs5EUndeSXuOXSNUDA9gokR8T4Tg3tH
+3Ez/YxRfHcMCAwEAATANBgkqhkiG9w0BAQQFAAOBgQCb8WMh7FRyb2zQT2pr77Pk
+7LTZvjAQtX6JXBooCrpJ6zuB8+1STYlr4xZnIvl4TJyZ1INL7yuLc7mF0Sf6FS5e
+zvJ+bexoHeWZ/G0XEgPJ4mGiAnUF94p3BezIQn5gbyPqJf+ZvHw5O0JGoiF3LxBm
+0d+08Z1dYOkSWmRguh9QsA==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/trevocation/ocsp/responder1/02.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,40 @@
+Certificate:
+    Data:
+        Version: 1 (0x0)
+        Serial Number: 2 (0x2)
+        Signature Algorithm: md5WithRSAEncryption
+        Issuer: O=Symbian Software Ltd, CN=Symbian Test - RSA
+        Validity
+            Not Before: May 12 10:18:43 2005 GMT
+            Not After : May 10 10:18:43 2015 GMT
+        Subject: O=Symbian, CN=certTrev2
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+            RSA Public Key: (512 bit)
+                Modulus (512 bit):
+                    00:c7:7d:76:75:e8:6e:87:97:a3:1c:16:4e:55:c2:
+                    19:77:e0:73:8c:af:2b:07:a1:69:b9:c2:f4:a1:34:
+                    54:93:5e:5a:5a:e9:cd:66:ef:1d:ee:48:5e:74:cb:
+                    a3:1b:5e:74:4d:05:8f:8b:f6:5e:1c:95:72:2b:c6:
+                    7f:58:25:dd:f9
+                Exponent: 65537 (0x10001)
+    Signature Algorithm: md5WithRSAEncryption
+        70:81:71:f5:6a:55:62:cb:e4:62:2f:65:a6:6a:3d:a9:ad:20:
+        55:14:27:ea:10:ae:42:b3:d7:7a:ed:33:24:b8:6f:ae:64:09:
+        c3:a3:8b:b5:80:89:39:b8:1f:c2:b5:d6:e9:fc:dd:60:df:a4:
+        dc:2d:2e:e2:04:ec:15:0f:4c:6f:e1:fd:82:8f:4b:71:10:32:
+        63:56:f1:7b:d2:53:98:71:fb:99:79:5b:69:c0:40:07:65:d7:
+        81:67:d6:ba:b3:5f:19:74:1a:54:2e:6d:5c:c8:82:f4:aa:a0:
+        a0:be:e8:bb:fd:15:85:8c:1c:bc:54:aa:c4:d8:fe:73:77:67:
+        b9:69
+-----BEGIN CERTIFICATE-----
+MIIBjDCB9gIBAjANBgkqhkiG9w0BAQQFADA8MR0wGwYDVQQKExRTeW1iaWFuIFNv
+ZnR3YXJlIEx0ZDEbMBkGA1UEAxMSU3ltYmlhbiBUZXN0IC0gUlNBMB4XDTA1MDUx
+MjEwMTg0M1oXDTE1MDUxMDEwMTg0M1owJjEQMA4GA1UEChMHU3ltYmlhbjESMBAG
+A1UEAxMJY2VydFRyZXYyMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAMd9dnXoboeX
+oxwWTlXCGXfgc4yvKwehabnC9KE0VJNeWlrpzWbvHe5IXnTLoxtedE0Fj4v2XhyV
+civGf1gl3fkCAwEAATANBgkqhkiG9w0BAQQFAAOBgQBwgXH1alViy+RiL2Wmaj2p
+rSBVFCfqEK5Cs9d67TMkuG+uZAnDo4u1gIk5uB/Ctdbp/N1g36TcLS7iBOwVD0xv
+4f2Cj0txEDJjVvF70lOYcfuZeVtpwEAHZdeBZ9a6s18ZdBpULm1cyIL0qqCgvui7
+/RWFjBy8VKrE2P5zd2e5aQ==
+-----END CERTIFICATE-----
Binary file installationservices/switestfw/testcertificates/swi/test/trevocation/ocsp/responder1/certTrev1.cert.der has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/trevocation/ocsp/responder1/certTrev1.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,40 @@
+Certificate:
+    Data:
+        Version: 1 (0x0)
+        Serial Number: 1 (0x1)
+        Signature Algorithm: md5WithRSAEncryption
+        Issuer: O=Symbian Software Ltd, CN=Symbian Test - RSA
+        Validity
+            Not Before: May 12 10:18:43 2005 GMT
+            Not After : May 10 10:18:43 2015 GMT
+        Subject: O=Symbian, CN=certTrev1
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+            RSA Public Key: (512 bit)
+                Modulus (512 bit):
+                    00:c4:40:88:bb:5e:38:6e:36:4e:21:a6:07:a3:d7:
+                    db:68:6a:f1:43:36:35:eb:c7:44:2e:b0:d9:f6:f0:
+                    47:b6:c9:20:5b:39:11:49:dd:79:25:ee:39:74:8d:
+                    50:30:3d:82:89:11:f1:3e:13:83:7b:47:dc:4c:ff:
+                    63:14:5f:1d:c3
+                Exponent: 65537 (0x10001)
+    Signature Algorithm: md5WithRSAEncryption
+        9b:f1:63:21:ec:54:72:6f:6c:d0:4f:6a:6b:ef:b3:e4:ec:b4:
+        d9:be:30:10:b5:7e:89:5c:1a:28:0a:ba:49:eb:3b:81:f3:ed:
+        52:4d:89:6b:e3:16:67:22:f9:78:4c:9c:99:d4:83:4b:ef:2b:
+        8b:73:b9:85:d1:27:fa:15:2e:5e:ce:f2:7e:6d:ec:68:1d:e5:
+        99:fc:6d:17:12:03:c9:e2:61:a2:02:75:05:f7:8a:77:05:ec:
+        c8:42:7e:60:6f:23:ea:25:ff:99:bc:7c:39:3b:42:46:a2:21:
+        77:2f:10:66:d1:df:b4:f1:9d:5d:60:e9:12:5a:64:60:ba:1f:
+        50:b0
+-----BEGIN CERTIFICATE-----
+MIIBjDCB9gIBATANBgkqhkiG9w0BAQQFADA8MR0wGwYDVQQKExRTeW1iaWFuIFNv
+ZnR3YXJlIEx0ZDEbMBkGA1UEAxMSU3ltYmlhbiBUZXN0IC0gUlNBMB4XDTA1MDUx
+MjEwMTg0M1oXDTE1MDUxMDEwMTg0M1owJjEQMA4GA1UEChMHU3ltYmlhbjESMBAG
+A1UEAxMJY2VydFRyZXYxMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAMRAiLteOG42
+TiGmB6PX22hq8UM2NevHRC6w2fbwR7bJIFs5EUndeSXuOXSNUDA9gokR8T4Tg3tH
+3Ez/YxRfHcMCAwEAATANBgkqhkiG9w0BAQQFAAOBgQCb8WMh7FRyb2zQT2pr77Pk
+7LTZvjAQtX6JXBooCrpJ6zuB8+1STYlr4xZnIvl4TJyZ1INL7yuLc7mF0Sf6FS5e
+zvJ+bexoHeWZ/G0XEgPJ4mGiAnUF94p3BezIQn5gbyPqJf+ZvHw5O0JGoiF3LxBm
+0d+08Z1dYOkSWmRguh9QsA==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/trevocation/ocsp/responder1/certTrev1.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOwIBAAJBAMRAiLteOG42TiGmB6PX22hq8UM2NevHRC6w2fbwR7bJIFs5EUnd
+eSXuOXSNUDA9gokR8T4Tg3tH3Ez/YxRfHcMCAwEAAQJBAKonoeWCfb7hCsEV6Q3f
+u/Y+sswplnrFHJK292SpVCRfm1doGBrt2QYEGyxLHnhSZA2w1WIsBser2g80RCWk
+jAECIQD20d4gbZEoleFaX6RvlgotLcfngGgG8WV4k4fXyvlSwwIhAMuNLaNGU3OI
+jrDRyddnsTf/7UKX3TPg5+MhKM/74FkBAiB97XOUPfKqr1Wrw1JlMDr+8/WjMotg
+x3bK/xJ20fNE+wIhAI/pdc3NR+0ULEZJXJol3r8H+7gsZKFsLqZ/6Dn8C6cBAiAI
+8WY2otPZNIbXQ7qDcj/UCFz02Cbx2guigKZWmmD3kQ==
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/trevocation/ocsp/responder1/certTrev1.req.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,8 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIIBADCBqwIBADBGMQswCQYDVQQGEwJVSzEQMA4GA1UEChMHU3ltYmlhbjERMA8G
+A1UECxMIU2VjdXJpdHkxEjAQBgNVBAMTCWNlcnRUcmV2MTBcMA0GCSqGSIb3DQEB
+AQUAA0sAMEgCQQDEQIi7XjhuNk4hpgej19toavFDNjXrx0QusNn28Ee2ySBbORFJ
+3Xkl7jl0jVAwPYKJEfE+E4N7R9xM/2MUXx3DAgMBAAGgADANBgkqhkiG9w0BAQQF
+AANBAAk3QvPIa2h0lEARrVaLYOa3Bv5OnsgXxM3kbiqSlGYA79TYi4ZJzA3GarfD
+tklnj/sVlrPmeOt5UHGss8Gr/Og=
+-----END CERTIFICATE REQUEST-----
Binary file installationservices/switestfw/testcertificates/swi/test/trevocation/ocsp/responder1/certTrev2.cert.der has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/trevocation/ocsp/responder1/certTrev2.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,40 @@
+Certificate:
+    Data:
+        Version: 1 (0x0)
+        Serial Number: 2 (0x2)
+        Signature Algorithm: md5WithRSAEncryption
+        Issuer: O=Symbian Software Ltd, CN=Symbian Test - RSA
+        Validity
+            Not Before: May 12 10:18:43 2005 GMT
+            Not After : May 10 10:18:43 2015 GMT
+        Subject: O=Symbian, CN=certTrev2
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+            RSA Public Key: (512 bit)
+                Modulus (512 bit):
+                    00:c7:7d:76:75:e8:6e:87:97:a3:1c:16:4e:55:c2:
+                    19:77:e0:73:8c:af:2b:07:a1:69:b9:c2:f4:a1:34:
+                    54:93:5e:5a:5a:e9:cd:66:ef:1d:ee:48:5e:74:cb:
+                    a3:1b:5e:74:4d:05:8f:8b:f6:5e:1c:95:72:2b:c6:
+                    7f:58:25:dd:f9
+                Exponent: 65537 (0x10001)
+    Signature Algorithm: md5WithRSAEncryption
+        70:81:71:f5:6a:55:62:cb:e4:62:2f:65:a6:6a:3d:a9:ad:20:
+        55:14:27:ea:10:ae:42:b3:d7:7a:ed:33:24:b8:6f:ae:64:09:
+        c3:a3:8b:b5:80:89:39:b8:1f:c2:b5:d6:e9:fc:dd:60:df:a4:
+        dc:2d:2e:e2:04:ec:15:0f:4c:6f:e1:fd:82:8f:4b:71:10:32:
+        63:56:f1:7b:d2:53:98:71:fb:99:79:5b:69:c0:40:07:65:d7:
+        81:67:d6:ba:b3:5f:19:74:1a:54:2e:6d:5c:c8:82:f4:aa:a0:
+        a0:be:e8:bb:fd:15:85:8c:1c:bc:54:aa:c4:d8:fe:73:77:67:
+        b9:69
+-----BEGIN CERTIFICATE-----
+MIIBjDCB9gIBAjANBgkqhkiG9w0BAQQFADA8MR0wGwYDVQQKExRTeW1iaWFuIFNv
+ZnR3YXJlIEx0ZDEbMBkGA1UEAxMSU3ltYmlhbiBUZXN0IC0gUlNBMB4XDTA1MDUx
+MjEwMTg0M1oXDTE1MDUxMDEwMTg0M1owJjEQMA4GA1UEChMHU3ltYmlhbjESMBAG
+A1UEAxMJY2VydFRyZXYyMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAMd9dnXoboeX
+oxwWTlXCGXfgc4yvKwehabnC9KE0VJNeWlrpzWbvHe5IXnTLoxtedE0Fj4v2XhyV
+civGf1gl3fkCAwEAATANBgkqhkiG9w0BAQQFAAOBgQBwgXH1alViy+RiL2Wmaj2p
+rSBVFCfqEK5Cs9d67TMkuG+uZAnDo4u1gIk5uB/Ctdbp/N1g36TcLS7iBOwVD0xv
+4f2Cj0txEDJjVvF70lOYcfuZeVtpwEAHZdeBZ9a6s18ZdBpULm1cyIL0qqCgvui7
+/RWFjBy8VKrE2P5zd2e5aQ==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/trevocation/ocsp/responder1/certTrev2.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOgIBAAJBAMd9dnXoboeXoxwWTlXCGXfgc4yvKwehabnC9KE0VJNeWlrpzWbv
+He5IXnTLoxtedE0Fj4v2XhyVcivGf1gl3fkCAwEAAQJAJs6cVdGSduQjwdoBASPS
+KoTKVarZ1xEqbQ2k4xs3/La8nol/+A6zZ1NFNzoSWWNFKqcmadM84xfmWzp0y3vz
+AQIhAP3Q4pHukB2OGZ6dbjvuCmaEZ1g9bZILDK0Snt0wgs+hAiEAyTToHkM+/BP8
+TCuihuTtbxKliz3f/YTWgrs0SIn5T1kCIAQsyW1JFUnHKpi3UjbeJYGmL+T9ra23
+TNAT/FT7FUvBAiEAql+YZXe/r6gkrUMNnnfe7Xy2nM9KCdwf4Bcw0HO0nhECIGYT
+amV/8ie79ccsjNYsB5/TXIwmHp95BfgT+0W8ikBI
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/trevocation/ocsp/responder1/certTrev2.req.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,7 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIHtMIGYAgEAMDMxCzAJBgNVBAYTAlVLMRAwDgYDVQQKEwdTeW1iaWFuMRIwEAYD
+VQQDEwljZXJ0VHJldjIwXDANBgkqhkiG9w0BAQEFAANLADBIAkEAx312dehuh5ej
+HBZOVcIZd+BzjK8rB6FpucL0oTRUk15aWunNZu8d7khedMujG150TQWPi/ZeHJVy
+K8Z/WCXd+QIDAQABoAAwDQYJKoZIhvcNAQEEBQADQQBcWWJNdWAiwqWcdh1GnwEq
+knJImcEm4V88Ag8vf2Knru6o8wTOmsiETr4JgN26hQVr/bl8MvYAUhxrQWXcw7Ib
+-----END CERTIFICATE REQUEST-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/trevocation/ocsp/responder2/01.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,40 @@
+Certificate:
+    Data:
+        Version: 1 (0x0)
+        Serial Number: 1 (0x1)
+        Signature Algorithm: md5WithRSAEncryption
+        Issuer: O=Symbian Software Ltd, CN=Symbian Test - RSA
+        Validity
+            Not Before: May 12 10:18:43 2005 GMT
+            Not After : May 10 10:18:43 2015 GMT
+        Subject: O=Symbian, CN=certTrev1
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+            RSA Public Key: (512 bit)
+                Modulus (512 bit):
+                    00:c4:40:88:bb:5e:38:6e:36:4e:21:a6:07:a3:d7:
+                    db:68:6a:f1:43:36:35:eb:c7:44:2e:b0:d9:f6:f0:
+                    47:b6:c9:20:5b:39:11:49:dd:79:25:ee:39:74:8d:
+                    50:30:3d:82:89:11:f1:3e:13:83:7b:47:dc:4c:ff:
+                    63:14:5f:1d:c3
+                Exponent: 65537 (0x10001)
+    Signature Algorithm: md5WithRSAEncryption
+        9b:f1:63:21:ec:54:72:6f:6c:d0:4f:6a:6b:ef:b3:e4:ec:b4:
+        d9:be:30:10:b5:7e:89:5c:1a:28:0a:ba:49:eb:3b:81:f3:ed:
+        52:4d:89:6b:e3:16:67:22:f9:78:4c:9c:99:d4:83:4b:ef:2b:
+        8b:73:b9:85:d1:27:fa:15:2e:5e:ce:f2:7e:6d:ec:68:1d:e5:
+        99:fc:6d:17:12:03:c9:e2:61:a2:02:75:05:f7:8a:77:05:ec:
+        c8:42:7e:60:6f:23:ea:25:ff:99:bc:7c:39:3b:42:46:a2:21:
+        77:2f:10:66:d1:df:b4:f1:9d:5d:60:e9:12:5a:64:60:ba:1f:
+        50:b0
+-----BEGIN CERTIFICATE-----
+MIIBjDCB9gIBATANBgkqhkiG9w0BAQQFADA8MR0wGwYDVQQKExRTeW1iaWFuIFNv
+ZnR3YXJlIEx0ZDEbMBkGA1UEAxMSU3ltYmlhbiBUZXN0IC0gUlNBMB4XDTA1MDUx
+MjEwMTg0M1oXDTE1MDUxMDEwMTg0M1owJjEQMA4GA1UEChMHU3ltYmlhbjESMBAG
+A1UEAxMJY2VydFRyZXYxMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAMRAiLteOG42
+TiGmB6PX22hq8UM2NevHRC6w2fbwR7bJIFs5EUndeSXuOXSNUDA9gokR8T4Tg3tH
+3Ez/YxRfHcMCAwEAATANBgkqhkiG9w0BAQQFAAOBgQCb8WMh7FRyb2zQT2pr77Pk
+7LTZvjAQtX6JXBooCrpJ6zuB8+1STYlr4xZnIvl4TJyZ1INL7yuLc7mF0Sf6FS5e
+zvJ+bexoHeWZ/G0XEgPJ4mGiAnUF94p3BezIQn5gbyPqJf+ZvHw5O0JGoiF3LxBm
+0d+08Z1dYOkSWmRguh9QsA==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/trevocation/ocsp/responder2/02.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,40 @@
+Certificate:
+    Data:
+        Version: 1 (0x0)
+        Serial Number: 2 (0x2)
+        Signature Algorithm: md5WithRSAEncryption
+        Issuer: O=Symbian Software Ltd, CN=Symbian Test - RSA
+        Validity
+            Not Before: May 12 10:18:43 2005 GMT
+            Not After : May 10 10:18:43 2015 GMT
+        Subject: O=Symbian, CN=certTrev2
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+            RSA Public Key: (512 bit)
+                Modulus (512 bit):
+                    00:c7:7d:76:75:e8:6e:87:97:a3:1c:16:4e:55:c2:
+                    19:77:e0:73:8c:af:2b:07:a1:69:b9:c2:f4:a1:34:
+                    54:93:5e:5a:5a:e9:cd:66:ef:1d:ee:48:5e:74:cb:
+                    a3:1b:5e:74:4d:05:8f:8b:f6:5e:1c:95:72:2b:c6:
+                    7f:58:25:dd:f9
+                Exponent: 65537 (0x10001)
+    Signature Algorithm: md5WithRSAEncryption
+        70:81:71:f5:6a:55:62:cb:e4:62:2f:65:a6:6a:3d:a9:ad:20:
+        55:14:27:ea:10:ae:42:b3:d7:7a:ed:33:24:b8:6f:ae:64:09:
+        c3:a3:8b:b5:80:89:39:b8:1f:c2:b5:d6:e9:fc:dd:60:df:a4:
+        dc:2d:2e:e2:04:ec:15:0f:4c:6f:e1:fd:82:8f:4b:71:10:32:
+        63:56:f1:7b:d2:53:98:71:fb:99:79:5b:69:c0:40:07:65:d7:
+        81:67:d6:ba:b3:5f:19:74:1a:54:2e:6d:5c:c8:82:f4:aa:a0:
+        a0:be:e8:bb:fd:15:85:8c:1c:bc:54:aa:c4:d8:fe:73:77:67:
+        b9:69
+-----BEGIN CERTIFICATE-----
+MIIBjDCB9gIBAjANBgkqhkiG9w0BAQQFADA8MR0wGwYDVQQKExRTeW1iaWFuIFNv
+ZnR3YXJlIEx0ZDEbMBkGA1UEAxMSU3ltYmlhbiBUZXN0IC0gUlNBMB4XDTA1MDUx
+MjEwMTg0M1oXDTE1MDUxMDEwMTg0M1owJjEQMA4GA1UEChMHU3ltYmlhbjESMBAG
+A1UEAxMJY2VydFRyZXYyMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAMd9dnXoboeX
+oxwWTlXCGXfgc4yvKwehabnC9KE0VJNeWlrpzWbvHe5IXnTLoxtedE0Fj4v2XhyV
+civGf1gl3fkCAwEAATANBgkqhkiG9w0BAQQFAAOBgQBwgXH1alViy+RiL2Wmaj2p
+rSBVFCfqEK5Cs9d67TMkuG+uZAnDo4u1gIk5uB/Ctdbp/N1g36TcLS7iBOwVD0xv
+4f2Cj0txEDJjVvF70lOYcfuZeVtpwEAHZdeBZ9a6s18ZdBpULm1cyIL0qqCgvui7
+/RWFjBy8VKrE2P5zd2e5aQ==
+-----END CERTIFICATE-----
Binary file installationservices/switestfw/testcertificates/swi/test/trevocation/ocsp/responder2/certTrev1.cert.der has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/trevocation/ocsp/responder2/certTrev1.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,40 @@
+Certificate:
+    Data:
+        Version: 1 (0x0)
+        Serial Number: 1 (0x1)
+        Signature Algorithm: md5WithRSAEncryption
+        Issuer: O=Symbian Software Ltd, CN=Symbian Test - RSA
+        Validity
+            Not Before: May 12 10:18:43 2005 GMT
+            Not After : May 10 10:18:43 2015 GMT
+        Subject: O=Symbian, CN=certTrev1
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+            RSA Public Key: (512 bit)
+                Modulus (512 bit):
+                    00:c4:40:88:bb:5e:38:6e:36:4e:21:a6:07:a3:d7:
+                    db:68:6a:f1:43:36:35:eb:c7:44:2e:b0:d9:f6:f0:
+                    47:b6:c9:20:5b:39:11:49:dd:79:25:ee:39:74:8d:
+                    50:30:3d:82:89:11:f1:3e:13:83:7b:47:dc:4c:ff:
+                    63:14:5f:1d:c3
+                Exponent: 65537 (0x10001)
+    Signature Algorithm: md5WithRSAEncryption
+        9b:f1:63:21:ec:54:72:6f:6c:d0:4f:6a:6b:ef:b3:e4:ec:b4:
+        d9:be:30:10:b5:7e:89:5c:1a:28:0a:ba:49:eb:3b:81:f3:ed:
+        52:4d:89:6b:e3:16:67:22:f9:78:4c:9c:99:d4:83:4b:ef:2b:
+        8b:73:b9:85:d1:27:fa:15:2e:5e:ce:f2:7e:6d:ec:68:1d:e5:
+        99:fc:6d:17:12:03:c9:e2:61:a2:02:75:05:f7:8a:77:05:ec:
+        c8:42:7e:60:6f:23:ea:25:ff:99:bc:7c:39:3b:42:46:a2:21:
+        77:2f:10:66:d1:df:b4:f1:9d:5d:60:e9:12:5a:64:60:ba:1f:
+        50:b0
+-----BEGIN CERTIFICATE-----
+MIIBjDCB9gIBATANBgkqhkiG9w0BAQQFADA8MR0wGwYDVQQKExRTeW1iaWFuIFNv
+ZnR3YXJlIEx0ZDEbMBkGA1UEAxMSU3ltYmlhbiBUZXN0IC0gUlNBMB4XDTA1MDUx
+MjEwMTg0M1oXDTE1MDUxMDEwMTg0M1owJjEQMA4GA1UEChMHU3ltYmlhbjESMBAG
+A1UEAxMJY2VydFRyZXYxMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAMRAiLteOG42
+TiGmB6PX22hq8UM2NevHRC6w2fbwR7bJIFs5EUndeSXuOXSNUDA9gokR8T4Tg3tH
+3Ez/YxRfHcMCAwEAATANBgkqhkiG9w0BAQQFAAOBgQCb8WMh7FRyb2zQT2pr77Pk
+7LTZvjAQtX6JXBooCrpJ6zuB8+1STYlr4xZnIvl4TJyZ1INL7yuLc7mF0Sf6FS5e
+zvJ+bexoHeWZ/G0XEgPJ4mGiAnUF94p3BezIQn5gbyPqJf+ZvHw5O0JGoiF3LxBm
+0d+08Z1dYOkSWmRguh9QsA==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/trevocation/ocsp/responder2/certTrev1.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOwIBAAJBAMRAiLteOG42TiGmB6PX22hq8UM2NevHRC6w2fbwR7bJIFs5EUnd
+eSXuOXSNUDA9gokR8T4Tg3tH3Ez/YxRfHcMCAwEAAQJBAKonoeWCfb7hCsEV6Q3f
+u/Y+sswplnrFHJK292SpVCRfm1doGBrt2QYEGyxLHnhSZA2w1WIsBser2g80RCWk
+jAECIQD20d4gbZEoleFaX6RvlgotLcfngGgG8WV4k4fXyvlSwwIhAMuNLaNGU3OI
+jrDRyddnsTf/7UKX3TPg5+MhKM/74FkBAiB97XOUPfKqr1Wrw1JlMDr+8/WjMotg
+x3bK/xJ20fNE+wIhAI/pdc3NR+0ULEZJXJol3r8H+7gsZKFsLqZ/6Dn8C6cBAiAI
+8WY2otPZNIbXQ7qDcj/UCFz02Cbx2guigKZWmmD3kQ==
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/trevocation/ocsp/responder2/certTrev1.req.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,8 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIIBADCBqwIBADBGMQswCQYDVQQGEwJVSzEQMA4GA1UEChMHU3ltYmlhbjERMA8G
+A1UECxMIU2VjdXJpdHkxEjAQBgNVBAMTCWNlcnRUcmV2MTBcMA0GCSqGSIb3DQEB
+AQUAA0sAMEgCQQDEQIi7XjhuNk4hpgej19toavFDNjXrx0QusNn28Ee2ySBbORFJ
+3Xkl7jl0jVAwPYKJEfE+E4N7R9xM/2MUXx3DAgMBAAGgADANBgkqhkiG9w0BAQQF
+AANBAAk3QvPIa2h0lEARrVaLYOa3Bv5OnsgXxM3kbiqSlGYA79TYi4ZJzA3GarfD
+tklnj/sVlrPmeOt5UHGss8Gr/Og=
+-----END CERTIFICATE REQUEST-----
Binary file installationservices/switestfw/testcertificates/swi/test/trevocation/ocsp/responder2/certTrev2.cert.der has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/trevocation/ocsp/responder2/certTrev2.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,40 @@
+Certificate:
+    Data:
+        Version: 1 (0x0)
+        Serial Number: 2 (0x2)
+        Signature Algorithm: md5WithRSAEncryption
+        Issuer: O=Symbian Software Ltd, CN=Symbian Test - RSA
+        Validity
+            Not Before: May 12 10:18:43 2005 GMT
+            Not After : May 10 10:18:43 2015 GMT
+        Subject: O=Symbian, CN=certTrev2
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+            RSA Public Key: (512 bit)
+                Modulus (512 bit):
+                    00:c7:7d:76:75:e8:6e:87:97:a3:1c:16:4e:55:c2:
+                    19:77:e0:73:8c:af:2b:07:a1:69:b9:c2:f4:a1:34:
+                    54:93:5e:5a:5a:e9:cd:66:ef:1d:ee:48:5e:74:cb:
+                    a3:1b:5e:74:4d:05:8f:8b:f6:5e:1c:95:72:2b:c6:
+                    7f:58:25:dd:f9
+                Exponent: 65537 (0x10001)
+    Signature Algorithm: md5WithRSAEncryption
+        70:81:71:f5:6a:55:62:cb:e4:62:2f:65:a6:6a:3d:a9:ad:20:
+        55:14:27:ea:10:ae:42:b3:d7:7a:ed:33:24:b8:6f:ae:64:09:
+        c3:a3:8b:b5:80:89:39:b8:1f:c2:b5:d6:e9:fc:dd:60:df:a4:
+        dc:2d:2e:e2:04:ec:15:0f:4c:6f:e1:fd:82:8f:4b:71:10:32:
+        63:56:f1:7b:d2:53:98:71:fb:99:79:5b:69:c0:40:07:65:d7:
+        81:67:d6:ba:b3:5f:19:74:1a:54:2e:6d:5c:c8:82:f4:aa:a0:
+        a0:be:e8:bb:fd:15:85:8c:1c:bc:54:aa:c4:d8:fe:73:77:67:
+        b9:69
+-----BEGIN CERTIFICATE-----
+MIIBjDCB9gIBAjANBgkqhkiG9w0BAQQFADA8MR0wGwYDVQQKExRTeW1iaWFuIFNv
+ZnR3YXJlIEx0ZDEbMBkGA1UEAxMSU3ltYmlhbiBUZXN0IC0gUlNBMB4XDTA1MDUx
+MjEwMTg0M1oXDTE1MDUxMDEwMTg0M1owJjEQMA4GA1UEChMHU3ltYmlhbjESMBAG
+A1UEAxMJY2VydFRyZXYyMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAMd9dnXoboeX
+oxwWTlXCGXfgc4yvKwehabnC9KE0VJNeWlrpzWbvHe5IXnTLoxtedE0Fj4v2XhyV
+civGf1gl3fkCAwEAATANBgkqhkiG9w0BAQQFAAOBgQBwgXH1alViy+RiL2Wmaj2p
+rSBVFCfqEK5Cs9d67TMkuG+uZAnDo4u1gIk5uB/Ctdbp/N1g36TcLS7iBOwVD0xv
+4f2Cj0txEDJjVvF70lOYcfuZeVtpwEAHZdeBZ9a6s18ZdBpULm1cyIL0qqCgvui7
+/RWFjBy8VKrE2P5zd2e5aQ==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/trevocation/ocsp/responder2/certTrev2.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOgIBAAJBAMd9dnXoboeXoxwWTlXCGXfgc4yvKwehabnC9KE0VJNeWlrpzWbv
+He5IXnTLoxtedE0Fj4v2XhyVcivGf1gl3fkCAwEAAQJAJs6cVdGSduQjwdoBASPS
+KoTKVarZ1xEqbQ2k4xs3/La8nol/+A6zZ1NFNzoSWWNFKqcmadM84xfmWzp0y3vz
+AQIhAP3Q4pHukB2OGZ6dbjvuCmaEZ1g9bZILDK0Snt0wgs+hAiEAyTToHkM+/BP8
+TCuihuTtbxKliz3f/YTWgrs0SIn5T1kCIAQsyW1JFUnHKpi3UjbeJYGmL+T9ra23
+TNAT/FT7FUvBAiEAql+YZXe/r6gkrUMNnnfe7Xy2nM9KCdwf4Bcw0HO0nhECIGYT
+amV/8ie79ccsjNYsB5/TXIwmHp95BfgT+0W8ikBI
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/trevocation/ocsp/responder2/certTrev2.req.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,7 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIHtMIGYAgEAMDMxCzAJBgNVBAYTAlVLMRAwDgYDVQQKEwdTeW1iaWFuMRIwEAYD
+VQQDEwljZXJ0VHJldjIwXDANBgkqhkiG9w0BAQEFAANLADBIAkEAx312dehuh5ej
+HBZOVcIZd+BzjK8rB6FpucL0oTRUk15aWunNZu8d7khedMujG150TQWPi/ZeHJVy
+K8Z/WCXd+QIDAQABoAAwDQYJKoZIhvcNAQEEBQADQQBcWWJNdWAiwqWcdh1GnwEq
+knJImcEm4V88Ag8vf2Knru6o8wTOmsiETr4JgN26hQVr/bl8MvYAUhxrQWXcw7Ib
+-----END CERTIFICATE REQUEST-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/files/badcert.cer	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN CERTIFICATE-----
+XXXBLDCB16ADAgECAgEAMA0GCSqGSIb3DQEBBQUAMB8xCzAJBgNVBAYTAlVLMRAw
+DgYDVQQDEwdTeW1iaWFuMB4XDTAwMDMxNTE0MjQ1NVoXDTAxMDMxNTE0MjQ1NVow
+HzELMAkGA1UEBhMCVUsxEDAOBgNVBAMTB1N5bWJpYW4wXDANBgkqhkiG9w0BAQEF
+AANLADBIAkEAyBm22QuixqJ0m9pjomO2JfA+GeFf+T76XcPe8ursa5qFrEABj4RJ
+Pv5WHzeU/e0ydSuCXwUhB3CrCZDgFVOXGwIDAQABMA0GCSqGSIb3DQEBBQUAA0EA
+sG1UUdvyzOycEuNL5TidMmDMJUHvpoWGE8In6Nmtesn1RsMdgeKKtCsQrp2XbERG
+3YA1ExdAjHqW8T3siFdeLA==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/files/default.cer	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDBDCCAsSgAwIBAgIBADAJBgcqhkjOOAQDMGkxCzAJBgNVBAYTAkdCMRkwFwYD
+VQQKExBTeW1iaWFuIFNvZnR3YXJlMRkwFwYDVQQLExBDb3JlIERldmVsb3BtZW50
+MSQwIgYDVQQDExtEZWZhdWx0IFNpZ25pbmcgQ2VydGlmaWNhdGUwHhcNMDYwMjAy
+MTExNTI0WhcNMTYwMjAyMTExNTI0WjBpMQswCQYDVQQGEwJHQjEZMBcGA1UEChMQ
+U3ltYmlhbiBTb2Z0d2FyZTEZMBcGA1UECxMQQ29yZSBEZXZlbG9wbWVudDEkMCIG
+A1UEAxMbRGVmYXVsdCBTaWduaW5nIENlcnRpZmljYXRlMIIBtzCCASsGByqGSM44
+BAEwggEeAoGBALnfndoLyYr7KxvNenPJnEHXjw2/5A2sSgPqAS9Fa4za5O56V0Y8
+z5QcxL7PgzbhPPnPuzuxt2dZKKdWdCcls5YdB0acanKoMEgT6NmNxUxhSwvDlQBT
+dEujcdULpEZI+y/lTJLJZrh8Ak6e7FeXJEPMska56oeamvvyp2Dfz7y7AhUA7HTW
+0hQzOLdU0EoVF8LoFfp4CH0CgYBwo0ieIVUa35CUbpgkpG0EBJQbW3rSOvr1ATSZ
+qwzamHyqeVNqfv1ZMerpeikowFejifFFy7LJfgizgWlK2Z2Vw5Mp2900VJWIdvYZ
+g+QeLFqitMqjvhmhVgJYYWIjHj/w4QB6prEBW92ZfbRjW82g6WgfNQm7eY0XiJv0
+vBLf/AOBhQACgYEAg+0/wVe+LY9ZEB4HOL8y9Jl3vA7P8cqHPpr8ZuDgrAjVsXAk
+kjnvI/e86jUDUKnlWj/of+xCBwpTa/PYvdWHndBbRLm2XPgz3aFZLqgz7oMMUJwH
+f2qeqatOLfjY2SfgQwcqzY4T4Sbj/U7D89oLCCm3qizfn2MfIagivB5B9oYwCQYH
+KoZIzjgEAwMvADAsAhRCrW9kWjeAzf+NT2h2Ru+iMRqYkgIUVJghz8UIi17lFGod
+pBqu3ZY+1+I=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/files/dsacert1.cer	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,12 @@
+-----BEGIN CERTIFICATE-----
+MIIB2jCCAUOgAwIBAgIBATANBgkqhkiG9w0BAQUFADAzMRIwEAYDVQQDEwlEZXZl
+bG9wZXIxHTAbBgNVBAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMB4XDTA5MDcyMDEx
+NDAyOFoXDTEwMDcyMDExNDAyOFowMzESMBAGA1UEAxMJRGV2ZWxvcGVyMR0wGwYD
+VQQKExRTeW1iaWFuIFNvZnR3YXJlIEx0ZDCBnzANBgkqhkiG9w0BAQEFAAOBjQAw
+gYkCgYEApiLz7EZcCh7pctJqvN4bDTqArwVGu9A1HsoonbYJXV2PkD0r7kMsteqW
+iC++9p9kQDL9a18eulwmwyzBOHgAC+DyNv8WHUlB9MPBb9kjX8ItsH43CbWnEEpP
+6L5GApr5+0qaSJgRZDXacyzKecJOKZYwlC+DuGq8vI4NtpQg4ckCAwEAATANBgkq
+hkiG9w0BAQUFAAOBgQANDmAdxaMsd6KCb+Bi34Q7Se28lBCrS6VsiGRexZT4JBi0
+kvyYMXmJHXOwUFJYW0IYhL31wafsqATqEw8nU0Yt2Y2GYJ9ML4xjFMkbStPVmpUL
++9TOfGKt9gs8Wr0pVnRNoHPs+ayEm/WJM/MA+SrFGWMLJgI15suSNh0DDIGTkg==
+-----END CERTIFICATE-----
Binary file installationservices/switestfw/testcertificates/swi/test/tsisfile/data/files/dsacert1.der has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/files/dsacert2.cer	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,12 @@
+-----BEGIN CERTIFICATE-----
+MIIB2jCCAUOgAwIBAgIBATANBgkqhkiG9w0BAQUFADAzMRIwEAYDVQQDEwlEZXZl
+bG9wZXIxHTAbBgNVBAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMB4XDTA5MDcyMDEx
+NDM0OVoXDTEwMDcyMDExNDM0OVowMzESMBAGA1UEAxMJRGV2ZWxvcGVyMR0wGwYD
+VQQKExRTeW1iaWFuIFNvZnR3YXJlIEx0ZDCBnzANBgkqhkiG9w0BAQEFAAOBjQAw
+gYkCgYEAwbWsUb5fSCwjGzKrOJTzLIE7XAYNB9U7y9paKgA4z6ndf1npZe0BCeNY
+2gIQjHC19TF8T/3jfnl2/Ujvo/joHj+8VIaoEeCzVGci1PeNkNAxNB38tslkvdqh
+ZV7+F9+s+M/O3KOZVhRnqzTot08pmfY4MXHHWawIbzRhguP9YfECAwEAATANBgkq
+hkiG9w0BAQUFAAOBgQCud47eLOE1lpumwi4RmtXAzUC703t4dQ+V0/KKtuFMWt09
+NYiNuHbzexOhpaDxe2gTEG8AqVKw1dfjZ1H3traCXGOn3+sHnBrvEn5LcycdCa6c
+OK6p8okWHrLpRz5ZVvAPTyxoCQwZat1nd+elCxPjV+pMuskyvbU3YcRx7bZIZQ==
+-----END CERTIFICATE-----
Binary file installationservices/switestfw/testcertificates/swi/test/tsisfile/data/files/dsacert2.der has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/files/mycert.cer	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,18 @@
+-----BEGIN CERTIFICATE-----
+MIIC6TCCAqegAwIBAgIBADALBgcqhkjOOAQDBQAwWTELMAkGA1UEBhMCR0IxFDAS
+BgNVBAsTC1N5bWJpYW4gTHRkMRAwDgYDVQQDEwdTeW1iaWFuMSIwIAYJKoZIhvcN
+AQkBFhNzdXBwb3J0QHN5bWJpYW4uY29tMB4XDTAxMDMwNjE1MDEzM1oXDTAyMDMw
+NjE1MDEzM1owWTELMAkGA1UEBhMCR0IxFDASBgNVBAsTC1N5bWJpYW4gTHRkMRAw
+DgYDVQQDEwdTeW1iaWFuMSIwIAYJKoZIhvcNAQkBFhNzdXBwb3J0QHN5bWJpYW4u
+Y29tMIIBuDCCASwGByqGSM44BAEwggEfAoGBAO1p9xNHYlAfKQRAu1S1dJToKfkj
+ni8Sp5x9DCsr3zYAckqcbSvYcFQ2mJlqDeJkp9w3qXF4wGSgCqgNBAfzW5XXYZ0Y
+yGLkc4K8lyY//rmYHMf9oTfHjFf7QCowyrJBNZ7ZsnvySKcMf0hdYxFPdYzRh17E
+uY/en+yZpJILx8ZXAhUAilBnTLHUpWZ7H2xhWdNWSGjP/akCgYEAg7hWymSW7YR1
+4V4gwGLZ05BLYXfFfGQP2Ec1x9WzlmZfin+E5UmEfPsqgfhfV0e8as9Jk4KSBfW/
+VKxxjBXQc+kK34eE5c7XL/eL4l8+9pJIJzVqgIrSdlNHXmhcD4tujED6CyLuSUXP
+LqjpXhesLU6PI9iYi0DJNnh9Dc/CyRADgYUAAoGBAJYSEzhGGYn8E2CUzCjJWdIu
+n71nRHFFQH0a11BdL6m9uWeo+LOCcam/uJfpR9b4uBQmTPOchqxgbTv7AfTc7Rw3
+59zj/WuCJUT4FaSLbMzYqXz1AmUx6SH8ZUTujUOiPbOtIolByoajjNYDnqMw4tFE
+dyYw56+zYO2bC1cukrBiMAsGByqGSM44BAMFAAMvADAsAhRtB2BBnm30m2eYe/NW
+9v6Jn+4DUAIUOpzNOAAdvMD/RnB4C9lIDAJw9Wo=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/files/rsacert1.cer	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,12 @@
+-----BEGIN CERTIFICATE-----
+MIIB2jCCAUOgAwIBAgIBATANBgkqhkiG9w0BAQUFADAzMRIwEAYDVQQDEwlEZXZl
+bG9wZXIxHTAbBgNVBAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMB4XDTA5MDcyMDEx
+NDgwM1oXDTEwMDcyMDExNDgwM1owMzESMBAGA1UEAxMJRGV2ZWxvcGVyMR0wGwYD
+VQQKExRTeW1iaWFuIFNvZnR3YXJlIEx0ZDCBnzANBgkqhkiG9w0BAQEFAAOBjQAw
+gYkCgYEAp2efFB0IVjthkpeRvTJmiaBrte503aZx+BMkyoM28HLGo392ASVETyRZ
+UbtLHI4dUA4CK9A6KDkvkdOIybrFSjUyYC4h+2OELO9MQ0qhCQLXQ0kX0o91geRD
+A4hKh4YvGG90nXpvQ0TMzU2aUmj6Y0HDubMJbp+RAU69T+phQfkCAwEAATANBgkq
+hkiG9w0BAQUFAAOBgQCWATYdAjBaHdDr6RdgVuqI+CqKZnZURrb+pErMChjfMciM
+Nw4IvvVspkENcGStd6fl8EE6UYG7HaK4HAgeJjgFIPOJmPpEe1ggrTI+NK7gNyxu
+b8uSG24d5S7IWCa2xvk8+ZXfP+YDHbwGZuROclXVD0tITZBkjV0KdwUB+kYgbQ==
+-----END CERTIFICATE-----
Binary file installationservices/switestfw/testcertificates/swi/test/tsisfile/data/files/rsacert1.der has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/files/rsacert2.cer	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,12 @@
+-----BEGIN CERTIFICATE-----
+MIIB2jCCAUOgAwIBAgIBATANBgkqhkiG9w0BAQUFADAzMRIwEAYDVQQDEwlEZXZl
+bG9wZXIxHTAbBgNVBAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMB4XDTA5MDcyMDEx
+NDg0OVoXDTEwMDcyMDExNDg0OVowMzESMBAGA1UEAxMJRGV2ZWxvcGVyMR0wGwYD
+VQQKExRTeW1iaWFuIFNvZnR3YXJlIEx0ZDCBnzANBgkqhkiG9w0BAQEFAAOBjQAw
+gYkCgYEAwfshkU0PmDjZ3I7QztavmUsJc6xT/Xmz+p6GX+Re7KWtKLR5T6MKqIJd
+480bIbumHpP7IDAr9WD4GcBcpYjRZk189mqsSLX9X7dLzxOnLa9EH7JLE8yMYIWj
++aOMRLRu/IMWCL4v0igdpj4wL+dkd+LsXACeFHGyq+1XuiCdJkkCAwEAATANBgkq
+hkiG9w0BAQUFAAOBgQAAddfbZu4Rf6y7lp19D0j34fRX61nayhbT1EE0Ghulzdjb
+zHbNgSw/j0U+KN9ps3PBKnENxEMdAHBHjMBX5Y8Sokwoa3GtlctkxbSFwWWoSVR2
+aEesuBuvPbnhTHgEFFcbFIMmVHvfeN+byHgtFlaYJbVEs2FIKrQYqMBJra+DQA==
+-----END CERTIFICATE-----
Binary file installationservices/switestfw/testcertificates/swi/test/tsisfile/data/files/rsacert2.der has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/CertificatesNotInStore/ebook_key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXgIBAAKBgQC5hX3rlH5bWLL42sOxRbDLFyDH1AyJDbd8QqX0I8hFsX+ZDAJ5
+59TdDUzKYh3bFoqcd9rrWI4BnVFbmsOEaXKFLxjlWReIAxy28TYFys+ChZcdDefp
+HnWAPVw5aFvw9CetwYPYG4fmc414r88DVSDGcKSn4ZxiVE6EUPNCkeHw4wIDAQAB
+AoGAAptuppXipLP9Z+PjJiWdk20Sx9wiBPcNYhCptmGeWeRhr6vsiPwKEMU0FBAG
+7WJGtmY0zGPlMv6b+xaUstKsik57QfZPtj92tVzZCYbZV99GsiNgkvj4Ht6bTwPG
+mcx+XLWHShljgS8u1kvvNsllUK9NrQFVkL4ynUEkR+Weq0ECQQDhAe4wcD4eR7ZR
+1sv0T+Ny1LtpPIT1DPSfJWaLsZfa/M9tq5HKheZsl1UkT9GeDrRUOixTkRINUbMJ
+vB/wTvahAkEA0xM6i2tfP3Vu0Usb2ZeadCo5Cnt8MXF8IM4jclBoXBxbt6Hl9Eeb
+xVt14lsjF35zx9D2sBMTMTUeEAffHWLtAwJBAKiJaqFLoavKqUzZqEFiiYqcv5gO
+5cQrpRuDxzDBoG4+SRzrkzNwYm1aWULuqqNKflZMkKEzm6LwXDvhdsboTqECQQCj
+8K1qGC1UhotZ97Jb4MpQK3M+VwbxCCnW+QTDBvznfgcmq5KFlxC/yvfWpd6tosOe
+kQjpXQdtEsqUvOhoVKutAkEAlOmVvA1ZajLUuatXbXEFbQIz9of9uBkc2Ur+criB
+6Ox7VUckfn3NtPGyZVnQ5VXhTnyz+ObOqiL7sCeHn4pMsQ==
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/CertificatesNotInStore/pool_key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQDjXW454gO+HfnWgzSlwnE6z18N/IgK3CMvyO620ACKeZoh5C34
+BQY0zF12ZlQhI9/zwkTdMKo/QRGsQXRX5xpBY1OZqvm2gYHmvU0hbWbL3NhZhJWU
+Q1Qf2jdHUMVLk14VOaEE74T/ae71JhoKjEsAn6b3hwPn49kGQE+jeLTzXwIDAQAB
+AoGBAJcf3gk5UnWG5S6RTWg0QyDs/2iDh0V4pya27vyyavmf9DQ8v9VQOZzUjfcJ
+8zeH6e7THQTMuQyMSpvtcdCPuuGkzKJncX6MMK8sz/PxaTWykC+j+TvQlKJ27ZiX
+IJNdnq73OyWrbnt7ILO300f05NYnXhuF6ZSvZsm68xLV9T1JAkEA9HYQvboTls0p
++3yN4C0VurpeH3VtEqg6vWZpmkknHkykm5I4322i4hTZmMMhxXynIF8A+xEdPEvE
++RAFSHmXpQJBAO4YyKMJZ7o1ixJSDMnKf3lt/mEnUvSzqHFghZRwhuSQE3PnGY0Y
+m5vciSDM8kjEZl3AmN095lKZgGKWrykUT7MCQARKJhUONNXKl9f/4YVzhRQXvRsU
+NmvDY/R63ZOFgRg5BBJuyGyzQc5xyzexBOCwRUZ+JEhDjp3GPpiYPV9+MrkCQF2m
+3fRTFLvHp8YzA9izj+SBgVdRkm2x5QWDg8dZY5WvnhcuxXwcO8jYvA9szbgVmHYz
+9WzAlkHTIw6kWo178cUCQADUWOUcbyzT4xvKEmWSTYKw5azf8PQKdD73JbrMWgD4
+5xxs2ufRBHnEUaVImfRf5GKorrfSRXHu1BFQVo/6L1M=
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/CertificatesNotInStore/selfsigned_cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,22 @@
+-----BEGIN CERTIFICATE-----
+MIIDrTCCAxagAwIBAgIBADANBgkqhkiG9w0BAQQFADCBnDELMAkGA1UEBhMCSU4x
+EjAQBgNVBAgTCUthcm5hdGFrYTESMBAGA1UEBxMJQmFuZ2Fsb3JlMRAwDgYDVQQK
+EwdTeW1iaWFuMQ8wDQYDVQQLEwZDcnlwdG8xGDAWBgNVBAMTD3d3dy5zeW1iaWFu
+LmNvbTEoMCYGCSqGSIb3DQEJARYZcmFqZXNoLmpvc2VwaEBzeW1iaWFuLmNvbTAe
+Fw0wNjExMTYwNTU2MTlaFw0wNjEyMTYwNTU2MTlaMIGcMQswCQYDVQQGEwJJTjES
+MBAGA1UECBMJS2FybmF0YWthMRIwEAYDVQQHEwlCYW5nYWxvcmUxEDAOBgNVBAoT
+B1N5bWJpYW4xDzANBgNVBAsTBkNyeXB0bzEYMBYGA1UEAxMPd3d3LnN5bWJpYW4u
+Y29tMSgwJgYJKoZIhvcNAQkBFhlyYWplc2guam9zZXBoQHN5bWJpYW4uY29tMIGf
+MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDu3LQX/3Qdk0QDxN2ioeLI+woi9qAv
+QYLqyUA0sUrgMQN2WVe0qEJSNbYxCe4QwD7eb6jjTcF9BIaHUYAI/nX7p2M7yEol
+VZQ37Nc4RA2Ui2rDa+BhF1t7qSyr2DWQEOe+bp+E1SIDnnWEwRPIflOOUAdlk6jx
+ikUo4dDFZkDlMQIDAQABo4H8MIH5MB0GA1UdDgQWBBTTQKKFUc0LoAjUvoNDYnQq
+AniKNjCByQYDVR0jBIHBMIG+gBTTQKKFUc0LoAjUvoNDYnQqAniKNqGBoqSBnzCB
+nDELMAkGA1UEBhMCSU4xEjAQBgNVBAgTCUthcm5hdGFrYTESMBAGA1UEBxMJQmFu
+Z2Fsb3JlMRAwDgYDVQQKEwdTeW1iaWFuMQ8wDQYDVQQLEwZDcnlwdG8xGDAWBgNV
+BAMTD3d3dy5zeW1iaWFuLmNvbTEoMCYGCSqGSIb3DQEJARYZcmFqZXNoLmpvc2Vw
+aEBzeW1iaWFuLmNvbYIBADAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBAUAA4GB
+AL6wmIOwcnQUjyV/TlftR3RG48Z5YYElIont8oU1QnjQlJ78QgX9jrGaooJ21Dw/
+m3oosYDPwUw9oY5QhB3Iu8iViI7JbermkMR0vdUG5TuuCCjZbzlSver9J4jTUud7
+W8Z4cvt2wYqIK79gKU04A3G7jw5EDEarjbdi5KGrkXnm
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/CertificatesNotInStore/selfsigned_key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXgIBAAKBgQDu3LQX/3Qdk0QDxN2ioeLI+woi9qAvQYLqyUA0sUrgMQN2WVe0
+qEJSNbYxCe4QwD7eb6jjTcF9BIaHUYAI/nX7p2M7yEolVZQ37Nc4RA2Ui2rDa+Bh
+F1t7qSyr2DWQEOe+bp+E1SIDnnWEwRPIflOOUAdlk6jxikUo4dDFZkDlMQIDAQAB
+AoGBAMYTCtzjnxxvZHVjqQ8WA4P6ePtpXIgTYUblQHLxmk+zFVXs3IgZB3Y4yC5+
+N4Z4hSnbmkdz0UGkoRJRiUTsDlTY5mQ68wwBJdWKlZIs2JoPV9kqg923UG9H8N5C
+fbxa3sv9wg4M7Xc7/0qTwAa2QMf/8BbOU5PWhto9q84OP9FhAkEA+QDySMsI41Yh
+XVW6JkF9rkjhJIfNBVk4QGfFDxWjFN58y32MOlzBGZP+j+o2916dlHr+CCMjLvyT
+6D/n4w61RQJBAPWSz1jRG6dqg85NP7y6URr7f/e2wDPlWNv/hMy0atkIAj1sD0bN
+avKWXoY0Nk+EEv5rS4/1TeFckeavjRf0wP0CQQCuZeBL5ZBjETcrFNjc5G+vOrId
+kNOilFuWmFdnekMPYcjMCTHGyqIgVQwtJeC7ntQFY6M6dcm1pge92cyCthF1AkAo
+zk5aCdU4ioCAZWGz8JnNjAEFnn5toSyU0e61PT2L9sK4hh47u6KL0OTAFCj6KY4m
+bJnPwAlC62jrFjyxwF/ZAkEAqu9ZmG293n73kis+r0FBHsJA25rtbTUcCBtSdv79
+w0gSxwmA+xT+JZXZHgptiLUZCYqTyGEpxU15QfphiC4vYA==
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/Root5CA/ca.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQC59XnNG+BH+iHN9vwCLNst4/ErtB8E65O3DLvT+J9kI/lpkyuL
+oOA5tgwnCHiUKFD5SdCAxf2xE/WRZnpQRuuGbuhTPuR4jrC7ibibJiYyNjedz7tP
++y136j9XO39tLIs1ikCpRbnSDjpIvWWh/x9coaSoVEfjZzN4xTCqcR99GwIDAQAB
+AoGAMMPAtxrSS826Q6q7F07wAy69Nbq8T6v/RodeUg3mrnoIk7j2OF1tr3Sf5zR/
+ekrAQT8sIDjLeD5FrWV0Ocz/QgUrcUG62yD3JgYT+YBZVKGLYIWzRp6BSqGLC/qU
++Q8W+s8AAsnRip5vsBDYLRWIhC5WAlNHE+7urTfIsAC0UxECQQDeSk4wxwlifiUW
+rGt759zFzUoWyAb/tRcnti88RKJkG+/15sccEFlD+qCeee/aD8FlbnE390XhaLCX
+lPsHriftAkEA1ii5N8MX03lMZhaW+k+obP06l46N+64a8g7tlL1vHOxeXdHydhpB
+tJ2F2jeqbtxmEvos19UrmVsuFrMiargIJwJAO1D4rGtwRagDnZlE1Tt53g55xrp5
+o6JfG2myERL/glcyIRwD5ak3KLyoP6GqLzYlFTvzWkvRieS1ur02f0YpwQJBAJz3
+fkIrwXPjzSZqWkCfUCCKPn7FIrYct21BmctSSXWWndgAQMlll1Etv+Tgtg/JhRtV
+uLZ9bRZbKV3D8G7t8jMCQQDC0Qrv26meE2ePUPGZdKfjZPY2/+M2z/j8kDsr+4fM
+0RxsJLH7p2bvxN80g/sSAdinbwLsqYiLrs7cz8Opv7Vb
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/Root5CA/ca.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICITCCAYqgAwIBAgIBADANBgkqhkiG9w0BAQQFADAzMR0wGwYDVQQKExRTeW1i
+aWFuIFNvZnR3YXJlIEx0ZDESMBAGA1UEAxMJUm9vdDUtUlNBMB4XDTA0MDMwMzE2
+MzQ0MloXDTE0MDMwMTE2MzQ0MlowMzEdMBsGA1UEChMUU3ltYmlhbiBTb2Z0d2Fy
+ZSBMdGQxEjAQBgNVBAMTCVJvb3Q1LVJTQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAw
+gYkCgYEAufV5zRvgR/ohzfb8AizbLePxK7QfBOuTtwy70/ifZCP5aZMri6DgObYM
+Jwh4lChQ+UnQgMX9sRP1kWZ6UEbrhm7oUz7keI6wu4m4myYmMjY3nc+7T/std+o/
+Vzt/bSyLNYpAqUW50g46SL1lof8fXKGkqFRH42czeMUwqnEffRsCAwEAAaNFMEMw
+DgYDVR0PAQH/BAQDAgIEMBIGA1UdEwEB/wQIMAYBAf8CAQUwHQYDVR0OBBYEFHzj
+BilRFiByFNQlr/0YW21eSK9vMA0GCSqGSIb3DQEBBAUAA4GBACEv1s039YBNfVn/
+dxZm+1XDLmrm6Of5p3SjBz94osLV+cNsddP5W+jmdtEL2u+x33foGFPOkDyFFnIW
+gkFVfAKKCH70K2liJWDS5D+mu32zU8Kc/JF0musvKZ/EbuddJS+x7t7kBl4fFgr1
+0/AO8YOgD1AV55Z9Bjf1lTTHZMcX
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/Root5CA/cert_chain_dsa_len1/chain_dsa_len1.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIDCCAomgAwIBAgIBATANBgkqhkiG9w0BAQQFADAzMR0wGwYDVQQKExRTeW1i
+aWFuIFNvZnR3YXJlIEx0ZDESMBAGA1UEAxMJUm9vdDUtUlNBMB4XDTA1MDQwMTEw
+NDcyNFoXDTE1MDMzMDEwNDcyNFowgYExCzAJBgNVBAYTAlVLMQ8wDQYDVQQHEwZM
+b25kb24xIzAhBgNVBAMTGkRTQSBSb290NUNBIENoYWluIENlcnQgT25lMRQwEgYD
+VQQKEwtTeW1iaWFuIEx0ZDEmMCQGCSqGSIb3DQEJARYXam9oYW4uZ3JvdGhAc3lt
+Ymlhbi5jb20wgfAwgagGByqGSM44BAEwgZwCQQC0TNK7G4u54wgQuZ6KX94Nxo3E
+8/qJUP1M/6maesHtUkaQ/wA0D5MiLZJUqFdZQM5uNcH9c1alEGfhkAZcTCpDAhUA
+wYZNUYZFMR8teLd7YtI1DcLvKGkCQBxdHSK4yFoxwK0qMhap/+01viQO+oAVzd8+
+tVCjt3UYTnGhQQYGDlps+eikZyAIUvPPt5gLweCvdXcmUVrjIxYDQwACQANsU7Eo
+05tTNkGfNjjBCMLSNHlGKCLOfxdsoZaP7pF/FniYAQEob/GKacicty95hbLijOTq
+wpPehWMrLHdIwjujgaMwgaAwHQYDVR0OBBYEFG+BQGrj2Evz6dt7hupZ30tgmSNO
+MFsGA1UdIwRUMFKAFHzjBilRFiByFNQlr/0YW21eSK9voTekNTAzMR0wGwYDVQQK
+ExRTeW1iaWFuIFNvZnR3YXJlIEx0ZDESMBAGA1UEAxMJUm9vdDUtUlNBggEAMBIG
+A1UdEwEB/wQIMAYBAf8CAQUwDgYDVR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBBAUA
+A4GBACSQmnUyCHJp4iN23mDk6I9jF0+qmbX9X75iAOF7V35b3GnoUvUU8F3yUcz7
+xb44ycHwr7QejhZ1gwD/I5PC5pLPjNwTqgWeJAQMIxkZSbKEYi/koJLNAknBpHh7
+QTKDe1buHqfUzrs3nhb1ekOTIKwcM/5FFcAh/adag6otIraJ
+-----END CERTIFICATE-----
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/Root5CA/cert_chain_dsa_len1/dsaparam.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,6 @@
+-----BEGIN DSA PARAMETERS-----
+MIGcAkEA6HtPLZcp9izRg4jrqkPnRaoVp3veb9w3S7zbvH8/ymTVFJbzIjaeXrjH
+SPv0kTEcdUiT5HWLGCEqTWbRLn1wGQIVAKLLEThTI2Az9k52euMyQKVvf25bAkBk
+D9d7jlj60dsxzkyRtg5voil08t7VvfAGQFXUM68S4IrUWWaeX1dOrw+5dC4nQI6j
+6EXvzB1B8TGQMZg6Ci5R
+-----END DSA PARAMETERS-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/Root5CA/cert_chain_dsa_len1/first.dsa.cer	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIDCCAomgAwIBAgIBATANBgkqhkiG9w0BAQQFADAzMR0wGwYDVQQKExRTeW1i
+aWFuIFNvZnR3YXJlIEx0ZDESMBAGA1UEAxMJUm9vdDUtUlNBMB4XDTA1MDQwMTEw
+NDcyNFoXDTE1MDMzMDEwNDcyNFowgYExCzAJBgNVBAYTAlVLMQ8wDQYDVQQHEwZM
+b25kb24xIzAhBgNVBAMTGkRTQSBSb290NUNBIENoYWluIENlcnQgT25lMRQwEgYD
+VQQKEwtTeW1iaWFuIEx0ZDEmMCQGCSqGSIb3DQEJARYXam9oYW4uZ3JvdGhAc3lt
+Ymlhbi5jb20wgfAwgagGByqGSM44BAEwgZwCQQC0TNK7G4u54wgQuZ6KX94Nxo3E
+8/qJUP1M/6maesHtUkaQ/wA0D5MiLZJUqFdZQM5uNcH9c1alEGfhkAZcTCpDAhUA
+wYZNUYZFMR8teLd7YtI1DcLvKGkCQBxdHSK4yFoxwK0qMhap/+01viQO+oAVzd8+
+tVCjt3UYTnGhQQYGDlps+eikZyAIUvPPt5gLweCvdXcmUVrjIxYDQwACQANsU7Eo
+05tTNkGfNjjBCMLSNHlGKCLOfxdsoZaP7pF/FniYAQEob/GKacicty95hbLijOTq
+wpPehWMrLHdIwjujgaMwgaAwHQYDVR0OBBYEFG+BQGrj2Evz6dt7hupZ30tgmSNO
+MFsGA1UdIwRUMFKAFHzjBilRFiByFNQlr/0YW21eSK9voTekNTAzMR0wGwYDVQQK
+ExRTeW1iaWFuIFNvZnR3YXJlIEx0ZDESMBAGA1UEAxMJUm9vdDUtUlNBggEAMBIG
+A1UdEwEB/wQIMAYBAf8CAQUwDgYDVR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBBAUA
+A4GBACSQmnUyCHJp4iN23mDk6I9jF0+qmbX9X75iAOF7V35b3GnoUvUU8F3yUcz7
+xb44ycHwr7QejhZ1gwD/I5PC5pLPjNwTqgWeJAQMIxkZSbKEYi/koJLNAknBpHh7
+QTKDe1buHqfUzrs3nhb1ekOTIKwcM/5FFcAh/adag6otIraJ
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/Root5CA/cert_chain_dsa_len2/chain_dsa_len2.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,38 @@
+-----BEGIN CERTIFICATE-----
+MIIDETCCAs+gAwIBAgIBATAJBgcqhkjOOAQDMIGBMQswCQYDVQQGEwJVSzEPMA0G
+A1UEBxMGTG9uZG9uMSMwIQYDVQQDExpEU0EgUm9vdDVDQSBDaGFpbiBDZXJ0IE9u
+ZTEUMBIGA1UEChMLU3ltYmlhbiBMdGQxJjAkBgkqhkiG9w0BCQEWF2pvaGFuLmdy
+b3RoQHN5bWJpYW4uY29tMB4XDTA1MDQwMTEwNTM1OFoXDTE1MDMzMDEwNTM1OFow
+fDELMAkGA1UEBhMCVUsxDzANBgNVBAcTBkxvbmRvbjEjMCEGA1UEAxMaRFNBIFJv
+b3Q1Q0EgQ2hhaW4gQ2VydCBUd28xFTATBgNVBAoTDFN5bWJpYW4gTHRkLjEgMB4G
+CSqGSIb3DQEJARYRUGVsbGVQb3BAYWNtZS5jb20wgfEwgakGByqGSM44BAEwgZ0C
+QQCwh0TaWtGSF7mmpHHO2xSa/RFTW+glK/Vr3XFbUOgvs85Q+BfhkII88jnaT9R1
+fByWjSjE6jq4VUlEeMb5VNpxAhUA26YeSjCVaaNjGjTXlQeDMC7tO8MCQQCSES9C
+SiBdyIPw+KhyzOAP9wlT2lfLt5CHxwbPrRXEfHPIBqpx6TLqonArBPbIBOGhSdLI
+/81/xIYqcLfcJBtUA0MAAkAY2Q3tLu23siwubFPb4jaQYgto8R9iUKdsYoqnxaIe
+mVLoYNNp+dAMFxDsgXRgPNiwOrt3gZYjku/mSLbfCycko4GjMIGgMB0GA1UdDgQW
+BBSnbhE1ZPfMSqPd9ipohA5hhrxQYTBbBgNVHSMEVDBSgBRvgUBq49hL8+nbe4bq
+Wd9LYJkjTqE3pDUwMzEdMBsGA1UEChMUU3ltYmlhbiBTb2Z0d2FyZSBMdGQxEjAQ
+BgNVBAMTCVJvb3Q1LVJTQYIBATASBgNVHRMBAf8ECDAGAQH/AgEFMA4GA1UdDwEB
+/wQEAwICBDAJBgcqhkjOOAQDAzEAMC4CFQCJmyYk42NLyqnoh7ctbhBaNRo5QQIV
+AIZIY3awiP94RtG2cDjmLga1ogYl
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDIDCCAomgAwIBAgIBATANBgkqhkiG9w0BAQQFADAzMR0wGwYDVQQKExRTeW1i
+aWFuIFNvZnR3YXJlIEx0ZDESMBAGA1UEAxMJUm9vdDUtUlNBMB4XDTA1MDQwMTEw
+NDcyNFoXDTE1MDMzMDEwNDcyNFowgYExCzAJBgNVBAYTAlVLMQ8wDQYDVQQHEwZM
+b25kb24xIzAhBgNVBAMTGkRTQSBSb290NUNBIENoYWluIENlcnQgT25lMRQwEgYD
+VQQKEwtTeW1iaWFuIEx0ZDEmMCQGCSqGSIb3DQEJARYXam9oYW4uZ3JvdGhAc3lt
+Ymlhbi5jb20wgfAwgagGByqGSM44BAEwgZwCQQC0TNK7G4u54wgQuZ6KX94Nxo3E
+8/qJUP1M/6maesHtUkaQ/wA0D5MiLZJUqFdZQM5uNcH9c1alEGfhkAZcTCpDAhUA
+wYZNUYZFMR8teLd7YtI1DcLvKGkCQBxdHSK4yFoxwK0qMhap/+01viQO+oAVzd8+
+tVCjt3UYTnGhQQYGDlps+eikZyAIUvPPt5gLweCvdXcmUVrjIxYDQwACQANsU7Eo
+05tTNkGfNjjBCMLSNHlGKCLOfxdsoZaP7pF/FniYAQEob/GKacicty95hbLijOTq
+wpPehWMrLHdIwjujgaMwgaAwHQYDVR0OBBYEFG+BQGrj2Evz6dt7hupZ30tgmSNO
+MFsGA1UdIwRUMFKAFHzjBilRFiByFNQlr/0YW21eSK9voTekNTAzMR0wGwYDVQQK
+ExRTeW1iaWFuIFNvZnR3YXJlIEx0ZDESMBAGA1UEAxMJUm9vdDUtUlNBggEAMBIG
+A1UdEwEB/wQIMAYBAf8CAQUwDgYDVR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBBAUA
+A4GBACSQmnUyCHJp4iN23mDk6I9jF0+qmbX9X75iAOF7V35b3GnoUvUU8F3yUcz7
+xb44ycHwr7QejhZ1gwD/I5PC5pLPjNwTqgWeJAQMIxkZSbKEYi/koJLNAknBpHh7
+QTKDe1buHqfUzrs3nhb1ekOTIKwcM/5FFcAh/adag6otIraJ
+-----END CERTIFICATE-----
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/Root5CA/cert_chain_dsa_len2/dsaparam.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,6 @@
+-----BEGIN DSA PARAMETERS-----
+MIGdAkEAsIdE2lrRkhe5pqRxztsUmv0RU1voJSv1a91xW1DoL7POUPgX4ZCCPPI5
+2k/UdXwclo0oxOo6uFVJRHjG+VTacQIVANumHkowlWmjYxo015UHgzAu7TvDAkEA
+khEvQkogXciD8PiocszgD/cJU9pXy7eQh8cGz60VxHxzyAaqceky6qJwKwT2yATh
+oUnSyP/Nf8SGKnC33CQbVA==
+-----END DSA PARAMETERS-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/Root5CA/cert_chain_dsa_len2/second.dsa.cer	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDETCCAs+gAwIBAgIBATAJBgcqhkjOOAQDMIGBMQswCQYDVQQGEwJVSzEPMA0G
+A1UEBxMGTG9uZG9uMSMwIQYDVQQDExpEU0EgUm9vdDVDQSBDaGFpbiBDZXJ0IE9u
+ZTEUMBIGA1UEChMLU3ltYmlhbiBMdGQxJjAkBgkqhkiG9w0BCQEWF2pvaGFuLmdy
+b3RoQHN5bWJpYW4uY29tMB4XDTA1MDQwMTEwNTM1OFoXDTE1MDMzMDEwNTM1OFow
+fDELMAkGA1UEBhMCVUsxDzANBgNVBAcTBkxvbmRvbjEjMCEGA1UEAxMaRFNBIFJv
+b3Q1Q0EgQ2hhaW4gQ2VydCBUd28xFTATBgNVBAoTDFN5bWJpYW4gTHRkLjEgMB4G
+CSqGSIb3DQEJARYRUGVsbGVQb3BAYWNtZS5jb20wgfEwgakGByqGSM44BAEwgZ0C
+QQCwh0TaWtGSF7mmpHHO2xSa/RFTW+glK/Vr3XFbUOgvs85Q+BfhkII88jnaT9R1
+fByWjSjE6jq4VUlEeMb5VNpxAhUA26YeSjCVaaNjGjTXlQeDMC7tO8MCQQCSES9C
+SiBdyIPw+KhyzOAP9wlT2lfLt5CHxwbPrRXEfHPIBqpx6TLqonArBPbIBOGhSdLI
+/81/xIYqcLfcJBtUA0MAAkAY2Q3tLu23siwubFPb4jaQYgto8R9iUKdsYoqnxaIe
+mVLoYNNp+dAMFxDsgXRgPNiwOrt3gZYjku/mSLbfCycko4GjMIGgMB0GA1UdDgQW
+BBSnbhE1ZPfMSqPd9ipohA5hhrxQYTBbBgNVHSMEVDBSgBRvgUBq49hL8+nbe4bq
+Wd9LYJkjTqE3pDUwMzEdMBsGA1UEChMUU3ltYmlhbiBTb2Z0d2FyZSBMdGQxEjAQ
+BgNVBAMTCVJvb3Q1LVJTQYIBATASBgNVHRMBAf8ECDAGAQH/AgEFMA4GA1UdDwEB
+/wQEAwICBDAJBgcqhkjOOAQDAzEAMC4CFQCJmyYk42NLyqnoh7ctbhBaNRo5QQIV
+AIZIY3awiP94RtG2cDjmLga1ogYl
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/Root5CA/cert_chain_dsa_len3/chain_dsa_len3.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,58 @@
+-----BEGIN CERTIFICATE-----
+MIIDXDCCAxygAwIBAgIBATAJBgcqhkjOOAQDMHwxCzAJBgNVBAYTAlVLMQ8wDQYD
+VQQHEwZMb25kb24xIzAhBgNVBAMTGkRTQSBSb290NUNBIENoYWluIENlcnQgVHdv
+MRUwEwYDVQQKEwxTeW1iaWFuIEx0ZC4xIDAeBgkqhkiG9w0BCQEWEVBlbGxlUG9w
+QGFjbWUuY29tMB4XDTA1MDQwMTEwNTg1OVoXDTE1MDMzMDEwNTg1OVowezELMAkG
+A1UEBhMCVUsxDzANBgNVBAcTBkxvbmRvbjElMCMGA1UEAxMcRFNBIFJvb3Q1Q0Eg
+Q2hhaW4gQ2VydCBUaHJlZTEVMBMGA1UEChMMU3ltYmlhbiBMdGQuMR0wGwYJKoZI
+hvcNAQkBFg5vd25AZmx5aW5nLmNvbTCB8TCBqAYHKoZIzjgEATCBnAJBAMYtsTDH
+7MSf0CYAE6cUW/35ewW87MHU/0+H5K89Iyj7/r1kRVCkhbxLp7pNAriiWUScZ5Xl
+gH4GM+voU3XIBS8CFQD5nMAcjAHjY8nVuiEpuN8UFxWy/QJARBnxgeDvJSP/Qv2p
+gqmI9Tksx77mPoJYhEYjj+Ylpl8N9+7j6xNBLR6lpWPUet0635M87MZhojK3oMiV
+3HqN8QNEAAJBAKcSdoNWY3Yed8A2Pv4QcfNFjWEucQWjSWUS3ET3Rwu9vntUO8LH
+GfHbhe8aXu3MZBPudnU4LiAcy0+SwnUVGb2jgfcwgfQwHQYDVR0OBBYEFOVWYzZp
+iZk40FFAJAQqgWpSHNgaMIGuBgNVHSMEgaYwgaOAFKduETVk98xKo932KmiEDmGG
+vFBhoYGHpIGEMIGBMQswCQYDVQQGEwJVSzEPMA0GA1UEBxMGTG9uZG9uMSMwIQYD
+VQQDExpEU0EgUm9vdDVDQSBDaGFpbiBDZXJ0IE9uZTEUMBIGA1UEChMLU3ltYmlh
+biBMdGQxJjAkBgkqhkiG9w0BCQEWF2pvaGFuLmdyb3RoQHN5bWJpYW4uY29tggEB
+MBIGA1UdEwEB/wQIMAYBAf8CAQUwDgYDVR0PAQH/BAQDAgIEMAkGByqGSM44BAMD
+LwAwLAIUQM6gNn6F6hoQ1Lntet4ja7k48jgCFCA3JRiZ1AI3gXd/bwlnhB6YsWzs
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDETCCAs+gAwIBAgIBATAJBgcqhkjOOAQDMIGBMQswCQYDVQQGEwJVSzEPMA0G
+A1UEBxMGTG9uZG9uMSMwIQYDVQQDExpEU0EgUm9vdDVDQSBDaGFpbiBDZXJ0IE9u
+ZTEUMBIGA1UEChMLU3ltYmlhbiBMdGQxJjAkBgkqhkiG9w0BCQEWF2pvaGFuLmdy
+b3RoQHN5bWJpYW4uY29tMB4XDTA1MDQwMTEwNTM1OFoXDTE1MDMzMDEwNTM1OFow
+fDELMAkGA1UEBhMCVUsxDzANBgNVBAcTBkxvbmRvbjEjMCEGA1UEAxMaRFNBIFJv
+b3Q1Q0EgQ2hhaW4gQ2VydCBUd28xFTATBgNVBAoTDFN5bWJpYW4gTHRkLjEgMB4G
+CSqGSIb3DQEJARYRUGVsbGVQb3BAYWNtZS5jb20wgfEwgakGByqGSM44BAEwgZ0C
+QQCwh0TaWtGSF7mmpHHO2xSa/RFTW+glK/Vr3XFbUOgvs85Q+BfhkII88jnaT9R1
+fByWjSjE6jq4VUlEeMb5VNpxAhUA26YeSjCVaaNjGjTXlQeDMC7tO8MCQQCSES9C
+SiBdyIPw+KhyzOAP9wlT2lfLt5CHxwbPrRXEfHPIBqpx6TLqonArBPbIBOGhSdLI
+/81/xIYqcLfcJBtUA0MAAkAY2Q3tLu23siwubFPb4jaQYgto8R9iUKdsYoqnxaIe
+mVLoYNNp+dAMFxDsgXRgPNiwOrt3gZYjku/mSLbfCycko4GjMIGgMB0GA1UdDgQW
+BBSnbhE1ZPfMSqPd9ipohA5hhrxQYTBbBgNVHSMEVDBSgBRvgUBq49hL8+nbe4bq
+Wd9LYJkjTqE3pDUwMzEdMBsGA1UEChMUU3ltYmlhbiBTb2Z0d2FyZSBMdGQxEjAQ
+BgNVBAMTCVJvb3Q1LVJTQYIBATASBgNVHRMBAf8ECDAGAQH/AgEFMA4GA1UdDwEB
+/wQEAwICBDAJBgcqhkjOOAQDAzEAMC4CFQCJmyYk42NLyqnoh7ctbhBaNRo5QQIV
+AIZIY3awiP94RtG2cDjmLga1ogYl
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDIDCCAomgAwIBAgIBATANBgkqhkiG9w0BAQQFADAzMR0wGwYDVQQKExRTeW1i
+aWFuIFNvZnR3YXJlIEx0ZDESMBAGA1UEAxMJUm9vdDUtUlNBMB4XDTA1MDQwMTEw
+NDcyNFoXDTE1MDMzMDEwNDcyNFowgYExCzAJBgNVBAYTAlVLMQ8wDQYDVQQHEwZM
+b25kb24xIzAhBgNVBAMTGkRTQSBSb290NUNBIENoYWluIENlcnQgT25lMRQwEgYD
+VQQKEwtTeW1iaWFuIEx0ZDEmMCQGCSqGSIb3DQEJARYXam9oYW4uZ3JvdGhAc3lt
+Ymlhbi5jb20wgfAwgagGByqGSM44BAEwgZwCQQC0TNK7G4u54wgQuZ6KX94Nxo3E
+8/qJUP1M/6maesHtUkaQ/wA0D5MiLZJUqFdZQM5uNcH9c1alEGfhkAZcTCpDAhUA
+wYZNUYZFMR8teLd7YtI1DcLvKGkCQBxdHSK4yFoxwK0qMhap/+01viQO+oAVzd8+
+tVCjt3UYTnGhQQYGDlps+eikZyAIUvPPt5gLweCvdXcmUVrjIxYDQwACQANsU7Eo
+05tTNkGfNjjBCMLSNHlGKCLOfxdsoZaP7pF/FniYAQEob/GKacicty95hbLijOTq
+wpPehWMrLHdIwjujgaMwgaAwHQYDVR0OBBYEFG+BQGrj2Evz6dt7hupZ30tgmSNO
+MFsGA1UdIwRUMFKAFHzjBilRFiByFNQlr/0YW21eSK9voTekNTAzMR0wGwYDVQQK
+ExRTeW1iaWFuIFNvZnR3YXJlIEx0ZDESMBAGA1UEAxMJUm9vdDUtUlNBggEAMBIG
+A1UdEwEB/wQIMAYBAf8CAQUwDgYDVR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBBAUA
+A4GBACSQmnUyCHJp4iN23mDk6I9jF0+qmbX9X75iAOF7V35b3GnoUvUU8F3yUcz7
+xb44ycHwr7QejhZ1gwD/I5PC5pLPjNwTqgWeJAQMIxkZSbKEYi/koJLNAknBpHh7
+QTKDe1buHqfUzrs3nhb1ekOTIKwcM/5FFcAh/adag6otIraJ
+-----END CERTIFICATE-----
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/Root5CA/cert_chain_dsa_len3/dsaparam.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,6 @@
+-----BEGIN DSA PARAMETERS-----
+MIGcAkEAxi2xMMfsxJ/QJgATpxRb/fl7BbzswdT/T4fkrz0jKPv+vWRFUKSFvEun
+uk0CuKJZRJxnleWAfgYz6+hTdcgFLwIVAPmcwByMAeNjydW6ISm43xQXFbL9AkBE
+GfGB4O8lI/9C/amCqYj1OSzHvuY+gliERiOP5iWmXw337uPrE0EtHqWlY9R63Trf
+kzzsxmGiMregyJXceo3x
+-----END DSA PARAMETERS-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/Root5CA/cert_chain_dsa_len3/third.dsa.cer	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDXDCCAxygAwIBAgIBATAJBgcqhkjOOAQDMHwxCzAJBgNVBAYTAlVLMQ8wDQYD
+VQQHEwZMb25kb24xIzAhBgNVBAMTGkRTQSBSb290NUNBIENoYWluIENlcnQgVHdv
+MRUwEwYDVQQKEwxTeW1iaWFuIEx0ZC4xIDAeBgkqhkiG9w0BCQEWEVBlbGxlUG9w
+QGFjbWUuY29tMB4XDTA1MDQwMTEwNTg1OVoXDTE1MDMzMDEwNTg1OVowezELMAkG
+A1UEBhMCVUsxDzANBgNVBAcTBkxvbmRvbjElMCMGA1UEAxMcRFNBIFJvb3Q1Q0Eg
+Q2hhaW4gQ2VydCBUaHJlZTEVMBMGA1UEChMMU3ltYmlhbiBMdGQuMR0wGwYJKoZI
+hvcNAQkBFg5vd25AZmx5aW5nLmNvbTCB8TCBqAYHKoZIzjgEATCBnAJBAMYtsTDH
+7MSf0CYAE6cUW/35ewW87MHU/0+H5K89Iyj7/r1kRVCkhbxLp7pNAriiWUScZ5Xl
+gH4GM+voU3XIBS8CFQD5nMAcjAHjY8nVuiEpuN8UFxWy/QJARBnxgeDvJSP/Qv2p
+gqmI9Tksx77mPoJYhEYjj+Ylpl8N9+7j6xNBLR6lpWPUet0635M87MZhojK3oMiV
+3HqN8QNEAAJBAKcSdoNWY3Yed8A2Pv4QcfNFjWEucQWjSWUS3ET3Rwu9vntUO8LH
+GfHbhe8aXu3MZBPudnU4LiAcy0+SwnUVGb2jgfcwgfQwHQYDVR0OBBYEFOVWYzZp
+iZk40FFAJAQqgWpSHNgaMIGuBgNVHSMEgaYwgaOAFKduETVk98xKo932KmiEDmGG
+vFBhoYGHpIGEMIGBMQswCQYDVQQGEwJVSzEPMA0GA1UEBxMGTG9uZG9uMSMwIQYD
+VQQDExpEU0EgUm9vdDVDQSBDaGFpbiBDZXJ0IE9uZTEUMBIGA1UEChMLU3ltYmlh
+biBMdGQxJjAkBgkqhkiG9w0BCQEWF2pvaGFuLmdyb3RoQHN5bWJpYW4uY29tggEB
+MBIGA1UdEwEB/wQIMAYBAf8CAQUwDgYDVR0PAQH/BAQDAgIEMAkGByqGSM44BAMD
+LwAwLAIUQM6gNn6F6hoQ1Lntet4ja7k48jgCFCA3JRiZ1AI3gXd/bwlnhB6YsWzs
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/Root5CA/cert_chain_rsa_len1/chain_rsa_len1.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,16 @@
+-----BEGIN CERTIFICATE-----
+MIICizCCAfSgAwIBAgIBATANBgkqhkiG9w0BAQQFADAzMR0wGwYDVQQKExRTeW1i
+aWFuIFNvZnR3YXJlIEx0ZDESMBAGA1UEAxMJUm9vdDUtUlNBMB4XDTA1MDQyNzA4
+MTQwMloXDTE1MDQyNTA4MTQwMlowgYExCzAJBgNVBAYTAlVLMQ8wDQYDVQQHEwZM
+b25kb24xIzAhBgNVBAMTGlJTQSBSb290NUNBIENoYWluIENlcnQgT25lMRQwEgYD
+VQQKEwtTeW1iaWFuIEx0ZDEmMCQGCSqGSIb3DQEJARYXam9oYW4uZ3JvdGhAc3lt
+Ymlhbi5jb20wXDANBgkqhkiG9w0BAQEFAANLADBIAkEA3KWObEO7WijQsHEPhPrD
+Fy9/6BS+rfmFqHShh3WRBR0cC9hLqP4fmR43DlTgDL1fVT38/LbM+rqtA4cIlOn0
++QIDAQABo4GjMIGgMB0GA1UdDgQWBBQctHMm+ZPXgGnsuDXkwxg3TH4oszBbBgNV
+HSMEVDBSgBR84wYpURYgchTUJa/9GFttXkivb6E3pDUwMzEdMBsGA1UEChMUU3lt
+YmlhbiBTb2Z0d2FyZSBMdGQxEjAQBgNVBAMTCVJvb3Q1LVJTQYIBADASBgNVHRMB
+Af8ECDAGAQH/AgEFMA4GA1UdDwEB/wQEAwICBDANBgkqhkiG9w0BAQQFAAOBgQAs
+WVPNFvQURXpokkYvBaLNUipeOAE+rM1mUJEwuyKLt8IR6ffgH+NpRbNZid50nXGj
+zVcggQkDuephJcZ2rmtw8yiLdKgmHrUtWajRvUeBpVkG6kZIZW3JV82QZX+j9Op0
+QK2ZvawGDvWUeuG52PdqVfuqqoeTXticFeScENjHAw==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/Root5CA/cert_chain_rsa_len1/first.rsa.cer	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,16 @@
+-----BEGIN CERTIFICATE-----
+MIICizCCAfSgAwIBAgIBATANBgkqhkiG9w0BAQQFADAzMR0wGwYDVQQKExRTeW1i
+aWFuIFNvZnR3YXJlIEx0ZDESMBAGA1UEAxMJUm9vdDUtUlNBMB4XDTA1MDQyNzA4
+MTQwMloXDTE1MDQyNTA4MTQwMlowgYExCzAJBgNVBAYTAlVLMQ8wDQYDVQQHEwZM
+b25kb24xIzAhBgNVBAMTGlJTQSBSb290NUNBIENoYWluIENlcnQgT25lMRQwEgYD
+VQQKEwtTeW1iaWFuIEx0ZDEmMCQGCSqGSIb3DQEJARYXam9oYW4uZ3JvdGhAc3lt
+Ymlhbi5jb20wXDANBgkqhkiG9w0BAQEFAANLADBIAkEA3KWObEO7WijQsHEPhPrD
+Fy9/6BS+rfmFqHShh3WRBR0cC9hLqP4fmR43DlTgDL1fVT38/LbM+rqtA4cIlOn0
++QIDAQABo4GjMIGgMB0GA1UdDgQWBBQctHMm+ZPXgGnsuDXkwxg3TH4oszBbBgNV
+HSMEVDBSgBR84wYpURYgchTUJa/9GFttXkivb6E3pDUwMzEdMBsGA1UEChMUU3lt
+YmlhbiBTb2Z0d2FyZSBMdGQxEjAQBgNVBAMTCVJvb3Q1LVJTQYIBADASBgNVHRMB
+Af8ECDAGAQH/AgEFMA4GA1UdDwEB/wQEAwICBDANBgkqhkiG9w0BAQQFAAOBgQAs
+WVPNFvQURXpokkYvBaLNUipeOAE+rM1mUJEwuyKLt8IR6ffgH+NpRbNZid50nXGj
+zVcggQkDuephJcZ2rmtw8yiLdKgmHrUtWajRvUeBpVkG6kZIZW3JV82QZX+j9Op0
+QK2ZvawGDvWUeuG52PdqVfuqqoeTXticFeScENjHAw==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/Root5CA/cert_chain_rsa_len2/chain_rsa_len2.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,32 @@
+-----BEGIN CERTIFICATE-----
+MIICkzCCAj2gAwIBAgIBATANBgkqhkiG9w0BAQQFADCBgTELMAkGA1UEBhMCVUsx
+DzANBgNVBAcTBkxvbmRvbjEjMCEGA1UEAxMaUlNBIFJvb3Q1Q0EgQ2hhaW4gQ2Vy
+dCBPbmUxFDASBgNVBAoTC1N5bWJpYW4gTHRkMSYwJAYJKoZIhvcNAQkBFhdqb2hh
+bi5ncm90aEBzeW1iaWFuLmNvbTAeFw0wNTA0MjcwODE3MzNaFw0xNTA0MjUwODE3
+MzNaMHwxCzAJBgNVBAYTAlVLMQ8wDQYDVQQHEwZMb25kb24xIzAhBgNVBAMTGlJT
+QSBSb290NUNBIENoYWluIENlcnQgVHdvMRUwEwYDVQQKEwxTeW1iaWFuIEx0ZC4x
+IDAeBgkqhkiG9w0BCQEWEVBlbGxlUG9wQGFjbWUuY29tMFwwDQYJKoZIhvcNAQEB
+BQADSwAwSAJBAPnR4oIbMichqgTb/Wt7ZAtt2pNrjENPNrK7n5xt+0OBLZ77goOG
+wBVvv6ICkq57Z00U7rmoru099eC/F8oZViUCAwEAAaOBozCBoDAdBgNVHQ4EFgQU
+HjE++/bA8Fxyf2DKekjcRPxaPPEwWwYDVR0jBFQwUoAUHLRzJvmT14Bp7Lg15MMY
+N0x+KLOhN6Q1MDMxHTAbBgNVBAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRIwEAYD
+VQQDEwlSb290NS1SU0GCAQEwEgYDVR0TAQH/BAgwBgEB/wIBBTAOBgNVHQ8BAf8E
+BAMCAgQwDQYJKoZIhvcNAQEEBQADQQAAfRCcrifgzk0kVjdgbw4jX0iwtYxIUg+l
+3TfIdt06F3ySh2E8kmxg+CJYtwpwo+ZU5QGbAKfbF9AAd+nQlKnd
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICizCCAfSgAwIBAgIBATANBgkqhkiG9w0BAQQFADAzMR0wGwYDVQQKExRTeW1i
+aWFuIFNvZnR3YXJlIEx0ZDESMBAGA1UEAxMJUm9vdDUtUlNBMB4XDTA1MDQyNzA4
+MTQwMloXDTE1MDQyNTA4MTQwMlowgYExCzAJBgNVBAYTAlVLMQ8wDQYDVQQHEwZM
+b25kb24xIzAhBgNVBAMTGlJTQSBSb290NUNBIENoYWluIENlcnQgT25lMRQwEgYD
+VQQKEwtTeW1iaWFuIEx0ZDEmMCQGCSqGSIb3DQEJARYXam9oYW4uZ3JvdGhAc3lt
+Ymlhbi5jb20wXDANBgkqhkiG9w0BAQEFAANLADBIAkEA3KWObEO7WijQsHEPhPrD
+Fy9/6BS+rfmFqHShh3WRBR0cC9hLqP4fmR43DlTgDL1fVT38/LbM+rqtA4cIlOn0
++QIDAQABo4GjMIGgMB0GA1UdDgQWBBQctHMm+ZPXgGnsuDXkwxg3TH4oszBbBgNV
+HSMEVDBSgBR84wYpURYgchTUJa/9GFttXkivb6E3pDUwMzEdMBsGA1UEChMUU3lt
+YmlhbiBTb2Z0d2FyZSBMdGQxEjAQBgNVBAMTCVJvb3Q1LVJTQYIBADASBgNVHRMB
+Af8ECDAGAQH/AgEFMA4GA1UdDwEB/wQEAwICBDANBgkqhkiG9w0BAQQFAAOBgQAs
+WVPNFvQURXpokkYvBaLNUipeOAE+rM1mUJEwuyKLt8IR6ffgH+NpRbNZid50nXGj
+zVcggQkDuephJcZ2rmtw8yiLdKgmHrUtWajRvUeBpVkG6kZIZW3JV82QZX+j9Op0
+QK2ZvawGDvWUeuG52PdqVfuqqoeTXticFeScENjHAw==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/Root5CA/cert_chain_rsa_len2/second.rsa.cer	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,16 @@
+-----BEGIN CERTIFICATE-----
+MIICkzCCAj2gAwIBAgIBATANBgkqhkiG9w0BAQQFADCBgTELMAkGA1UEBhMCVUsx
+DzANBgNVBAcTBkxvbmRvbjEjMCEGA1UEAxMaUlNBIFJvb3Q1Q0EgQ2hhaW4gQ2Vy
+dCBPbmUxFDASBgNVBAoTC1N5bWJpYW4gTHRkMSYwJAYJKoZIhvcNAQkBFhdqb2hh
+bi5ncm90aEBzeW1iaWFuLmNvbTAeFw0wNTA0MjcwODE3MzNaFw0xNTA0MjUwODE3
+MzNaMHwxCzAJBgNVBAYTAlVLMQ8wDQYDVQQHEwZMb25kb24xIzAhBgNVBAMTGlJT
+QSBSb290NUNBIENoYWluIENlcnQgVHdvMRUwEwYDVQQKEwxTeW1iaWFuIEx0ZC4x
+IDAeBgkqhkiG9w0BCQEWEVBlbGxlUG9wQGFjbWUuY29tMFwwDQYJKoZIhvcNAQEB
+BQADSwAwSAJBAPnR4oIbMichqgTb/Wt7ZAtt2pNrjENPNrK7n5xt+0OBLZ77goOG
+wBVvv6ICkq57Z00U7rmoru099eC/F8oZViUCAwEAAaOBozCBoDAdBgNVHQ4EFgQU
+HjE++/bA8Fxyf2DKekjcRPxaPPEwWwYDVR0jBFQwUoAUHLRzJvmT14Bp7Lg15MMY
+N0x+KLOhN6Q1MDMxHTAbBgNVBAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRIwEAYD
+VQQDEwlSb290NS1SU0GCAQEwEgYDVR0TAQH/BAgwBgEB/wIBBTAOBgNVHQ8BAf8E
+BAMCAgQwDQYJKoZIhvcNAQEEBQADQQAAfRCcrifgzk0kVjdgbw4jX0iwtYxIUg+l
+3TfIdt06F3ySh2E8kmxg+CJYtwpwo+ZU5QGbAKfbF9AAd+nQlKnd
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/Root5CA/cert_chain_rsa_len3/chain_rsa_len3.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,50 @@
+-----BEGIN CERTIFICATE-----
+MIIC4DCCAoqgAwIBAgIBATANBgkqhkiG9w0BAQQFADB8MQswCQYDVQQGEwJVSzEP
+MA0GA1UEBxMGTG9uZG9uMSMwIQYDVQQDExpSU0EgUm9vdDVDQSBDaGFpbiBDZXJ0
+IFR3bzEVMBMGA1UEChMMU3ltYmlhbiBMdGQuMSAwHgYJKoZIhvcNAQkBFhFQZWxs
+ZVBvcEBhY21lLmNvbTAeFw0wNTA0MjcwODE4NTJaFw0xNTA0MjUwODE4NTJaMHsx
+CzAJBgNVBAYTAlVLMQ8wDQYDVQQHEwZMb25kb24xJTAjBgNVBAMTHFJTQSBSb290
+NUNBIENoYWluIENlcnQgVGhyZWUxFTATBgNVBAoTDFN5bWJpYW4gTHRkLjEdMBsG
+CSqGSIb3DQEJARYOb3duQGZseWluZy5jb20wXDANBgkqhkiG9w0BAQEFAANLADBI
+AkEApNFkova4yh+aGk9vGC+yFpIkFaCYoEyEdSyn2RZZDbnDbxTUo5i6D+5T/69E
+wffhCFuJ6lH7sunnViB5veDC4wIDAQABo4H3MIH0MB0GA1UdDgQWBBQuSi6wWPLv
+XjHcvEb+OWkYX6zkODCBrgYDVR0jBIGmMIGjgBQeMT779sDwXHJ/YMp6SNxE/Fo8
+8aGBh6SBhDCBgTELMAkGA1UEBhMCVUsxDzANBgNVBAcTBkxvbmRvbjEjMCEGA1UE
+AxMaUlNBIFJvb3Q1Q0EgQ2hhaW4gQ2VydCBPbmUxFDASBgNVBAoTC1N5bWJpYW4g
+THRkMSYwJAYJKoZIhvcNAQkBFhdqb2hhbi5ncm90aEBzeW1iaWFuLmNvbYIBATAS
+BgNVHRMBAf8ECDAGAQH/AgEFMA4GA1UdDwEB/wQEAwICBDANBgkqhkiG9w0BAQQF
+AANBAPJZl5Qnwj5nt1YBfjlpCWo7KXVnpsuwSo4vHOmBF65yX56tzJmJBWgcMH8c
+41gI7aK/ZY66hd1gS/hb33KqI34=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICkzCCAj2gAwIBAgIBATANBgkqhkiG9w0BAQQFADCBgTELMAkGA1UEBhMCVUsx
+DzANBgNVBAcTBkxvbmRvbjEjMCEGA1UEAxMaUlNBIFJvb3Q1Q0EgQ2hhaW4gQ2Vy
+dCBPbmUxFDASBgNVBAoTC1N5bWJpYW4gTHRkMSYwJAYJKoZIhvcNAQkBFhdqb2hh
+bi5ncm90aEBzeW1iaWFuLmNvbTAeFw0wNTA0MjcwODE3MzNaFw0xNTA0MjUwODE3
+MzNaMHwxCzAJBgNVBAYTAlVLMQ8wDQYDVQQHEwZMb25kb24xIzAhBgNVBAMTGlJT
+QSBSb290NUNBIENoYWluIENlcnQgVHdvMRUwEwYDVQQKEwxTeW1iaWFuIEx0ZC4x
+IDAeBgkqhkiG9w0BCQEWEVBlbGxlUG9wQGFjbWUuY29tMFwwDQYJKoZIhvcNAQEB
+BQADSwAwSAJBAPnR4oIbMichqgTb/Wt7ZAtt2pNrjENPNrK7n5xt+0OBLZ77goOG
+wBVvv6ICkq57Z00U7rmoru099eC/F8oZViUCAwEAAaOBozCBoDAdBgNVHQ4EFgQU
+HjE++/bA8Fxyf2DKekjcRPxaPPEwWwYDVR0jBFQwUoAUHLRzJvmT14Bp7Lg15MMY
+N0x+KLOhN6Q1MDMxHTAbBgNVBAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRIwEAYD
+VQQDEwlSb290NS1SU0GCAQEwEgYDVR0TAQH/BAgwBgEB/wIBBTAOBgNVHQ8BAf8E
+BAMCAgQwDQYJKoZIhvcNAQEEBQADQQAAfRCcrifgzk0kVjdgbw4jX0iwtYxIUg+l
+3TfIdt06F3ySh2E8kmxg+CJYtwpwo+ZU5QGbAKfbF9AAd+nQlKnd
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICizCCAfSgAwIBAgIBATANBgkqhkiG9w0BAQQFADAzMR0wGwYDVQQKExRTeW1i
+aWFuIFNvZnR3YXJlIEx0ZDESMBAGA1UEAxMJUm9vdDUtUlNBMB4XDTA1MDQyNzA4
+MTQwMloXDTE1MDQyNTA4MTQwMlowgYExCzAJBgNVBAYTAlVLMQ8wDQYDVQQHEwZM
+b25kb24xIzAhBgNVBAMTGlJTQSBSb290NUNBIENoYWluIENlcnQgT25lMRQwEgYD
+VQQKEwtTeW1iaWFuIEx0ZDEmMCQGCSqGSIb3DQEJARYXam9oYW4uZ3JvdGhAc3lt
+Ymlhbi5jb20wXDANBgkqhkiG9w0BAQEFAANLADBIAkEA3KWObEO7WijQsHEPhPrD
+Fy9/6BS+rfmFqHShh3WRBR0cC9hLqP4fmR43DlTgDL1fVT38/LbM+rqtA4cIlOn0
++QIDAQABo4GjMIGgMB0GA1UdDgQWBBQctHMm+ZPXgGnsuDXkwxg3TH4oszBbBgNV
+HSMEVDBSgBR84wYpURYgchTUJa/9GFttXkivb6E3pDUwMzEdMBsGA1UEChMUU3lt
+YmlhbiBTb2Z0d2FyZSBMdGQxEjAQBgNVBAMTCVJvb3Q1LVJTQYIBADASBgNVHRMB
+Af8ECDAGAQH/AgEFMA4GA1UdDwEB/wQEAwICBDANBgkqhkiG9w0BAQQFAAOBgQAs
+WVPNFvQURXpokkYvBaLNUipeOAE+rM1mUJEwuyKLt8IR6ffgH+NpRbNZid50nXGj
+zVcggQkDuephJcZ2rmtw8yiLdKgmHrUtWajRvUeBpVkG6kZIZW3JV82QZX+j9Op0
+QK2ZvawGDvWUeuG52PdqVfuqqoeTXticFeScENjHAw==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/Root5CA/cert_chain_rsa_len3/third.rsa.cer	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,18 @@
+-----BEGIN CERTIFICATE-----
+MIIC4DCCAoqgAwIBAgIBATANBgkqhkiG9w0BAQQFADB8MQswCQYDVQQGEwJVSzEP
+MA0GA1UEBxMGTG9uZG9uMSMwIQYDVQQDExpSU0EgUm9vdDVDQSBDaGFpbiBDZXJ0
+IFR3bzEVMBMGA1UEChMMU3ltYmlhbiBMdGQuMSAwHgYJKoZIhvcNAQkBFhFQZWxs
+ZVBvcEBhY21lLmNvbTAeFw0wNTA0MjcwODE4NTJaFw0xNTA0MjUwODE4NTJaMHsx
+CzAJBgNVBAYTAlVLMQ8wDQYDVQQHEwZMb25kb24xJTAjBgNVBAMTHFJTQSBSb290
+NUNBIENoYWluIENlcnQgVGhyZWUxFTATBgNVBAoTDFN5bWJpYW4gTHRkLjEdMBsG
+CSqGSIb3DQEJARYOb3duQGZseWluZy5jb20wXDANBgkqhkiG9w0BAQEFAANLADBI
+AkEApNFkova4yh+aGk9vGC+yFpIkFaCYoEyEdSyn2RZZDbnDbxTUo5i6D+5T/69E
+wffhCFuJ6lH7sunnViB5veDC4wIDAQABo4H3MIH0MB0GA1UdDgQWBBQuSi6wWPLv
+XjHcvEb+OWkYX6zkODCBrgYDVR0jBIGmMIGjgBQeMT779sDwXHJ/YMp6SNxE/Fo8
+8aGBh6SBhDCBgTELMAkGA1UEBhMCVUsxDzANBgNVBAcTBkxvbmRvbjEjMCEGA1UE
+AxMaUlNBIFJvb3Q1Q0EgQ2hhaW4gQ2VydCBPbmUxFDASBgNVBAoTC1N5bWJpYW4g
+THRkMSYwJAYJKoZIhvcNAQkBFhdqb2hhbi5ncm90aEBzeW1iaWFuLmNvbYIBATAS
+BgNVHRMBAf8ECDAGAQH/AgEFMA4GA1UdDwEB/wQEAwICBDANBgkqhkiG9w0BAQQF
+AANBAPJZl5Qnwj5nt1YBfjlpCWo7KXVnpsuwSo4vHOmBF65yX56tzJmJBWgcMH8c
+41gI7aK/ZY66hd1gS/hb33KqI34=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCADSA/ca.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,12 @@
+-----BEGIN DSA PRIVATE KEY-----
+MIIBvAIBAAKBgQDJpkRzuJS1xfiNZE38jJbXniA9kJr/uBMRNDjhT8mlJreLTFP+
+W98z5dBwEhkopLl1CkphQscCbyHggYYLGRUYJ3pjFjluc6r8Q4hSPbIDVnNq7BA6
+0k0MMCg1ZmfBj3A1c/5ojBwBOFgJZPIzbcy9xZEAmbcelFlG9ZbsNCu0qQIVANP3
+TmZgoi++E0Yht39NP/8wynN3AoGBAIXrdUgOLObzdo+JFS05HgaxzetS/AMuXTxj
+NP6v/Ya0xrdkmhDsWLNNZWbGl1P4ZBmFrvLPWok/2yxZ/PWq6jsRl7gxEjdoBB0O
+a2nlRLIj14E2Sax0ic85CUe0lA+BTX8MSV72xsQb3eKUo+4b5p6IDS3sWsGDj1VZ
+ILD2mc9rAoGBAIe/QDKH4qDO89XWfp0vlYxwjMVYm1TVeUsdaKTDtHLX3ygysHrI
+WG2EbY69Ns153OQeWfOANdYnWoU33JFDcjfJ6auhfcIK3ApJZH9uI7Bu1pagNW1J
+Qfey4Ecc2dCTOqC6lU1EOoCN8sjUPUkkM8p+Ugo4KRRDJHjVoBB8ZT/RAhRh1haP
+k0eQ3sDh8ImiQ1yn/yKjng==
+-----END DSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCADSA/ca.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDBDCCAsOgAwIBAgIBADAJBgcqhkjOOAQDMDwxHTAbBgNVBAoTFFN5bWJpYW4g
+U29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3QgLSBEU0EwHhcNMDQw
+NDE4MTQzNzExWhcNMjAwOTIxMTQzNzExWjA8MR0wGwYDVQQKExRTeW1iaWFuIFNv
+ZnR3YXJlIEx0ZDEbMBkGA1UEAxMSU3ltYmlhbiBUZXN0IC0gRFNBMIIBuDCCASwG
+ByqGSM44BAEwggEfAoGBAMmmRHO4lLXF+I1kTfyMlteeID2Qmv+4ExE0OOFPyaUm
+t4tMU/5b3zPl0HASGSikuXUKSmFCxwJvIeCBhgsZFRgnemMWOW5zqvxDiFI9sgNW
+c2rsEDrSTQwwKDVmZ8GPcDVz/miMHAE4WAlk8jNtzL3FkQCZtx6UWUb1luw0K7Sp
+AhUA0/dOZmCiL74TRiG3f00//zDKc3cCgYEAhet1SA4s5vN2j4kVLTkeBrHN61L8
+Ay5dPGM0/q/9hrTGt2SaEOxYs01lZsaXU/hkGYWu8s9aiT/bLFn89arqOxGXuDES
+N2gEHQ5raeVEsiPXgTZJrHSJzzkJR7SUD4FNfwxJXvbGxBvd4pSj7hvmnogNLexa
+wYOPVVkgsPaZz2sDgYUAAoGBAIe/QDKH4qDO89XWfp0vlYxwjMVYm1TVeUsdaKTD
+tHLX3ygysHrIWG2EbY69Ns153OQeWfOANdYnWoU33JFDcjfJ6auhfcIK3ApJZH9u
+I7Bu1pagNW1JQfey4Ecc2dCTOqC6lU1EOoCN8sjUPUkkM8p+Ugo4KRRDJHjVoBB8
+ZT/Ro1YwVDAOBgNVHQ8BAf8EBAMCAgQwEgYDVR0TAQH/BAgwBgEB/wIBBTAdBgNV
+HQ4EFgQU7LnBlP0mtZjkLbCsPS/klsNUcgowDwYJKwYBBQUHMAEFBAIFADAJBgcq
+hkjOOAQDAzAAMC0CFQDPtqfyYoCWxlHgV2w+X9toNYz4TQIUcGPvtY7Vv51IEdOO
+8kSAW+XYz5E=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCADSA/cert_chain_dsa_len1/chain_dsa_len1.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,18 @@
+-----BEGIN CERTIFICATE-----
+MIIC3DCCApugAwIBAgIBATAJBgcqhkjOOAQDMDwxHTAbBgNVBAoTFFN5bWJpYW4g
+U29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3QgLSBEU0EwHhcNMDUw
+NDA0MDcwMzUzWhcNMTUwNDAyMDcwMzUzWjCBhTELMAkGA1UEBhMCVUsxDzANBgNV
+BAcTBkxvbmRvbjEnMCUGA1UEAxMeRFNBIFRlc3RSb290RFNBIENoYWluIENlcnQg
+T25lMRQwEgYDVQQKEwtTeW1iaWFuIEx0ZDEmMCQGCSqGSIb3DQEJARYXam9oYW4u
+Z3JvdGhAc3ltYmlhbi5jb20wgfAwgagGByqGSM44BAEwgZwCQQDDKAmjz+eiYAXC
+XoTTjMy444vEPxsBT5OD75xLYW18O/8g8HUMMIeri0g5eQzbLahJnaUGpix6/i68
+l/Pn50FzAhUA0G7ltSREbVJCWQ6XqPk5hmohCMkCQAZJzyAeIWwKDPtKq2R8wSDj
+srB8c7BildSzmgvWftWVBG2uQqeJWPGp3nv9yTGt/9T/sJUlTW/Q7rdFn6N5LhcD
+QwACQB2dQiuuQo69I8gO2H6oivU/NtR8HOMs1yGhZX37/mEN5Rwfyjn2ySqgfiEi
+1sMwvoIzbPwPo+WTY80Am8tqIqejgawwgakwHQYDVR0OBBYEFM8odsd4tED4MwNG
+lFTQNOwyBxPBMGQGA1UdIwRdMFuAFOy5wZT9JrWY5C2wrD0v5JbDVHIKoUCkPjA8
+MR0wGwYDVQQKExRTeW1iaWFuIFNvZnR3YXJlIEx0ZDEbMBkGA1UEAxMSU3ltYmlh
+biBUZXN0IC0gRFNBggEAMBIGA1UdEwEB/wQIMAYBAf8CAQUwDgYDVR0PAQH/BAQD
+AgIEMAkGByqGSM44BAMDMAAwLQIVAJPLhrhgAOUOtMcVyP0ERETyn46iAhR/B51Z
+LsRuoLWsvQaRN4h9+TMg1Q==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCADSA/cert_chain_dsa_len1/dsaparam.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,6 @@
+-----BEGIN DSA PARAMETERS-----
+MIGcAkEAwygJo8/nomAFwl6E04zMuOOLxD8bAU+Tg++cS2FtfDv/IPB1DDCHq4tI
+OXkM2y2oSZ2lBqYsev4uvJfz5+dBcwIVANBu5bUkRG1SQlkOl6j5OYZqIQjJAkAG
+Sc8gHiFsCgz7SqtkfMEg47KwfHOwYpXUs5oL1n7VlQRtrkKniVjxqd57/ckxrf/U
+/7CVJU1v0O63RZ+jeS4X
+-----END DSA PARAMETERS-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCADSA/cert_chain_dsa_len1/first.dsa.cer	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,18 @@
+-----BEGIN CERTIFICATE-----
+MIIC3DCCApugAwIBAgIBATAJBgcqhkjOOAQDMDwxHTAbBgNVBAoTFFN5bWJpYW4g
+U29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3QgLSBEU0EwHhcNMDUw
+NDA0MDcwMzUzWhcNMTUwNDAyMDcwMzUzWjCBhTELMAkGA1UEBhMCVUsxDzANBgNV
+BAcTBkxvbmRvbjEnMCUGA1UEAxMeRFNBIFRlc3RSb290RFNBIENoYWluIENlcnQg
+T25lMRQwEgYDVQQKEwtTeW1iaWFuIEx0ZDEmMCQGCSqGSIb3DQEJARYXam9oYW4u
+Z3JvdGhAc3ltYmlhbi5jb20wgfAwgagGByqGSM44BAEwgZwCQQDDKAmjz+eiYAXC
+XoTTjMy444vEPxsBT5OD75xLYW18O/8g8HUMMIeri0g5eQzbLahJnaUGpix6/i68
+l/Pn50FzAhUA0G7ltSREbVJCWQ6XqPk5hmohCMkCQAZJzyAeIWwKDPtKq2R8wSDj
+srB8c7BildSzmgvWftWVBG2uQqeJWPGp3nv9yTGt/9T/sJUlTW/Q7rdFn6N5LhcD
+QwACQB2dQiuuQo69I8gO2H6oivU/NtR8HOMs1yGhZX37/mEN5Rwfyjn2ySqgfiEi
+1sMwvoIzbPwPo+WTY80Am8tqIqejgawwgakwHQYDVR0OBBYEFM8odsd4tED4MwNG
+lFTQNOwyBxPBMGQGA1UdIwRdMFuAFOy5wZT9JrWY5C2wrD0v5JbDVHIKoUCkPjA8
+MR0wGwYDVQQKExRTeW1iaWFuIFNvZnR3YXJlIEx0ZDEbMBkGA1UEAxMSU3ltYmlh
+biBUZXN0IC0gRFNBggEAMBIGA1UdEwEB/wQIMAYBAf8CAQUwDgYDVR0PAQH/BAQD
+AgIEMAkGByqGSM44BAMDMAAwLQIVAJPLhrhgAOUOtMcVyP0ERETyn46iAhR/B51Z
+LsRuoLWsvQaRN4h9+TMg1Q==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCADSA/cert_chain_dsa_len2/chain_dsa_len2.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,37 @@
+-----BEGIN CERTIFICATE-----
+MIIDHzCCAt+gAwIBAgIBATAJBgcqhkjOOAQDMIGFMQswCQYDVQQGEwJVSzEPMA0G
+A1UEBxMGTG9uZG9uMScwJQYDVQQDEx5EU0EgVGVzdFJvb3REU0EgQ2hhaW4gQ2Vy
+dCBPbmUxFDASBgNVBAoTC1N5bWJpYW4gTHRkMSYwJAYJKoZIhvcNAQkBFhdqb2hh
+bi5ncm90aEBzeW1iaWFuLmNvbTAeFw0wNTA0MDQwNzEwNDJaFw0xNTA0MDIwNzEw
+NDJaMH8xCzAJBgNVBAYTAlVLMQ8wDQYDVQQHEwZMb25kb24xJzAlBgNVBAMTHkRT
+QSBUZXN0Um9vdERTQSBDaGFpbiBDZXJ0IFR3bzEUMBIGA1UEChMLU3ltYmlhbiBM
+dGQxIDAeBgkqhkiG9w0BCQEWEVBlbGxlUG9wQGFjbWUuY29tMIHxMIGoBgcqhkjO
+OAQBMIGcAkEAv57nQTdfF1sD7/SG8vqiOl9S5YEE2Q/AAK9ncqoWjK4Xyf6TxqPn
+KfzxqNRmwBR6SrVnyDVM+Gb370CJuM0/qwIVAOAXE1GSQXjVlEnAZHGZT0FRyS2T
+AkApImPqui/fbvNd45+yUZFpGLQf3vVgIuX6rWpNySGXGlFcsZsTwFLPU0Wk1uQS
+WmVJo9pETkfjietzrQbko0bBA0QAAkEAqH2BZSHi7mJFCEmKsCoEeqzbnCyNWW7v
+q3177gPr9FwrW8xtqw2hjto3jKsfOfd98ZFGV3fNRfLFRfPFn+0bAqOBrDCBqTAd
+BgNVHQ4EFgQUPLgBHBBO/ff1oA3t4LEKB4igCR8wZAYDVR0jBF0wW4AUzyh2x3i0
+QPgzA0aUVNA07DIHE8GhQKQ+MDwxHTAbBgNVBAoTFFN5bWJpYW4gU29mdHdhcmUg
+THRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3QgLSBEU0GCAQEwEgYDVR0TAQH/BAgw
+BgEB/wIBBTAOBgNVHQ8BAf8EBAMCAgQwCQYHKoZIzjgEAwMvADAsAhQZj1jLewqv
+1zYOVIwOCnZi7nKyeQIUaD8Y1HhVp6suIyyu/48jG6F208o=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIC3DCCApugAwIBAgIBATAJBgcqhkjOOAQDMDwxHTAbBgNVBAoTFFN5bWJpYW4g
+U29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3QgLSBEU0EwHhcNMDUw
+NDA0MDcwMzUzWhcNMTUwNDAyMDcwMzUzWjCBhTELMAkGA1UEBhMCVUsxDzANBgNV
+BAcTBkxvbmRvbjEnMCUGA1UEAxMeRFNBIFRlc3RSb290RFNBIENoYWluIENlcnQg
+T25lMRQwEgYDVQQKEwtTeW1iaWFuIEx0ZDEmMCQGCSqGSIb3DQEJARYXam9oYW4u
+Z3JvdGhAc3ltYmlhbi5jb20wgfAwgagGByqGSM44BAEwgZwCQQDDKAmjz+eiYAXC
+XoTTjMy444vEPxsBT5OD75xLYW18O/8g8HUMMIeri0g5eQzbLahJnaUGpix6/i68
+l/Pn50FzAhUA0G7ltSREbVJCWQ6XqPk5hmohCMkCQAZJzyAeIWwKDPtKq2R8wSDj
+srB8c7BildSzmgvWftWVBG2uQqeJWPGp3nv9yTGt/9T/sJUlTW/Q7rdFn6N5LhcD
+QwACQB2dQiuuQo69I8gO2H6oivU/NtR8HOMs1yGhZX37/mEN5Rwfyjn2ySqgfiEi
+1sMwvoIzbPwPo+WTY80Am8tqIqejgawwgakwHQYDVR0OBBYEFM8odsd4tED4MwNG
+lFTQNOwyBxPBMGQGA1UdIwRdMFuAFOy5wZT9JrWY5C2wrD0v5JbDVHIKoUCkPjA8
+MR0wGwYDVQQKExRTeW1iaWFuIFNvZnR3YXJlIEx0ZDEbMBkGA1UEAxMSU3ltYmlh
+biBUZXN0IC0gRFNBggEAMBIGA1UdEwEB/wQIMAYBAf8CAQUwDgYDVR0PAQH/BAQD
+AgIEMAkGByqGSM44BAMDMAAwLQIVAJPLhrhgAOUOtMcVyP0ERETyn46iAhR/B51Z
+LsRuoLWsvQaRN4h9+TMg1Q==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCADSA/cert_chain_dsa_len2/dsaparam.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,6 @@
+-----BEGIN DSA PARAMETERS-----
+MIGcAkEAv57nQTdfF1sD7/SG8vqiOl9S5YEE2Q/AAK9ncqoWjK4Xyf6TxqPnKfzx
+qNRmwBR6SrVnyDVM+Gb370CJuM0/qwIVAOAXE1GSQXjVlEnAZHGZT0FRyS2TAkAp
+ImPqui/fbvNd45+yUZFpGLQf3vVgIuX6rWpNySGXGlFcsZsTwFLPU0Wk1uQSWmVJ
+o9pETkfjietzrQbko0bB
+-----END DSA PARAMETERS-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCADSA/cert_chain_dsa_len2/second.dsa.cer	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDHzCCAt+gAwIBAgIBATAJBgcqhkjOOAQDMIGFMQswCQYDVQQGEwJVSzEPMA0G
+A1UEBxMGTG9uZG9uMScwJQYDVQQDEx5EU0EgVGVzdFJvb3REU0EgQ2hhaW4gQ2Vy
+dCBPbmUxFDASBgNVBAoTC1N5bWJpYW4gTHRkMSYwJAYJKoZIhvcNAQkBFhdqb2hh
+bi5ncm90aEBzeW1iaWFuLmNvbTAeFw0wNTA0MDQwNzEwNDJaFw0xNTA0MDIwNzEw
+NDJaMH8xCzAJBgNVBAYTAlVLMQ8wDQYDVQQHEwZMb25kb24xJzAlBgNVBAMTHkRT
+QSBUZXN0Um9vdERTQSBDaGFpbiBDZXJ0IFR3bzEUMBIGA1UEChMLU3ltYmlhbiBM
+dGQxIDAeBgkqhkiG9w0BCQEWEVBlbGxlUG9wQGFjbWUuY29tMIHxMIGoBgcqhkjO
+OAQBMIGcAkEAv57nQTdfF1sD7/SG8vqiOl9S5YEE2Q/AAK9ncqoWjK4Xyf6TxqPn
+KfzxqNRmwBR6SrVnyDVM+Gb370CJuM0/qwIVAOAXE1GSQXjVlEnAZHGZT0FRyS2T
+AkApImPqui/fbvNd45+yUZFpGLQf3vVgIuX6rWpNySGXGlFcsZsTwFLPU0Wk1uQS
+WmVJo9pETkfjietzrQbko0bBA0QAAkEAqH2BZSHi7mJFCEmKsCoEeqzbnCyNWW7v
+q3177gPr9FwrW8xtqw2hjto3jKsfOfd98ZFGV3fNRfLFRfPFn+0bAqOBrDCBqTAd
+BgNVHQ4EFgQUPLgBHBBO/ff1oA3t4LEKB4igCR8wZAYDVR0jBF0wW4AUzyh2x3i0
+QPgzA0aUVNA07DIHE8GhQKQ+MDwxHTAbBgNVBAoTFFN5bWJpYW4gU29mdHdhcmUg
+THRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3QgLSBEU0GCAQEwEgYDVR0TAQH/BAgw
+BgEB/wIBBTAOBgNVHQ8BAf8EBAMCAgQwCQYHKoZIzjgEAwMvADAsAhQZj1jLewqv
+1zYOVIwOCnZi7nKyeQIUaD8Y1HhVp6suIyyu/48jG6F208o=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCADSA/cert_chain_dsa_len3/chain_dsa_len3.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,58 @@
+-----BEGIN CERTIFICATE-----
+MIIDajCCAymgAwIBAgIBATAJBgcqhkjOOAQDMH8xCzAJBgNVBAYTAlVLMQ8wDQYD
+VQQHEwZMb25kb24xJzAlBgNVBAMTHkRTQSBUZXN0Um9vdERTQSBDaGFpbiBDZXJ0
+IFR3bzEUMBIGA1UEChMLU3ltYmlhbiBMdGQxIDAeBgkqhkiG9w0BCQEWEVBlbGxl
+UG9wQGFjbWUuY29tMB4XDTA1MDQwNDA3MTIzNloXDTE1MDQwMjA3MTIzNlowgYAx
+CzAJBgNVBAYTAlVLMREwDwYDVQQHEwhCcmlnaHRvbjEpMCcGA1UEAxMgRFNBIFRl
+c3RSb290RFNBIENoYWluIENlcnQgVGhyZWUxFDASBgNVBAoTC1N5bWJpYW4gTHRk
+MR0wGwYJKoZIhvcNAQkBFg5vd25AZmx5aW5nLmNvbTCB8TCBqQYHKoZIzjgEATCB
+nQJBAM1RYOpHMsK3wTLTm7aFzEfKGXlmM1Mg54zh3M2Q+zQjfQMl963fpN2Gn1mW
+KSKSvfg5XeAdtxlr3ejag5jPXk8CFQDbNfbH5oMovIjzwhjDdGIfPL9AHQJBALvJ
+m/7UKaKvr/6WAz5sw9xecqGkmvKDcOYX1Wr9pS5/Rh5igkeN/ga5kau23KEcHM/u
+16WRJ/EO9xWzfrfFMcEDQwACQCc1iUEnXofPFizcDvmoRRMg2NLLD/7lKaH28SuZ
+fWi7LdaTJOmrla4sGL7IpOfpnzmpNTzBxSANF/E7aB9o9rejgfswgfgwHQYDVR0O
+BBYEFLEJIQHt3+SXIpXuKpRyF3GkhX0JMIGyBgNVHSMEgaowgaeAFDy4ARwQTv33
+9aAN7eCxCgeIoAkfoYGLpIGIMIGFMQswCQYDVQQGEwJVSzEPMA0GA1UEBxMGTG9u
+ZG9uMScwJQYDVQQDEx5EU0EgVGVzdFJvb3REU0EgQ2hhaW4gQ2VydCBPbmUxFDAS
+BgNVBAoTC1N5bWJpYW4gTHRkMSYwJAYJKoZIhvcNAQkBFhdqb2hhbi5ncm90aEBz
+eW1iaWFuLmNvbYIBATASBgNVHRMBAf8ECDAGAQH/AgEFMA4GA1UdDwEB/wQEAwIC
+BDAJBgcqhkjOOAQDAzAAMC0CFCowiYb/7VyUxR4xPEf5rA4hosnjAhUAl23ugj5B
+7B2qwcf+6NEjaaUzzas=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDHzCCAt+gAwIBAgIBATAJBgcqhkjOOAQDMIGFMQswCQYDVQQGEwJVSzEPMA0G
+A1UEBxMGTG9uZG9uMScwJQYDVQQDEx5EU0EgVGVzdFJvb3REU0EgQ2hhaW4gQ2Vy
+dCBPbmUxFDASBgNVBAoTC1N5bWJpYW4gTHRkMSYwJAYJKoZIhvcNAQkBFhdqb2hh
+bi5ncm90aEBzeW1iaWFuLmNvbTAeFw0wNTA0MDQwNzEwNDJaFw0xNTA0MDIwNzEw
+NDJaMH8xCzAJBgNVBAYTAlVLMQ8wDQYDVQQHEwZMb25kb24xJzAlBgNVBAMTHkRT
+QSBUZXN0Um9vdERTQSBDaGFpbiBDZXJ0IFR3bzEUMBIGA1UEChMLU3ltYmlhbiBM
+dGQxIDAeBgkqhkiG9w0BCQEWEVBlbGxlUG9wQGFjbWUuY29tMIHxMIGoBgcqhkjO
+OAQBMIGcAkEAv57nQTdfF1sD7/SG8vqiOl9S5YEE2Q/AAK9ncqoWjK4Xyf6TxqPn
+KfzxqNRmwBR6SrVnyDVM+Gb370CJuM0/qwIVAOAXE1GSQXjVlEnAZHGZT0FRyS2T
+AkApImPqui/fbvNd45+yUZFpGLQf3vVgIuX6rWpNySGXGlFcsZsTwFLPU0Wk1uQS
+WmVJo9pETkfjietzrQbko0bBA0QAAkEAqH2BZSHi7mJFCEmKsCoEeqzbnCyNWW7v
+q3177gPr9FwrW8xtqw2hjto3jKsfOfd98ZFGV3fNRfLFRfPFn+0bAqOBrDCBqTAd
+BgNVHQ4EFgQUPLgBHBBO/ff1oA3t4LEKB4igCR8wZAYDVR0jBF0wW4AUzyh2x3i0
+QPgzA0aUVNA07DIHE8GhQKQ+MDwxHTAbBgNVBAoTFFN5bWJpYW4gU29mdHdhcmUg
+THRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3QgLSBEU0GCAQEwEgYDVR0TAQH/BAgw
+BgEB/wIBBTAOBgNVHQ8BAf8EBAMCAgQwCQYHKoZIzjgEAwMvADAsAhQZj1jLewqv
+1zYOVIwOCnZi7nKyeQIUaD8Y1HhVp6suIyyu/48jG6F208o=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIC3DCCApugAwIBAgIBATAJBgcqhkjOOAQDMDwxHTAbBgNVBAoTFFN5bWJpYW4g
+U29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3QgLSBEU0EwHhcNMDUw
+NDA0MDcwMzUzWhcNMTUwNDAyMDcwMzUzWjCBhTELMAkGA1UEBhMCVUsxDzANBgNV
+BAcTBkxvbmRvbjEnMCUGA1UEAxMeRFNBIFRlc3RSb290RFNBIENoYWluIENlcnQg
+T25lMRQwEgYDVQQKEwtTeW1iaWFuIEx0ZDEmMCQGCSqGSIb3DQEJARYXam9oYW4u
+Z3JvdGhAc3ltYmlhbi5jb20wgfAwgagGByqGSM44BAEwgZwCQQDDKAmjz+eiYAXC
+XoTTjMy444vEPxsBT5OD75xLYW18O/8g8HUMMIeri0g5eQzbLahJnaUGpix6/i68
+l/Pn50FzAhUA0G7ltSREbVJCWQ6XqPk5hmohCMkCQAZJzyAeIWwKDPtKq2R8wSDj
+srB8c7BildSzmgvWftWVBG2uQqeJWPGp3nv9yTGt/9T/sJUlTW/Q7rdFn6N5LhcD
+QwACQB2dQiuuQo69I8gO2H6oivU/NtR8HOMs1yGhZX37/mEN5Rwfyjn2ySqgfiEi
+1sMwvoIzbPwPo+WTY80Am8tqIqejgawwgakwHQYDVR0OBBYEFM8odsd4tED4MwNG
+lFTQNOwyBxPBMGQGA1UdIwRdMFuAFOy5wZT9JrWY5C2wrD0v5JbDVHIKoUCkPjA8
+MR0wGwYDVQQKExRTeW1iaWFuIFNvZnR3YXJlIEx0ZDEbMBkGA1UEAxMSU3ltYmlh
+biBUZXN0IC0gRFNBggEAMBIGA1UdEwEB/wQIMAYBAf8CAQUwDgYDVR0PAQH/BAQD
+AgIEMAkGByqGSM44BAMDMAAwLQIVAJPLhrhgAOUOtMcVyP0ERETyn46iAhR/B51Z
+LsRuoLWsvQaRN4h9+TMg1Q==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCADSA/cert_chain_dsa_len3/dsaparam.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,6 @@
+-----BEGIN DSA PARAMETERS-----
+MIGdAkEAzVFg6kcywrfBMtObtoXMR8oZeWYzUyDnjOHczZD7NCN9AyX3rd+k3Yaf
+WZYpIpK9+Dld4B23GWvd6NqDmM9eTwIVANs19sfmgyi8iPPCGMN0Yh88v0AdAkEA
+u8mb/tQpoq+v/pYDPmzD3F5yoaSa8oNw5hfVav2lLn9GHmKCR43+BrmRq7bcoRwc
+z+7XpZEn8Q73FbN+t8UxwQ==
+-----END DSA PARAMETERS-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCADSA/cert_chain_dsa_len3/third.dsa.cer	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDajCCAymgAwIBAgIBATAJBgcqhkjOOAQDMH8xCzAJBgNVBAYTAlVLMQ8wDQYD
+VQQHEwZMb25kb24xJzAlBgNVBAMTHkRTQSBUZXN0Um9vdERTQSBDaGFpbiBDZXJ0
+IFR3bzEUMBIGA1UEChMLU3ltYmlhbiBMdGQxIDAeBgkqhkiG9w0BCQEWEVBlbGxl
+UG9wQGFjbWUuY29tMB4XDTA1MDQwNDA3MTIzNloXDTE1MDQwMjA3MTIzNlowgYAx
+CzAJBgNVBAYTAlVLMREwDwYDVQQHEwhCcmlnaHRvbjEpMCcGA1UEAxMgRFNBIFRl
+c3RSb290RFNBIENoYWluIENlcnQgVGhyZWUxFDASBgNVBAoTC1N5bWJpYW4gTHRk
+MR0wGwYJKoZIhvcNAQkBFg5vd25AZmx5aW5nLmNvbTCB8TCBqQYHKoZIzjgEATCB
+nQJBAM1RYOpHMsK3wTLTm7aFzEfKGXlmM1Mg54zh3M2Q+zQjfQMl963fpN2Gn1mW
+KSKSvfg5XeAdtxlr3ejag5jPXk8CFQDbNfbH5oMovIjzwhjDdGIfPL9AHQJBALvJ
+m/7UKaKvr/6WAz5sw9xecqGkmvKDcOYX1Wr9pS5/Rh5igkeN/ga5kau23KEcHM/u
+16WRJ/EO9xWzfrfFMcEDQwACQCc1iUEnXofPFizcDvmoRRMg2NLLD/7lKaH28SuZ
+fWi7LdaTJOmrla4sGL7IpOfpnzmpNTzBxSANF/E7aB9o9rejgfswgfgwHQYDVR0O
+BBYEFLEJIQHt3+SXIpXuKpRyF3GkhX0JMIGyBgNVHSMEgaowgaeAFDy4ARwQTv33
+9aAN7eCxCgeIoAkfoYGLpIGIMIGFMQswCQYDVQQGEwJVSzEPMA0GA1UEBxMGTG9u
+ZG9uMScwJQYDVQQDEx5EU0EgVGVzdFJvb3REU0EgQ2hhaW4gQ2VydCBPbmUxFDAS
+BgNVBAoTC1N5bWJpYW4gTHRkMSYwJAYJKoZIhvcNAQkBFhdqb2hhbi5ncm90aEBz
+eW1iaWFuLmNvbYIBATASBgNVHRMBAf8ECDAGAQH/AgEFMA4GA1UdDwEB/wQEAwIC
+BDAJBgcqhkjOOAQDAzAAMC0CFCowiYb/7VyUxR4xPEf5rA4hosnjAhUAl23ugj5B
+7B2qwcf+6NEjaaUzzas=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCADSA/cert_chain_rsa_len1/chain_rsa_len1.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICRjCCAgagAwIBAgIBATAJBgcqhkjOOAQDMDwxHTAbBgNVBAoTFFN5bWJpYW4g
+U29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3QgLSBEU0EwHhcNMDUw
+NDA0MDcyOTIzWhcNMTUwNDAyMDcyOTIzWjCBhTELMAkGA1UEBhMCVUsxDzANBgNV
+BAcTBkxvbmRvbjEnMCUGA1UEAxMeUlNBIFRlc3RSb290RFNBIENoYWluIENlcnQg
+T25lMRQwEgYDVQQKEwtTeW1iaWFuIEx0ZDEmMCQGCSqGSIb3DQEJARYXam9oYW4u
+Z3JvdGhAc3ltYmlhbi5jb20wXDANBgkqhkiG9w0BAQEFAANLADBIAkEAvIITzaF3
+fFDhYtpSSsJxLPaNeofj5OaGIPUywG7dM7Gxw4UrpClPEEfhEnGNN20jwMAGmK28
+Xco31Z+h/46QyQIDAQABo4GsMIGpMB0GA1UdDgQWBBRVWWTNl4sDpfgw/+ZMnmQx
+kpNL4jBkBgNVHSMEXTBbgBTsucGU/Sa1mOQtsKw9L+SWw1RyCqFApD4wPDEdMBsG
+A1UEChMUU3ltYmlhbiBTb2Z0d2FyZSBMdGQxGzAZBgNVBAMTElN5bWJpYW4gVGVz
+dCAtIERTQYIBADASBgNVHRMBAf8ECDAGAQH/AgEFMA4GA1UdDwEB/wQEAwICBDAJ
+BgcqhkjOOAQDAy8AMCwCFHODdtgWyCJerNlbWbmSTCITOJFXAhRRAQ5iDyZnZ8o/
+jaOQnrA+U6f92A==
+-----END CERTIFICATE-----
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCADSA/cert_chain_rsa_len1/first.rsa.cer	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICRjCCAgagAwIBAgIBATAJBgcqhkjOOAQDMDwxHTAbBgNVBAoTFFN5bWJpYW4g
+U29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3QgLSBEU0EwHhcNMDUw
+NDA0MDcyOTIzWhcNMTUwNDAyMDcyOTIzWjCBhTELMAkGA1UEBhMCVUsxDzANBgNV
+BAcTBkxvbmRvbjEnMCUGA1UEAxMeUlNBIFRlc3RSb290RFNBIENoYWluIENlcnQg
+T25lMRQwEgYDVQQKEwtTeW1iaWFuIEx0ZDEmMCQGCSqGSIb3DQEJARYXam9oYW4u
+Z3JvdGhAc3ltYmlhbi5jb20wXDANBgkqhkiG9w0BAQEFAANLADBIAkEAvIITzaF3
+fFDhYtpSSsJxLPaNeofj5OaGIPUywG7dM7Gxw4UrpClPEEfhEnGNN20jwMAGmK28
+Xco31Z+h/46QyQIDAQABo4GsMIGpMB0GA1UdDgQWBBRVWWTNl4sDpfgw/+ZMnmQx
+kpNL4jBkBgNVHSMEXTBbgBTsucGU/Sa1mOQtsKw9L+SWw1RyCqFApD4wPDEdMBsG
+A1UEChMUU3ltYmlhbiBTb2Z0d2FyZSBMdGQxGzAZBgNVBAMTElN5bWJpYW4gVGVz
+dCAtIERTQYIBADASBgNVHRMBAf8ECDAGAQH/AgEFMA4GA1UdDwEB/wQEAwICBDAJ
+BgcqhkjOOAQDAy8AMCwCFHODdtgWyCJerNlbWbmSTCITOJFXAhRRAQ5iDyZnZ8o/
+jaOQnrA+U6f92A==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCADSA/cert_chain_rsa_len2/chain_rsa_len2.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,32 @@
+-----BEGIN CERTIFICATE-----
+MIICozCCAk2gAwIBAgIBATANBgkqhkiG9w0BAQQFADCBhTELMAkGA1UEBhMCVUsx
+DzANBgNVBAcTBkxvbmRvbjEnMCUGA1UEAxMeUlNBIFRlc3RSb290RFNBIENoYWlu
+IENlcnQgT25lMRQwEgYDVQQKEwtTeW1iaWFuIEx0ZDEmMCQGCSqGSIb3DQEJARYX
+am9oYW4uZ3JvdGhAc3ltYmlhbi5jb20wHhcNMDUwNDA0MDczMzI4WhcNMTUwNDAy
+MDczMzI4WjB/MQswCQYDVQQGEwJVSzEPMA0GA1UEBxMGTG9uZG9uMScwJQYDVQQD
+Ex5SU0EgVGVzdFJvb3REU0EgQ2hhaW4gQ2VydCBUd28xFDASBgNVBAoTC1N5bWJp
+YW4gTHRkMSAwHgYJKoZIhvcNAQkBFhFQZWxsZVBvcEBhY21lLmNvbTBcMA0GCSqG
+SIb3DQEBAQUAA0sAMEgCQQDcN4VArzemI+NxX9PdcRyra/cVcMoGYTdogd5mO+C6
+9/3tTMfq0K4IOwFhsk//YvhCW/LU2UFUfeCGgORcihu7AgMBAAGjgawwgakwHQYD
+VR0OBBYEFOGGVwMGClg90bUqbmQ+TD7AubhZMGQGA1UdIwRdMFuAFFVZZM2XiwOl
++DD/5kyeZDGSk0vioUCkPjA8MR0wGwYDVQQKExRTeW1iaWFuIFNvZnR3YXJlIEx0
+ZDEbMBkGA1UEAxMSU3ltYmlhbiBUZXN0IC0gRFNBggEBMBIGA1UdEwEB/wQIMAYB
+Af8CAQUwDgYDVR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBBAUAA0EAFT+M3Btz+3zB
+aifDBKpK7/ju8UFRycLUlijxJJnq4x5mM5sOYqx2fIbvr6jZ/C1gL3bIPs5haP3T
+WkkRzHfZBg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICRjCCAgagAwIBAgIBATAJBgcqhkjOOAQDMDwxHTAbBgNVBAoTFFN5bWJpYW4g
+U29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3QgLSBEU0EwHhcNMDUw
+NDA0MDcyOTIzWhcNMTUwNDAyMDcyOTIzWjCBhTELMAkGA1UEBhMCVUsxDzANBgNV
+BAcTBkxvbmRvbjEnMCUGA1UEAxMeUlNBIFRlc3RSb290RFNBIENoYWluIENlcnQg
+T25lMRQwEgYDVQQKEwtTeW1iaWFuIEx0ZDEmMCQGCSqGSIb3DQEJARYXam9oYW4u
+Z3JvdGhAc3ltYmlhbi5jb20wXDANBgkqhkiG9w0BAQEFAANLADBIAkEAvIITzaF3
+fFDhYtpSSsJxLPaNeofj5OaGIPUywG7dM7Gxw4UrpClPEEfhEnGNN20jwMAGmK28
+Xco31Z+h/46QyQIDAQABo4GsMIGpMB0GA1UdDgQWBBRVWWTNl4sDpfgw/+ZMnmQx
+kpNL4jBkBgNVHSMEXTBbgBTsucGU/Sa1mOQtsKw9L+SWw1RyCqFApD4wPDEdMBsG
+A1UEChMUU3ltYmlhbiBTb2Z0d2FyZSBMdGQxGzAZBgNVBAMTElN5bWJpYW4gVGVz
+dCAtIERTQYIBADASBgNVHRMBAf8ECDAGAQH/AgEFMA4GA1UdDwEB/wQEAwICBDAJ
+BgcqhkjOOAQDAy8AMCwCFHODdtgWyCJerNlbWbmSTCITOJFXAhRRAQ5iDyZnZ8o/
+jaOQnrA+U6f92A==
+-----END CERTIFICATE-----
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCADSA/cert_chain_rsa_len2/second.rsa.cer	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,17 @@
+-----BEGIN CERTIFICATE-----
+MIICozCCAk2gAwIBAgIBATANBgkqhkiG9w0BAQQFADCBhTELMAkGA1UEBhMCVUsx
+DzANBgNVBAcTBkxvbmRvbjEnMCUGA1UEAxMeUlNBIFRlc3RSb290RFNBIENoYWlu
+IENlcnQgT25lMRQwEgYDVQQKEwtTeW1iaWFuIEx0ZDEmMCQGCSqGSIb3DQEJARYX
+am9oYW4uZ3JvdGhAc3ltYmlhbi5jb20wHhcNMDUwNDA0MDczMzI4WhcNMTUwNDAy
+MDczMzI4WjB/MQswCQYDVQQGEwJVSzEPMA0GA1UEBxMGTG9uZG9uMScwJQYDVQQD
+Ex5SU0EgVGVzdFJvb3REU0EgQ2hhaW4gQ2VydCBUd28xFDASBgNVBAoTC1N5bWJp
+YW4gTHRkMSAwHgYJKoZIhvcNAQkBFhFQZWxsZVBvcEBhY21lLmNvbTBcMA0GCSqG
+SIb3DQEBAQUAA0sAMEgCQQDcN4VArzemI+NxX9PdcRyra/cVcMoGYTdogd5mO+C6
+9/3tTMfq0K4IOwFhsk//YvhCW/LU2UFUfeCGgORcihu7AgMBAAGjgawwgakwHQYD
+VR0OBBYEFOGGVwMGClg90bUqbmQ+TD7AubhZMGQGA1UdIwRdMFuAFFVZZM2XiwOl
++DD/5kyeZDGSk0vioUCkPjA8MR0wGwYDVQQKExRTeW1iaWFuIFNvZnR3YXJlIEx0
+ZDEbMBkGA1UEAxMSU3ltYmlhbiBUZXN0IC0gRFNBggEBMBIGA1UdEwEB/wQIMAYB
+Af8CAQUwDgYDVR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBBAUAA0EAFT+M3Btz+3zB
+aifDBKpK7/ju8UFRycLUlijxJJnq4x5mM5sOYqx2fIbvr6jZ/C1gL3bIPs5haP3T
+WkkRzHfZBg==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCADSA/cert_chain_rsa_len3/chain_rsa_len3.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,50 @@
+-----BEGIN CERTIFICATE-----
+MIIC6jCCApSgAwIBAgIBATANBgkqhkiG9w0BAQQFADB/MQswCQYDVQQGEwJVSzEP
+MA0GA1UEBxMGTG9uZG9uMScwJQYDVQQDEx5SU0EgVGVzdFJvb3REU0EgQ2hhaW4g
+Q2VydCBUd28xFDASBgNVBAoTC1N5bWJpYW4gTHRkMSAwHgYJKoZIhvcNAQkBFhFQ
+ZWxsZVBvcEBhY21lLmNvbTAeFw0wNTA0MDQwNzM5MjNaFw0xNTA0MDIwNzM5MjNa
+MH4xCzAJBgNVBAYTAlVLMQ8wDQYDVQQHEwZMb25kb24xKTAnBgNVBAMTIFJTQSBU
+ZXN0Um9vdERTQSBDaGFpbiBDZXJ0IFRocmVlMRQwEgYDVQQKEwtTeW1iaWFuIEx0
+ZDEdMBsGCSqGSIb3DQEJARYOb3duQGZseWluZy5jb20wXDANBgkqhkiG9w0BAQEF
+AANLADBIAkEAtb0tvEDJBxf+rN1Er9b2IVApQVxea0MIkNrqZqtahGvvckMdkFHt
+UZJrWH17GFkg/99wRSKbf5cUiqYOIqwUZwIDAQABo4H7MIH4MB0GA1UdDgQWBBS4
+V9PlBFJoXA3VWBReWi+zQcXWFDCBsgYDVR0jBIGqMIGngBThhlcDBgpYPdG1Km5k
+Pkw+wLm4WaGBi6SBiDCBhTELMAkGA1UEBhMCVUsxDzANBgNVBAcTBkxvbmRvbjEn
+MCUGA1UEAxMeUlNBIFRlc3RSb290RFNBIENoYWluIENlcnQgT25lMRQwEgYDVQQK
+EwtTeW1iaWFuIEx0ZDEmMCQGCSqGSIb3DQEJARYXam9oYW4uZ3JvdGhAc3ltYmlh
+bi5jb22CAQEwEgYDVR0TAQH/BAgwBgEB/wIBBTAOBgNVHQ8BAf8EBAMCAgQwDQYJ
+KoZIhvcNAQEEBQADQQAvyHyqBBwrwHDqZT/+T4fgYVqwRs7lSiUA/BJ25AlOfO79
+SVYqrNrBCOEIft1soexuQEJybGD75lh2ccwdEo4c
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICozCCAk2gAwIBAgIBATANBgkqhkiG9w0BAQQFADCBhTELMAkGA1UEBhMCVUsx
+DzANBgNVBAcTBkxvbmRvbjEnMCUGA1UEAxMeUlNBIFRlc3RSb290RFNBIENoYWlu
+IENlcnQgT25lMRQwEgYDVQQKEwtTeW1iaWFuIEx0ZDEmMCQGCSqGSIb3DQEJARYX
+am9oYW4uZ3JvdGhAc3ltYmlhbi5jb20wHhcNMDUwNDA0MDczMzI4WhcNMTUwNDAy
+MDczMzI4WjB/MQswCQYDVQQGEwJVSzEPMA0GA1UEBxMGTG9uZG9uMScwJQYDVQQD
+Ex5SU0EgVGVzdFJvb3REU0EgQ2hhaW4gQ2VydCBUd28xFDASBgNVBAoTC1N5bWJp
+YW4gTHRkMSAwHgYJKoZIhvcNAQkBFhFQZWxsZVBvcEBhY21lLmNvbTBcMA0GCSqG
+SIb3DQEBAQUAA0sAMEgCQQDcN4VArzemI+NxX9PdcRyra/cVcMoGYTdogd5mO+C6
+9/3tTMfq0K4IOwFhsk//YvhCW/LU2UFUfeCGgORcihu7AgMBAAGjgawwgakwHQYD
+VR0OBBYEFOGGVwMGClg90bUqbmQ+TD7AubhZMGQGA1UdIwRdMFuAFFVZZM2XiwOl
++DD/5kyeZDGSk0vioUCkPjA8MR0wGwYDVQQKExRTeW1iaWFuIFNvZnR3YXJlIEx0
+ZDEbMBkGA1UEAxMSU3ltYmlhbiBUZXN0IC0gRFNBggEBMBIGA1UdEwEB/wQIMAYB
+Af8CAQUwDgYDVR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBBAUAA0EAFT+M3Btz+3zB
+aifDBKpK7/ju8UFRycLUlijxJJnq4x5mM5sOYqx2fIbvr6jZ/C1gL3bIPs5haP3T
+WkkRzHfZBg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICRjCCAgagAwIBAgIBATAJBgcqhkjOOAQDMDwxHTAbBgNVBAoTFFN5bWJpYW4g
+U29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFuIFRlc3QgLSBEU0EwHhcNMDUw
+NDA0MDcyOTIzWhcNMTUwNDAyMDcyOTIzWjCBhTELMAkGA1UEBhMCVUsxDzANBgNV
+BAcTBkxvbmRvbjEnMCUGA1UEAxMeUlNBIFRlc3RSb290RFNBIENoYWluIENlcnQg
+T25lMRQwEgYDVQQKEwtTeW1iaWFuIEx0ZDEmMCQGCSqGSIb3DQEJARYXam9oYW4u
+Z3JvdGhAc3ltYmlhbi5jb20wXDANBgkqhkiG9w0BAQEFAANLADBIAkEAvIITzaF3
+fFDhYtpSSsJxLPaNeofj5OaGIPUywG7dM7Gxw4UrpClPEEfhEnGNN20jwMAGmK28
+Xco31Z+h/46QyQIDAQABo4GsMIGpMB0GA1UdDgQWBBRVWWTNl4sDpfgw/+ZMnmQx
+kpNL4jBkBgNVHSMEXTBbgBTsucGU/Sa1mOQtsKw9L+SWw1RyCqFApD4wPDEdMBsG
+A1UEChMUU3ltYmlhbiBTb2Z0d2FyZSBMdGQxGzAZBgNVBAMTElN5bWJpYW4gVGVz
+dCAtIERTQYIBADASBgNVHRMBAf8ECDAGAQH/AgEFMA4GA1UdDwEB/wQEAwICBDAJ
+BgcqhkjOOAQDAy8AMCwCFHODdtgWyCJerNlbWbmSTCITOJFXAhRRAQ5iDyZnZ8o/
+jaOQnrA+U6f92A==
+-----END CERTIFICATE-----
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCADSA/cert_chain_rsa_len3/third.rsa.cer	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,18 @@
+-----BEGIN CERTIFICATE-----
+MIIC6jCCApSgAwIBAgIBATANBgkqhkiG9w0BAQQFADB/MQswCQYDVQQGEwJVSzEP
+MA0GA1UEBxMGTG9uZG9uMScwJQYDVQQDEx5SU0EgVGVzdFJvb3REU0EgQ2hhaW4g
+Q2VydCBUd28xFDASBgNVBAoTC1N5bWJpYW4gTHRkMSAwHgYJKoZIhvcNAQkBFhFQ
+ZWxsZVBvcEBhY21lLmNvbTAeFw0wNTA0MDQwNzM5MjNaFw0xNTA0MDIwNzM5MjNa
+MH4xCzAJBgNVBAYTAlVLMQ8wDQYDVQQHEwZMb25kb24xKTAnBgNVBAMTIFJTQSBU
+ZXN0Um9vdERTQSBDaGFpbiBDZXJ0IFRocmVlMRQwEgYDVQQKEwtTeW1iaWFuIEx0
+ZDEdMBsGCSqGSIb3DQEJARYOb3duQGZseWluZy5jb20wXDANBgkqhkiG9w0BAQEF
+AANLADBIAkEAtb0tvEDJBxf+rN1Er9b2IVApQVxea0MIkNrqZqtahGvvckMdkFHt
+UZJrWH17GFkg/99wRSKbf5cUiqYOIqwUZwIDAQABo4H7MIH4MB0GA1UdDgQWBBS4
+V9PlBFJoXA3VWBReWi+zQcXWFDCBsgYDVR0jBIGqMIGngBThhlcDBgpYPdG1Km5k
+Pkw+wLm4WaGBi6SBiDCBhTELMAkGA1UEBhMCVUsxDzANBgNVBAcTBkxvbmRvbjEn
+MCUGA1UEAxMeUlNBIFRlc3RSb290RFNBIENoYWluIENlcnQgT25lMRQwEgYDVQQK
+EwtTeW1iaWFuIEx0ZDEmMCQGCSqGSIb3DQEJARYXam9oYW4uZ3JvdGhAc3ltYmlh
+bi5jb22CAQEwEgYDVR0TAQH/BAgwBgEB/wIBBTAOBgNVHQ8BAf8EBAMCAgQwDQYJ
+KoZIhvcNAQEEBQADQQAvyHyqBBwrwHDqZT/+T4fgYVqwRs7lSiUA/BJ25AlOfO79
+SVYqrNrBCOEIft1soexuQEJybGD75lh2ccwdEo4c
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCADSA/dsaparam.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,6 @@
+-----BEGIN DSA PARAMETERS-----
+MIGdAkEAuge0Mq1oh1FS1UPU915suBNyGT6VBHZzqqDnbnLjvnE8FvZmGWKhwxvC
+cgbRMQpolX1dTZDk1f/MSZaUN50mMwIVAI8Zf1qgjHYqo5z+Y5SQCKviKkZRAkEA
+sumNlsR/gZc5EWxoDZM+XMC00bWn6jD4BgNEN7afWx+C0tnoAoST7WZBfZ8kEyXv
++QSFeXu3vwenpGLJLffd0A==
+-----END DSA PARAMETERS-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCADiffSerial/cacert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,18 @@
+-----BEGIN CERTIFICATE-----
+MIIC2zCCAkSgAwIBAgIJANZj6mZ2eYydMA0GCSqGSIb3DQEBBAUAMIGLMQswCQYD
+VQQGEwJVSzEPMA0GA1UEBxMGTG9uZG9uMS4wLAYDVQQDEyVUZXN0IHJvb3QgZm9y
+IGRpZmZlcmVudCBzZXJpYWwgbnVtYmVyMRQwEgYDVQQKEwtTeW1iaWFuIEx0ZDEl
+MCMGCSqGSIb3DQEJARYWbWFyay5ncm90aEBzeW1iaWFuLmNvbTAeFw0wNTA2MjIx
+NDUwMzBaFw0xNTA2MjAxNDUwMzBaMIGLMQswCQYDVQQGEwJVSzEPMA0GA1UEBxMG
+TG9uZG9uMS4wLAYDVQQDEyVUZXN0IHJvb3QgZm9yIGRpZmZlcmVudCBzZXJpYWwg
+bnVtYmVyMRQwEgYDVQQKEwtTeW1iaWFuIEx0ZDElMCMGCSqGSIb3DQEJARYWbWFy
+ay5ncm90aEBzeW1iaWFuLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA
+vaGClR38AGz13wpANspCdLXWQqZSrdC047PFw7C78oHYan1YCHvwSliYNB1b6Uu0
+u58gIj+WXAvMYyaWFtVGM77aFk8HY9d1ORWdUKUiaa6KmbnsjCztFpUJpeNjishB
+72uTrDXjW5Wzvod8VjxENLqDyKuPBgiOSGRJOiXXe6UCAwEAAaNFMEMwHQYDVR0O
+BBYEFHeY7egkRG79l5Ehv4rgpqVQtmBOMBIGA1UdEwEB/wQIMAYBAf8CAQUwDgYD
+VR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBBAUAA4GBAJnho5KznW1kyyNBDrDMptUT
+/C/vkxq7Yd0NBOOPn1eKHLKEQ1ruc5xyp0hc/RTetg/x/TYXkaj/RjGc07/2kuYM
+id1EihBac3RDyjTMxDCAynohVlJTNcl2WSgacJ+vH9+pvumv+/PoHdmSe3ik/SZ2
+TeXA+U4ui5Hexmmg0vIR
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCADiffSerial/cakey.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQC9oYKVHfwAbPXfCkA2ykJ0tdZCplKt0LTjs8XDsLvygdhqfVgI
+e/BKWJg0HVvpS7S7nyAiP5ZcC8xjJpYW1UYzvtoWTwdj13U5FZ1QpSJproqZueyM
+LO0WlQml42OKyEHva5OsNeNblbO+h3xWPEQ0uoPIq48GCI5IZEk6Jdd7pQIDAQAB
+AoGAHjAU+qogUO0Hoy8dk9tVAwFjj46swNDlyw32YLXE5dE345P6rLcWRK+f40P9
+OsF7jxbA5dLbm+Gg8vPUluPy3cmpnfyeADMwl8Tgyaf+bnJKjPrbhZOujQVaeR/h
+hdjsY3xeGcStkn4iA2OHDOXLIjONwndi9BD5BDrXN7XIY80CQQDrUWak27D4vqhk
+B2aEGEFgx8vK+KB2+imU0YDLX1ryOE+0nagllrpynFJm7rvtUwSvwcs4WbQBMRAk
+DZuw+fzfAkEAzkwpJO6nYbldDiCi+cDBQMGSJmUzKLUyWKPzeGJFOMubhlZ4NIhs
+Vu1HVQczR3UZ/Y67DENYQ1s6KxhYVAgT+wJAI2DYmr6Ay9T2QhuuuPtgkOlY5Uod
+7eVMbRhWUb0jUjlPGmt9hTE1FNgVt237CQIrOTVclTs/SdKTh6gYGTJsZwJAMnTE
+N2k7fRZWISdwVP+FBK6TbVqhGZq/tpha6x216n86CbBKdCbNwLEGGlDJhPeqJK7t
+JsGt68N7RaENsXfMUwJBAOXcz66OriPP+w0Ku2SyombkDbJMZi3Srt7sBDrK2j1S
+A5F+1sBp3Z/npPRiGb8I2YN2reEIB++J+N+UlZJ83hs=
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCADiffSerial/careq.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,12 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIIBzDCCATUCAQAwgYsxCzAJBgNVBAYTAlVLMQ8wDQYDVQQHEwZMb25kb24xLjAs
+BgNVBAMTJVRlc3Qgcm9vdCBmb3IgZGlmZmVyZW50IHNlcmlhbCBudW1iZXIxFDAS
+BgNVBAoTC1N5bWJpYW4gTHRkMSUwIwYJKoZIhvcNAQkBFhZtYXJrLmdyb3RoQHN5
+bWJpYW4uY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC9oYKVHfwAbPXf
+CkA2ykJ0tdZCplKt0LTjs8XDsLvygdhqfVgIe/BKWJg0HVvpS7S7nyAiP5ZcC8xj
+JpYW1UYzvtoWTwdj13U5FZ1QpSJproqZueyMLO0WlQml42OKyEHva5OsNeNblbO+
+h3xWPEQ0uoPIq48GCI5IZEk6Jdd7pQIDAQABoAAwDQYJKoZIhvcNAQEEBQADgYEA
+MdECBK763i3BlJnA2p4lwOjuTeuuvj9tddxTyg2Lec3QW9cQD4vRQu4+9J2p/Bzj
+HN3xYkIW1oVlny0smClsh/4qo/akVszJsErHxhB0mdgWEJ3Xq3reWDLE4Ft6gx1x
++kF8fyLeUhdy9g0TJCk9vejjpTHZdta1yV65DuKc89k=
+-----END CERTIFICATE REQUEST-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCADiffSerial/cert_chain_rsa_len1/chain_rsa_len1.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,16 @@
+-----BEGIN CERTIFICATE-----
+MIICmzCCAgSgAwIBAgIJALiEmA11bk9gMA0GCSqGSIb3DQEBBAUAMIGLMQswCQYD
+VQQGEwJVSzEPMA0GA1UEBxMGTG9uZG9uMS4wLAYDVQQDEyVUZXN0IHJvb3QgZm9y
+IGRpZmZlcmVudCBzZXJpYWwgbnVtYmVyMRQwEgYDVQQKEwtTeW1iaWFuIEx0ZDEl
+MCMGCSqGSIb3DQEJARYWbWFyay5ncm90aEBzeW1iaWFuLmNvbTAeFw0wNTA2MjIx
+NDU0MTFaFw0xNTA2MjAxNDU0MTFaMIGPMQswCQYDVQQGEwJVSzEPMA0GA1UEBxMG
+TG9uZG9uMTMwMQYDVQQDEypjaGFpbjEgZm9yIHRlc3RpbmcgZGlmZmVyZW50IHNl
+cmlhbCBudW1iZXIxFDASBgNVBAoTC1N5bWJpYW4gTHRkMSQwIgYJKoZIhvcNAQkB
+FhV0b20uZ3JvdGhAc3ltYmlhbi5jb20wXDANBgkqhkiG9w0BAQEFAANLADBIAkEA
+4RUhCumO+lKF1i1b9vkuWjpAEcxSGkk/pBvslhUVFuHt+cnk2TIdCaBM+x4jFZ7F
+apE0dmXKLt0jIB3lF7I6FwIDAQABo0UwQzAdBgNVHQ4EFgQUc2/SxDKcn4X9PJcF
+6QT78I3gZegwEgYDVR0TAQH/BAgwBgEB/wIBBTAOBgNVHQ8BAf8EBAMCAgQwDQYJ
+KoZIhvcNAQEEBQADgYEAU6IFCnXdVWCnFrcTySAk33RoWqWm3yMmtt3m0a5n2glz
+QQBj+sQSnauq1eByhnhdEp7fKuth/pmErKs5obs2gacs9Lrzthh8h0eb2iGj2O+9
+qbZsy+GfBDRfDcvSJAXsKYnIWuBoOZ9UjGPYxTEezK/N2ziJDJrty8gcSxa48Q8=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCADiffSerial/cert_chain_rsa_len1/first.rsa.cer	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,16 @@
+-----BEGIN CERTIFICATE-----
+MIICmzCCAgSgAwIBAgIJALiEmA11bk9gMA0GCSqGSIb3DQEBBAUAMIGLMQswCQYD
+VQQGEwJVSzEPMA0GA1UEBxMGTG9uZG9uMS4wLAYDVQQDEyVUZXN0IHJvb3QgZm9y
+IGRpZmZlcmVudCBzZXJpYWwgbnVtYmVyMRQwEgYDVQQKEwtTeW1iaWFuIEx0ZDEl
+MCMGCSqGSIb3DQEJARYWbWFyay5ncm90aEBzeW1iaWFuLmNvbTAeFw0wNTA2MjIx
+NDU0MTFaFw0xNTA2MjAxNDU0MTFaMIGPMQswCQYDVQQGEwJVSzEPMA0GA1UEBxMG
+TG9uZG9uMTMwMQYDVQQDEypjaGFpbjEgZm9yIHRlc3RpbmcgZGlmZmVyZW50IHNl
+cmlhbCBudW1iZXIxFDASBgNVBAoTC1N5bWJpYW4gTHRkMSQwIgYJKoZIhvcNAQkB
+FhV0b20uZ3JvdGhAc3ltYmlhbi5jb20wXDANBgkqhkiG9w0BAQEFAANLADBIAkEA
+4RUhCumO+lKF1i1b9vkuWjpAEcxSGkk/pBvslhUVFuHt+cnk2TIdCaBM+x4jFZ7F
+apE0dmXKLt0jIB3lF7I6FwIDAQABo0UwQzAdBgNVHQ4EFgQUc2/SxDKcn4X9PJcF
+6QT78I3gZegwEgYDVR0TAQH/BAgwBgEB/wIBBTAOBgNVHQ8BAf8EBAMCAgQwDQYJ
+KoZIhvcNAQEEBQADgYEAU6IFCnXdVWCnFrcTySAk33RoWqWm3yMmtt3m0a5n2glz
+QQBj+sQSnauq1eByhnhdEp7fKuth/pmErKs5obs2gacs9Lrzthh8h0eb2iGj2O+9
+qbZsy+GfBDRfDcvSJAXsKYnIWuBoOZ9UjGPYxTEezK/N2ziJDJrty8gcSxa48Q8=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCADiffSerial/cert_chain_rsa_len2/chain_rsa_len2.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,35 @@
+-----BEGIN CERTIFICATE-----
+MIIDJzCCAtGgAwIBAgIJANSuPLtWCR89MA0GCSqGSIb3DQEBBAUAMIGPMQswCQYD
+VQQGEwJVSzEPMA0GA1UEBxMGTG9uZG9uMTMwMQYDVQQDEypjaGFpbjEgZm9yIHRl
+c3RpbmcgZGlmZmVyZW50IHNlcmlhbCBudW1iZXIxFDASBgNVBAoTC1N5bWJpYW4g
+THRkMSQwIgYJKoZIhvcNAQkBFhV0b20uZ3JvdGhAc3ltYmlhbi5jb20wHhcNMDUw
+NjIyMTcxMzM1WhcNMTUwNjIwMTcxMzM1WjCBkTELMAkGA1UEBhMCVUsxDzANBgNV
+BAcTBkxvbmRvbjE4MDYGA1UEAxMvUlNBIFRlc3QgUm9vdENBIERpZmZlcmVudCBT
+ZXJpYWwgQ2hhaW4gQ2VydCBUd28xFTATBgNVBAoTDFN5bWJpYW4gTHRkLjEgMB4G
+CSqGSIb3DQEJARYRUGVsbGVQb3BAYWNtZS5jb20wXDANBgkqhkiG9w0BAQEFAANL
+ADBIAkEAx0lJfNQCcpbfChLYgtqHf6QZvqhixG79tFFg0/nQ/N0R6ahvYxeeD7RM
+Tb+7w5w7VqeoWaNtLtz//AWfpqNw1wIDAQABo4IBCjCCAQYwHQYDVR0OBBYEFORN
+cWqD0kAFkLk02iAO3qyikS7oMIHABgNVHSMEgbgwgbWAFHNv0sQynJ+F/TyXBekE
++/CN4GXooYGRpIGOMIGLMQswCQYDVQQGEwJVSzEPMA0GA1UEBxMGTG9uZG9uMS4w
+LAYDVQQDEyVUZXN0IHJvb3QgZm9yIGRpZmZlcmVudCBzZXJpYWwgbnVtYmVyMRQw
+EgYDVQQKEwtTeW1iaWFuIEx0ZDElMCMGCSqGSIb3DQEJARYWbWFyay5ncm90aEBz
+eW1iaWFuLmNvbYIJALiEmA11bk9gMBIGA1UdEwEB/wQIMAYBAf8CAQUwDgYDVR0P
+AQH/BAQDAgIEMA0GCSqGSIb3DQEBBAUAA0EAt8wSWA9C/cuK27CvK+kJKxG81mBL
+qdksVfXroKf2sjgUvMzxtTEnr1CyHnzBw5ne6s8H7uxuh5RZDG05wehsUw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICmzCCAgSgAwIBAgIJALiEmA11bk9gMA0GCSqGSIb3DQEBBAUAMIGLMQswCQYD
+VQQGEwJVSzEPMA0GA1UEBxMGTG9uZG9uMS4wLAYDVQQDEyVUZXN0IHJvb3QgZm9y
+IGRpZmZlcmVudCBzZXJpYWwgbnVtYmVyMRQwEgYDVQQKEwtTeW1iaWFuIEx0ZDEl
+MCMGCSqGSIb3DQEJARYWbWFyay5ncm90aEBzeW1iaWFuLmNvbTAeFw0wNTA2MjIx
+NDU0MTFaFw0xNTA2MjAxNDU0MTFaMIGPMQswCQYDVQQGEwJVSzEPMA0GA1UEBxMG
+TG9uZG9uMTMwMQYDVQQDEypjaGFpbjEgZm9yIHRlc3RpbmcgZGlmZmVyZW50IHNl
+cmlhbCBudW1iZXIxFDASBgNVBAoTC1N5bWJpYW4gTHRkMSQwIgYJKoZIhvcNAQkB
+FhV0b20uZ3JvdGhAc3ltYmlhbi5jb20wXDANBgkqhkiG9w0BAQEFAANLADBIAkEA
+4RUhCumO+lKF1i1b9vkuWjpAEcxSGkk/pBvslhUVFuHt+cnk2TIdCaBM+x4jFZ7F
+apE0dmXKLt0jIB3lF7I6FwIDAQABo0UwQzAdBgNVHQ4EFgQUc2/SxDKcn4X9PJcF
+6QT78I3gZegwEgYDVR0TAQH/BAgwBgEB/wIBBTAOBgNVHQ8BAf8EBAMCAgQwDQYJ
+KoZIhvcNAQEEBQADgYEAU6IFCnXdVWCnFrcTySAk33RoWqWm3yMmtt3m0a5n2glz
+QQBj+sQSnauq1eByhnhdEp7fKuth/pmErKs5obs2gacs9Lrzthh8h0eb2iGj2O+9
+qbZsy+GfBDRfDcvSJAXsKYnIWuBoOZ9UjGPYxTEezK/N2ziJDJrty8gcSxa48Q8=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCADiffSerial/cert_chain_rsa_len2/second.rsa.cer	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDJzCCAtGgAwIBAgIJANSuPLtWCR89MA0GCSqGSIb3DQEBBAUAMIGPMQswCQYD
+VQQGEwJVSzEPMA0GA1UEBxMGTG9uZG9uMTMwMQYDVQQDEypjaGFpbjEgZm9yIHRl
+c3RpbmcgZGlmZmVyZW50IHNlcmlhbCBudW1iZXIxFDASBgNVBAoTC1N5bWJpYW4g
+THRkMSQwIgYJKoZIhvcNAQkBFhV0b20uZ3JvdGhAc3ltYmlhbi5jb20wHhcNMDUw
+NjIyMTcxMzM1WhcNMTUwNjIwMTcxMzM1WjCBkTELMAkGA1UEBhMCVUsxDzANBgNV
+BAcTBkxvbmRvbjE4MDYGA1UEAxMvUlNBIFRlc3QgUm9vdENBIERpZmZlcmVudCBT
+ZXJpYWwgQ2hhaW4gQ2VydCBUd28xFTATBgNVBAoTDFN5bWJpYW4gTHRkLjEgMB4G
+CSqGSIb3DQEJARYRUGVsbGVQb3BAYWNtZS5jb20wXDANBgkqhkiG9w0BAQEFAANL
+ADBIAkEAx0lJfNQCcpbfChLYgtqHf6QZvqhixG79tFFg0/nQ/N0R6ahvYxeeD7RM
+Tb+7w5w7VqeoWaNtLtz//AWfpqNw1wIDAQABo4IBCjCCAQYwHQYDVR0OBBYEFORN
+cWqD0kAFkLk02iAO3qyikS7oMIHABgNVHSMEgbgwgbWAFHNv0sQynJ+F/TyXBekE
++/CN4GXooYGRpIGOMIGLMQswCQYDVQQGEwJVSzEPMA0GA1UEBxMGTG9uZG9uMS4w
+LAYDVQQDEyVUZXN0IHJvb3QgZm9yIGRpZmZlcmVudCBzZXJpYWwgbnVtYmVyMRQw
+EgYDVQQKEwtTeW1iaWFuIEx0ZDElMCMGCSqGSIb3DQEJARYWbWFyay5ncm90aEBz
+eW1iaWFuLmNvbYIJALiEmA11bk9gMBIGA1UdEwEB/wQIMAYBAf8CAQUwDgYDVR0P
+AQH/BAQDAgIEMA0GCSqGSIb3DQEBBAUAA0EAt8wSWA9C/cuK27CvK+kJKxG81mBL
+qdksVfXroKf2sjgUvMzxtTEnr1CyHnzBw5ne6s8H7uxuh5RZDG05wehsUw==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCARSA/ca.key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICWwIBAAKBgQChVEG+fSTsN8df07UDBsxGUZO5B9egVtoT6Do3iD1W0LwAOuPs
+74LpQRMgRFWpuoicMlEMoaTIZ/GPi6yHhC7CPJELlvBW1TXgbvzMdhUvacDyUKHj
+YMgkIF4+t1OziH6cKAN2I0H/nWa1m54YmYyU2cNAI3aSkuIqBPv+0B/XgQIDAQAB
+AoGACVCcGyuOnjT6RgYrRWl3EfhT1zMkuBVLsiqOcfZj1EdpE3pS/rM1k9I2EH7h
+k1M54ArnsxsCMLAPuoIODCUNrgHoTKJtL8cU8Pa7ZALewSLfRDUqOJLi+W3Ups46
+6jvdqQkFRF2k9evJOyI7wMs1rG0c/MzBGC+5lRbOOWbfcYECQQDPLUO58npxgrup
+usp2LUdE/Vz/fsJOVCoyzJq29LMvTqmAWqPvU1YkoB+U1ZOtvxd8r6/vlUZvDx64
+y2m4htLdAkEAx1kOCcpLl+ElEDGV3z7F77JTh128DvczyOU3j639LvqTfQR3FHOP
++89RmP1axo/Qhh0tClkdif8ZV99iac6S9QJAdrDt/hfGwkUtkj2rRC0IiaPFpbJP
+S2S4kEXb1Tk3dsDQJvLGvJO35F+/+Bqr8nxpzkswtkeFBJda+G/A77B+GQJAWAT5
+TtdUo14U6F6Mh0MHULvTZ9y6cX0zD0wuSTGQrhKT1sqG7a/M7mlu5PdRAoVzlBQD
+1CLfCRRrE0KeCIvelQJAaSdqX9/vuiJOnGfL8SSXxfB3hXcJU0e2Lo252eeeQtux
+oMTb0/jADuN0nxfsU1yvxgX+1nsso8uwpFPiFwdPHQ==
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCARSA/ca.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICRDCCAa2gAwIBAgIBADANBgkqhkiG9w0BAQQFADA8MR0wGwYDVQQKExRTeW1i
+aWFuIFNvZnR3YXJlIEx0ZDEbMBkGA1UEAxMSU3ltYmlhbiBUZXN0IC0gUlNBMB4X
+DTA0MDQxODE0MzYxNFoXDTIwMDkyMTE0MzYxNFowPDEdMBsGA1UEChMUU3ltYmlh
+biBTb2Z0d2FyZSBMdGQxGzAZBgNVBAMTElN5bWJpYW4gVGVzdCAtIFJTQTCBnzAN
+BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAoVRBvn0k7DfHX9O1AwbMRlGTuQfXoFba
+E+g6N4g9VtC8ADrj7O+C6UETIERVqbqInDJRDKGkyGfxj4ush4QuwjyRC5bwVtU1
+4G78zHYVL2nA8lCh42DIJCBePrdTs4h+nCgDdiNB/51mtZueGJmMlNnDQCN2kpLi
+KgT7/tAf14ECAwEAAaNWMFQwDgYDVR0PAQH/BAQDAgIEMBIGA1UdEwEB/wQIMAYB
+Af8CAQUwHQYDVR0OBBYEFOaTjrYQFlD8GQSM5KnKMYYmBZLWMA8GCSsGAQUFBzAB
+BQQCBQAwDQYJKoZIhvcNAQEEBQADgYEALXOi9zFgWw453UGQvw0HGNh6wemX2Ood
+pKceGDWyWFaQIxTA9dYVSqnhKWa728UklUi0CcRwp3leYHlvubkcSQANmRtM05PS
+kY2a2ENBf9afB/HNvOciFgGoHa494csZZ6ZS2GeKBxBOfajrjZrvQ3XDKptsRT1q
+50LsYyJhSg4=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCARSA/cert_chain_dsa_len1/chain_dsa_len1.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDNjCCAp+gAwIBAgIBATANBgkqhkiG9w0BAQQFADA8MR0wGwYDVQQKExRTeW1i
+aWFuIFNvZnR3YXJlIEx0ZDEbMBkGA1UEAxMSU3ltYmlhbiBUZXN0IC0gUlNBMB4X
+DTA1MDQwNDA3NTcwNloXDTE1MDQwMjA3NTcwNlowgYUxCzAJBgNVBAYTAlVLMQ8w
+DQYDVQQHEwZMb25kb24xJzAlBgNVBAMTHkRTQSBUZXN0Um9vdFJTQSBDaGFpbiBD
+ZXJ0IE9uZTEUMBIGA1UEChMLU3ltYmlhbiBMdGQxJjAkBgkqhkiG9w0BCQEWF2pv
+aGFuLmdyb3RoQHN5bWJpYW4uY29tMIHwMIGoBgcqhkjOOAQBMIGcAkEAvgn7NXs3
+6y7tJWaPmLhtsBke8WVQEBpF8nrYK/rZIQpGAQALTLEU8DnDxmMONIm8gslI4n/O
+Gaw90FIvtXL+OwIVAIrHw8so1HlxzFcXCdkAsCYbHniLAkAZz5BrUd/uFDVBS2r1
+yhnMw3MO6lXfaAgCVSiUxkAwk1GPlbzfOouA33NUPRvJhoYPeOqCkaomMH6OjDcv
+t0nlA0MAAkAUGTtFucMXU1BHwYw2n6hJaAyLHWeY2vdXaHP2bppnAi/hDNI3fxQj
+4O5cZxCMcyQn25ztnuY7r8zjgjvWJesLo4GsMIGpMB0GA1UdDgQWBBQkvXK99MGe
+GFqdOcSfqVSerLS+MzBkBgNVHSMEXTBbgBTmk462EBZQ/BkEjOSpyjGGJgWS1qFA
+pD4wPDEdMBsGA1UEChMUU3ltYmlhbiBTb2Z0d2FyZSBMdGQxGzAZBgNVBAMTElN5
+bWJpYW4gVGVzdCAtIFJTQYIBADASBgNVHRMBAf8ECDAGAQH/AgEFMA4GA1UdDwEB
+/wQEAwICBDANBgkqhkiG9w0BAQQFAAOBgQBCtLrgl1uQyABPkDsFuhZJ5Gtmjb45
++IYR4yQrUVXqBmf8B4rQTm5+z+iTNJN6Ba9Hw8ImtK9Ui0wE4mdKrTZ/T2uFUAa3
+mbWePjNd/hAKLb3PpmwNuNWGqIHxNliuguRR1RIZuDtv54ZMTNGT+OFgEAeAq8+4
+V1rqzyXU8AxI7w==
+-----END CERTIFICATE-----
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCARSA/cert_chain_dsa_len1/dsaparam.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,6 @@
+-----BEGIN DSA PARAMETERS-----
+MIGcAkEAvgn7NXs36y7tJWaPmLhtsBke8WVQEBpF8nrYK/rZIQpGAQALTLEU8DnD
+xmMONIm8gslI4n/OGaw90FIvtXL+OwIVAIrHw8so1HlxzFcXCdkAsCYbHniLAkAZ
+z5BrUd/uFDVBS2r1yhnMw3MO6lXfaAgCVSiUxkAwk1GPlbzfOouA33NUPRvJhoYP
+eOqCkaomMH6OjDcvt0nl
+-----END DSA PARAMETERS-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCARSA/cert_chain_dsa_len1/first.dsa.cer	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDNjCCAp+gAwIBAgIBATANBgkqhkiG9w0BAQQFADA8MR0wGwYDVQQKExRTeW1i
+aWFuIFNvZnR3YXJlIEx0ZDEbMBkGA1UEAxMSU3ltYmlhbiBUZXN0IC0gUlNBMB4X
+DTA1MDQwNDA3NTcwNloXDTE1MDQwMjA3NTcwNlowgYUxCzAJBgNVBAYTAlVLMQ8w
+DQYDVQQHEwZMb25kb24xJzAlBgNVBAMTHkRTQSBUZXN0Um9vdFJTQSBDaGFpbiBD
+ZXJ0IE9uZTEUMBIGA1UEChMLU3ltYmlhbiBMdGQxJjAkBgkqhkiG9w0BCQEWF2pv
+aGFuLmdyb3RoQHN5bWJpYW4uY29tMIHwMIGoBgcqhkjOOAQBMIGcAkEAvgn7NXs3
+6y7tJWaPmLhtsBke8WVQEBpF8nrYK/rZIQpGAQALTLEU8DnDxmMONIm8gslI4n/O
+Gaw90FIvtXL+OwIVAIrHw8so1HlxzFcXCdkAsCYbHniLAkAZz5BrUd/uFDVBS2r1
+yhnMw3MO6lXfaAgCVSiUxkAwk1GPlbzfOouA33NUPRvJhoYPeOqCkaomMH6OjDcv
+t0nlA0MAAkAUGTtFucMXU1BHwYw2n6hJaAyLHWeY2vdXaHP2bppnAi/hDNI3fxQj
+4O5cZxCMcyQn25ztnuY7r8zjgjvWJesLo4GsMIGpMB0GA1UdDgQWBBQkvXK99MGe
+GFqdOcSfqVSerLS+MzBkBgNVHSMEXTBbgBTmk462EBZQ/BkEjOSpyjGGJgWS1qFA
+pD4wPDEdMBsGA1UEChMUU3ltYmlhbiBTb2Z0d2FyZSBMdGQxGzAZBgNVBAMTElN5
+bWJpYW4gVGVzdCAtIFJTQYIBADASBgNVHRMBAf8ECDAGAQH/AgEFMA4GA1UdDwEB
+/wQEAwICBDANBgkqhkiG9w0BAQQFAAOBgQBCtLrgl1uQyABPkDsFuhZJ5Gtmjb45
++IYR4yQrUVXqBmf8B4rQTm5+z+iTNJN6Ba9Hw8ImtK9Ui0wE4mdKrTZ/T2uFUAa3
+mbWePjNd/hAKLb3PpmwNuNWGqIHxNliuguRR1RIZuDtv54ZMTNGT+OFgEAeAq8+4
+V1rqzyXU8AxI7w==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCARSA/cert_chain_dsa_len2/chain_dsa_len2.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,39 @@
+-----BEGIN CERTIFICATE-----
+MIIDHjCCAt6gAwIBAgIBATAJBgcqhkjOOAQDMIGFMQswCQYDVQQGEwJVSzEPMA0G
+A1UEBxMGTG9uZG9uMScwJQYDVQQDEx5EU0EgVGVzdFJvb3RSU0EgQ2hhaW4gQ2Vy
+dCBPbmUxFDASBgNVBAoTC1N5bWJpYW4gTHRkMSYwJAYJKoZIhvcNAQkBFhdqb2hh
+bi5ncm90aEBzeW1iaWFuLmNvbTAeFw0wNTA0MDQwODA4MTNaFw0xNTA0MDIwODA4
+MTNaMH8xCzAJBgNVBAYTAlVLMQ8wDQYDVQQHEwZMb25kb24xJzAlBgNVBAMTHkRT
+QSBUZXN0Um9vdFJTQSBDaGFpbiBDZXJ0IFR3bzEUMBIGA1UEChMLU3ltYmlhbiBM
+dGQxIDAeBgkqhkiG9w0BCQEWEVBlbGxlUG9wQGFjbWUuY29tMIHwMIGoBgcqhkjO
+OAQBMIGcAkEAnPrAhiOL1/zqgRin638D8Wv/shyD6aIUz0MJjlJ+DHbgHWlkzs/r
+s/HBQhTkg/nzgLbsmza+aocqzhyt7VYinwIVAKXX3yjRm6IjsJOrsTXglhvXZNF5
+AkB9NXiDLVrD/QlpqFY/IOfJFc+9Jh/L6L42tvq6eKb8ZVpPwogkh4/lILywIyJZ
+OxxDhHSI+tRSgAjrEHkCuzA7A0MAAkApf8BfsPKHeflqu0XYMOVj2bhlmOMVZimD
+crEKx8v0ZzF1YO8Eq3pIgBIw5pMaNkBj3IEdMhrrA0Kv86SsJJ80o4GsMIGpMB0G
+A1UdDgQWBBTzEIL1CO9fKN9Z5VSZ4MDO76ubcTBkBgNVHSMEXTBbgBQkvXK99MGe
+GFqdOcSfqVSerLS+M6FApD4wPDEdMBsGA1UEChMUU3ltYmlhbiBTb2Z0d2FyZSBM
+dGQxGzAZBgNVBAMTElN5bWJpYW4gVGVzdCAtIFJTQYIBATASBgNVHRMBAf8ECDAG
+AQH/AgEFMA4GA1UdDwEB/wQEAwICBDAJBgcqhkjOOAQDAy8AMCwCFDGKLLMXC4DD
+wEUSXONBa0aXg45rAhQxZLz5IAiciZa8p5lNXCgAXhu62w==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDNjCCAp+gAwIBAgIBATANBgkqhkiG9w0BAQQFADA8MR0wGwYDVQQKExRTeW1i
+aWFuIFNvZnR3YXJlIEx0ZDEbMBkGA1UEAxMSU3ltYmlhbiBUZXN0IC0gUlNBMB4X
+DTA1MDQwNDA3NTcwNloXDTE1MDQwMjA3NTcwNlowgYUxCzAJBgNVBAYTAlVLMQ8w
+DQYDVQQHEwZMb25kb24xJzAlBgNVBAMTHkRTQSBUZXN0Um9vdFJTQSBDaGFpbiBD
+ZXJ0IE9uZTEUMBIGA1UEChMLU3ltYmlhbiBMdGQxJjAkBgkqhkiG9w0BCQEWF2pv
+aGFuLmdyb3RoQHN5bWJpYW4uY29tMIHwMIGoBgcqhkjOOAQBMIGcAkEAvgn7NXs3
+6y7tJWaPmLhtsBke8WVQEBpF8nrYK/rZIQpGAQALTLEU8DnDxmMONIm8gslI4n/O
+Gaw90FIvtXL+OwIVAIrHw8so1HlxzFcXCdkAsCYbHniLAkAZz5BrUd/uFDVBS2r1
+yhnMw3MO6lXfaAgCVSiUxkAwk1GPlbzfOouA33NUPRvJhoYPeOqCkaomMH6OjDcv
+t0nlA0MAAkAUGTtFucMXU1BHwYw2n6hJaAyLHWeY2vdXaHP2bppnAi/hDNI3fxQj
+4O5cZxCMcyQn25ztnuY7r8zjgjvWJesLo4GsMIGpMB0GA1UdDgQWBBQkvXK99MGe
+GFqdOcSfqVSerLS+MzBkBgNVHSMEXTBbgBTmk462EBZQ/BkEjOSpyjGGJgWS1qFA
+pD4wPDEdMBsGA1UEChMUU3ltYmlhbiBTb2Z0d2FyZSBMdGQxGzAZBgNVBAMTElN5
+bWJpYW4gVGVzdCAtIFJTQYIBADASBgNVHRMBAf8ECDAGAQH/AgEFMA4GA1UdDwEB
+/wQEAwICBDANBgkqhkiG9w0BAQQFAAOBgQBCtLrgl1uQyABPkDsFuhZJ5Gtmjb45
++IYR4yQrUVXqBmf8B4rQTm5+z+iTNJN6Ba9Hw8ImtK9Ui0wE4mdKrTZ/T2uFUAa3
+mbWePjNd/hAKLb3PpmwNuNWGqIHxNliuguRR1RIZuDtv54ZMTNGT+OFgEAeAq8+4
+V1rqzyXU8AxI7w==
+-----END CERTIFICATE-----
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCARSA/cert_chain_dsa_len2/dsaparam.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,6 @@
+-----BEGIN DSA PARAMETERS-----
+MIGcAkEAnPrAhiOL1/zqgRin638D8Wv/shyD6aIUz0MJjlJ+DHbgHWlkzs/rs/HB
+QhTkg/nzgLbsmza+aocqzhyt7VYinwIVAKXX3yjRm6IjsJOrsTXglhvXZNF5AkB9
+NXiDLVrD/QlpqFY/IOfJFc+9Jh/L6L42tvq6eKb8ZVpPwogkh4/lILywIyJZOxxD
+hHSI+tRSgAjrEHkCuzA7
+-----END DSA PARAMETERS-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCARSA/cert_chain_dsa_len2/second.dsa.cer	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDHjCCAt6gAwIBAgIBATAJBgcqhkjOOAQDMIGFMQswCQYDVQQGEwJVSzEPMA0G
+A1UEBxMGTG9uZG9uMScwJQYDVQQDEx5EU0EgVGVzdFJvb3RSU0EgQ2hhaW4gQ2Vy
+dCBPbmUxFDASBgNVBAoTC1N5bWJpYW4gTHRkMSYwJAYJKoZIhvcNAQkBFhdqb2hh
+bi5ncm90aEBzeW1iaWFuLmNvbTAeFw0wNTA0MDQwODA4MTNaFw0xNTA0MDIwODA4
+MTNaMH8xCzAJBgNVBAYTAlVLMQ8wDQYDVQQHEwZMb25kb24xJzAlBgNVBAMTHkRT
+QSBUZXN0Um9vdFJTQSBDaGFpbiBDZXJ0IFR3bzEUMBIGA1UEChMLU3ltYmlhbiBM
+dGQxIDAeBgkqhkiG9w0BCQEWEVBlbGxlUG9wQGFjbWUuY29tMIHwMIGoBgcqhkjO
+OAQBMIGcAkEAnPrAhiOL1/zqgRin638D8Wv/shyD6aIUz0MJjlJ+DHbgHWlkzs/r
+s/HBQhTkg/nzgLbsmza+aocqzhyt7VYinwIVAKXX3yjRm6IjsJOrsTXglhvXZNF5
+AkB9NXiDLVrD/QlpqFY/IOfJFc+9Jh/L6L42tvq6eKb8ZVpPwogkh4/lILywIyJZ
+OxxDhHSI+tRSgAjrEHkCuzA7A0MAAkApf8BfsPKHeflqu0XYMOVj2bhlmOMVZimD
+crEKx8v0ZzF1YO8Eq3pIgBIw5pMaNkBj3IEdMhrrA0Kv86SsJJ80o4GsMIGpMB0G
+A1UdDgQWBBTzEIL1CO9fKN9Z5VSZ4MDO76ubcTBkBgNVHSMEXTBbgBQkvXK99MGe
+GFqdOcSfqVSerLS+M6FApD4wPDEdMBsGA1UEChMUU3ltYmlhbiBTb2Z0d2FyZSBM
+dGQxGzAZBgNVBAMTElN5bWJpYW4gVGVzdCAtIFJTQYIBATASBgNVHRMBAf8ECDAG
+AQH/AgEFMA4GA1UdDwEB/wQEAwICBDAJBgcqhkjOOAQDAy8AMCwCFDGKLLMXC4DD
+wEUSXONBa0aXg45rAhQxZLz5IAiciZa8p5lNXCgAXhu62w==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCARSA/cert_chain_dsa_len3/chain_dsa_len3.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,60 @@
+-----BEGIN CERTIFICATE-----
+MIIDZTCCAyWgAwIBAgIBATAJBgcqhkjOOAQDMH8xCzAJBgNVBAYTAlVLMQ8wDQYD
+VQQHEwZMb25kb24xJzAlBgNVBAMTHkRTQSBUZXN0Um9vdFJTQSBDaGFpbiBDZXJ0
+IFR3bzEUMBIGA1UEChMLU3ltYmlhbiBMdGQxIDAeBgkqhkiG9w0BCQEWEVBlbGxl
+UG9wQGFjbWUuY29tMB4XDTA1MDQwNDA4MjAxOFoXDTE1MDQwMjA4MjAxOFowfjEL
+MAkGA1UEBhMCVUsxDzANBgNVBAcTBkxvbmRvbjEpMCcGA1UEAxMgRFNBIFRlc3RS
+b290UlNBIENoYWluIENlcnQgVGhyZWUxFDASBgNVBAoTC1N5bWJpYW4gTHRkMR0w
+GwYJKoZIhvcNAQkBFg5vd25AZmx5aW5nLmNvbTCB8DCBqAYHKoZIzjgEATCBnAJB
+AKu5bF0xeRiF3MXlfOf4FOG9sJ/PAbOldxJ0oJ8MiwNplSuPrV9+XuiXPEul6KSg
+Rm/0NYIpfNUdGprJ9xepnQUCFQCutZcORf2TWYbXlGVvl8WcE+w9iwJABE6k2Vyn
+4nYkCTMM3q6O4uKgwZs74MzNzC1ajx1mffNCXblcLuk9lDoGuQ9EK/c//A6V93SK
+Hed/wtDLLPbpagNDAAJABNcjDoZPuSTtNsjpHDroeLGPBis/oDXtWegvRvlA58fz
+sxeqUZlZQxGvmVE7TR0dSm2eKDYJ0n6LEX64q7W8g6OB+zCB+DAdBgNVHQ4EFgQU
+KdzSbNkZBCyT2z2misybL+88XtowgbIGA1UdIwSBqjCBp4AU8xCC9QjvXyjfWeVU
+meDAzu+rm3GhgYukgYgwgYUxCzAJBgNVBAYTAlVLMQ8wDQYDVQQHEwZMb25kb24x
+JzAlBgNVBAMTHkRTQSBUZXN0Um9vdFJTQSBDaGFpbiBDZXJ0IE9uZTEUMBIGA1UE
+ChMLU3ltYmlhbiBMdGQxJjAkBgkqhkiG9w0BCQEWF2pvaGFuLmdyb3RoQHN5bWJp
+YW4uY29tggEBMBIGA1UdEwEB/wQIMAYBAf8CAQUwDgYDVR0PAQH/BAQDAgIEMAkG
+ByqGSM44BAMDLwAwLAIUcBEHRlrtpkKeCh37GPWWUu+lY8QCFD+d+/KSJ/fT2pu7
+hxGcr0Nk0pHZ
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDHjCCAt6gAwIBAgIBATAJBgcqhkjOOAQDMIGFMQswCQYDVQQGEwJVSzEPMA0G
+A1UEBxMGTG9uZG9uMScwJQYDVQQDEx5EU0EgVGVzdFJvb3RSU0EgQ2hhaW4gQ2Vy
+dCBPbmUxFDASBgNVBAoTC1N5bWJpYW4gTHRkMSYwJAYJKoZIhvcNAQkBFhdqb2hh
+bi5ncm90aEBzeW1iaWFuLmNvbTAeFw0wNTA0MDQwODA4MTNaFw0xNTA0MDIwODA4
+MTNaMH8xCzAJBgNVBAYTAlVLMQ8wDQYDVQQHEwZMb25kb24xJzAlBgNVBAMTHkRT
+QSBUZXN0Um9vdFJTQSBDaGFpbiBDZXJ0IFR3bzEUMBIGA1UEChMLU3ltYmlhbiBM
+dGQxIDAeBgkqhkiG9w0BCQEWEVBlbGxlUG9wQGFjbWUuY29tMIHwMIGoBgcqhkjO
+OAQBMIGcAkEAnPrAhiOL1/zqgRin638D8Wv/shyD6aIUz0MJjlJ+DHbgHWlkzs/r
+s/HBQhTkg/nzgLbsmza+aocqzhyt7VYinwIVAKXX3yjRm6IjsJOrsTXglhvXZNF5
+AkB9NXiDLVrD/QlpqFY/IOfJFc+9Jh/L6L42tvq6eKb8ZVpPwogkh4/lILywIyJZ
+OxxDhHSI+tRSgAjrEHkCuzA7A0MAAkApf8BfsPKHeflqu0XYMOVj2bhlmOMVZimD
+crEKx8v0ZzF1YO8Eq3pIgBIw5pMaNkBj3IEdMhrrA0Kv86SsJJ80o4GsMIGpMB0G
+A1UdDgQWBBTzEIL1CO9fKN9Z5VSZ4MDO76ubcTBkBgNVHSMEXTBbgBQkvXK99MGe
+GFqdOcSfqVSerLS+M6FApD4wPDEdMBsGA1UEChMUU3ltYmlhbiBTb2Z0d2FyZSBM
+dGQxGzAZBgNVBAMTElN5bWJpYW4gVGVzdCAtIFJTQYIBATASBgNVHRMBAf8ECDAG
+AQH/AgEFMA4GA1UdDwEB/wQEAwICBDAJBgcqhkjOOAQDAy8AMCwCFDGKLLMXC4DD
+wEUSXONBa0aXg45rAhQxZLz5IAiciZa8p5lNXCgAXhu62w==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDNjCCAp+gAwIBAgIBATANBgkqhkiG9w0BAQQFADA8MR0wGwYDVQQKExRTeW1i
+aWFuIFNvZnR3YXJlIEx0ZDEbMBkGA1UEAxMSU3ltYmlhbiBUZXN0IC0gUlNBMB4X
+DTA1MDQwNDA3NTcwNloXDTE1MDQwMjA3NTcwNlowgYUxCzAJBgNVBAYTAlVLMQ8w
+DQYDVQQHEwZMb25kb24xJzAlBgNVBAMTHkRTQSBUZXN0Um9vdFJTQSBDaGFpbiBD
+ZXJ0IE9uZTEUMBIGA1UEChMLU3ltYmlhbiBMdGQxJjAkBgkqhkiG9w0BCQEWF2pv
+aGFuLmdyb3RoQHN5bWJpYW4uY29tMIHwMIGoBgcqhkjOOAQBMIGcAkEAvgn7NXs3
+6y7tJWaPmLhtsBke8WVQEBpF8nrYK/rZIQpGAQALTLEU8DnDxmMONIm8gslI4n/O
+Gaw90FIvtXL+OwIVAIrHw8so1HlxzFcXCdkAsCYbHniLAkAZz5BrUd/uFDVBS2r1
+yhnMw3MO6lXfaAgCVSiUxkAwk1GPlbzfOouA33NUPRvJhoYPeOqCkaomMH6OjDcv
+t0nlA0MAAkAUGTtFucMXU1BHwYw2n6hJaAyLHWeY2vdXaHP2bppnAi/hDNI3fxQj
+4O5cZxCMcyQn25ztnuY7r8zjgjvWJesLo4GsMIGpMB0GA1UdDgQWBBQkvXK99MGe
+GFqdOcSfqVSerLS+MzBkBgNVHSMEXTBbgBTmk462EBZQ/BkEjOSpyjGGJgWS1qFA
+pD4wPDEdMBsGA1UEChMUU3ltYmlhbiBTb2Z0d2FyZSBMdGQxGzAZBgNVBAMTElN5
+bWJpYW4gVGVzdCAtIFJTQYIBADASBgNVHRMBAf8ECDAGAQH/AgEFMA4GA1UdDwEB
+/wQEAwICBDANBgkqhkiG9w0BAQQFAAOBgQBCtLrgl1uQyABPkDsFuhZJ5Gtmjb45
++IYR4yQrUVXqBmf8B4rQTm5+z+iTNJN6Ba9Hw8ImtK9Ui0wE4mdKrTZ/T2uFUAa3
+mbWePjNd/hAKLb3PpmwNuNWGqIHxNliuguRR1RIZuDtv54ZMTNGT+OFgEAeAq8+4
+V1rqzyXU8AxI7w==
+-----END CERTIFICATE-----
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCARSA/cert_chain_dsa_len3/dsaparam.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,6 @@
+-----BEGIN DSA PARAMETERS-----
+MIGcAkEAq7lsXTF5GIXcxeV85/gU4b2wn88Bs6V3EnSgnwyLA2mVK4+tX35e6Jc8
+S6XopKBGb/Q1gil81R0amsn3F6mdBQIVAK61lw5F/ZNZhteUZW+XxZwT7D2LAkAE
+TqTZXKfidiQJMwzero7i4qDBmzvgzM3MLVqPHWZ980JduVwu6T2UOga5D0Qr9z/8
+DpX3dIod53/C0Mss9ulq
+-----END DSA PARAMETERS-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCARSA/cert_chain_dsa_len3/third.dsa.cer	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDZTCCAyWgAwIBAgIBATAJBgcqhkjOOAQDMH8xCzAJBgNVBAYTAlVLMQ8wDQYD
+VQQHEwZMb25kb24xJzAlBgNVBAMTHkRTQSBUZXN0Um9vdFJTQSBDaGFpbiBDZXJ0
+IFR3bzEUMBIGA1UEChMLU3ltYmlhbiBMdGQxIDAeBgkqhkiG9w0BCQEWEVBlbGxl
+UG9wQGFjbWUuY29tMB4XDTA1MDQwNDA4MjAxOFoXDTE1MDQwMjA4MjAxOFowfjEL
+MAkGA1UEBhMCVUsxDzANBgNVBAcTBkxvbmRvbjEpMCcGA1UEAxMgRFNBIFRlc3RS
+b290UlNBIENoYWluIENlcnQgVGhyZWUxFDASBgNVBAoTC1N5bWJpYW4gTHRkMR0w
+GwYJKoZIhvcNAQkBFg5vd25AZmx5aW5nLmNvbTCB8DCBqAYHKoZIzjgEATCBnAJB
+AKu5bF0xeRiF3MXlfOf4FOG9sJ/PAbOldxJ0oJ8MiwNplSuPrV9+XuiXPEul6KSg
+Rm/0NYIpfNUdGprJ9xepnQUCFQCutZcORf2TWYbXlGVvl8WcE+w9iwJABE6k2Vyn
+4nYkCTMM3q6O4uKgwZs74MzNzC1ajx1mffNCXblcLuk9lDoGuQ9EK/c//A6V93SK
+Hed/wtDLLPbpagNDAAJABNcjDoZPuSTtNsjpHDroeLGPBis/oDXtWegvRvlA58fz
+sxeqUZlZQxGvmVE7TR0dSm2eKDYJ0n6LEX64q7W8g6OB+zCB+DAdBgNVHQ4EFgQU
+KdzSbNkZBCyT2z2misybL+88XtowgbIGA1UdIwSBqjCBp4AU8xCC9QjvXyjfWeVU
+meDAzu+rm3GhgYukgYgwgYUxCzAJBgNVBAYTAlVLMQ8wDQYDVQQHEwZMb25kb24x
+JzAlBgNVBAMTHkRTQSBUZXN0Um9vdFJTQSBDaGFpbiBDZXJ0IE9uZTEUMBIGA1UE
+ChMLU3ltYmlhbiBMdGQxJjAkBgkqhkiG9w0BCQEWF2pvaGFuLmdyb3RoQHN5bWJp
+YW4uY29tggEBMBIGA1UdEwEB/wQIMAYBAf8CAQUwDgYDVR0PAQH/BAQDAgIEMAkG
+ByqGSM44BAMDLwAwLAIUcBEHRlrtpkKeCh37GPWWUu+lY8QCFD+d+/KSJ/fT2pu7
+hxGcr0Nk0pHZ
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCARSA/cert_chain_rsa_len1/chain_rsa_len1.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,17 @@
+-----BEGIN CERTIFICATE-----
+MIICoTCCAgqgAwIBAgIBATANBgkqhkiG9w0BAQQFADA8MR0wGwYDVQQKExRTeW1i
+aWFuIFNvZnR3YXJlIEx0ZDEbMBkGA1UEAxMSU3ltYmlhbiBUZXN0IC0gUlNBMB4X
+DTA1MDQwNDA4MjY0N1oXDTE1MDQwMjA4MjY0N1owgYUxCzAJBgNVBAYTAlVLMQ8w
+DQYDVQQHEwZMb25kb24xJzAlBgNVBAMTHlJTQSBUZXN0Um9vdFJTQSBDaGFpbiBD
+ZXJ0IE9uZTEUMBIGA1UEChMLU3ltYmlhbiBMdGQxJjAkBgkqhkiG9w0BCQEWF2pv
+aGFuLmdyb3RoQHN5bWJpYW4uY29tMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALBx
+IBv9gEhppyryXVmN4qZzgeu59MDEiTd5/WDfdG3a+aF4c1ERciD6H5Hwmvhx/TJ5
+mpuKeKn6aJBz6QTZ5ksCAwEAAaOBrDCBqTAdBgNVHQ4EFgQUDVOCfuKBurGrAz5u
+FlGhEzwvUYMwZAYDVR0jBF0wW4AU5pOOthAWUPwZBIzkqcoxhiYFktahQKQ+MDwx
+HTAbBgNVBAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFu
+IFRlc3QgLSBSU0GCAQAwEgYDVR0TAQH/BAgwBgEB/wIBBTAOBgNVHQ8BAf8EBAMC
+AgQwDQYJKoZIhvcNAQEEBQADgYEAUoUlBiVPcS9trOjMYD/6K/WqsKZWWJ2ZMu+e
+v/39gb4hkEvxa5I7LpsLM5HkCwTYH2nXkuL3Fc7AT/RfpjEjLmR962XbO92cFm0N
+q+PPxW9OSvLEDhlaqKzB5iAXr8Pae3+nvAuuKCfF82fh3Ndxs3sFLQ2DKeUgobQH
+Ae2SR+c=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCARSA/cert_chain_rsa_len1/first.rsa.cer	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,17 @@
+-----BEGIN CERTIFICATE-----
+MIICoTCCAgqgAwIBAgIBATANBgkqhkiG9w0BAQQFADA8MR0wGwYDVQQKExRTeW1i
+aWFuIFNvZnR3YXJlIEx0ZDEbMBkGA1UEAxMSU3ltYmlhbiBUZXN0IC0gUlNBMB4X
+DTA1MDQwNDA4MjY0N1oXDTE1MDQwMjA4MjY0N1owgYUxCzAJBgNVBAYTAlVLMQ8w
+DQYDVQQHEwZMb25kb24xJzAlBgNVBAMTHlJTQSBUZXN0Um9vdFJTQSBDaGFpbiBD
+ZXJ0IE9uZTEUMBIGA1UEChMLU3ltYmlhbiBMdGQxJjAkBgkqhkiG9w0BCQEWF2pv
+aGFuLmdyb3RoQHN5bWJpYW4uY29tMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALBx
+IBv9gEhppyryXVmN4qZzgeu59MDEiTd5/WDfdG3a+aF4c1ERciD6H5Hwmvhx/TJ5
+mpuKeKn6aJBz6QTZ5ksCAwEAAaOBrDCBqTAdBgNVHQ4EFgQUDVOCfuKBurGrAz5u
+FlGhEzwvUYMwZAYDVR0jBF0wW4AU5pOOthAWUPwZBIzkqcoxhiYFktahQKQ+MDwx
+HTAbBgNVBAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFu
+IFRlc3QgLSBSU0GCAQAwEgYDVR0TAQH/BAgwBgEB/wIBBTAOBgNVHQ8BAf8EBAMC
+AgQwDQYJKoZIhvcNAQEEBQADgYEAUoUlBiVPcS9trOjMYD/6K/WqsKZWWJ2ZMu+e
+v/39gb4hkEvxa5I7LpsLM5HkCwTYH2nXkuL3Fc7AT/RfpjEjLmR962XbO92cFm0N
+q+PPxW9OSvLEDhlaqKzB5iAXr8Pae3+nvAuuKCfF82fh3Ndxs3sFLQ2DKeUgobQH
+Ae2SR+c=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCARSA/cert_chain_rsa_len2/chain_rsa_len2.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,34 @@
+-----BEGIN CERTIFICATE-----
+MIICozCCAk2gAwIBAgIBATANBgkqhkiG9w0BAQQFADCBhTELMAkGA1UEBhMCVUsx
+DzANBgNVBAcTBkxvbmRvbjEnMCUGA1UEAxMeUlNBIFRlc3RSb290UlNBIENoYWlu
+IENlcnQgT25lMRQwEgYDVQQKEwtTeW1iaWFuIEx0ZDEmMCQGCSqGSIb3DQEJARYX
+am9oYW4uZ3JvdGhAc3ltYmlhbi5jb20wHhcNMDUwNDA0MDgzMjA5WhcNMTUwNDAy
+MDgzMjA5WjB/MQswCQYDVQQGEwJVSzEPMA0GA1UEBxMGTG9uZG9uMScwJQYDVQQD
+Ex5SU0EgVGVzdFJvb3RSU0EgQ2hhaW4gQ2VydCBUd28xFDASBgNVBAoTC1N5bWJp
+YW4gTHRkMSAwHgYJKoZIhvcNAQkBFhFQZWxsZVBvcEBhY21lLmNvbTBcMA0GCSqG
+SIb3DQEBAQUAA0sAMEgCQQC55HtHlQWXsJl9PHJzfvpHr7m3r+8wlcL4smELDWdz
+KvTwq+5Tq6vBs4bgaNogywlctXsRW639V+wNRqQVoABfAgMBAAGjgawwgakwHQYD
+VR0OBBYEFDcgyQstC1Fb+joBdNtcjt+5k0YAMGQGA1UdIwRdMFuAFA1Tgn7igbqx
+qwM+bhZRoRM8L1GDoUCkPjA8MR0wGwYDVQQKExRTeW1iaWFuIFNvZnR3YXJlIEx0
+ZDEbMBkGA1UEAxMSU3ltYmlhbiBUZXN0IC0gUlNBggEBMBIGA1UdEwEB/wQIMAYB
+Af8CAQUwDgYDVR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBBAUAA0EAhDPzFc1Dlna+
+LPWwBv0ZbFAZVRKS1CzhnaTRaR0srblIgTpZlci1MhfsXDkMHXQS454gwBQoPZRU
+tmSR0l2IFg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICoTCCAgqgAwIBAgIBATANBgkqhkiG9w0BAQQFADA8MR0wGwYDVQQKExRTeW1i
+aWFuIFNvZnR3YXJlIEx0ZDEbMBkGA1UEAxMSU3ltYmlhbiBUZXN0IC0gUlNBMB4X
+DTA1MDQwNDA4MjY0N1oXDTE1MDQwMjA4MjY0N1owgYUxCzAJBgNVBAYTAlVLMQ8w
+DQYDVQQHEwZMb25kb24xJzAlBgNVBAMTHlJTQSBUZXN0Um9vdFJTQSBDaGFpbiBD
+ZXJ0IE9uZTEUMBIGA1UEChMLU3ltYmlhbiBMdGQxJjAkBgkqhkiG9w0BCQEWF2pv
+aGFuLmdyb3RoQHN5bWJpYW4uY29tMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALBx
+IBv9gEhppyryXVmN4qZzgeu59MDEiTd5/WDfdG3a+aF4c1ERciD6H5Hwmvhx/TJ5
+mpuKeKn6aJBz6QTZ5ksCAwEAAaOBrDCBqTAdBgNVHQ4EFgQUDVOCfuKBurGrAz5u
+FlGhEzwvUYMwZAYDVR0jBF0wW4AU5pOOthAWUPwZBIzkqcoxhiYFktahQKQ+MDwx
+HTAbBgNVBAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFu
+IFRlc3QgLSBSU0GCAQAwEgYDVR0TAQH/BAgwBgEB/wIBBTAOBgNVHQ8BAf8EBAMC
+AgQwDQYJKoZIhvcNAQEEBQADgYEAUoUlBiVPcS9trOjMYD/6K/WqsKZWWJ2ZMu+e
+v/39gb4hkEvxa5I7LpsLM5HkCwTYH2nXkuL3Fc7AT/RfpjEjLmR962XbO92cFm0N
+q+PPxW9OSvLEDhlaqKzB5iAXr8Pae3+nvAuuKCfF82fh3Ndxs3sFLQ2DKeUgobQH
+Ae2SR+c=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCARSA/cert_chain_rsa_len2/second.rsa.cer	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,17 @@
+-----BEGIN CERTIFICATE-----
+MIICozCCAk2gAwIBAgIBATANBgkqhkiG9w0BAQQFADCBhTELMAkGA1UEBhMCVUsx
+DzANBgNVBAcTBkxvbmRvbjEnMCUGA1UEAxMeUlNBIFRlc3RSb290UlNBIENoYWlu
+IENlcnQgT25lMRQwEgYDVQQKEwtTeW1iaWFuIEx0ZDEmMCQGCSqGSIb3DQEJARYX
+am9oYW4uZ3JvdGhAc3ltYmlhbi5jb20wHhcNMDUwNDA0MDgzMjA5WhcNMTUwNDAy
+MDgzMjA5WjB/MQswCQYDVQQGEwJVSzEPMA0GA1UEBxMGTG9uZG9uMScwJQYDVQQD
+Ex5SU0EgVGVzdFJvb3RSU0EgQ2hhaW4gQ2VydCBUd28xFDASBgNVBAoTC1N5bWJp
+YW4gTHRkMSAwHgYJKoZIhvcNAQkBFhFQZWxsZVBvcEBhY21lLmNvbTBcMA0GCSqG
+SIb3DQEBAQUAA0sAMEgCQQC55HtHlQWXsJl9PHJzfvpHr7m3r+8wlcL4smELDWdz
+KvTwq+5Tq6vBs4bgaNogywlctXsRW639V+wNRqQVoABfAgMBAAGjgawwgakwHQYD
+VR0OBBYEFDcgyQstC1Fb+joBdNtcjt+5k0YAMGQGA1UdIwRdMFuAFA1Tgn7igbqx
+qwM+bhZRoRM8L1GDoUCkPjA8MR0wGwYDVQQKExRTeW1iaWFuIFNvZnR3YXJlIEx0
+ZDEbMBkGA1UEAxMSU3ltYmlhbiBUZXN0IC0gUlNBggEBMBIGA1UdEwEB/wQIMAYB
+Af8CAQUwDgYDVR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBBAUAA0EAhDPzFc1Dlna+
+LPWwBv0ZbFAZVRKS1CzhnaTRaR0srblIgTpZlci1MhfsXDkMHXQS454gwBQoPZRU
+tmSR0l2IFg==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCARSA/cert_chain_rsa_len3/chain_rsa_len3.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,52 @@
+-----BEGIN CERTIFICATE-----
+MIIC6jCCApSgAwIBAgIBATANBgkqhkiG9w0BAQQFADB/MQswCQYDVQQGEwJVSzEP
+MA0GA1UEBxMGTG9uZG9uMScwJQYDVQQDEx5SU0EgVGVzdFJvb3RSU0EgQ2hhaW4g
+Q2VydCBUd28xFDASBgNVBAoTC1N5bWJpYW4gTHRkMSAwHgYJKoZIhvcNAQkBFhFQ
+ZWxsZVBvcEBhY21lLmNvbTAeFw0wNTA0MDQwODQ0MzdaFw0xNTA0MDIwODQ0Mzda
+MH4xCzAJBgNVBAYTAlVLMQ8wDQYDVQQHEwZMb25kb24xKTAnBgNVBAMTIFJTQSBU
+ZXN0Um9vdFJTQSBDaGFpbiBDZXJ0IFRocmVlMRQwEgYDVQQKEwtTeW1iaWFuIEx0
+ZDEdMBsGCSqGSIb3DQEJARYOb3duQGZseWluZy5jb20wXDANBgkqhkiG9w0BAQEF
+AANLADBIAkEAxxvc2GJoyYL4Z8HmYx+eZGs67jxurA+YyHvUWW620ORtHmJ3mCC7
+W8aTPWADXP8Xmph/ZjDnNqnKradfDIUA6wIDAQABo4H7MIH4MB0GA1UdDgQWBBS4
+AWrr6wPqBmncj8glQ+33aguenjCBsgYDVR0jBIGqMIGngBQ3IMkLLQtRW/o6AXTb
+XI7fuZNGAKGBi6SBiDCBhTELMAkGA1UEBhMCVUsxDzANBgNVBAcTBkxvbmRvbjEn
+MCUGA1UEAxMeUlNBIFRlc3RSb290UlNBIENoYWluIENlcnQgT25lMRQwEgYDVQQK
+EwtTeW1iaWFuIEx0ZDEmMCQGCSqGSIb3DQEJARYXam9oYW4uZ3JvdGhAc3ltYmlh
+bi5jb22CAQEwEgYDVR0TAQH/BAgwBgEB/wIBBTAOBgNVHQ8BAf8EBAMCAgQwDQYJ
+KoZIhvcNAQEEBQADQQAVUKfJjmSqbwmAGhlEXmUkoSpvBW5RDxpez3K/Nd08UVV/
+0nm1Ri+msm8eaQrD8jSxZRslN9uyNepTMFHYFG/v
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICozCCAk2gAwIBAgIBATANBgkqhkiG9w0BAQQFADCBhTELMAkGA1UEBhMCVUsx
+DzANBgNVBAcTBkxvbmRvbjEnMCUGA1UEAxMeUlNBIFRlc3RSb290UlNBIENoYWlu
+IENlcnQgT25lMRQwEgYDVQQKEwtTeW1iaWFuIEx0ZDEmMCQGCSqGSIb3DQEJARYX
+am9oYW4uZ3JvdGhAc3ltYmlhbi5jb20wHhcNMDUwNDA0MDgzMjA5WhcNMTUwNDAy
+MDgzMjA5WjB/MQswCQYDVQQGEwJVSzEPMA0GA1UEBxMGTG9uZG9uMScwJQYDVQQD
+Ex5SU0EgVGVzdFJvb3RSU0EgQ2hhaW4gQ2VydCBUd28xFDASBgNVBAoTC1N5bWJp
+YW4gTHRkMSAwHgYJKoZIhvcNAQkBFhFQZWxsZVBvcEBhY21lLmNvbTBcMA0GCSqG
+SIb3DQEBAQUAA0sAMEgCQQC55HtHlQWXsJl9PHJzfvpHr7m3r+8wlcL4smELDWdz
+KvTwq+5Tq6vBs4bgaNogywlctXsRW639V+wNRqQVoABfAgMBAAGjgawwgakwHQYD
+VR0OBBYEFDcgyQstC1Fb+joBdNtcjt+5k0YAMGQGA1UdIwRdMFuAFA1Tgn7igbqx
+qwM+bhZRoRM8L1GDoUCkPjA8MR0wGwYDVQQKExRTeW1iaWFuIFNvZnR3YXJlIEx0
+ZDEbMBkGA1UEAxMSU3ltYmlhbiBUZXN0IC0gUlNBggEBMBIGA1UdEwEB/wQIMAYB
+Af8CAQUwDgYDVR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBBAUAA0EAhDPzFc1Dlna+
+LPWwBv0ZbFAZVRKS1CzhnaTRaR0srblIgTpZlci1MhfsXDkMHXQS454gwBQoPZRU
+tmSR0l2IFg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICoTCCAgqgAwIBAgIBATANBgkqhkiG9w0BAQQFADA8MR0wGwYDVQQKExRTeW1i
+aWFuIFNvZnR3YXJlIEx0ZDEbMBkGA1UEAxMSU3ltYmlhbiBUZXN0IC0gUlNBMB4X
+DTA1MDQwNDA4MjY0N1oXDTE1MDQwMjA4MjY0N1owgYUxCzAJBgNVBAYTAlVLMQ8w
+DQYDVQQHEwZMb25kb24xJzAlBgNVBAMTHlJTQSBUZXN0Um9vdFJTQSBDaGFpbiBD
+ZXJ0IE9uZTEUMBIGA1UEChMLU3ltYmlhbiBMdGQxJjAkBgkqhkiG9w0BCQEWF2pv
+aGFuLmdyb3RoQHN5bWJpYW4uY29tMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALBx
+IBv9gEhppyryXVmN4qZzgeu59MDEiTd5/WDfdG3a+aF4c1ERciD6H5Hwmvhx/TJ5
+mpuKeKn6aJBz6QTZ5ksCAwEAAaOBrDCBqTAdBgNVHQ4EFgQUDVOCfuKBurGrAz5u
+FlGhEzwvUYMwZAYDVR0jBF0wW4AU5pOOthAWUPwZBIzkqcoxhiYFktahQKQ+MDwx
+HTAbBgNVBAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRswGQYDVQQDExJTeW1iaWFu
+IFRlc3QgLSBSU0GCAQAwEgYDVR0TAQH/BAgwBgEB/wIBBTAOBgNVHQ8BAf8EBAMC
+AgQwDQYJKoZIhvcNAQEEBQADgYEAUoUlBiVPcS9trOjMYD/6K/WqsKZWWJ2ZMu+e
+v/39gb4hkEvxa5I7LpsLM5HkCwTYH2nXkuL3Fc7AT/RfpjEjLmR962XbO92cFm0N
+q+PPxW9OSvLEDhlaqKzB5iAXr8Pae3+nvAuuKCfF82fh3Ndxs3sFLQ2DKeUgobQH
+Ae2SR+c=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCARSA/cert_chain_rsa_len3/third.rsa.cer	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,18 @@
+-----BEGIN CERTIFICATE-----
+MIIC6jCCApSgAwIBAgIBATANBgkqhkiG9w0BAQQFADB/MQswCQYDVQQGEwJVSzEP
+MA0GA1UEBxMGTG9uZG9uMScwJQYDVQQDEx5SU0EgVGVzdFJvb3RSU0EgQ2hhaW4g
+Q2VydCBUd28xFDASBgNVBAoTC1N5bWJpYW4gTHRkMSAwHgYJKoZIhvcNAQkBFhFQ
+ZWxsZVBvcEBhY21lLmNvbTAeFw0wNTA0MDQwODQ0MzdaFw0xNTA0MDIwODQ0Mzda
+MH4xCzAJBgNVBAYTAlVLMQ8wDQYDVQQHEwZMb25kb24xKTAnBgNVBAMTIFJTQSBU
+ZXN0Um9vdFJTQSBDaGFpbiBDZXJ0IFRocmVlMRQwEgYDVQQKEwtTeW1iaWFuIEx0
+ZDEdMBsGCSqGSIb3DQEJARYOb3duQGZseWluZy5jb20wXDANBgkqhkiG9w0BAQEF
+AANLADBIAkEAxxvc2GJoyYL4Z8HmYx+eZGs67jxurA+YyHvUWW620ORtHmJ3mCC7
+W8aTPWADXP8Xmph/ZjDnNqnKradfDIUA6wIDAQABo4H7MIH4MB0GA1UdDgQWBBS4
+AWrr6wPqBmncj8glQ+33aguenjCBsgYDVR0jBIGqMIGngBQ3IMkLLQtRW/o6AXTb
+XI7fuZNGAKGBi6SBiDCBhTELMAkGA1UEBhMCVUsxDzANBgNVBAcTBkxvbmRvbjEn
+MCUGA1UEAxMeUlNBIFRlc3RSb290UlNBIENoYWluIENlcnQgT25lMRQwEgYDVQQK
+EwtTeW1iaWFuIEx0ZDEmMCQGCSqGSIb3DQEJARYXam9oYW4uZ3JvdGhAc3ltYmlh
+bi5jb22CAQEwEgYDVR0TAQH/BAgwBgEB/wIBBTAOBgNVHQ8BAf8EBAMCAgQwDQYJ
+KoZIhvcNAQEEBQADQQAVUKfJjmSqbwmAGhlEXmUkoSpvBW5RDxpez3K/Nd08UVV/
+0nm1Ri+msm8eaQrD8jSxZRslN9uyNepTMFHYFG/v
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCARSA/dsaparam.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,6 @@
+-----BEGIN DSA PARAMETERS-----
+MIGdAkEAkb+To8XWy2E5EyC/Jv1GsXhWhC8C4P4wUFVPsFHOL/aDE98KLaLpBmiJ
+CdO1AXQCZ0xBPOauM3qLZLT9V6vucwIVAI4fMB7r+NWkvV2s+0wqgkiaJYM9AkEA
+ibtHMJ4oynBVUocRX8HWCbDc1j4Td3qFIl9RlHmThggXrJ/fmlqIlvmJYYsv1+MH
+/KRiN+99ZQzj7uiS62yZ/Q==
+-----END DSA PARAMETERS-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootExpiredCARSA/cacert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,17 @@
+-----BEGIN CERTIFICATE-----
+MIICyzCCAjSgAwIBAgIJALQ+epw2GV/eMA0GCSqGSIb3DQEBBAUAMIGDMQswCQYD
+VQQGEwJVSzEPMA0GA1UEBxMGTG9uZG9uMRgwFgYDVQQDEw9KYXNvbiBTaWJ0aG9y
+cGUxHTAbBgNVBAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMSowKAYJKoZIhvcNAQkB
+FhtqYXNvbi5zaWJ0aG9ycGVAc3ltYmlhbi5jb20wHhcNMDEwMTAxMDAzNTQ2WhcN
+MDEwMTAyMDAzNTQ2WjCBgzELMAkGA1UEBhMCVUsxDzANBgNVBAcTBkxvbmRvbjEY
+MBYGA1UEAxMPSmFzb24gU2lidGhvcnBlMR0wGwYDVQQKExRTeW1iaWFuIFNvZnR3
+YXJlIEx0ZDEqMCgGCSqGSIb3DQEJARYbamFzb24uc2lidGhvcnBlQHN5bWJpYW4u
+Y29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCvBnN904rHGZ8d8YEnM4ZV
+Q+jcI3bBGIakkoA7fQRmMGJ5vgZUmMjn5PlFhC/3os57oIr9qGQLaZ15W6oDU0z9
+pMBThiIjmmJMdFnsD/V/W19Q0p9HrRPLGZH6YfbL8gW+ila14vpE8yQxYz2fJphA
+kNP8kH6SvyDua2k7b8PBAQIDAQABo0UwQzAdBgNVHQ4EFgQUiQZfK0vk6S0JbcMo
+x7JrmXAFWVowEgYDVR0TAQH/BAgwBgEB/wIBBTAOBgNVHQ8BAf8EBAMCAgQwDQYJ
+KoZIhvcNAQEEBQADgYEAh4NcCnX2kP5mHeAmFWn4y4mVynNZynnWEnlDrRFvPmyk
+hldC0fOIvxy/jcjmwvSIThGQRcLWVtmnkiiZ6p7zgcXq99WVCZkdjsy2zkV7XAd6
+VKtVwaj76gO0nMg1higq0Mtm8cugusccGw5mqzyaNgfK1HTuSBOgC7OTfXqTZrI=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootExpiredCARSA/cakey.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQCvBnN904rHGZ8d8YEnM4ZVQ+jcI3bBGIakkoA7fQRmMGJ5vgZU
+mMjn5PlFhC/3os57oIr9qGQLaZ15W6oDU0z9pMBThiIjmmJMdFnsD/V/W19Q0p9H
+rRPLGZH6YfbL8gW+ila14vpE8yQxYz2fJphAkNP8kH6SvyDua2k7b8PBAQIDAQAB
+AoGAeC+64N2Bv6Slcf9jy9KC3Uwru/cSVhiMZLhBHBiGC9IP3T+Sw0bDNxIx5f2W
+nrsKhTRCHVsjj/6vZyV9wpjSFXvtRMOmD8rvb0NNdyD7sU8MwZ0lwZhOtXzjUXCl
+tzg4rSUAOay1/nKeDcJjYf+b4atFHRT5foGlvhO98N7X+x0CQQDW27Sqlg7bOEUd
+R17Y5D+KKI1UL6VJHQNHU2ColjRH/mezy5a5bvQ2J7yiWKjTdShmETx/w3OSGUyE
+gicd4JPTAkEA0IokD2p/z2jFlRtyLNFU3zObwpxaadUyXo1/jS6xjwJDUpc2Lx15
+nMTvH0hzuOkwgd7Atp2xQBW8Xir333PXWwJBAJkDlPHbti7XLxl/54NNYhbxdF0d
+JXghSmF0dqT5e7g97Pq1pdzfsNoUiJmRzIHzsNantc9Dkb3deInx6wuzEXMCQQCn
+Y8rwKN8wn/vA5Qfvm5ORmb5UJuaX/s5wgQm6TJmvnfRmDgQrK3CbeqQqKyDgcyVB
+iYiMzOUi+I970uemEDjzAkA8bw9S8BxiUnz22rD2wUkFEN5kfMoBg67NTQGnFwkW
+bAmqJ1n3lHmLQcND121DWD/rQH7f6LSBpPQKZi/4ES0i
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootExpiredCARSA/careq.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,12 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIIBxDCCAS0CAQAwgYMxCzAJBgNVBAYTAlVLMQ8wDQYDVQQHEwZMb25kb24xGDAW
+BgNVBAMTD0phc29uIFNpYnRob3JwZTEdMBsGA1UEChMUU3ltYmlhbiBTb2Z0d2Fy
+ZSBMdGQxKjAoBgkqhkiG9w0BCQEWG2phc29uLnNpYnRob3JwZUBzeW1iaWFuLmNv
+bTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEArwZzfdOKxxmfHfGBJzOGVUPo
+3CN2wRiGpJKAO30EZjBieb4GVJjI5+T5RYQv96LOe6CK/ahkC2mdeVuqA1NM/aTA
+U4YiI5piTHRZ7A/1f1tfUNKfR60TyxmR+mH2y/IFvopWteL6RPMkMWM9nyaYQJDT
+/JB+kr8g7mtpO2/DwQECAwEAAaAAMA0GCSqGSIb3DQEBBAUAA4GBAE0E8PHn09GJ
+XXLHOiCtV3oLqwoGwNf3K9KkPtwMeWBjsSYUt8oswj0VNr0wS4RtjLy2j9ZQjcmA
+jV4971YxjZA3x3c8YD5lMivzTcoT4S7x6lHJ2G12aT9RhvHUc3aDf480yZ4T0ucu
+5swBwJvlM60rD5SIekhy+Et1yZCOt/NW
+-----END CERTIFICATE REQUEST-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootTCBCARSA/cacert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,17 @@
+-----BEGIN CERTIFICATE-----
+MIICpzCCAhCgAwIBAgIJAOQTyZwbHgqhMA0GCSqGSIb3DQEBBAUAMHIxCzAJBgNV
+BAYTAlVLMQ8wDQYDVQQHEwZMb25kb24xFDASBgNVBAMTC0pvaGFuIEdyb3RoMRQw
+EgYDVQQKEwtTeW1iaWFuIEx0ZDEmMCQGCSqGSIb3DQEJARYXam9oYW4uZ3JvdGhA
+c3ltYmlhbi5jb20wHhcNMDUwNjE2MTIyNzQ0WhcNMTUwNjE0MTIyNzQ0WjByMQsw
+CQYDVQQGEwJVSzEPMA0GA1UEBxMGTG9uZG9uMRQwEgYDVQQDEwtKb2hhbiBHcm90
+aDEUMBIGA1UEChMLU3ltYmlhbiBMdGQxJjAkBgkqhkiG9w0BCQEWF2pvaGFuLmdy
+b3RoQHN5bWJpYW4uY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC88QPG
+x2QhQjRbKWrvRCWhcXnrrAEJAyuUJF1WwlV4M7yPwC1Zv4GlVrnLk7V275QFgn1p
+CXYXppBnEeM9Y6+snOF9vOgDQCiOEhX7Zkwy6SAPDe59gvkLtdbMZkwqwCY5d1/W
+sWTmUllwn2TKxtmVebFLP78z+URQimFCxOs7bwIDAQABo0UwQzAdBgNVHQ4EFgQU
+x/HLBjvfMqybBQi8P6XjulbmC3MwEgYDVR0TAQH/BAgwBgEB/wIBBTAOBgNVHQ8B
+Af8EBAMCAgQwDQYJKoZIhvcNAQEEBQADgYEAQ/3fqhVHVoC5jaq04q+Tl25HkIns
+lTPSlczTcFAiVWCWnPlSDxr5bJ17pQWy0Kwb8YvXqxxxUtWyDdHI3Fqh2nDq77Xt
+VDvOIVvOK9KXo2QevVwN0hdQA1TKeejMpUu/lj7ajIEaLcIx9UIoNhVU2monuy2P
+f1Y2Nr0Wec9Q29I=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootTCBCARSA/cakey.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXgIBAAKBgQC88QPGx2QhQjRbKWrvRCWhcXnrrAEJAyuUJF1WwlV4M7yPwC1Z
+v4GlVrnLk7V275QFgn1pCXYXppBnEeM9Y6+snOF9vOgDQCiOEhX7Zkwy6SAPDe59
+gvkLtdbMZkwqwCY5d1/WsWTmUllwn2TKxtmVebFLP78z+URQimFCxOs7bwIDAQAB
+AoGBAIScbNghrmehffnV8hYJMJhFexssWHWo4fdSJqj0MOTy+w+yBKKPRUF0w2bd
+P2pA8RWE5tzIJTioUYXmCiZWRz+cLtTfmQhf45eBKPOZa9UnYzHM0Ws1H/sonO7w
+HriGC7Zbxm3qcaJlIg3oRpgRBooU/xIAXZakDNK877xTUldhAkEA7PeYmTeyVzi9
+PGkqZFoW+NJIFViXA4Uo/UFJbQwTU63QGkSy1hyA+g12GthPsJTIer5Sm8DUAaDn
+dJe6pwineQJBAMwd7/enxIWJsWWSsvaStsYr3afhLbuTRfMqYQeT51sr7cTRzNdg
+22JP5uoVC00hMqsVFPupvatfS8dbLDmheCcCQB09pEfr1obqynck5wVBFKqZkCmK
+KABYMymlH8FkBxKBVTeYmJTRKZ0xggxn+tVoVqDG0XzEu6SDzWvWuUKZT8kCQQCq
+h6RxUs+kBUqZIruztxVOcV2JIV7U5JC/PDu+WfojOIs4MVOi6T/AXiL8lEJR2Rd8
+yWszajeVElO8JVbIezdnAkEA6K1N61pxd7mwAvsS/aRlP7XikHzb/7wdPIZXWu1z
+4dxdnOT3GO1a2q7hAcMRIRydBLPLFOWaoGoQSbrLfLbPAQ==
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootTCBCARSA/careq.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,12 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIIBsjCCARsCAQAwcjELMAkGA1UEBhMCVUsxDzANBgNVBAcTBkxvbmRvbjEUMBIG
+A1UEAxMLSm9oYW4gR3JvdGgxFDASBgNVBAoTC1N5bWJpYW4gTHRkMSYwJAYJKoZI
+hvcNAQkBFhdqb2hhbi5ncm90aEBzeW1iaWFuLmNvbTCBnzANBgkqhkiG9w0BAQEF
+AAOBjQAwgYkCgYEAvPEDxsdkIUI0Wylq70QloXF566wBCQMrlCRdVsJVeDO8j8At
+Wb+BpVa5y5O1du+UBYJ9aQl2F6aQZxHjPWOvrJzhfbzoA0AojhIV+2ZMMukgDw3u
+fYL5C7XWzGZMKsAmOXdf1rFk5lJZcJ9kysbZlXmxSz+/M/lEUIphQsTrO28CAwEA
+AaAAMA0GCSqGSIb3DQEBBAUAA4GBAJQDUcSWpNd9c5R5q+OV40cSwvEV8iVaw6Zw
+G9nZoY/CECCa/+I5izrfuqyV09kyIkEDb/eo2CM/U8EAIs+nPZYC3zxKsbsX8ere
+pKdV4PeWeznDmm90GzpYAozpJtrAkKCs1IkTHx/VAqYVenFGEzMCqBvF7Du/Ffsk
+s1xVnjjb
+-----END CERTIFICATE REQUEST-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/extendedkeyusage/alternativesigningoid_eku.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICQDCCAamgAwIBAgIJANIXk6buRofcMA0GCSqGSIb3DQEBBAUAMDMxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRIwEAYDVQQDEwlSb290NS1SU0EwHhcN
+MDYxMTA4MTY0MDE2WhcNMzQwMzI0MTY0MDE2WjB4MQswCQYDVQQGEwJJTjESMBAG
+A1UEBxMJQmFuZ2Fsb3JlMRQwEgYDVQQDEwt3d3cuZWt1LmNvbTEUMBIGA1UEChML
+U3ltYmlhbiBMdGQxKTAnBgkqhkiG9w0BCQEWGlR1c2hhci5HYW5ndWxpQFN5bWJp
+YW4uY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDWFcBXe/It6qp9Ho7D
+wbdUA1IDF4/ys5oPtitJqXDdbYXPTnGTxHnQVQFoJZmz19Dl3R0i8P+x/FASUKgT
+F7HTWeWnV3WFElDR99SVHEMgquvKBiZrerfDaecaIjE3Mx34B88G9sUnY9bNcRyG
+vPU1HOZ2Iv7llD/HDJ6CXAm05wIDAQABoxcwFTATBgNVHSUEDDAKBggrBgEFBQcD
+HjANBgkqhkiG9w0BAQQFAAOBgQBvrAOLVglqU9U/2Y/qEf347T32f82Lo+RVGOJq
+Z3IZj3YokN8FJSb2qW+HvlYAdyXKhcOSqod5DZjnvxagfsyfmvXQIT60Oqsn8axi
+g+5oSyx9fj9Cm9RNOvft3DGpo7CLL1gYE8EMlxOxjyVADzZcVYpCPT2b1Y91weDO
+DTtZuA==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/extendedkeyusage/certificatereq.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,12 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIIBuDCCASECAQAweDELMAkGA1UEBhMCSU4xEjAQBgNVBAcTCUJhbmdhbG9yZTEU
+MBIGA1UEAxMLd3d3LmVrdS5jb20xFDASBgNVBAoTC1N5bWJpYW4gTHRkMSkwJwYJ
+KoZIhvcNAQkBFhpUdXNoYXIuR2FuZ3VsaUBTeW1iaWFuLmNvbTCBnzANBgkqhkiG
+9w0BAQEFAAOBjQAwgYkCgYEA1hXAV3vyLeqqfR6Ow8G3VANSAxeP8rOaD7YrSalw
+3W2Fz05xk8R50FUBaCWZs9fQ5d0dIvD/sfxQElCoExex01nlp1d1hRJQ0ffUlRxD
+IKrrygYma3q3w2nnGiIxNzMd+AfPBvbFJ2PWzXEchrz1NRzmdiL+5ZQ/xwyeglwJ
+tOcCAwEAAaAAMA0GCSqGSIb3DQEBBAUAA4GBAJD7bedYkIK8U8P++8g/XNw/h0gX
+ta6dWxw85LBi/JAL6y9xYPB+9lkdTWve+KUBNbMHjJbXKRiy07uEEzLHwf/tzk9S
+ALhvD+jEfnjejKMd8tHB7DKf6RCikwYyB0pN9hErVKeguQxtB1+rCA5IU3/VjXIS
+9IQAWJ1vXXWJS7J6
+-----END CERTIFICATE REQUEST-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/extendedkeyusage/ekuprivatekey.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQDWFcBXe/It6qp9Ho7DwbdUA1IDF4/ys5oPtitJqXDdbYXPTnGT
+xHnQVQFoJZmz19Dl3R0i8P+x/FASUKgTF7HTWeWnV3WFElDR99SVHEMgquvKBiZr
+erfDaecaIjE3Mx34B88G9sUnY9bNcRyGvPU1HOZ2Iv7llD/HDJ6CXAm05wIDAQAB
+AoGAHSQ+12nG0JtF89wqANmos+XzzvnxHU93ZDYe9Fr9Qxb6hPqfmUbAcixwEZY0
+svdotzF/GteFZtv6plOWXWr3SJbU1e9oR4MVF4NvrGxTZczq6Fub0le3iCn0ByLJ
+UG1bwkJ1X5GLW8553AFjwDwQ0GB9v0usyZjyYX0RidZAKxkCQQD/dDbiOpXW/eNJ
+B+fJt1q8AagwEJoxvPtfLoLxwJCDv5Ggs2aRe94uRCAuPbckZuAaMhpecJzXq6rq
+xznxT8DjAkEA1ormToqZC9fHf0Xk9vPSjPQjqHPxYX1pGblG2EWhEegYknMtpDDT
+nc7Ay9hOwTBID0x0hUcqsv6eQdYqm4KPLQJBALfnpX92p9rwSsmP3GnXC4ZgNwHr
+Yea+48UhSfnbJO8EYkXsAcJpB4oNV5GSsp+NRHb3bQ5iSjfmCZUeOnOkc/sCQEgg
+oHcNT5DUtYRLakPACyxKM+bBPAiLkhcM3A1/szwC7KfnwxNtOufWB6lAipGWetNx
+38ai+277/RajOuXXSe0CQCXIhVBqD2SQC0Gn7Rqr0woZmqDJOe1iFJAl4ioq+GZx
+PfiofJy/ppuEwij1VTNUtlkA0SOdXq8BJUKvhla7UQY=
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/extendedkeyusage/no_eku.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICIjCCAYsCCQC0oCBy3klHxDANBgkqhkiG9w0BAQQFADAzMR0wGwYDVQQKExRT
+eW1iaWFuIFNvZnR3YXJlIEx0ZDESMBAGA1UEAxMJUm9vdDUtUlNBMB4XDTA2MTEx
+MDE0MDIzOVoXDTM0MDMyNjE0MDIzOVoweDELMAkGA1UEBhMCSU4xEjAQBgNVBAcT
+CUJhbmdhbG9yZTEUMBIGA1UEAxMLd3d3LmVrdS5jb20xFDASBgNVBAoTC1N5bWJp
+YW4gTHRkMSkwJwYJKoZIhvcNAQkBFhpUdXNoYXIuR2FuZ3VsaUBTeW1iaWFuLmNv
+bTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA1hXAV3vyLeqqfR6Ow8G3VANS
+AxeP8rOaD7YrSalw3W2Fz05xk8R50FUBaCWZs9fQ5d0dIvD/sfxQElCoExex01nl
+p1d1hRJQ0ffUlRxDIKrrygYma3q3w2nnGiIxNzMd+AfPBvbFJ2PWzXEchrz1NRzm
+diL+5ZQ/xwyeglwJtOcCAwEAATANBgkqhkiG9w0BAQQFAAOBgQBUcv8OHgqOlK3W
+JMb9nTiJIoCniliA/89sRCQaWamn5q/QLXcmVKeYGh9oAljs7HyUDbqVSqZMN9xh
+Y/6wb7+FBR5HRZjRTaTO8C8GH9mITnyaUz/oV0AbIAEdXcxma8LggYQs46+x9mU8
+FvrKEuWnHuwQWFBUM+SuCxw0Le4++Q==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/extendedkeyusage/serverauth_eku.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICQDCCAamgAwIBAgIJAJxFMDhZx9ooMA0GCSqGSIb3DQEBBAUAMDMxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRIwEAYDVQQDEwlSb290NS1SU0EwHhcN
+MDYxMTEwMTQwMDI1WhcNMzQwMzI2MTQwMDI1WjB4MQswCQYDVQQGEwJJTjESMBAG
+A1UEBxMJQmFuZ2Fsb3JlMRQwEgYDVQQDEwt3d3cuZWt1LmNvbTEUMBIGA1UEChML
+U3ltYmlhbiBMdGQxKTAnBgkqhkiG9w0BCQEWGlR1c2hhci5HYW5ndWxpQFN5bWJp
+YW4uY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDWFcBXe/It6qp9Ho7D
+wbdUA1IDF4/ys5oPtitJqXDdbYXPTnGTxHnQVQFoJZmz19Dl3R0i8P+x/FASUKgT
+F7HTWeWnV3WFElDR99SVHEMgquvKBiZrerfDaecaIjE3Mx34B88G9sUnY9bNcRyG
+vPU1HOZ2Iv7llD/HDJ6CXAm05wIDAQABoxcwFTATBgNVHSUEDDAKBggrBgEFBQcD
+ATANBgkqhkiG9w0BAQQFAAOBgQAplqLMFDj1FafIReRPL1NRvXtUnF9V9BuvqwQF
+NJynscJHFD9hUeH6FP9jPNpyGhHazkMfWWZrCNCDZjByDoLUrPsFWZiPMBI2mDgD
+WERzATeLAjqHi5sX+IZVGjsBez068QINOL9sc+6M+nYTSM2laZSSANXB3+iM2s49
+fqAs/Q==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/extendedkeyusage/standardsigningoid_eku.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICQDCCAamgAwIBAgIJAKa0UzYnXvL/MA0GCSqGSIb3DQEBBAUAMDMxHTAbBgNV
+BAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMRIwEAYDVQQDEwlSb290NS1SU0EwHhcN
+MDYxMTEwMTQwMjAzWhcNMzQwMzI2MTQwMjAzWjB4MQswCQYDVQQGEwJJTjESMBAG
+A1UEBxMJQmFuZ2Fsb3JlMRQwEgYDVQQDEwt3d3cuZWt1LmNvbTEUMBIGA1UEChML
+U3ltYmlhbiBMdGQxKTAnBgkqhkiG9w0BCQEWGlR1c2hhci5HYW5ndWxpQFN5bWJp
+YW4uY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDWFcBXe/It6qp9Ho7D
+wbdUA1IDF4/ys5oPtitJqXDdbYXPTnGTxHnQVQFoJZmz19Dl3R0i8P+x/FASUKgT
+F7HTWeWnV3WFElDR99SVHEMgquvKBiZrerfDaecaIjE3Mx34B88G9sUnY9bNcRyG
+vPU1HOZ2Iv7llD/HDJ6CXAm05wIDAQABoxcwFTATBgNVHSUEDDAKBggrBgEFBQcD
+AzANBgkqhkiG9w0BAQQFAAOBgQA101hTQ2dBadKSrQo+ZdZllM5vjbBboBC73fli
+TPPCtkrGdx/nB3WezS9mjw2bzQ7SMXGz1nPkWMuwatiUJY6nstu/9OkTz8dHdfgl
+BfKhhUxueDAwpnuEOBUKaQf73HDDQ2qhEZKRXzdhyl2GZef2b4umCf4xJDTMi+EO
+yyVNXw==
+-----END CERTIFICATE-----
Binary file installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/sucert/sucert.der has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/sucert/sucert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDVDCCAr2gAwIBAgIJAPWY1VSGSv5IMA0GCSqGSIb3DQEBBAUAMHAxCzAJBgNV
+BAYTAklOMQswCQYDVQQIEwJLQTELMAkGA1UEBxMCQkExDDAKBgNVBAoTA1NZTTEM
+MAoGA1UECxMDU0VDMQ8wDQYDVQQDEwZTVUNFUlQxGjAYBgkqhkiG9w0BCQEWC3N5
+bUBzeW0uY29tMB4XDTA4MDExMDA4NDAzMFoXDTIzMDEwNjA4NDAzMFowcDELMAkG
+A1UEBhMCSU4xCzAJBgNVBAgTAktBMQswCQYDVQQHEwJCQTEMMAoGA1UEChMDU1lN
+MQwwCgYDVQQLEwNTRUMxDzANBgNVBAMTBlNVQ0VSVDEaMBgGCSqGSIb3DQEJARYL
+c3ltQHN5bS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAO2ZgAHDBq4t
+I0loXtpX1ludH+x8VLlCgeH2lAD7eWrWR8wuKWVchaCZWBeUm9z8wHgLVnRaayuk
+i8XTXXfGGfj3DpN1lPzpAcPC8uCA+EN4VjGGvZNRdkO/L3I5XTpVbrESpQS8IRel
+6NRE/DDgYDvc6SO2uobUYO+vX/ydFa4RAgMBAAGjgfUwgfIwDAYDVR0TBAUwAwEB
+/zAdBgNVHQ4EFgQUVF6Xb/Cc2Rre1AJzW7/bxsC6uCswgaIGA1UdIwSBmjCBl4AU
+VF6Xb/Cc2Rre1AJzW7/bxsC6uCuhdKRyMHAxCzAJBgNVBAYTAklOMQswCQYDVQQI
+EwJLQTELMAkGA1UEBxMCQkExDDAKBgNVBAoTA1NZTTEMMAoGA1UECxMDU0VDMQ8w
+DQYDVQQDEwZTVUNFUlQxGjAYBgkqhkiG9w0BCQEWC3N5bUBzeW0uY29tggkA9ZjV
+VIZK/kgwCwYDVR0PBAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIBBjANBgkqhkiG9w0B
+AQQFAAOBgQAcF3d/fTshZHNEerqY7l+fb+auEI+VYQN4FEyZIPrGTxGWYT5RBhkJ
+muSlJP7R5jDZJS5pnWtF8Mj7tFNdDwKYOplUEWOFrK+Tl2hG7SsSga1nxVQjCCPq
+LVaMTLDox9y5tHU2XuzDKrreOr3BOuhIwNWkp8PF3+tqMxKye6A/Vg==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/sucert/sucertkey.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXgIBAAKBgQDtmYABwwauLSNJaF7aV9ZbnR/sfFS5QoHh9pQA+3lq1kfMLill
+XIWgmVgXlJvc/MB4C1Z0WmsrpIvF0113xhn49w6TdZT86QHDwvLggPhDeFYxhr2T
+UXZDvy9yOV06VW6xEqUEvCEXpejURPww4GA73OkjtrqG1GDvr1/8nRWuEQIDAQAB
+AoGBAIWTQm+7IMpS/f+K+ahusUgX8ZaV31u3lCVg5pwWxI/Xn82eNg+SEF3VV70K
+AwYd4maamSQYoR+MBjhVN7raWEaV7I7PjzDuPSfrJCmdzjWIHfVL6NdhnI5L5Fub
+NIwZzbd+7EWWExVAP1EGWmeQJMPkFMLS9NKEZeUY8KwCKCNBAkEA+Qk0II37Gy/O
+9aW6vAP0L6IaPhfMRAFwK5Z8VyclVuStP+0TS1SO25tltb9PLPgT6K4HpDw0ntKV
+pm75c6tyJQJBAPQ+bQ+dXO1EZGp/R9Roi0XJ7SMHazU6dkz1GOfaJedgAspTopqR
+JUvliIjEG74Mmy1lch7ydQ2PLNL0l05Lin0CQQCYQ15RwT2Uw8hgPTJNHoXAUfaF
+nHtR4Sc6H0pq5w5XcH3VJhiz6EFoWDz5wLyiHBPgIfeeHQl3Sf4hwpxWcq7ZAkEA
+htbz9NvmkqLgYR8Vs8Fnqka5YU5WNJOq/f+OGWoI5PzPbY3Qxk59bbIxt3e07S4e
+eWh5IXavgqXZlDkuUy5HLQJAfzaXfg+jA3ywW0yAo7IXu438zDo8yy8Gxupj5HUR
+Oo8E/ifXUc9FPT97t9cY1veuYEfx8rWTrsF5Pddr4M67/w==
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/symbiantestallcapabilitiesca/cakey.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQDLWzf2YjOQzJuBFYNuE78MTv2Td6y2aSCkPNOCywQajmShZp01
+PuNXcJa/xTscVzuTLaJqEEAQdJbJcsvmCEJG9LahlHeFpfPmdhl93UqhSrP/nR0/
+d1CpwaGCdhoyuRTXOlnAfC3sWQWQLDNwwUYycdyj0a/KB5pbIsdngaWZgQIDAQAB
+AoGBAJJ4bWKFcObGuOrM+BF9H4paCsMA2+G27s/dD+uRFq+aCFlIc8s6NL1yVuJh
+ySWsnzhvEiCa+8necA1BJiPVpwXymHjlpxHOxOY+/Nw2TuhDbKXTkH74kTJujH1P
+l+s2D2y5QFLGPhMZS3wZaxqrM9a32L6UTG6cKhpU3QEREW8BAkEA+WdefX+PPAIO
+4GDQJJcEnSZCWjhDLvZa4qarKWKc8bZorDr5GnQjcKy7Q0ymhLOqz1G6j05N5Wn7
+edPd808QyQJBANC8E8mL01N/1um4ypl35hMdn2kVWOgDTXZcKCvHxkujkwR+YU1J
+RvgwzOZuzhtu9uaCi9JR2aCiUFmqrndlFvkCQQChwSomiPnT+J2/Zur4ID4s0iiM
+rRrdtYfioig2si+KET04HxN61cI6jLzzfB4vyPtKdP5jfWzGEwO30vKLoEcJAkAZ
+WJ02fgodO4rHOq8vT4XakGBJDFSNZ8lCNBKUrl9/088IXqhGED3T6WkYGiBg6GqG
+txdvZIz+mncTTEx/JwFRAkAneOBAM/ptTvQB5u0G3S8NEKsVvxgTalLQfNKs5Z/L
+AOLAfb/d6op0zJdqrf+1FVPOKqTgDbHNiRpONIbvqn66
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/symbiantestallcapabilitiesca/careq.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,12 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIIByzCCATQCAQAwgYoxCzAJBgNVBAYTAlVLMQ8wDQYDVQQHEwZMb25kb24xKDAm
+BgNVBAMTH1Jvb3QgY2VydCB3aXRoIGFsbCBjYXBhYmlsaXRpZXMxFDASBgNVBAoT
+C1N5bWJpYW4gTHRkMSowKAYJKoZIhvcNAQkBFhtjaHJpc3RpYW4uY3Jvc2FAc3lt
+Ymlhbi5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMtbN/ZiM5DMm4EV
+g24TvwxO/ZN3rLZpIKQ804LLBBqOZKFmnTU+41dwlr/FOxxXO5MtomoQQBB0lsly
+y+YIQkb0tqGUd4Wl8+Z2GX3dSqFKs/+dHT93UKnBoYJ2GjK5FNc6WcB8LexZBZAs
+M3DBRjJx3KPRr8oHmlsix2eBpZmBAgMBAAGgADANBgkqhkiG9w0BAQUFAAOBgQA7
+xIZyaaK+RFifvievrhtLByMcWrYoOebiYgXhFp6cam2aGs2bwFkg8UNbLO7dinHS
+fy8Yibs8Vwy6CGRKGja4+uv9LDzQWUrO98ZlOD+Z/gXwbijahNA6tELYQtfMjqYW
+Fg7QB3TZQRSh0TccnJRuUwrahLRysXoO8YeRxPkHtg==
+-----END CERTIFICATE REQUEST-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/symbiantestallcapabilitiesca/symbiantestallcapabilitiesca.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,18 @@
+-----BEGIN CERTIFICATE-----
+MIIC2TCCAkKgAwIBAgIJANL91xYnWbu9MA0GCSqGSIb3DQEBBQUAMIGKMQswCQYD
+VQQGEwJVSzEPMA0GA1UEBxMGTG9uZG9uMSgwJgYDVQQDEx9Sb290IGNlcnQgd2l0
+aCBhbGwgY2FwYWJpbGl0aWVzMRQwEgYDVQQKEwtTeW1iaWFuIEx0ZDEqMCgGCSqG
+SIb3DQEJARYbY2hyaXN0aWFuLmNyb3NhQHN5bWJpYW4uY29tMB4XDTA3MDcyMzE0
+MzMxMVoXDTE3MDcyMDE0MzMxMVowgYoxCzAJBgNVBAYTAlVLMQ8wDQYDVQQHEwZM
+b25kb24xKDAmBgNVBAMTH1Jvb3QgY2VydCB3aXRoIGFsbCBjYXBhYmlsaXRpZXMx
+FDASBgNVBAoTC1N5bWJpYW4gTHRkMSowKAYJKoZIhvcNAQkBFhtjaHJpc3RpYW4u
+Y3Jvc2FAc3ltYmlhbi5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMtb
+N/ZiM5DMm4EVg24TvwxO/ZN3rLZpIKQ804LLBBqOZKFmnTU+41dwlr/FOxxXO5Mt
+omoQQBB0lslyy+YIQkb0tqGUd4Wl8+Z2GX3dSqFKs/+dHT93UKnBoYJ2GjK5FNc6
+WcB8LexZBZAsM3DBRjJx3KPRr8oHmlsix2eBpZmBAgMBAAGjRTBDMB0GA1UdDgQW
+BBTLC1jGC4eKo2YSR9lt6h1G+um+2DASBgNVHRMBAf8ECDAGAQH/AgEFMA4GA1Ud
+DwEB/wQEAwICBDANBgkqhkiG9w0BAQUFAAOBgQCa0t9SRxzvz+bruRQuFfhA5Dz9
+udxP4gc3IvXANg0P3oBkS6KUoPDNdxze97kEPUjUtiyN0uoo/n+BD6ILWUKsSI3R
+Ed05ulO3LecKe6hyG+CwvOpcfdjnJEq34oKiffaWbmLOHJ93sGZJT0CP0gUROlj9
+v83hwyVk9lbRuriSDA==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/symbiantestrootcanotinstore/cacert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,18 @@
+-----BEGIN CERTIFICATE-----
+MIIC1zCCAkCgAwIBAgIBADANBgkqhkiG9w0BAQQFADCBjTELMAkGA1UEBhMCVUsx
+EjAQBgNVBAcTCUNhbWJyaWRnZTEmMCQGA1UEAxMdVGVzdCByb290IG5vdCBpbiBz
+d2ljZXJ0c3RvcmUxHTAbBgNVBAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMSMwIQYJ
+KoZIhvcNAQkBFhRub3QucmVhbEBzeW1iaWFuLmNvbTAeFw0wNTEyMDkxNTEyNTVa
+Fw0zMzA0MjUxNTEyNTVaMIGNMQswCQYDVQQGEwJVSzESMBAGA1UEBxMJQ2FtYnJp
+ZGdlMSYwJAYDVQQDEx1UZXN0IHJvb3Qgbm90IGluIHN3aWNlcnRzdG9yZTEdMBsG
+A1UEChMUU3ltYmlhbiBTb2Z0d2FyZSBMdGQxIzAhBgkqhkiG9w0BCQEWFG5vdC5y
+ZWFsQHN5bWJpYW4uY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDI0qkA
+hKsNL2fBg0jVGzFmasgmt1clfTaQ8rzniARm8UH5iGv1WsRuqnUooTPQAMp8K1Kl
+u8EuTBEDEo/+qZ5B/EHrVEGKA+v0S0Z4sWjtmtQVJPur5oSWJYvFDHEflMQwoDXB
+QLBxREX+g16Z1IF5FXlbsVROCBKWuAo6GoJugQIDAQABo0UwQzAdBgNVHQ4EFgQU
+HqVcIyGInLMrO8lDZCNG1P5XAuMwEgYDVR0TAQH/BAgwBgEB/wIBBTAOBgNVHQ8B
+Af8EBAMCAgQwDQYJKoZIhvcNAQEEBQADgYEAERyKfJEfX9JLZ2eGUv/Aikxa+lI4
++p8IjAszV2lF3pUIgXWxqacJd9O6CA63E/UvSm6yDrpK2jM2ZaurP+Y9zRwOFfTt
+0a8jk14mvEIVVHR2d0xIl551RDvVj9lENzm6nob9A7cmAh2ZBlLaqgnFqKwOhVg3
+mLbciA5vxvCW5zk=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/symbiantestrootcanotinstore/cakey.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQDI0qkAhKsNL2fBg0jVGzFmasgmt1clfTaQ8rzniARm8UH5iGv1
+WsRuqnUooTPQAMp8K1Klu8EuTBEDEo/+qZ5B/EHrVEGKA+v0S0Z4sWjtmtQVJPur
+5oSWJYvFDHEflMQwoDXBQLBxREX+g16Z1IF5FXlbsVROCBKWuAo6GoJugQIDAQAB
+AoGBAIeofo+iDyZ+AnnfZKDImMtVkNVOfmkNt4Gc5+0Dne2oRef5tuvsH8ueDDyh
+AK4fCqlsXo0kUvAiZE+OB4WBMSyxh3juvcwpdzr0zGec4QpdBdomouIGXWsyql06
+od/t0/askIv23jWz2dFeR2h/9yC4aIvs/FKz02xWbFjNKcJBAkEA5uchlyTNJv7A
+qS1BfIdYvAX/TV19/KjPd9EoPKI3nMX3jIqHt5Z7omv0ta36iCP/x4qWfKDZlICl
+FUgyGyOqeQJBAN6mjek6oN45smMLFiJp5fnrEQi8HKO5l5LHaPQmq7FmbXypYIZm
+YmbmtmC5e4CGqjXUVJxFZyOdI1OFcLGY4kkCQCnbLBOh8C5pb7M7KOvR/RvYWndD
+w1rRnwoxOAIFxd79Y+puEjwNY0wGFc35Q7j6DZu2W6Er50UsLMC23Z5d0MECQQC3
+VjRywWkntCDU95MRYVwSz+Jl6+g1VSSfo34j1Rf56xrq1Nn7saEDlKTGvtUYf0r3
+KlFFoMyOAd3N74pdY0OpAkAJfkwGA2XwPkq1CO5GdKkxyEiExY/o4YIs4cSWBhGB
+YRKn7QMkJjtPiblMAZRxFYQ3bmqdBuiqfIjLPlOCNyud
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/symbiantestrootcanotinstore/careq.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,12 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIIBzjCCATcCAQAwgY0xCzAJBgNVBAYTAlVLMRIwEAYDVQQHEwlDYW1icmlkZ2Ux
+JjAkBgNVBAMTHVRlc3Qgcm9vdCBub3QgaW4gc3dpY2VydHN0b3JlMR0wGwYDVQQK
+ExRTeW1iaWFuIFNvZnR3YXJlIEx0ZDEjMCEGCSqGSIb3DQEJARYUbm90LnJlYWxA
+c3ltYmlhbi5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMjSqQCEqw0v
+Z8GDSNUbMWZqyCa3VyV9NpDyvOeIBGbxQfmIa/VaxG6qdSihM9AAynwrUqW7wS5M
+EQMSj/6pnkH8QetUQYoD6/RLRnixaO2a1BUk+6vmhJYli8UMcR+UxDCgNcFAsHFE
+Rf6DXpnUgXkVeVuxVE4IEpa4Cjoagm6BAgMBAAGgADANBgkqhkiG9w0BAQQFAAOB
+gQANkbvWhda5zNzLZjHG3bLky3lfNcdyg21zcNiTlePE/0yC8vU/YoYYDOZ34eKP
++FjyxaZqZnJ21FVonkczmg0PufdKId6w4Pz1tlOo09u28jLXALzqFNoYn3yHrvGD
+sQaWQaSHmi618dJXvcvrYUiKCfrn+dGsKD0cPJeE8mWqBw==
+-----END CERTIFICATE REQUEST-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/symbiantestrootcanotinstore/cert_chain_rsa_len1/chain_rsa_len1.cert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,34 @@
+-----BEGIN CERTIFICATE-----
+MIICmzCCAgSgAwIBAgIBBDANBgkqhkiG9w0BAQQFADCBjTELMAkGA1UEBhMCVUsx
+EjAQBgNVBAcTCUNhbWJyaWRnZTEmMCQGA1UEAxMdVGVzdCByb290IG5vdCBpbiBz
+d2ljZXJ0c3RvcmUxHTAbBgNVBAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMSMwIQYJ
+KoZIhvcNAQkBFhRub3QucmVhbEBzeW1iaWFuLmNvbTAeFw0wNTEyMDkxNTMxMzFa
+Fw0zMzA0MjQxNTMxMzFaMIGVMQswCQYDVQQGEwJVSzESMBAGA1UEBxMJQ2FtYnJp
+ZGdlMS0wKwYDVQQDEyRjaGFpbjEgZm9yIHRlc3Rpbmcgcm9vdCBub3QgaW4gc3Rv
+cmUxHTAbBgNVBAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMSQwIgYJKoZIhvcNAQkB
+FhVsZXNzLnJlYWxAc3ltYmlhbi5jb20wXDANBgkqhkiG9w0BAQEFAANLADBIAkEA
+nFzE917T3ygNpx0WVQ8o93I9xWpG7v9UaRd7+yfRlsQRQSbnmjzQeRdUKhoY67M7
+bRIGlM5ZVRHOfb4cT2mKCQIDAQABo0UwQzAdBgNVHQ4EFgQUtPI5rfnOWmy5h3wq
+7i9zrUg2sdUwEgYDVR0TAQH/BAgwBgEB/wIBBTAOBgNVHQ8BAf8EBAMCAgQwDQYJ
+KoZIhvcNAQEEBQADgYEAORgndhsUAr7+5qm3eR6gxUZ1Mtflw9m+sqf5j1+45mw3
+gSrlG5f6+SMqphrBBDzyAi0k2eJlY1OM4oO0pXtbrSOvzODTIECGnnzXrIDGRsup
+yQrAYENOivul4Kgwwqo7n0Bud92ceOs4nR6FKFhPH9xtf5zlOLy419NoZlQjt00=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIC1zCCAkCgAwIBAgIBADANBgkqhkiG9w0BAQQFADCBjTELMAkGA1UEBhMCVUsx
+EjAQBgNVBAcTCUNhbWJyaWRnZTEmMCQGA1UEAxMdVGVzdCByb290IG5vdCBpbiBz
+d2ljZXJ0c3RvcmUxHTAbBgNVBAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMSMwIQYJ
+KoZIhvcNAQkBFhRub3QucmVhbEBzeW1iaWFuLmNvbTAeFw0wNTEyMDkxNTEyNTVa
+Fw0zMzA0MjUxNTEyNTVaMIGNMQswCQYDVQQGEwJVSzESMBAGA1UEBxMJQ2FtYnJp
+ZGdlMSYwJAYDVQQDEx1UZXN0IHJvb3Qgbm90IGluIHN3aWNlcnRzdG9yZTEdMBsG
+A1UEChMUU3ltYmlhbiBTb2Z0d2FyZSBMdGQxIzAhBgkqhkiG9w0BCQEWFG5vdC5y
+ZWFsQHN5bWJpYW4uY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDI0qkA
+hKsNL2fBg0jVGzFmasgmt1clfTaQ8rzniARm8UH5iGv1WsRuqnUooTPQAMp8K1Kl
+u8EuTBEDEo/+qZ5B/EHrVEGKA+v0S0Z4sWjtmtQVJPur5oSWJYvFDHEflMQwoDXB
+QLBxREX+g16Z1IF5FXlbsVROCBKWuAo6GoJugQIDAQABo0UwQzAdBgNVHQ4EFgQU
+HqVcIyGInLMrO8lDZCNG1P5XAuMwEgYDVR0TAQH/BAgwBgEB/wIBBTAOBgNVHQ8B
+Af8EBAMCAgQwDQYJKoZIhvcNAQEEBQADgYEAERyKfJEfX9JLZ2eGUv/Aikxa+lI4
++p8IjAszV2lF3pUIgXWxqacJd9O6CA63E/UvSm6yDrpK2jM2ZaurP+Y9zRwOFfTt
+0a8jk14mvEIVVHR2d0xIl551RDvVj9lENzm6nob9A7cmAh2ZBlLaqgnFqKwOhVg3
+mLbciA5vxvCW5zk=
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/symbiantestrootcanotinstore/cert_chain_rsa_len1/first.rsa.cer	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,34 @@
+-----BEGIN CERTIFICATE-----
+MIICmzCCAgSgAwIBAgIBBDANBgkqhkiG9w0BAQQFADCBjTELMAkGA1UEBhMCVUsx
+EjAQBgNVBAcTCUNhbWJyaWRnZTEmMCQGA1UEAxMdVGVzdCByb290IG5vdCBpbiBz
+d2ljZXJ0c3RvcmUxHTAbBgNVBAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMSMwIQYJ
+KoZIhvcNAQkBFhRub3QucmVhbEBzeW1iaWFuLmNvbTAeFw0wNTEyMDkxNTMxMzFa
+Fw0zMzA0MjQxNTMxMzFaMIGVMQswCQYDVQQGEwJVSzESMBAGA1UEBxMJQ2FtYnJp
+ZGdlMS0wKwYDVQQDEyRjaGFpbjEgZm9yIHRlc3Rpbmcgcm9vdCBub3QgaW4gc3Rv
+cmUxHTAbBgNVBAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMSQwIgYJKoZIhvcNAQkB
+FhVsZXNzLnJlYWxAc3ltYmlhbi5jb20wXDANBgkqhkiG9w0BAQEFAANLADBIAkEA
+nFzE917T3ygNpx0WVQ8o93I9xWpG7v9UaRd7+yfRlsQRQSbnmjzQeRdUKhoY67M7
+bRIGlM5ZVRHOfb4cT2mKCQIDAQABo0UwQzAdBgNVHQ4EFgQUtPI5rfnOWmy5h3wq
+7i9zrUg2sdUwEgYDVR0TAQH/BAgwBgEB/wIBBTAOBgNVHQ8BAf8EBAMCAgQwDQYJ
+KoZIhvcNAQEEBQADgYEAORgndhsUAr7+5qm3eR6gxUZ1Mtflw9m+sqf5j1+45mw3
+gSrlG5f6+SMqphrBBDzyAi0k2eJlY1OM4oO0pXtbrSOvzODTIECGnnzXrIDGRsup
+yQrAYENOivul4Kgwwqo7n0Bud92ceOs4nR6FKFhPH9xtf5zlOLy419NoZlQjt00=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIC1zCCAkCgAwIBAgIBADANBgkqhkiG9w0BAQQFADCBjTELMAkGA1UEBhMCVUsx
+EjAQBgNVBAcTCUNhbWJyaWRnZTEmMCQGA1UEAxMdVGVzdCByb290IG5vdCBpbiBz
+d2ljZXJ0c3RvcmUxHTAbBgNVBAoTFFN5bWJpYW4gU29mdHdhcmUgTHRkMSMwIQYJ
+KoZIhvcNAQkBFhRub3QucmVhbEBzeW1iaWFuLmNvbTAeFw0wNTEyMDkxNTEyNTVa
+Fw0zMzA0MjUxNTEyNTVaMIGNMQswCQYDVQQGEwJVSzESMBAGA1UEBxMJQ2FtYnJp
+ZGdlMSYwJAYDVQQDEx1UZXN0IHJvb3Qgbm90IGluIHN3aWNlcnRzdG9yZTEdMBsG
+A1UEChMUU3ltYmlhbiBTb2Z0d2FyZSBMdGQxIzAhBgkqhkiG9w0BCQEWFG5vdC5y
+ZWFsQHN5bWJpYW4uY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDI0qkA
+hKsNL2fBg0jVGzFmasgmt1clfTaQ8rzniARm8UH5iGv1WsRuqnUooTPQAMp8K1Kl
+u8EuTBEDEo/+qZ5B/EHrVEGKA+v0S0Z4sWjtmtQVJPur5oSWJYvFDHEflMQwoDXB
+QLBxREX+g16Z1IF5FXlbsVROCBKWuAo6GoJugQIDAQABo0UwQzAdBgNVHQ4EFgQU
+HqVcIyGInLMrO8lDZCNG1P5XAuMwEgYDVR0TAQH/BAgwBgEB/wIBBTAOBgNVHQ8B
+Af8EBAMCAgQwDQYJKoZIhvcNAQEEBQADgYEAERyKfJEfX9JLZ2eGUv/Aikxa+lI4
++p8IjAszV2lF3pUIgXWxqacJd9O6CA63E/UvSm6yDrpK2jM2ZaurP+Y9zRwOFfTt
+0a8jk14mvEIVVHR2d0xIl551RDvVj9lENzm6nob9A7cmAh2ZBlLaqgnFqKwOhVg3
+mLbciA5vxvCW5zk=
+-----END CERTIFICATE-----
Binary file installationservices/switestfw/testcertificates/swi/test/writableswicertstore/certs/capabilities/cacert.der has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/writableswicertstore/certs/capabilities/cakey.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQDF/Y9Pz2WIOdymUkIGZHIduTaIbT+7Aej/rfe07CSbSVrqTovW
+O4tp+iqxjwPq4zz3w+CgWSwna9bRf7kMnA+THkDprUEd3GPv4L2S72Y1l7zDo3OR
+grQJU//ubBMlpCgtn5+yDYNSJ48TozENexuPYFmnaLMZSaOzpnsfn+WghwIDAQAB
+AoGAe41EnlhdEsqQ4BWa8CREdjn7Rt1uFMQXY15rorJuEZ2QJ4FGkDTuRf8AH3eQ
+yUZu6GqKxWWAQUVxc6DRmIXWzSzrbE/KiZRy+8vWqL1xAJ1GV+VkW+E+W2SIWANW
+1qI2fpCrBVo8CMtNTnclYP11UQMZSe36XqeKUP7oIzkgbLkCQQD06u2wKOB5HG0A
+xy8bucffK3hboYaEt6SKzDm6rgZV7PsFz94WsJHe1FvgO7oEX0gsUplEBc28drf+
+jhe0jAr9AkEAzvMJdUFk/7KZcrxAz1Mg3qn2Uf2juSjqGRH5vRbDshPoSRcbMnZq
+R+1w5+9Vr98VwX5GpBiWYskjfA0kWux60wJBAPOdCrgCsOVG5RW1CqKldK4Da0CZ
+tlgk4sI8yd9qYlrt0fLCBMLE9xOSX6D3R9w5emy77D/BFhe0bugBJossEXECQCeB
+r/mJbV1+29pSY9DwXqMDMTm/wOSVEfONQe6+DMfPExX46kE859cpVdeBEguL+9w/
+Xf7vjq33FeYVoC4XXO8CQEAjKeA9JYRCAntochSHKc3RIgpueTjXCMIPv5V66xIK
+h+FZIZqL+tA9cKuaxZfjg6xTBophmxNSm3e4RDtIdp0=
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/writableswicertstore/certs/capabilities/careq.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,12 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIIBxDCCAS0CAQAwgYMxCzAJBgNVBAYTAlVLMQ8wDQYDVQQHEwZMb25kb24xGDAW
+BgNVBAMTD0phc29uIFNpYnRob3JwZTEdMBsGA1UEChMUU3ltYmlhbiBTb2Z0d2Fy
+ZSBMdGQxKjAoBgkqhkiG9w0BCQEWG0phc29uLlNpYnRob3JwZUBzeW1iaWFuLmNv
+bTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAvLpG6gHEWU8tv1+Xj+Vb7JrD
+gceSxghPFurQ54VROC1rZ8nqtYnink2Wj0FXL/dU1uK2d7ytFvzUA+pkoqUOi+si
+AFUY0s+vYz8AwCBv9ZAEGMJFn42j9mBMq3bu3LvseRYcCmn30uHcnKJ0f+vW79cY
+7AYWD1PZdkcAVyNCUBcCAwEAAaAAMA0GCSqGSIb3DQEBBAUAA4GBAJOjWwxAGApe
+Vv2SR/sAUK0UdDm4BXMMC8My8pE3wTfGSdX6Fk+Q8aunrTp/UOiFmHblB+gaGK4M
+qPRmsbvNXWXX7vybhS2RPrBYCKwNWN9PYPUJmznT+f9xuoinG5A+vzBegZ83SFjs
+kJt16wuygZw+4PSCTm3Fv2QMN/5UjxBk
+-----END CERTIFICATE REQUEST-----
Binary file installationservices/switestfw/testcertificates/swi/test/writableswicertstore/certs/chain/cacert.der has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/writableswicertstore/certs/chain/cacert.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,22 @@
+-----BEGIN CERTIFICATE-----
+MIIDkDCCAvmgAwIBAgIJAOhKfiKE61ruMA0GCSqGSIb3DQEBBAUAMIGFMQswCQYD
+VQQGEwJVSzEPMA0GA1UEBxMGTG9uZG9uMScwJQYDVQQDEx5SU0EgVGVzdFJvb3RS
+U0EgQ2hhaW4gQ2VydCBPbmUxFDASBgNVBAoTC1N5bWJpYW4gTHRkMSYwJAYJKoZI
+hvcNAQkBFhdqb2hhbi5ncm90aEBzeW1iaWFuLmNvbTAeFw0wNTA2MjEwOTIwNTJa
+Fw0xNTA2MTkwOTIwNTJaMIGFMQswCQYDVQQGEwJVSzEPMA0GA1UEBxMGTG9uZG9u
+MScwJQYDVQQDEx5SU0EgVGVzdFJvb3RSU0EgQ2hhaW4gQ2VydCBPbmUxFDASBgNV
+BAoTC1N5bWJpYW4gTHRkMSYwJAYJKoZIhvcNAQkBFhdqb2hhbi5ncm90aEBzeW1i
+aWFuLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAv+WsyWNv0YYuHcPI
+4UwzOPXynkgBAL7jM8S9PB6jT2cZNA54RKKHECPRkjXAc2eI+fcFc7ttQ2ZIXgQs
+ROxfa8pWg5cMccu2zY+jZ4d0LRxUJT/0O4uGKjZL6kafxRKjm89aWAmM7lvMdkbL
+Nzt8Z6DRlgIocS6zZCjTHrwX+KECAwEAAaOCAQQwggEAMB0GA1UdDgQWBBT7vaDB
+/w75VJNe6L3PZxY2qxS55zCBugYDVR0jBIGyMIGvgBT7vaDB/w75VJNe6L3PZxY2
+qxS556GBi6SBiDCBhTELMAkGA1UEBhMCVUsxDzANBgNVBAcTBkxvbmRvbjEnMCUG
+A1UEAxMeUlNBIFRlc3RSb290UlNBIENoYWluIENlcnQgT25lMRQwEgYDVQQKEwtT
+eW1iaWFuIEx0ZDEmMCQGCSqGSIb3DQEJARYXam9oYW4uZ3JvdGhAc3ltYmlhbi5j
+b22CCQDoSn4ihOta7jASBgNVHRMBAf8ECDAGAQH/AgEFMA4GA1UdDwEB/wQEAwIC
+BDANBgkqhkiG9w0BAQQFAAOBgQCAyRYXvuGjsebj3LbCPgl0HUl1AapwboHgSsfV
+YyF24i5Gu7LNoUkuRxtq5lB6wIPDXuTRHC7SAcNOpMj5yxT73MlLVKyzsOXVwwwb
+Xdh8ZHazS5TKIWYc7rPIhRq8xIAG99fOwAk0L94FJYY6QajU8qvHOmFjfTHP4Us7
+Qy8lGA==
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/writableswicertstore/certs/chain/cakey.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQC/5azJY2/Rhi4dw8jhTDM49fKeSAEAvuMzxL08HqNPZxk0DnhE
+oocQI9GSNcBzZ4j59wVzu21DZkheBCxE7F9rylaDlwxxy7bNj6Nnh3QtHFQlP/Q7
+i4YqNkvqRp/FEqObz1pYCYzuW8x2Rss3O3xnoNGWAihxLrNkKNMevBf4oQIDAQAB
+AoGAF6cpqxEUoVDWsliFlC+eSLEYHKZnaT4eJy1i3dww6QKeOqpl7J/T4gtoM4to
+k1D5s0XdaCx8BUjANsZw5nX0NNA6erAJhay1SYuLEJThqJlCd/yQ8eQqnYGV3bdg
+RQ91Xz5P4uB94J9vvzJsnu5AMLpkVv1ifIKve1thX5y7qhkCQQDyUTh9SR2eSzyq
+9Z7uiZpng28ze9OjJy9xYy4sxrW9UN6nv3FWWrWsez8ma3i+bqY7V8ct+ScTtSDS
+x4/magfzAkEAyrudSm8KNAt4hzwCRtQ3N4nfuKZX5nQYnaHVGPYC+39GMlgfScSZ
+PMYyz6GOGbLVqQHYaIPoZYfdM0nk96zWGwJBAOXlzTSAhAtE0oBYnLsv7kA7YOt1
+let7J/Xp5UsyFAdTjIuWhI8rbKYCIH3xBROXozs2IpEpi7uU41lXYN14x6UCQDKG
+UWv0gnl4BmDFrteSGfTIcq4lHrD7bAsVAvPGk/WzwX3YgmuzCHGh/5XJcI2tCRym
+rhVWEnwDQTiACQVE2NMCQBauqmdE6DPnSsUruFwdr8fRCcQuWm4B3mqa3ysoXZQV
+6IIGkhzYzc0nXupoTc0XfRGCVZ7XqMwSjQdvQkUmmsA=
+-----END RSA PRIVATE KEY-----
Binary file installationservices/switestfw/testcertificates/swi/test/writableswicertstore/certs/chain/intermediate/cacert.der has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/writableswicertstore/certs/chain/intermediate/cakey.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOwIBAAJBAOW2tCnwU6kxU4ZvQnARNreGR69vWwd8ttICH1+ieiHei7aKivyx
+Qp4axUBpBC4aKRdOk1UZp7kgwdUaIFwLtEECAwEAAQJAKArRHP5nlvaiOKzsR9y4
+TQV7OXmPxJ5YwALetSz9XSm5Y/eHmVmYNgtiU9obWmn6benmOwAr5Hqp9hWzcffO
+AQIhAPWlBIi1025lBUa+o2/rx9Kcz7d93aZwpoTrhQfMHlj9AiEA72XCs7xxJ8WN
+aymmZ1b/Z97KayX4ccLz0bDwq2SmXZUCIDBd1Y61fnP2IBvV3Yhj/GxTw/J1Lfdf
+pun1FbR7VF5hAiEA4i9jJi6FOu6MDxPrBPhNl/YHifT2J4Xql9R1j3opNYECIQDE
+1KASCjYFzWT85Kpl868gz8+KEujnbag6VtmWOmfiMg==
+-----END RSA PRIVATE KEY-----
Binary file installationservices/switestfw/testcertificates/swi/test/writableswicertstore/certs/expired/cacert.der has changed
Binary file installationservices/switestfw/testcertificates/swi/test/writableswicertstore/certs/mandatory/cacert.der has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/writableswicertstore/certs/mandatory/cakey.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQDTedZXXNJFzLYNonyhN2lKHGgzPZGmBdjSPj9hrfOvYZP77eZu
+NTspOrZXftfEzoqeAewkBzVCa41Ij2uD0lvFWwfKRBr5wwjq60qKUpLx6DvLCrQ9
+IUuLNQ9f/CR1jRq4r/9UbwZfbGp8q0w1fabtDexA6TZ7rHdesAAoUqw1sQIDAQAB
+AoGBAK5Jb3k4qqOT/0Zlb8l+XWwS1V3FlE/76aH8Y0ghkQAtr0Sl4I9bl5J3LOgX
+RcSRZHSsqO1Yc3B2K05txPIzYCVaI9GejIUMR3QS53uKQwuKFhneeDSIT1hdFNiC
+z9I0+XO8/K6sIjhkRxJDQhYv7+8ggEwn/B3MzuNp+QxFKkZxAkEA+0uUdNIjWME1
+3LyDoxyMkiQZHyKNwRNsFZm49+MSzKCK/BNzxlD7YBzO+i5XbS+xnU7ShNNQpSKT
+oxocSYmu3wJBANdvaNEEwjOLN7p0tGCQGGpQUzMXMoLWpsVOE/SJeyXjpIZS2BrR
+KbM83nYw87l97db0/6I/nKm6hlb8uuG5/W8CQQDvlMU7A0VzzvEdPBV8ozFZ+1SA
+HJ9tXqkDhwWUQEeiE8WuQpV0k6y1m4GxgBEWJgx+X7HRtO4EIo0DSVeCvOOdAkB3
+hGE8BE3Q1p1WHcSsBYTmBiYCJA5rs7XVpBlCAruFK6Nsua0WQ4/E1jH8k+/CqnA2
+XrkrQ+sf5lD9FTyAWfSVAkB3k3K08mFredhr9pqLKQeN2b5LHg55a4Hl0y7m7ZKS
+D7kTvXhpi03W4EUsS1GEZ5QzKlxctsQH2bEjmKmC1Si4
+-----END RSA PRIVATE KEY-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/swi/test/writableswicertstore/certs/mandatory/careq.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,12 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIIBxDCCAS0CAQAwgYMxCzAJBgNVBAYTAlVLMQ8wDQYDVQQHEwZMb25kb24xGDAW
+BgNVBAMTD0phc29uIFNpYnRob3JwZTEdMBsGA1UEChMUU3ltYmlhbiBTb2Z0d2Fy
+ZSBMdGQxKjAoBgkqhkiG9w0BCQEWG0phc29uLlNpYnRob3JwZUBzeW1iaWFuLmNv
+bTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAnysSqHZjRmkZcpnDXSA285Lx
+RBX01C8dyoygbB9Ipzqjr+55YJZxBH/34VWMS4CdX280WwkXYaxpjaPiGhwFVPms
+i5CWvhNsgQERogxYrvLeE1j/OfJzvnpMN14zp+p1ROxo30WmfkEQIlUkiVJz+3wg
+jAgjgwdeDXAJNmstC1UCAwEAAaAAMA0GCSqGSIb3DQEBBAUAA4GBAFKD99j8x7Ze
+nzr+ms6k42hQzU7Gp4YEOJVgHsmLatz5fRahiKIX9NwNSWMMsRKjdi993rGQxNaX
+xZNMJzr/847w9KbjXd5bxi5o1qC9t7261O5OLMTAropU4YU1RzsenvvR51ymMFSu
+MYUZqyXjF3xahMqtpccn17uLF3HnI4qS
+-----END CERTIFICATE REQUEST-----
Binary file installationservices/switestfw/testcertificates/swi/test/writableswicertstore/certs/renewed/cacert.der has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/usif/root5ca.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICITCCAYqgAwIBAgIBADANBgkqhkiG9w0BAQQFADAzMR0wGwYDVQQKExRTeW1i
+aWFuIFNvZnR3YXJlIEx0ZDESMBAGA1UEAxMJUm9vdDUtUlNBMB4XDTA0MDMwMzE2
+MzQ0MloXDTE0MDMwMTE2MzQ0MlowMzEdMBsGA1UEChMUU3ltYmlhbiBTb2Z0d2Fy
+ZSBMdGQxEjAQBgNVBAMTCVJvb3Q1LVJTQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAw
+gYkCgYEAufV5zRvgR/ohzfb8AizbLePxK7QfBOuTtwy70/ifZCP5aZMri6DgObYM
+Jwh4lChQ+UnQgMX9sRP1kWZ6UEbrhm7oUz7keI6wu4m4myYmMjY3nc+7T/std+o/
+Vzt/bSyLNYpAqUW50g46SL1lof8fXKGkqFRH42czeMUwqnEffRsCAwEAAaNFMEMw
+DgYDVR0PAQH/BAQDAgIEMBIGA1UdEwEB/wQIMAYBAf8CAQUwHQYDVR0OBBYEFHzj
+BilRFiByFNQlr/0YW21eSK9vMA0GCSqGSIb3DQEBBAUAA4GBACEv1s039YBNfVn/
+dxZm+1XDLmrm6Of5p3SjBz94osLV+cNsddP5W+jmdtEL2u+x33foGFPOkDyFFnIW
+gkFVfAKKCH70K2liJWDS5D+mu32zU8Kc/JF0musvKZ/EbuddJS+x7t7kBl4fFgr1
+0/AO8YOgD1AV55Z9Bjf1lTTHZMcX
+-----END CERTIFICATE-----
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/testcertificates/usif/root5ca_key.pem	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQC59XnNG+BH+iHN9vwCLNst4/ErtB8E65O3DLvT+J9kI/lpkyuL
+oOA5tgwnCHiUKFD5SdCAxf2xE/WRZnpQRuuGbuhTPuR4jrC7ibibJiYyNjedz7tP
++y136j9XO39tLIs1ikCpRbnSDjpIvWWh/x9coaSoVEfjZzN4xTCqcR99GwIDAQAB
+AoGAMMPAtxrSS826Q6q7F07wAy69Nbq8T6v/RodeUg3mrnoIk7j2OF1tr3Sf5zR/
+ekrAQT8sIDjLeD5FrWV0Ocz/QgUrcUG62yD3JgYT+YBZVKGLYIWzRp6BSqGLC/qU
++Q8W+s8AAsnRip5vsBDYLRWIhC5WAlNHE+7urTfIsAC0UxECQQDeSk4wxwlifiUW
+rGt759zFzUoWyAb/tRcnti88RKJkG+/15sccEFlD+qCeee/aD8FlbnE390XhaLCX
+lPsHriftAkEA1ii5N8MX03lMZhaW+k+obP06l46N+64a8g7tlL1vHOxeXdHydhpB
+tJ2F2jeqbtxmEvos19UrmVsuFrMiargIJwJAO1D4rGtwRagDnZlE1Tt53g55xrp5
+o6JfG2myERL/glcyIRwD5ak3KLyoP6GqLzYlFTvzWkvRieS1ur02f0YpwQJBAJz3
+fkIrwXPjzSZqWkCfUCCKPn7FIrYct21BmctSSXWWndgAQMlll1Etv+Tgtg/JhRtV
+uLZ9bRZbKV3D8G7t8jMCQQDC0Qrv26meE2ePUPGZdKfjZPY2/+M2z/j8kDsr+4fM
+0RxsJLH7p2bvxN80g/sSAdinbwLsqYiLrs7cz8Opv7Vb
+-----END RSA PRIVATE KEY-----
--- a/installationservices/swtransactionservices/group/stsserver.mmp	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swtransactionservices/group/stsserver.mmp	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -20,6 +20,7 @@
 TARGETTYPE			exe
 
 UID					0x0 0x10285BCD
+EPOCHEAPSIZE    0x4000 0x0200000
 
 MW_LAYER_SYSTEMINCLUDE_SYMBIAN
 USERINCLUDE			../inc
--- a/ncdengine/engine/accesspointmanager/inc/catalogsaccesspointmanagerimpl.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/ncdengine/engine/accesspointmanager/inc/catalogsaccesspointmanagerimpl.h	Wed Aug 18 09:55:45 2010 +0300
@@ -20,6 +20,7 @@
 #define C_CATALOGSACCESSPOINTMANAGERIMPL_H
 
 #include <e32def.h>
+#include <e32base.h> // HLa: DLMgr remove
 
 #ifdef _0
 #include <ApAccessPointItem.h>
--- a/ncdengine/engine/group/ncddevicemgmt.mmp	Tue Jul 06 14:23:31 2010 +0300
+++ b/ncdengine/engine/group/ncddevicemgmt.mmp	Wed Aug 18 09:55:45 2010 +0300
@@ -86,17 +86,10 @@
 LIBRARY         avkon.lib
 LIBRARY         etel3rdparty.lib 
 LIBRARY         apgrfx.lib
-//LIBRARY         swinstcli.lib           // Silent install
+
 LIBRARY         sif.lib // SIF installer
 LIBRARY         scrclient.lib  //Registry client
-//LIBRARY         widgetregistryclient.lib // Widget Registry
 
-// HLa - temporary java remove
-//#if defined( __SERIES60_30__ ) || defined( __SERIES60_31__ ) || defined( __S60_32__ )
-//LIBRARY         javaregistry.lib        // Java Registry
-//#else
-//LIBRARY         javaregistryclient.lib
-//#endif
 
 #ifndef __SERIES60_31__
 LIBRARY         sysversioninfo.lib      // SysVersionInfo
--- a/ncdengine/engine/transport/inc/catalogshttpdownload.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/ncdengine/engine/transport/inc/catalogshttpdownload.h	Wed Aug 18 09:55:45 2010 +0300
@@ -19,7 +19,7 @@
 #ifndef C_CATALOGSHTTPDOWNLOAD_H
 #define C_CATALOGSHTTPDOWNLOAD_H
 
-#include <DownloadMgrClient.h>
+// HLA: #include <DownloadMgrClient.h>
 #include <download.h>
 #include <downloadevent.h>
 #include <s32file.h>
@@ -295,8 +295,9 @@
     *
     * @param aEvent Download Manager event
     */
+     /* HLa
     void HandleEventL( THttpDownloadEvent aEvent );
-    
+    */
     
     /**
      * Set file server session
@@ -349,9 +350,10 @@
     /**
     * Handles event progress
     * @param aEvent The event that has progressed
-    */            
+    */
+    /* HLa
     void HandleEventProgressL( const THttpDownloadEvent& aEvent );
-
+    */
     
     /**
     * Updates the target filename from Content-Disposition -header
@@ -527,7 +529,9 @@
     HBufC8* iAddedRequestHeaders;       
     TInt iRefCount;        
     TBool iNormalDelete;
-    TBuf8<KMaxContentTypeLength> iContentType;
+
+    // HLa: TBuf8<KMaxContentTypeLength> iContentType;
+    TBuf8<256> iContentType;
         
     // Transaction for retrieving all of the response headers
     MCatalogsHttpOperation* iTransaction;
--- a/ncdengine/engine/transport/inc/catalogshttpdownloadmanagerimpl.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/ncdengine/engine/transport/inc/catalogshttpdownloadmanagerimpl.h	Wed Aug 18 09:55:45 2010 +0300
@@ -19,7 +19,7 @@
 #ifndef C_CATALOGSHTTPDOWNLOADMANAGER_H
 #define C_CATALOGSHTTPDOWNLOADMANAGER_H
 
-#include <DownloadMgrClient.h>
+// #include <DownloadMgrClient.h>
 
 #include "catalogstransportoperationid.h"
 #include "catalogshttpsession.h"    // RCatalogsHttpOperationArray
@@ -30,6 +30,9 @@
 #include <download.h>
 #include <downloadmanager.h>
 #include <QObject>
+
+#include <f32file.h> //HLa
+
 class MCatalogsHttpConfig;
 class CCatalogsHttpConfig;
 class CCatalogsHttpDownload;
@@ -262,11 +265,12 @@
         * @param aArray Array to search from
         * @param aDownload Download to find
         * @return Index to the download in iDownloads
-        */      
+        */
+        /* HLa
         TInt FindInDownloads( 
             const RCatalogsHttpOperationArray& aArray,
             RHttpDownload* aDownload ) const;
-
+        */
 
         /**
         * Searches for the given download from the given array and returns
@@ -286,6 +290,7 @@
         /**
          * Download events
          */
+        /* HLa
         class TDownloadEvent        
             {
         public:
@@ -298,7 +303,7 @@
 			        {
 			        }
             };
-
+          */
 
         /**
          * Sets this object active if event queue has unhandled events
@@ -309,12 +314,14 @@
          * Removes events from event queue that belong to the same 
          * RHttpDownload as aEvent
          */
+        /*
         void RemoveUnhandledEvents( 
             const TDownloadEvent& aEvent );
 
         void RemoveUnhandledProgressEvents( 
             const TDownloadEvent& aEvent );
-
+        */
+        
         /**
          * Deletes downloads that have not been paused by the user
          */
@@ -343,7 +350,7 @@
         RFs iFs;
         TCatalogsConnectionMethod iCurrentAp;
 
-        RArray<TDownloadEvent> iEventQueue;
+        // RArray<TDownloadEvent> iEventQueue;  //HLa
         TInt iCurrentDlId; // id of the last created download
     };
 
--- a/ncdengine/engine/transport/inc/catalogshttptypes.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/ncdengine/engine/transport/inc/catalogshttptypes.h	Wed Aug 18 09:55:45 2010 +0300
@@ -19,7 +19,7 @@
 #ifndef T_CATALOGSHTTPTYPES_H
 #define T_CATALOGSHTTPTYPES_H
 
-#include <HttpDownloadMgrCommon.h>
+// #include <HttpDownloadMgrCommon.h>  // HLa: DLMgr remove
 
 class MCatalogsHttpOperation;
 
@@ -342,6 +342,7 @@
 /**
 * Maximum length for content types
 */
+const TUint KMaxContentTypeLength = 256; // HLa: DLMgr remove
 const TUint KCatalogsHttpMaxContentTypeLength = KMaxContentTypeLength;
 
 
--- a/ncdengine/engine/transport/src/catalogshttpdownload.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/ncdengine/engine/transport/src/catalogshttpdownload.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -25,6 +25,8 @@
 #include <escapeutils.h>
 #include <downloadmanager.h>
 
+#include <uri8.h> // HLa
+
 
 #include <QtGlobal>
 #include "catalogshttpdownloadmanagerimpl.h"
@@ -811,7 +813,8 @@
     iConfig->InternalizeL( aStream );
     HBufC8* contentType = NULL;
     InternalizeDesL( contentType, aStream );
-    if ( contentType->Length() > KMaxContentTypeLength ) 
+    // HLa if ( contentType->Length() > KMaxContentTypeLength ) 
+    if ( contentType->Length() > 256 )
         {
         DeletePtr( contentType );
         DLERROR(("Content type was too long, leaving with KErrCorrupt"));
@@ -1084,6 +1087,8 @@
 // Handles events from the download manager
 // ---------------------------------------------------------------------------
 //	
+
+/* HLa
 void CCatalogsHttpDownload::HandleEventL( THttpDownloadEvent aEvent )
     {
     DLTRACEIN((""));
@@ -1376,6 +1381,7 @@
         * Download process can be paused again. This event only occurs after
         * EHttpDlNonPausable. 
         */	
+/* HLa
         case EHttpDlPausable:
             {
             DLTRACE(( "Pausable" ));
@@ -1411,13 +1417,14 @@
             }	
         }
     }
-
+*/
 
 
 // ---------------------------------------------------------------------------
 // 
 // ---------------------------------------------------------------------------
 //	
+/*
 void CCatalogsHttpDownload::HandleEventProgressL( const 
     THttpDownloadEvent& aEvent )
     {
@@ -1691,7 +1698,7 @@
 			break;
 		}
     }
-    
+ */   
 
 
 // ---------------------------------------------------------------------------
@@ -1797,7 +1804,8 @@
         DLTRACE(("Updating the content type"));
         QString contentType;
         contentType= iDownload->attribute(WRT::ContentType).toString();
-        	TBuf<KMaxContentTypeLength>  ContentType(contentType.utf16());
+        // HLa TBuf<KMaxContentTypeLength>  ContentType(contentType.utf16());
+        TBuf<256>  ContentType(contentType.utf16());
         	iContentType.Copy(ContentType);
    
         }
@@ -1918,6 +1926,7 @@
     // Get the current url of the download
     RBuf8 buf;
     CleanupClosePushL( buf );
+    const TInt KMaxUrlLength = 2048;
     buf.CreateL( KMaxUrlLength );
     QString string;
 	try
@@ -2148,6 +2157,7 @@
 TUint CCatalogsHttpDownload::MatchWithPredefinedRequestHeader( 
     const TDesC8& aHeader ) const
     {
+    /* HLa
     if ( aHeader.CompareF( KHttpRequestAcceptHeader ) == 0 ) 
         {
         return EDlAttrRequestAccept;
@@ -2192,7 +2202,7 @@
         {
         return EDlAttrRequestVary;
         }
-    
+    */
     return 0;
     }
     
@@ -2205,6 +2215,7 @@
 TUint CCatalogsHttpDownload::MatchWithPredefinedGeneralHeader( 
     const TDesC8& aHeader ) const
     {
+    /* HLa
     if ( aHeader.CompareF( KHttpGeneralCacheControlHeader ) == 0 ) 
         {
         return EDlAttrGeneralCacheControl;
@@ -2224,7 +2235,8 @@
     else if ( aHeader.CompareF( KHttpGeneralWarningHeader ) == 0 ) 
         {
         return EDlAttrGeneralWarning;
-        }    
+        }
+        */    
     return 0;
     }
     
@@ -2237,6 +2249,7 @@
 TUint CCatalogsHttpDownload::MatchWithPredefinedEntityHeader( 
     const TDesC8& aHeader ) const
     {
+    /*
     if ( aHeader.CompareF( KHttpEntityAllowHeader ) == 0 ) 
         {
         return EDlAttrEntityAllow;
@@ -2261,6 +2274,7 @@
         {
         return EDlAttrEntityLastModified;
         }
+        */
     return 0;
     }
         
@@ -2300,6 +2314,9 @@
 
     TPtr8 ptr( aTarget->Des() );
     
+    _LIT8( KHttpFieldSeparator, "\n"); // HLa
+    const TInt KColon( ':' ); // HLa
+    
     if( newSize ) 
         {
         DLTRACE( ("Appending to existing headers") );
--- a/ncdengine/engine/transport/src/catalogshttpdownloadmanagerimpl.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/ncdengine/engine/transport/src/catalogshttpdownloadmanagerimpl.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -77,7 +77,7 @@
     DLTRACEIN( ( "" ) );
 
     Cancel();
-    iEventQueue.Close();
+    // HLa iEventQueue.Close();
 
     // Release downloads
     TInt count = iDownloads.Count() - 1;
@@ -636,6 +636,7 @@
     {
     DLTRACEIN((""));
     
+    const TInt KMaxUrlLength = 2048; // HLa
     TBuf8<KMaxUrlLength> url;
     
     
@@ -692,7 +693,8 @@
 // ---------------------------------------------------------------------------
 // Finds the index for the given download in iDownloads
 // ---------------------------------------------------------------------------
-//            
+//   
+/* HLa
 TInt CCatalogsHttpDownloadManager::FindInDownloads( 
     const RCatalogsHttpOperationArray& aArray,
     RHttpDownload* aDownload ) const
@@ -712,7 +714,7 @@
         }
     return KErrNotFound;
     }
-
+*/
 
 // ---------------------------------------------------------------------------
 // Finds the index for the given download in the given array
@@ -834,6 +836,7 @@
     DLTRACEIN(( "Event queue count: %d", iEventQueue.Count() ));
    
     // Handle the event queue 
+    /* HLa
     while ( iEventQueue.Count() ) 
         {
         
@@ -895,6 +898,7 @@
                 }
             }
         }
+        */
     }
     
     
@@ -920,6 +924,7 @@
 void CCatalogsHttpDownloadManager::ContinueEventHandling()
     {
     DLTRACEIN((""));
+    /* HLa
     if( iEventQueue.Count() && !IsActive() ) 
         {
         DLTRACE(("More events to handle"));
@@ -928,9 +933,11 @@
         TRequestStatus* status = &iStatus;
         User::RequestComplete( status, KErrNone );
         }
+        */
     }
+
     
-    
+    /* HLa
 void CCatalogsHttpDownloadManager::RemoveUnhandledEvents( 
     const TDownloadEvent& aEvent )
     {
@@ -945,8 +952,9 @@
             }        
         }    
     }
+*/
 
-
+/* HLa
 void CCatalogsHttpDownloadManager::RemoveUnhandledProgressEvents( 
     const TDownloadEvent& aEvent )
     {
@@ -963,7 +971,7 @@
             }        
         }    
     }
-
+*/
 
 TInt CCatalogsHttpDownloadManager::NewDownloadId()
     {
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/secureswitools/swianalysistoolkit/group/apply_tools2_variants.xml	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<build xmlns="http://symbian.com/xml/build"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://symbian.com/xml/build build/2_0.xsd">
+
+  <!-- This variant is used so that we can tell if the APPLY keyword
+       can find variants exported into the epoc32 tree -->
+
+  <var name="tools2_shlwapi">
+	<append name="LINKER_OPTIONS" value="-lshlwapi" />
+  </var>
+</build>
--- a/secureswitools/swianalysistoolkit/group/bld.inf	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swianalysistoolkit/group/bld.inf	Wed Aug 18 09:55:45 2010 +0300
@@ -42,6 +42,9 @@
 #endif
 #endif
 
+PRJ_EXPORTS
+apply_tools2_variants.xml /epoc32/tools/makefile_templates/ossi/
+
 
 PRJ_TESTEXPORTS
 
--- a/secureswitools/swianalysistoolkit/group/dumpchainvaliditytool.mmp	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swianalysistoolkit/group/dumpchainvaliditytool.mmp	Wed Aug 18 09:55:45 2010 +0300
@@ -48,7 +48,9 @@
 #endif
 
 STATICLIBRARY			eay32 
-STATICLIBRARY			shlwapi 
+
+// Link to mingw libs: shlwapi.a 
+APPLY				tools2_shlwapi
 
 OPTION				GCC -w
 OPTION				GCC -fno-stack-check
--- a/secureswitools/swianalysistoolkit/group/dumpinstallfilestatustool.mmp	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swianalysistoolkit/group/dumpinstallfilestatustool.mmp	Wed Aug 18 09:55:45 2010 +0300
@@ -49,7 +49,9 @@
 #endif
 
 STATICLIBRARY			eay32 
-STATICLIBRARY			shlwapi 
+
+// Link to mingw libs: shlwapi.a 
+APPLY				tools2_shlwapi
 
 OPTION				GCC -w
 OPTION				GCC -fno-stack-check
--- a/secureswitools/swianalysistoolkit/group/dumpswicertstoretool.mmp	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swianalysistoolkit/group/dumpswicertstoretool.mmp	Wed Aug 18 09:55:45 2010 +0300
@@ -55,7 +55,9 @@
 #endif
 
 STATICLIBRARY			eay32 
-STATICLIBRARY			shlwapi 
+
+// Link to mingw libs: shlwapi.a 
+APPLY				tools2_shlwapi
 
 OPTION				GCC -w
 OPTION				GCC -fno-stack-check
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/secureswitools/swianalysistoolkit/source/common/utf8_wrapper.h	Wed Aug 18 09:55:45 2010 +0300
@@ -0,0 +1,25 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  A wrapper header to include utf8.h using the header
+*               macro to avoid problems due to multiple inclusions.  
+*				To avoid any possible third-party license issues, 
+*				the third-party header utf8.h is not modified.
+*/
+
+#ifndef UTF8_WRAPPER_H
+#define UTF8_WRAPPER_H
+
+#include "utf8/utf8.h"
+
+#endif /* UTF8_WRAPPER_H */
\ No newline at end of file
--- a/secureswitools/swisistools/group/bld.inf	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/group/bld.inf	Wed Aug 18 09:55:45 2010 +0300
@@ -50,8 +50,18 @@
 ../source/xmlparser/xerces/lib/libxerces_deb.a    /epoc32/release/tools2/deb/libxerces.a
 ../source/xmlparser/xerces/lib/libxerces_rel.a    /epoc32/release/tools2/rel/libxerces.a
 
+../source/xmlparser/xerces/lib/libxerces_linux.a    /epoc32/release/tools2/linux-i386/deb/libxerces.a
+../source/xmlparser/xerces/lib/libxerces_linux.a    /epoc32/release/tools2/linux-i386/rel/libxerces.a
+
+
+#ifdef __TOOLS2_LINUX__
+../source/dbmanager/sqlite/sqlite-3.6.1.so  /epoc32/tools/sqlite-3.6.1.so
+/usr/lib/libdl.a	/epoc32/release/tools2/linux-i386/deb/libdl.a
+/usr/lib/libdl.a	/epoc32/release/tools2/linux-i386/rel/libdl.a
+#else
 ../source/dbmanager/sqlite/sqlite3.dll  /epoc32/tools/sqlite3.dll
 ../source/dbmanager/sqlite/sqlite3.def  /epoc32/tools/sqlite3.def
+#endif // __TOOLS2_LINUX__
 
 #endif //SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 
--- a/secureswitools/swisistools/group/dbmanager.mmp	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/group/dbmanager.mmp	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -21,9 +21,11 @@
 TARGETTYPE		LIB
 
 USERINCLUDE 	../../swianalysistoolkit/source/common
+USERINCLUDE 	../../swianalysistoolkit/source/common/utf8
 USERINCLUDE 	../source/common
 USERINCLUDE 	../source/dbmanager
 USERINCLUDE 	../source/xmlparser
+USERINCLUDE		../source/sisxlibrary
 
 MW_LAYER_SYSTEMINCLUDE_SYMBIAN
 SYSTEMINCLUDE	../../openssllib/import/inc 
@@ -38,6 +40,9 @@
 SOURCE			logs.cpp
 SOURCE			util.cpp
 
+SOURCEPATH		../source/sisxlibrary
+SOURCE			utility.cpp
+
 #ifndef TOOLS2_LINUX
 MACRO	_UNICODE _CONSOLE _STLP_THREADS _WIN32 UNICODE __GNUG__
 #else
--- a/secureswitools/swisistools/group/dumpsislib.mmp	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/group/dumpsislib.mmp	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -23,6 +23,7 @@
 USERINCLUDE 	../source/dumpsislib
 USERINCLUDE 	../source/sisxlibrary
 USERINCLUDE 	../../swianalysistoolkit/source/common
+USERINCLUDE 	../../swianalysistoolkit/source/common/utf8
 
 
 MW_LAYER_SYSTEMINCLUDE_SYMBIAN
--- a/secureswitools/swisistools/group/interpretsis.mmp	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/group/interpretsis.mmp	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -26,6 +26,7 @@
 USERINCLUDE 		../source/sisxlibrary
 USERINCLUDE 		../source/common
 USERINCLUDE 		../../swianalysistoolkit/source/common
+USERINCLUDE 		../../swianalysistoolkit/source/common/utf8
 
 #ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 USERINCLUDE 		../source/rscparser
@@ -55,11 +56,15 @@
 #ifndef TOOLS2_LINUX
 STATICLIBRARY		eay32 zlib seclib
 #else
-STATICLIBRARY		crypto zlib seclib 
+STATICLIBRARY		crypto zlib seclib dl
+LIBRARY c
 #endif
 
 OPTION			GCC -w
 OPTION			GCC -fno-stack-check
 OPTION			GCC -fpermissive
+#ifdef TOOLS2_LINUX
+OPTION			GCC -rdynamic
+#endif // TOOLS2_LINUX
 MACRO			_UNICODE _CONSOLE _STLP_THREADS UNICODE __GNUG__
 
--- a/secureswitools/swisistools/group/interpretsislib.mmp	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/group/interpretsislib.mmp	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -23,10 +23,11 @@
 USERINCLUDE 	../source/interpretsislib
 USERINCLUDE 	../source/sisxlibrary
 USERINCLUDE 	../../swianalysistoolkit/source/common
+USERINCLUDE 	../../swianalysistoolkit/source/common/utf8
+USERINCLUDE 	../source/common
 
 #ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 USERINCLUDE		../source/xmlparser
-USERINCLUDE 	../source/common
 USERINCLUDE 	../source/dbmanager
 USERINCLUDE 	../source/rscparser
 #endif // SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
@@ -74,6 +75,7 @@
 SOURCE			xmlgenerator.cpp
 SOURCE			dbhelper.cpp
 
+
 SOURCEPATH		../source/common
 SOURCE			util.cpp
 
@@ -94,6 +96,8 @@
 SOURCE			apsecutils.cpp
 
 #endif
+SOURCEPATH		../../swianalysistoolkit/source/common/utf8
+SOURCE			utf8.cpp
 
 #ifndef TOOLS2_LINUX
 MACRO	_UNICODE _CONSOLE _STLP_THREADS _WIN32 UNICODE __GNUG__ XML_LIBRARY
--- a/secureswitools/swisistools/group/scrtool.mmp	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/group/scrtool.mmp	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -27,6 +27,7 @@
 USERINCLUDE 		../source/xmlparser
 USERINCLUDE 		../source/dbmanager
 USERINCLUDE 		../source/dbmanager/sqlite
+USERINCLUDE			../source/sisxlibrary
 
 SYSTEMINCLUDE 		../source/xmlparser/xerces/include
 MW_LAYER_SYSTEMINCLUDE_SYMBIAN
@@ -46,7 +47,14 @@
 SOURCE			logs.cpp exception.cpp util.cpp
 
 
-STATICLIBRARY		eay32 xerces
+STATICLIBRARY		xerces
+STATICLIBRARY		sisx
+#ifndef TOOLS2_LINUX
+STATICLIBRARY		eay32
+#else
+STATICLIBRARY		crypto dl c
+#endif
+
 
 #ifndef TOOLS2_LINUX
 MACRO	_UNICODE _CONSOLE _STLP_THREADS _WIN32 UNICODE __GNUG__ XML_LIBRARY
@@ -60,5 +68,8 @@
 OPTION			GCC -w
 OPTION			GCC -fno-stack-check
 OPTION			GCC -fpermissive
+#ifdef TOOLS2_LINUX
+OPTION			GCC -rdynamic
+#endif 
 //OPTION			GCC -masm=intel
 SMPSAFE
--- a/secureswitools/swisistools/source/common/util.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/source/common/util.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -24,7 +24,6 @@
 
 #include "util.h"
 #include "symbiantypes.h"
-#include <windows.h>
 #include <fstream.h>
 #include <iostream>
 #include <sstream>
@@ -33,6 +32,13 @@
 #include <openssl/evp.h>
 #include <openssl/buffer.h>
 
+#ifdef _WIN32
+#include <windows.h>
+#endif // _WIN32
+
+
+#include "utf8_wrapper.h"
+
 static const TUint32 CrcTab32[256] =
      {
      0x00000000, 0x77073096, 0xee0e612c, 0x990951ba,
@@ -100,38 +106,94 @@
      0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94,
      0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d
      };
+
+namespace Util
+{
+/**
+ * Converts wide char (unicode) string to multibyte string
+ * This interface is provided so that we can have different implementation 
+ * in windows and linux machine.
+ * @param aSource 		string to be converted
+ * @param aSourceLen	Source len. If this is -1 then it will calculate the length of the source.
+ * @param aTarget		target location.
+ * @param aTargetLen	Space in the target location.
+ * @param aCodePage		Code page number (currently supported in windows only)
+ * @return Number of bytes that make up the converted part of multibyte sequence. 
+ * 			If aTarget is NULL then the function will return the size needed to store
+ * 			the complete conversion of the source string.
+ */
+int ConvertWideCharToMultiByte(const wchar_t* aSource, int aSourceLen, char* aTarget, int aTargetLen, TUint32 aCodePage = 0);
+/**
+ * Converts multibyte string to wide char (unicode)
+ * This interface is provided so that we can have different implementation 
+ * in windows and linux machine.
+ * @param aSource 		string to be converted
+ * @param aSourceLen	Source len. If this is -1 then it will calculate the length of the source.
+ * @param aTarget		target location.
+ * @param aTargetLen	Space in the target location.
+ * @param aCodePage		Code page number (currently supported in windows only)
+ * @return Number of bytes that make up the converted part of widechar sequence. 
+ * 			If aTarget is NULL then the function will return the size needed to store
+ * 			the complete conversion of the source string.
+ */
+int ConvertMultiByteToWideChar(const char* aSource, int aSourceLen, wchar_t* aTarget, int aTargetLen, TUint32 aCodePage = 0);
+}; // namespace Util
  
 
-DllExport std::string Util::wstring2string (const std::wstring& aWide)
+#ifdef __linux__ 
+int Util::ConvertWideCharToMultiByte(const wchar_t* aSource, int /*aSourceLen*/, char* aTarget, int aTargetLen, TUint32 /*aCodePage*/)
 	{
-	int max = WideCharToMultiByte(CP_OEMCP,0,aWide.c_str(),aWide.length(),0,0,0,0);
-	std::string reply;
-	if (max > 0 )
+	int retValue = wcstombs(aTarget, aSource, aTargetLen);
+	if (-1 == retValue)
 		{
-		char* buffer = new char [max];
-		try
-			{
-			WideCharToMultiByte(CP_OEMCP,0,aWide.c_str(),aWide.length(),buffer,max,0,0);
-			reply = std::string (buffer, max);
-			}
-		catch (...)
-			{
-			}
-		delete [] buffer;
+		return 0;
 		}
-	return reply;
+	return retValue;
+	}
+
+int Util::ConvertMultiByteToWideChar(const char* aSource, int /*aSourceLen*/, wchar_t* aTarget, int aTargetLen, TUint32 /*aCodePage*/)
+	{
+	int retValue = mbstowcs(aTarget, aSource, aTargetLen);
+	if (-1 == retValue)
+		{
+		return 0;
+		}
+	return retValue;
 	}
 
-std::wstring Util::string2wstring (const std::string& aNarrow)
+#else
+
+int Util::ConvertWideCharToMultiByte(const wchar_t* aSource, int aSourceLen, char* aTarget, int aTargetLen, TUint32 aCodePage)
+	{
+	if(0 == aCodePage)
+		{
+		aCodePage = CP_OEMCP;
+		}
+	return WideCharToMultiByte( aCodePage, 0, aSource, aSourceLen, aTarget, aTargetLen, NULL, NULL);
+	}
+
+int Util::ConvertMultiByteToWideChar(const char* aSource, int aSourceLen, wchar_t* aTarget, int aTargetLen, TUint32 aCodePage)
 	{
-	int max = MultiByteToWideChar(CP_OEMCP,0,aNarrow.c_str(),aNarrow.length(),0,0);
+	if(0 == aCodePage)
+		{
+		aCodePage = CP_OEMCP;
+		}
+	return MultiByteToWideChar( aCodePage, 0, aSource, aSourceLen, aTarget, aTargetLen);
+	}
+
+#endif // __linux__
+
+std::wstring Util::string2wstring (const char* aNarrow)
+	{
+	std::string narrowStr(aNarrow);
+	int max = ConvertMultiByteToWideChar(aNarrow, strlen(aNarrow),0,0);
 	std::wstring reply;
 	if (max > 0 )
 		{
 		wchar_t* buffer = new wchar_t [max];
 		try
 			{
-			MultiByteToWideChar(CP_OEMCP,0,aNarrow.c_str(),aNarrow.length(),buffer,max);
+			ConvertMultiByteToWideChar(aNarrow, strlen(aNarrow),buffer,max);
 			reply = std::wstring (buffer, max);
 			}
 		catch (...)
@@ -142,26 +204,6 @@
 	return reply;
 	}
 
-std::wstring Util::string2wstring (const char* aNarrow)
-	{
-	std::string narrowStr(aNarrow);
-	int max = MultiByteToWideChar(CP_OEMCP,0,narrowStr.c_str(),narrowStr.length(),0,0);
-	std::wstring reply;
-	if (max > 0 )
-		{
-		wchar_t* buffer = new wchar_t [max];
-		try
-			{
-			MultiByteToWideChar(CP_OEMCP,0,narrowStr.c_str(),narrowStr.length(),buffer,max);
-			reply = std::wstring (buffer, max);
-			}
-		catch (...)
-			{
-			}
-		delete [] buffer;
-		}
-	return reply;
-	}
 
 DllExport int Util::WideCharToInteger(const wchar_t* aWideChar)
 	{
@@ -173,9 +215,10 @@
 
 TInt64 Util::WideCharToInt64(const wchar_t* aWideChar)
 	{
-	__int64 i64 = 0;
-	swscanf(aWideChar, L"%I64d", &i64);
-	return i64;
+	TInt64 value=0;
+	std::wstringstream str(aWideChar);
+	str >> value;
+	return value;
 	}
 
 DllExport const std::wstring Util::IntegerToWideString(int aInt)
@@ -204,23 +247,31 @@
 
 std::string Util::Base64Decode( const std::string& aEncodedData )
 	{
-	BIO *mem = BIO_new(BIO_s_mem());
-	BIO_write(mem, aEncodedData.c_str(), aEncodedData.length());
+	unsigned char* pIn = aEncodedData.c_str();
+	int inLen = aEncodedData.length();
+	unsigned char* pOut = new unsigned char[inLen];
 
-	BIO* b64 = BIO_new(BIO_f_base64());
-	mem = BIO_push(b64, mem);
-	int inlen = 0;
-	char inbuf[40]={0};
+	int outLen;
+	std::string aDecodeData;
+		
+    // create a memory buffer containing base64 encoded data
+    BIO* bmem = BIO_new_mem_buf((void*)pIn, inLen);
 
-	inlen = BIO_read(b64, inbuf, aEncodedData.length());
-    BIO_write(mem, inbuf, inlen);
-	std::string decodedData = inbuf;
-	
-	BIO_free_all(mem);
-	return decodedData;
+    // push a Base64 filter so that reading from buffer decodes it
+    BIO *bioCmd = BIO_new(BIO_f_base64());
+    // we don't want newlines
+    BIO_set_flags(bioCmd, BIO_FLAGS_BASE64_NO_NL);
+    bmem = BIO_push(bioCmd, bmem);
+
+    int finalLen = BIO_read(bmem, (void*)pOut, outLen);
+
+	aDecodeData.assign(pOut, pOut+finalLen);
+	delete pOut;
+    BIO_free_all(bmem);
+
+	return aDecodeData;
 	}
 
-
 TUint32 Util::Crc32(const void* aPtr, TInt aLength)
 	{
 	const TUint8* p = (const TUint8*)aPtr;
@@ -230,4 +281,7 @@
 	 crc = (crc >> 8) ^ CrcTab32[(crc ^ *p++) & 0xff];
 	return crc;
 	}
-	
\ No newline at end of file
+
+
+
+
--- a/secureswitools/swisistools/source/common/util.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/source/common/util.h	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
--- a/secureswitools/swisistools/source/dbmanager/dblayer.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/source/dbmanager/dblayer.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -21,6 +21,7 @@
 #include "logs.h"
 #include "util.h"
 #include "symbiantypes.h"
+#include "../sisxlibrary/utility.h"
 
 #include <string>
 #include <vector>
@@ -54,6 +55,60 @@
 typedef std::vector<XmlDetails::TScrPreProvisionDetail::TApplicationRegistrationInfo::TAppProperty>::const_iterator ApplicationPropertyIterator;
 
 
+#ifdef __LINUX__
+
+/*
+* Platform specific feature
+*
+* In WINDOWS : sizeof(wchar_t) = 2
+* In LINUX   : sizeof(wchar_t) = 4
+*/
+
+static utf16WString utf32WString2utf16WString(std::wstring aParameter)
+{
+	int strLen = aParameter.length();
+	const wchar_t * source = aParameter.c_str();
+	unsigned short int* buffer = new unsigned short int[strLen + 1];
+
+	// Using a temp variable in place of buffer as ConvertUTF32toUTF16 modifies the source pointer passed.
+	unsigned short int* temp = buffer;
+
+	ConvertUTF32toUTF16(&source, source + strLen, &temp,  temp + strLen, lenientConversion);
+
+	// Appending NUL to the converted buffer.
+	*temp = 0;
+
+	utf16WString utf16Ws;
+	utf16Ws.resize(strLen);
+
+	// The built-in basic_string template class copy operation
+	// truncates when a NUL is encountered when a c_str() is
+	// used to construct the required string.
+	// So, if aParameter is any hashable string having the
+	// syntax : swtypeName + L'\0' + someId then, we will end
+	// up returning only part of the converted UTF-16 string.
+	// Hence, we resort to the explicit copy operation with
+	// two bytes at a time.
+	while( strLen-- )
+	{
+		utf16Ws[ strLen ] = buffer[ strLen ];
+	}
+
+	delete[] buffer;
+
+	return utf16Ws;
+}
+
+#else
+
+// We need not do anything for WINDOWS, since the windows wstring
+// will already be in UTF-16 encoding.
+#define utf32WString2utf16WString(aParameter) (aParameter)
+
+#endif
+
+
+
 const int KMaxDrives=26;
 
 CDbLayer::CDbLayer(const std::string& aDllPath, const std::string& aSqlDbName)
@@ -140,7 +195,11 @@
 
 	for(ScrEnvIterator aScrEnvIterator = aScrEnvDetails.begin(); aScrEnvIterator != aScrEnvDetails.end(); ++aScrEnvIterator)
 		{
-		unsigned int swTypeId = Util::Crc32(aScrEnvIterator->iUniqueSoftwareTypeName.c_str(),aScrEnvIterator->iUniqueSoftwareTypeName.length()*2);
+		// To maintain the consistency of CRC value across the platforms(WINDOWS and LINUX), we are
+		// using UTF-16 string in CRC generation.
+		utf16WString utf16Ws = utf32WString2utf16WString(aScrEnvIterator->iUniqueSoftwareTypeName);
+		unsigned int swTypeId = Util::Crc32(utf16Ws.c_str(),aScrEnvIterator->iUniqueSoftwareTypeName.length()*2);
+
 		if (!aScrEnvIterator->iLauncherExecutable.empty())
 		{
 		stmtSwType->BindInt(1, swTypeId);
@@ -217,14 +276,19 @@
 	std::string insertComponents;
 	XmlDetails::TScrPreProvisionDetail::TComponentDetails 
 		componentDetail = aComponent.iComponentDetails;
-
 	if (aComponent.iComponentDetails.iIsRomApplication)
 		{
 		LOGINFO("Is rom app");
 		return true;
 		}
 	LOGINFO("Not rom app");
-	unsigned int swTypeId = Util::Crc32(aSoftwareTypeName.c_str(),aSoftwareTypeName.length()*2);
+
+	// To maintain the consistency of CRC value across the platforms(WINDOWS and LINUX), we are
+	// using UTF-16 string in CRC generation.
+    utf16WString utf16Ws = utf32WString2utf16WString(aSoftwareTypeName);
+	unsigned int swTypeId = Util::Crc32(utf16Ws.c_str(),aSoftwareTypeName.length()*2);
+
+
 	std::wstring strGlobalId = componentDetail.iGlobalId;
 	
 	if(!strGlobalId.empty())
@@ -262,7 +326,12 @@
 	if(!strGlobalId.empty())
 		{
 		std::wstring concatGlobalId = aSoftwareTypeName + L'\0' + strGlobalId;
-		unsigned int globalIdHash = Util::Crc32(concatGlobalId.c_str(),concatGlobalId.length()*2);
+
+		// To maintain the consistency of CRC value across the platforms(WINDOWS and LINUX), we are
+		// using UTF-16 string in CRC generation.
+		utf16WString utf16Ws = utf32WString2utf16WString(concatGlobalId);
+		unsigned int globalIdHash = Util::Crc32(utf16Ws.c_str(),concatGlobalId.length()*2);
+
 		stmtComponents->BindInt(9, globalIdHash);
 		stmtComponents->BindStr(10, concatGlobalId);
 		stmtComponents->BindStr(11, version);
@@ -376,9 +445,9 @@
 			{
 			if(compPropIter->iIsStr8Bit)
 				{
-				std::string str = Util::wstring2string(compPropIter->iValue);
+				std::string str = wstring2string(compPropIter->iValue);
 				std::string decodedString = Util::Base64Decode(str);
-				stmtComponentProperty->BindBinary(4, str);
+				stmtComponentProperty->BindBinary(4, decodedString);
 				}
 			else
 				{
@@ -429,11 +498,19 @@
 	for(compDepIter = aComponentDependencyDetails.begin() ; compDepIter != aComponentDependencyDetails.end() ; ++compDepIter)
 		{
 		std::wstring concatGlobalId = dependantGlobalId + compDepIter->iSupplierId;
-				
-		unsigned int globalIdHash = Util::Crc32(concatGlobalId.c_str(),concatGlobalId.length()*2);
-		unsigned int dependantIdHash = Util::Crc32(dependantGlobalId.c_str(),dependantGlobalId.length()*2);
-		unsigned int supplierIdHash = Util::Crc32(compDepIter->iSupplierId.c_str(),compDepIter->iSupplierId.length()*2);
-		
+
+		// To maintain the consistency of CRC value across the platforms(WINDOWS and LINUX), we are
+		// using UTF-16 string in CRC generation.
+		utf16WString utf16Ws = utf32WString2utf16WString(concatGlobalId);
+		unsigned int globalIdHash = Util::Crc32(utf16Ws.c_str(),concatGlobalId.length()*2);
+
+		utf16Ws = utf32WString2utf16WString(dependantGlobalId);
+		unsigned int dependantIdHash = Util::Crc32(utf16Ws.c_str(),dependantGlobalId.length()*2);
+
+		utf16Ws = utf32WString2utf16WString(compDepIter->iSupplierId);
+		unsigned int supplierIdHash = Util::Crc32(utf16Ws.c_str(),compDepIter->iSupplierId.length()*2);
+
+
 		std::string insertComponentDeps("INSERT INTO ComponentDependencies(GlobalIdHash,DependantGlobalIdHash, SupplierGlobalIdHash, DependantGlobalId,SupplierGlobalId,VersionFrom,VersionTo) VALUES(?,?,?,?,?,?,?);");
 		std::auto_ptr<CStatement> stmtComponentDeps(iScrDbHandler->PrepareStatement(insertComponentDeps));
 		
@@ -460,14 +537,40 @@
 	
 	stmtComponentFileDetails->BindInt(1,aComponentId);
 	
-	// size does not return the actual binary size of the object
 	int length = aLocation.length()*2 ;
+
 	// generate hash for location
 	std::wstring location = aLocation;
 	std::transform(	location.begin(), location.end(), location.begin(), tolower);
 
-	unsigned int hash = Util::Crc32(location.c_str(),length);
-	
+	#ifdef __TOOLS2_LINUX__
+
+	// To maintain the consistency of the LocationHash value(essentially the CRC of
+	// Location string) across the WINDOWS and LINUX platforms, we reconstruct the
+	// location to have WINDOWS specific path.
+
+    std::wstring::size_type idx = 0;
+     while( (idx = location.find(L"//", idx)) != std::wstring::npos)
+     {
+    	 location.replace( idx, 2, L"\\\\" );
+     }
+
+     idx = 0;
+
+     while( (idx = location.find(L"/", idx)) != std::wstring::npos)
+     {
+    	 location.replace( idx, 1, L"\\" );
+     }
+
+	#endif
+
+
+	// To maintain the consistency of CRC value across the platforms(WINDOWS and LINUX), we are
+	// using UTF-16 string in CRC generation.
+
+	utf16WString utf16Ws = utf32WString2utf16WString(location);
+	unsigned int hash = Util::Crc32(utf16Ws.c_str(),length);
+
 	stmtComponentFileDetails->BindInt(2,hash);
 	stmtComponentFileDetails->BindStr(3,aLocation);
 	stmtComponentFileDetails->ExecuteStatement();
@@ -504,9 +607,9 @@
 			}
 		else
 			{
-			std::string str = Util::wstring2string(filePropIter->iValue);
+			std::string str = wstring2string(filePropIter->iValue);
 			std::string decodedString = Util::Base64Decode(str);
-			stmtFileProperty->BindBinary(3, str);
+			stmtFileProperty->BindBinary(3, decodedString);
 			stmtFileProperty->BindInt(4, 1);
 			}
 
@@ -574,6 +677,18 @@
 	std::auto_ptr<CStatement> stmtAppAttribute(iScrDbHandler->PrepareStatement(insertAppAttributes));
 
 	stmtAppAttribute->BindInt64(2, aComponentId);
+
+	//Assigning Default Values
+	TInt64 intVal = 0; 
+	stmtAppAttribute->BindInt64(5, intVal); //Attributes
+	stmtAppAttribute->BindInt64(6, intVal); //Hidden
+	stmtAppAttribute->BindInt64(7, intVal); //Embeddable
+	stmtAppAttribute->BindInt64(8, intVal); //Newfile
+	stmtAppAttribute->BindInt64(9, intVal); //Launch
+	stmtAppAttribute->BindInt64(11, intVal); //DefaultScreenNumber
+	std::wstring strVal(L"");
+	stmtAppAttribute->BindStr(10, strVal); //GroupName
+	
 	int appUid = 0;
 	std::string appfile;
 	for(ApplicationAttributeIterator applicationAttributeIter = aAppAttribute.begin(); applicationAttributeIter != aAppAttribute.end() ; ++applicationAttributeIter )
@@ -703,7 +818,11 @@
 			
 			stmtDataType->BindInt64(1, serviceId);
 			stmtDataType->BindInt64(2, dataTypeIter->iPriority);
+			#ifdef __TOOLS2_LINUX__
+			stmtDataType->BindStr(3, dataTypeIter->iType, avoidSlashConversion);
+			#else
 			stmtDataType->BindStr(3, dataTypeIter->iType);
+			#endif
 				
 			stmtDataType->ExecuteStatement();
 			stmtDataType->Reset();
@@ -732,6 +851,13 @@
 	insertAppLocalizableInfo = "INSERT INTO LocalizableAppInfo(AppUid,ShortCaption,GroupName,Locale,CaptionAndIconId) VALUES(?,?,?,?,?);";
 	std::auto_ptr<CStatement> stmtAppLocalizableInfo(iScrDbHandler->PrepareStatement(insertAppLocalizableInfo));
 
+	//Assigning default value
+	TInt64 intVal = 0;
+	stmtAppLocalizableInfo->BindInt64(4, intVal); //Locale
+	std::wstring strVal(L"");
+	stmtAppLocalizableInfo->BindStr(2, strVal); //ShortCaption
+	stmtAppLocalizableInfo->BindStr(3, strVal); //GroupName
+
 	std::string insertCaptionAndIconInfo;
 		
 	insertCaptionAndIconInfo = "INSERT INTO CaptionAndIconInfo(Caption,NumberOfIcons,IconFile) VALUES(?,?,?);";
@@ -817,6 +943,13 @@
 	insertCaptionAndIconInfo = "INSERT INTO CaptionAndIconInfo(Caption,NumberOfIcons,IconFile) VALUES(?,?,?);";
 	std::auto_ptr<CStatement> stmtCaptionAndIconInfo(iScrDbHandler->PrepareStatement(insertCaptionAndIconInfo));
 
+	//Assigning Default Value
+	TInt64 intVal = 0;
+	stmtViewData->BindInt64(3, intVal); //ScreenMode
+	stmtCaptionAndIconInfo->BindInt64(2, intVal); //NumberOfIcons
+	std::wstring strVal(L"");
+	stmtCaptionAndIconInfo->BindStr(3, strVal); //IconFile
+
 	bool captionAndIconInfoPresent = 0;
 	//for every TViewData
 	stmtViewData->BindInt64(1, alocalAppInfoId);
@@ -887,7 +1020,9 @@
 
 		if(appPropertyIter->iIsStr8Bit)
 			{
-			stmtAppProperty->BindBinary(6, appPropertyIter->iStrValue);
+				std::string str = wstring2string(appPropertyIter->iStrValue);
+				std::string decodedString = Util::Base64Decode(str);
+				stmtAppProperty->BindBinary(6, decodedString);
 			}
 		else
 			{
--- a/secureswitools/swisistools/source/dbmanager/dblayer.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/source/dbmanager/dblayer.h	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -38,6 +38,19 @@
 
 #include <string>
 
+#ifdef __TOOLS2_LINUX__
+
+// utf16WString represents the UTF-16 data(WINDOWS wstring).
+typedef std::basic_string<unsigned short int> utf16WString;
+
+#else
+
+// Under WINDOWS, wstring will be in UTF-16 format itself.
+typedef std::wstring utf16WString;
+
+#endif
+
+
 class CDbLayer
 	{
 	public:
--- a/secureswitools/swisistools/source/dbmanager/dbprocessor.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/source/dbmanager/dbprocessor.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -30,10 +30,130 @@
 #include "logs.h"
 #include "util.h"
 #include "symbiantypes.h"
-
+#include "utf8_wrapper.h"
+#include "../sisxlibrary/utility.h"
 #include <string>
 #include <cassert>
 
+#ifdef __linux__
+#include <dlfcn.h>
+
+
+void* GetProcAddress(HINSTANCE aHandle, const char* aSymbol)
+	{
+	return dlsym(aHandle, aSymbol);
+	}
+
+HINSTANCE LoadLibraryA(const char* aLibraryName)
+	{
+	HINSTANCE handleUsingDefaultSearchPath = dlopen(aLibraryName, RTLD_LAZY);
+
+	if( handleUsingDefaultSearchPath == NULL )
+	{
+		// Once the dlopen() fails by not finding the aLibraryName in the default
+		// path specified by LD_LIBRARY_PATH, we will look in the epoc32/tools 
+		// path as the second option.
+
+		const char* epocRoot = getenv("EPOCROOT");		
+		if(NULL == epocRoot)
+			{
+			throw CException("EPOCROOT environment variable not specified.", ExceptionCodes::EEnvNotSpecified);
+			}
+		std::string epocRootStr(epocRoot); 
+
+		std::string absPathToLibrary = epocRootStr + std::string("epoc32/tools/") + std::string(aLibraryName);
+		HINSTANCE handleUsingAbsSearchPath = dlopen(absPathToLibrary.c_str(), RTLD_LAZY);
+
+		return handleUsingAbsSearchPath;
+	}
+
+	return handleUsingDefaultSearchPath;
+	}
+
+int FreeLibrary(HINSTANCE aHandle)
+	{
+	// FreeLibrary returns non-zero value on success whereas
+	// dlcose returns zero on success.
+	return (dlclose(aHandle) == 0)? true: false;
+	}
+
+std::string GetErrorMessage()
+	{
+	return dlerror();
+	}
+
+static utf16WString utf32WString2utf16WString(std::wstring& aParameter)
+{
+	int strLen = aParameter.length();
+	const wchar_t * source = aParameter.c_str();
+	unsigned short int* buffer = new unsigned short int[(strLen + 1) * 2];
+
+	// Using a temp variable in place of buffer as ConvertUTF32toUTF16 modifies the source pointer passed.
+	unsigned short int* temp = buffer;
+
+	ConvertUTF32toUTF16(&source, source + strLen, &temp,  temp + strLen, lenientConversion);
+
+	// Appending NUL to the converted buffer.
+	*temp = 0;
+
+	utf16WString utf16Ws;
+	utf16Ws.resize(strLen);
+
+	// The built-in basic_string template class copy operation
+	// truncates when a NUL is encountered when a c_str() is
+	// used to construct the required string.
+	// So, if aParameter is any hashable string having the
+	// syntax : swtypeName + L'\0' + someId then, we will end
+	// up returning only part of the converted UTF-16 string.
+	// Hence, we resort to the explicit copy operation with
+	// two bytes at a time.
+	while( strLen-- )
+	{
+		utf16Ws[ strLen ] = buffer[ strLen ];
+	}
+
+	delete[] buffer;
+
+	return utf16Ws;
+}
+
+static std::wstring utf16WString2utf32WString(utf16WString& aParameter)
+{	
+	int strLen = aParameter.length();
+	const unsigned short int* source = aParameter.c_str();
+	wchar_t* buffer = new wchar_t[ strLen + 1 ];
+
+	// Using a temp variable in place of buffer as ConvertUTF16toUCS4 modifies the source pointer passed.
+	wchar_t* temp = buffer;
+
+	ConvertUTF16toUCS4(&source, source + strLen, &temp, temp + strLen);
+
+	// Appending NUL to the converted buffer.
+	*temp = 0;
+
+	std::wstring utf32Ws(buffer);
+
+	delete[] buffer;
+
+	return utf32Ws;
+}
+
+#else
+std::string GetErrorMessage()
+	{
+	LPCVOID lpMsgBuf;
+		
+	DWORD err = GetLastError();
+	FormatMessage	(	FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM |
+						FORMAT_MESSAGE_IGNORE_INSERTS, NULL, err,
+						MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR) &lpMsgBuf,
+						0, NULL 
+					);
+	std::wstring wErrMsg((wchar_t*)lpMsgBuf);
+	return wstring2string(wErrMsg);
+	}
+#endif // __linux__
+
 TDbLibrary* iLibraryHandler = NULL;
 
 TDbLibrary::TDbLibrary(const std::string& aDllPath)
@@ -55,18 +175,7 @@
 	int retCode = FreeLibrary(sqLiteHndl);
 	if(retCode == 0)
 		{
-		LPCVOID lpMsgBuf;
-		
-		DWORD err = GetLastError();
-		FormatMessage	(	FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM |
-							FORMAT_MESSAGE_IGNORE_INSERTS, NULL, err,
-							MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR) &lpMsgBuf,
-							0, NULL 
-						);
-		std::wstring wErrMsg((wchar_t*)lpMsgBuf);
-		std::string errMsg = Util::wstring2string(wErrMsg);
-		//LOGERROR(errMsg);
-		
+		//LOGERROR(GetErrorMessage());
 		}
 	}
 
@@ -167,16 +276,7 @@
 	if(aFnPtr != NULL)
 		return;
 
-	LPCVOID lpMsgBuf;
-		
-	DWORD err = GetLastError();
-	FormatMessage	(	FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM |
-						FORMAT_MESSAGE_IGNORE_INSERTS, NULL, err,
-						MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR) &lpMsgBuf,
-						0, NULL 
-					);
-	std::wstring wErrMsg((wchar_t*)lpMsgBuf);
-	std::string errMsg = Util::wstring2string(wErrMsg);
+	std::string errMsg = GetErrorMessage();
 	//LOGERROR(errMsg);
 	throw CException(errMsg,ExceptionCodes::ELibraryLoadError);
 	}
@@ -362,9 +462,46 @@
 	CheckSqlErrCode(err);
 	}
 
+
+#ifdef __TOOLS2_LINUX__
+void CStatement::BindStr(TInt aParameterIndex, const std::wstring &aParameterStr, int aConvertSlash=allowSlashConversion)
+#else
 void CStatement::BindStr(TInt aParameterIndex, const std::wstring &aParameterStr)
+#endif
 	{
+	/*
+	 * Under LINUX : Because of the UTF-32 format of wstring, we can't directly use the sqlite3_bind_text16() which
+	 * requires UTF-16 format. So, we convert the UTF-32 data into UTF-16 before using it.
+	 *
+	 * Under WINDOWS : No conversion required since wstring will be in UTF-16 format itself.
+	 */
+
+    #ifdef __LINUX__
+	// Make sure that the wstring passed to this function is not having any trailing
+	// explicit NUL( Preferably, pass c_str() part of wstring ).
+    //
+	// Only case in which you shouldn't pass c_str() is that the wstring has NUL as
+	// part of its actual string content(like swtypename + L'\0' + someID etc).
+
+	// In order to maintain the consistency of DB contents across the WINDOWS and LINUX platforms, before interacting
+	// with the DB we convert the local paths into WINDOWS specific paths.
+    //
+	// If aParameterStr is not a PATH but contains a forward slash, we should restrain 
+	// from the slash conversion. One such instance is MimeType.
+	//
+	std::wstring temp = aParameterStr;
+	if( aConvertSlash == allowSlashConversion )
+	{
+	    ConvertToWindowsSpecificPaths(temp);
+	}
+
+    utf16WString utf16s = utf32WString2utf16WString(temp);
+
+	TInt err = iLibraryHandler.sqlite3_bind_text16(iStmtHandle, aParameterIndex, utf16s.c_str(), aParameterStr.size()*2, SQLITE_TRANSIENT);
+
+    #else
 	TInt err = iLibraryHandler.sqlite3_bind_text16(iStmtHandle, aParameterIndex, aParameterStr.c_str(), aParameterStr.size()*2, SQLITE_TRANSIENT);
+	#endif
 	// The fifth argument has the value SQLITE_TRANSIENT, it means that SQLite makes its own private copy of the data immediately
 	CheckSqlErrCode(err);
 	}
@@ -378,7 +515,19 @@
 
 void CStatement::BindBinary(TInt aParameterIndex, const std::wstring &aParameterStr)
 	{
+	#ifdef __LINUX__
+	// To maintain consistency of the binary equivalent of the wstring
+	// being binded, we convert the wstring with UTF-32 encoding under LINUX
+	// to UTF-16 encoding which is same as that of wstring under WINDOWS.
+	
+	std::wstring temp = aParameterStr;
+	utf16WString utf16s = utf32WString2utf16WString(temp);
+
+	TInt err = iLibraryHandler.sqlite3_bind_blob(iStmtHandle, aParameterIndex, utf16s.c_str(), aParameterStr.size()*2, SQLITE_TRANSIENT);
+	#else
 	TInt err = iLibraryHandler.sqlite3_bind_blob(iStmtHandle, aParameterIndex, aParameterStr.c_str(), aParameterStr.size()*2, SQLITE_TRANSIENT);
+	#endif
+
 	// The fifth argument has the value SQLITE_TRANSIENT, it means that SQLite makes its own private copy of the data immediately
 	CheckSqlErrCode(err);
 	}
@@ -411,8 +560,28 @@
 
 std::wstring CStatement::StrColumn(int aColumnId ) const
 	{
-	std::wstring columnValue(static_cast<const wchar_t*>(iLibraryHandler.sqlite3_column_text16(iStmtHandle, aColumnId)));
-	return columnValue;
+	/*
+	 * Under LINUX : While writing onto DB, we bind the wstring after converting it into UTF-16 from
+	 * UTF-32 format. So, now while reading we need to convert the UTF-16 data back to UTF-32
+	 * format so that we can return the required UTF-32 wstring.
+	 *
+	 * Under WINDOWS : No conversion required since wstring will be in UTF-16 format itself.
+	 */
+	#ifdef __LINUX__
+
+	utf16WString utf16S = iLibraryHandler.sqlite3_column_text16(iStmtHandle, aColumnId);
+	std::wstring utf32S = utf16WString2utf32WString(utf16S);
+
+	// The DB will have WINDOWS specific paths to maintain the consistency of DB contents across WINDOWS and LINUX platforms.
+	// So, after reading under LINUX we will convert them into local paths.
+
+    ConvertToLinuxSpecificPaths(utf32S);
+
+	#else
+	std::wstring utf32S(static_cast<const wchar_t*>(iLibraryHandler.sqlite3_column_text16(iStmtHandle, aColumnId)));
+	#endif
+
+	return utf32S;
 	}
 
 TInt64 CStatement::Int64Column(int aColumnId ) const
--- a/secureswitools/swisistools/source/dbmanager/dbprocessor.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/source/dbmanager/dbprocessor.h	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -32,7 +32,12 @@
 #include "./sqlite/sqlite3.h"
 #include "symbiantypes.h"
 #include <string>
+
+#ifdef __linux__
+typedef void* HINSTANCE;
+#else
 #include <windows.h>
+#endif // __linux__
 
 // Forward declarations
 class CStatement;
@@ -107,6 +112,50 @@
 	};
 
 
+#ifdef __TOOLS2_LINUX__
+typedef enum {
+	allowSlashConversion = 0,
+	avoidSlashConversion
+} SlashConversionFlags;
+
+// utf16WString represents the UTF-16 data(WINDOWS wstring).
+typedef std::basic_string<unsigned short int> utf16WString;
+
+
+inline void ConvertToWindowsSpecificPaths(std::wstring& aPath)
+{
+		std::wstring::size_type idx = 0;
+		while( (idx = aPath.find(L"//", idx)) != std::wstring::npos)
+		{
+			aPath.replace( idx, 2, L"\\\\" );
+		}
+
+		idx = 0;
+
+		while( (idx = aPath.find(L"/", idx)) != std::wstring::npos)
+		{
+			aPath.replace( idx, 1, L"\\" );
+		}
+}
+
+inline void ConvertToLinuxSpecificPaths(std::wstring& aPath)
+{
+	 std::wstring::size_type idx = 0;
+     while( (idx = aPath.find(L"\\\\", idx)) != std::wstring::npos)
+     {
+             aPath.replace( idx, 2, L"//" );
+     }
+
+     idx = 0;
+
+     while( (idx = aPath.find(L"\\", idx)) != std::wstring::npos)
+     {
+             aPath.replace( idx, 1, L"/" );
+     }
+}
+
+#endif
+
 /**
 	An instance of this class is used to execute all types of SQL statements with or without
 	parameters. 
@@ -183,8 +232,16 @@
 			@param aParameterIndex The index value identifying the parameter; the first parameter 
 			       has an index of 1.
 			@param aParameterStr The 16-bit descriptor whose content is to be assigned to the parameter.
+			@param aConvertSlash The integer value which is used only under LINUX platform specifies whether
+								 to convert any LINUX specific paths to WINDOWS specific paths in aParameterStr.
+								 This helps in avoiding the wrong interpretation of the DataType strings
+								 having the syntax (DataType/Format) as PATHs.
 		 */
-		void BindStr(int aParameterIndex, const std::wstring& aParameterStr);
+		#ifdef __TOOLS2_LINUX__
+		void BindStr(TInt aParameterIndex, const std::wstring &aParameterStr, int aConvertSlash=allowSlashConversion);
+		#else
+		void BindStr(TInt aParameterIndex, const std::wstring &aParameterStr);
+		#endif
 		
 		void BindBinary(int aParameterIndex, const std::string &aParameterStr);
 
@@ -265,4 +322,4 @@
 		TDbLibrary iLibraryHandler;
 		};
 
-#endif // DBPROCESSOR_H
\ No newline at end of file
+#endif // DBPROCESSOR_H
Binary file secureswitools/swisistools/source/dbmanager/sqlite/sqlite-3.6.1.so has changed
--- a/secureswitools/swisistools/source/dumpsis/main.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/source/dumpsis/main.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2004-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -64,7 +64,7 @@
 			}
 		else
 			{
-			std::wcout << L":" << str;
+			std::wcout << L":" << str.c_str();
 			std::vector<std::wstring> capList;
 			fdesc->GetCapabilityList(capList);
 			std::wcout << std::endl;
--- a/secureswitools/swisistools/source/dumpsis/options.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/source/dumpsis/options.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2004-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -84,7 +84,7 @@
 {
 	std::cout << "\nDUMPSIS  Version  " << MajorVersion << '.' << MinorVersion << std::endl;
 	std::cout << "A utility for decompiling Software Installation (SIS) files" << std::endl;
-	std::cout <<"Copyright (c) Symbian Software Limited 2004-2008. All rights reserved.\n\n" << std::flush;
+	std::cout <<"Copyright (c) 2004-2010 Nokia Corporation and/or its subsidiary(-ies). All rights reserved.\n\n" << std::flush;
 }
 
 Options::Options (int argc, wchar_t** argv)
@@ -99,7 +99,21 @@
 	while (--argc)
 		{
 		argv++;
-		if ((**argv == '-') || (**argv == '/'))
+		// WINDOWS ENVIRONMENT : If the underlying platform is WINDOWS then, 
+		// cope up with multiple arguments following the '-' or '/'. 
+		//
+		// LINUX ENVIRONMENT : If the underlying platform is LINUX then, cope 
+		// up with multiple arguments following only the '-'. This restriction 
+		// of not dealing with arguments following '/' is due to the fact that, 
+		// the absolute paths in case of LINUX start with a '/'. So, this could 
+		// be mistaken as an option if we treat anything prefixed by a '/' as 
+		// an option. Hence, this facility is being removed once for all and 
+		// only '-' can(should) be used for specifying an option.
+					if (	   (**argv == '-')   
+#ifndef __TOOLS2_LINUX__
+							|| (**argv == '/')
+#endif
+					   )
 			{
 			const wchar_t* optPtr = *argv;
 
--- a/secureswitools/swisistools/source/dumpsis/options.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/source/dumpsis/options.h	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2004-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -30,7 +30,7 @@
 using std::ostream;
 
 int const MajorVersion=1;
-int const MinorVersion=2;
+int const MinorVersion=3;
 int const BuildVersion=0;
 /**
 Exceptions raised while processing the command line
--- a/secureswitools/swisistools/source/dumpsislib/dumpsis.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/source/dumpsislib/dumpsis.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -28,10 +28,10 @@
 #include <functional>
 #include <set>
 
-
 #include "dumpsis.h"
 #include "siscontroller.h"
 #include "exception.h"
+#include "utf8_wrapper.h"
 
 CDumpSis::CDumpSis(const std::wstring& aSISFileName, bool aVerbose)
 		: 	iController(NULL),
@@ -68,6 +68,7 @@
 	std::wostream outStream (inStream.rdbuf ());
 
 	outStream << wchar_t(0xfeff);
+
 	if(iIsStub)
 		{
 		iController->AddPackageEntry (outStream, iVerbose);
@@ -78,7 +79,27 @@
 		}
 	
 	std::wstring str = inStream.str();
+#ifndef __TOOLS2_LINUX__
 	WriteToFile(aPkgFileName, reinterpret_cast<const TUint8*>(str.c_str()), str.length()*2);
+#else
+	TUint32 size = str.size();
+	const wchar_t * source = str.c_str();
+
+	unsigned short int* buffer = new unsigned short int[size*2];
+
+	// Using a temp variable in place of buffer as ConvertUTF32toUTF16 modifies the source pointer passed.
+	unsigned short int* temp = buffer;
+
+	//Converting to UTF-16 because makesis do not support UTF-32.	
+	ConvertUTF32toUTF16(&source, source + size, &temp,  temp + (size*2), lenientConversion);
+
+	TUint32 buflen = temp-buffer;
+	// Appending NULL to the converted buffer.
+	*temp = NULL;
+
+	WriteToFile(aPkgFileName, reinterpret_cast<const TUint8*>(buffer), buflen*2);
+	delete[] buffer;
+#endif
 	}
 
 void CDumpSis::CreatePackage(const CSISController& aSisController, const std::wstring& aPkgFileName)
@@ -89,7 +110,27 @@
 	outStream << wchar_t(0xfeff);
 	aSisController.AddPackageEntry (outStream, iVerbose);
 	std::wstring str = inStream.str();
+#ifndef __TOOLS2_LINUX__
 	WriteToFile(aPkgFileName, reinterpret_cast<const TUint8*>(str.c_str()), str.length()*2);
+#else
+	TUint32 size = str.size();
+	const wchar_t * source = str.c_str();
+	
+	unsigned short int* buffer = new unsigned short int[size*2];
+	
+	// Using a temp variable in place of buffer as ConvertUTF32toUTF16 modifies the source pointer passed.
+	unsigned short int* temp = buffer;
+	
+	//Converting to UTF-16 because makesis do not support UTF-32.	
+	ConvertUTF32toUTF16(&source, source + size, &temp,	temp + (size*2), lenientConversion);
+	
+	TUint32 buflen = temp-buffer;
+	// Appending NULL to the converted buffer.
+	*temp = NULL;
+	
+	WriteToFile(aPkgFileName, reinterpret_cast<const TUint8*>(buffer), buflen*2);
+	delete[] buffer;
+#endif
 	}
 
 void CDumpSis::ExtractFiles(const std::wstring& aTargetDir, TExtractionLevel aLevel)
--- a/secureswitools/swisistools/source/interpretsis/commandparser.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/source/interpretsis/commandparser.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -403,7 +403,7 @@
 				}
 			default:
 				{
-				LERROR(Utf8ToUcs2(std::string(optPtr)));
+				LERROR(string2wstring(std::string(optPtr)));
 				throw CCommandParser::ECmdLineUnknownOption;
 				}
 			}
@@ -464,8 +464,7 @@
 	while (currentPos != end)
 	    {
 		currentPos = std::find(it, end, ',');
-		std::wstring x;
-		Utf8ToUcs2(std::string(it,(currentPos-it)), x);
+		std::wstring x = string2wstring(std::string(it,(currentPos-it)));
 		//aOptionsList.push_back(x);
 		(aParamList.*aFilePtr)(x);
 
@@ -492,8 +491,7 @@
 	while (currentPos != end)
 	    {
 		currentPos = std::find(it, end, ',');
-		std::wstring x;
-		Utf8ToUcs2(std::string(it,(currentPos-it)), x);
+		std::wstring x = string2wstring(std::string(it,(currentPos-it)));
 
 		InstallSISFile sisFileName(x, '$', false);
 		aParamList.AddSISFile(sisFileName);
@@ -511,8 +509,7 @@
 	// As the sisfile attributes are predetermined input, therefore we can just
 	// parse according to the predetermined inputs.
 
-	std::wstring fileName;
-	Utf8ToUcs2(sisFileOption, fileName);
+	std::wstring fileName = string2wstring(sisFileOption);
 
 	InstallSISFile sisFileName(fileName, '$', false);
 		
--- a/secureswitools/swisistools/source/interpretsis/main.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/source/interpretsis/main.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -32,6 +32,22 @@
 #include "dirparse.h"
 #endif //SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 
+
+#ifndef _WIN32
+#include <ctype.h>
+
+//__ctype_b was removed from glibc. This is a workaround to fix the linking problem
+extern "C"
+    {
+    const unsigned short int** __ctype_b()
+        {
+        return __ctype_b_loc();
+        }
+    }
+
+#endif // _WIN32
+
+
 int main(int argc, const char* argv[])
 	{
 #ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK	
@@ -54,7 +70,7 @@
 
 		if (options.LogFile().size() > 0)
 			{
-			logFile = new std::wofstream(Ucs2ToUtf8(options.LogFile()).c_str(), std::ios::app);
+			logFile = new std::wofstream(wstring2string(options.LogFile()).c_str(), std::ios::app);
 			Logger::SetStream(*logFile);
 			}
 		else
@@ -131,7 +147,7 @@
     	}
 	catch  (InterpretSisError& e)
 		{
-		LERROR(L"\t" << Utf8ToUcs2(e.what()));
+		LERROR(L"\t" << string2wstring(e.what()));
 		result =  e.GetErrorCode();
 		}
 	catch (CSISException e)
@@ -150,7 +166,7 @@
 #endif
 	catch (std::exception &err)
 		{
-		std::wstring emessage = Utf8ToUcs2( err.what() );
+		std::wstring emessage = string2wstring( err.what() );
 		LERROR( L"Error: " << emessage);
 		result = STD_EXCEPTION;
 		}
@@ -167,7 +183,11 @@
 		BackupDb.append("_backup");
 		if (FileExists(string2wstring(BackupDb)))
 		{	
-			std::string command = "move " + BackupDb + " " + dbpath;
+			#ifdef __TOOLS2_LINUX__
+				std::string command = "mv " + BackupDb + " " + dbpath;
+			#else
+				std::string command = "move " + BackupDb + " " + dbpath;
+			#endif
 			int err = system(command.c_str());
 			if (err != 0)
 				LERROR(L"Failed to Restore src.db ");
--- a/secureswitools/swisistools/source/interpretsislib/adornedutilities.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/source/interpretsislib/adornedutilities.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -56,7 +56,11 @@
 	}
 }
 
+#ifndef __TOOLS2_LINUX__
 bool IsAdornedVariationOf(const std::wstring& aFileName1, const std::wstring& aFileName2)
+#else
+bool IsAdornedVariationOf(const std::wstring& aFileName1, const std::wstring& aFileName2, const std::wstring& aDrivePath)
+#endif
 {
 	std::wstring unadornedFileName1;
 	GetUnadornedFileName(aFileName1,unadornedFileName1);
@@ -64,6 +68,11 @@
 	std::wstring unadornedFileName2;
 	GetUnadornedFileName(aFileName2,unadornedFileName2);
 
+	#ifdef __TOOLS2_LINUX__
+	ConvertToLocalPath( unadornedFileName1, aDrivePath );
+	ConvertToLocalPath( unadornedFileName2, aDrivePath );
+	#endif
+
   	// Check whether filename2 is a variant of filename1
   	// e.g: d:\sys\bin\DummyDll{000A0001}.dll is considered a variant of c:\sys\bin\DummyDll.dll 
   	// because they both break down to \sys\bin\DummyDll.dll
@@ -73,7 +82,7 @@
 	std::wstring fileName2Path(StringUtils::Path(unadornedFileName2));
 	std::wstring fileName2NameAndExt(StringUtils::NameAndExt(unadornedFileName2));
 
-	return ((fileName1Path == fileName2Path) && (fileName1NameAndExt == fileName2NameAndExt));
+	return ( !wcscmp(fileName1Path.c_str(), fileName2Path.c_str()) && !wcscmp(fileName1NameAndExt.c_str(), fileName2NameAndExt.c_str()) );
 }
 	
 void FindAllAdornedVariants(const std::wstring& aSearchNameWild, const std::wstring& aSearchPath, std::list<std::wstring>& aAdornedFileNamesFound, const DrivesMap& aDriveMap)
--- a/secureswitools/swisistools/source/interpretsislib/adornedutilities.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/source/interpretsislib/adornedutilities.h	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -45,7 +45,11 @@
 @param aFileName1 first name to compare (full path and name)
 @param aFileName2 second name to compare (full path and name)
 */
+#ifndef __TOOLS2_LINUX__
 bool IsAdornedVariationOf(const std::wstring& aFileName1, const std::wstring& aFileName2);
+#else
+bool IsAdornedVariationOf(const std::wstring& aFileName1, const std::wstring& aFileName2, const std::wstring& aDrivePath);
+#endif
 	
 /** Searches through the file system looking for all variants of searchNameWild
 @param aSearchNameWild represents the filename pattern that is to be searched for (i.e: afile{????????}.ext)
--- a/secureswitools/swisistools/source/interpretsislib/configmanager.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/source/interpretsislib/configmanager.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -123,7 +123,7 @@
     if ( FileExists( fileName ) )
         {
     	std::string fName;
-        fName = Ucs2ToUtf8( fileName );
+        fName = wstring2string( fileName );
         //
         std::ifstream stream;
 	    stream.open( fName.c_str(), std::ios::binary );
@@ -382,7 +382,7 @@
 		std::ostringstream stream;
     	stream << "Unsupported keyword at line " << aLineNumber << " of ini file [" << aKey << " = " << aValue << "] ";
     	stream << std::endl;
-    	std::wstring finalMessage = Utf8ToUcs2( stream.str() );
+    	std::wstring finalMessage = string2wstring( stream.str() );
 		LWARN( finalMessage );
 		}
     }
@@ -398,7 +398,7 @@
 		if  ( KConfigAttributes[i].iId == aId )
 			{
 			std::wstring entry( KConfigAttributes[i].iName );
-            ret = Ucs2ToUtf8( entry );
+            ret = wstring2string( entry );
 			}
 		}
     //
@@ -411,7 +411,7 @@
 	std::string upperCased( aName );
     upperCased = StringUtils::ToUpper( upperCased );
     std::wstring searchFor;
-    searchFor = Utf8ToUcs2( upperCased );
+    searchFor = string2wstring( upperCased );
     //
     const int attributeCount = sizeof( KConfigAttributes ) / sizeof( ConfigAttribute );
     const ConfigAttribute* ret = NULL;
@@ -512,7 +512,7 @@
 			}
 
 		// Set the drive representation location
-		Utf8ToUcs2(std::string(it, (currentPos-it)), aDrive->iDir);
+		aDrive->iDir = string2wstring(std::string(it, (currentPos-it)));
 			
 		temp =  StringUtils::TrimWhiteSpace( std::string(currentPos, end) );
 
@@ -614,7 +614,7 @@
 		char drive = aDrive;
 	 	std::stringstream warn;
 		warn << "Redefining drive: " << drive;
-		std::wstring finalMessage = Utf8ToUcs2( warn.str() );
+		std::wstring finalMessage = string2wstring( warn.str() );
 		LWARN( finalMessage + L" to " + aDir);
 
 		delete it->second;
@@ -687,7 +687,7 @@
 			stream << "\'" << iValue << "\'" << " directory is not found";
 			break;
 		case ETypeDriveError:
-			LERROR( Utf8ToUcs2( iValue ) );
+			LERROR( string2wstring( iValue ) );
 			return;
 
 		default:
@@ -696,7 +696,7 @@
 		}
     //
     stream << std::endl;
-    std::wstring finalMessage = Utf8ToUcs2( stream.str() );
+    std::wstring finalMessage = string2wstring( stream.str() );
     //
 	LERROR( finalMessage );
     }
--- a/secureswitools/swisistools/source/interpretsislib/dbhelper.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/source/interpretsislib/dbhelper.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -38,13 +38,26 @@
 
 DbHelper::DbHelper( const std::wstring& aDrivePath, bool aIsSystemDrive)
 	{
-	std::string dllName = "sqlite3.dll";
+
+  #ifdef __LINUX__
+  std::string dllName = "sqlite-3.6.1.so"; 	  	  	 
+  #else 	  	  	 
+  std::string dllName = "sqlite3.dll"; 
+  #endif		
 	std::string dbName; 
 	
 	if (aIsSystemDrive)
+	#ifdef __TOOLS2_LINUX__
+		dbName = wstring2string(aDrivePath) + "/sys/install/scr/scr.db";
+	#else
 		dbName = wstring2string(aDrivePath) + "\\sys\\install\\scr\\scr.db";
+	#endif
 	else 
+	#ifdef __TOOLS2_LINUX__
+		dbName = wstring2string(aDrivePath) + "/sys/install/scr/provisioned/scr.db";
+	#else
 		dbName = wstring2string(aDrivePath) + "\\sys\\install\\scr\\provisioned\\scr.db";
+	#endif
 
 	std::wstring wdbname(string2wstring(dbName));
 	//Create the SCR DB if not present in the System Drive
@@ -60,14 +73,18 @@
 		std::string epocRootStr(epocRoot); 
 
 		#ifndef __TOOLS2_LINUX__
-		std::wstring swEnvInfo = string2wstring(epocRootStr) + L"epoc32\\tools\\create_db.xml";
+			std::wstring swEnvInfo = string2wstring(epocRootStr) + L"epoc32\\tools\\create_db.xml";
 		#else
-		std::wstring swEnvInfo = string2wstring(epocRootStr) + L"epoc32/tools/create_db.xml";
+			std::wstring swEnvInfo = string2wstring(epocRootStr) + L"epoc32/tools/create_db.xml";
 		#endif
 
 		if(FileExists(swEnvInfo))
 			{
-			std::string executable = "scrtool.exe";
+			#ifdef __TOOLS2_LINUX__
+				std::string executable = "scrtool";
+			#else
+				std::string executable = "scrtool.exe";
+			#endif
 			std::string command;
 			
 			command = executable + " -c " + dbName + " -f " + wstring2string(swEnvInfo);
@@ -97,7 +114,7 @@
 	catch(CException& aException)
 		{
 		int returnCode = aException.GetCode();
-		std::wstring emessage = Utf8ToUcs2( aException.GetMessageA() );
+		std::wstring emessage = string2wstring( aException.GetMessageA() );
 
 		returnCode = (returnCode == ExceptionCodes::ELibraryLoadError) ? LIBRARYLOAD_ERROR : returnCode;
 		throw InterpretSisError(emessage,returnCode);		
@@ -268,7 +285,7 @@
 	std::string selCompId("SELECT ComponentId FROM ComponentsFiles WHERE Location=?;");
 	std::auto_ptr<CStatement> stmtCompId(iScrDbHandler->PrepareStatement(selCompId));
 		
-	stmtCompId->BindStr(1, aFileName);
+	stmtCompId->BindStr(1, aFileName.c_str());
 	
 	TInt32 componentId = 0;
 	if(stmtCompId->ProcessNextRow())
@@ -280,7 +297,7 @@
 	std::string selCompPropsId("SELECT ComponentId FROM ComponentProperties WHERE StrValue=? and Name like 'WCFile%';");
 	std::auto_ptr<CStatement> stmtCompPropsId(iScrDbHandler->PrepareStatement(selCompPropsId));
 		
-	stmtCompPropsId->BindStr(1, aFileName);
+	stmtCompPropsId->BindStr(1, aFileName.c_str());
 	
 	if(stmtCompPropsId->ProcessNextRow())
 		{
--- a/secureswitools/swisistools/source/interpretsislib/deserialiser.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/source/interpretsislib/deserialiser.h	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -26,6 +26,8 @@
 #include "serialisable.h"
 #include "cardinality.h"
 #include "ucmp.h"
+#include "utf8_wrapper.h"
+#include "is_utils.h"
 
 #pragma warning (disable: 4800)
 
@@ -137,6 +139,50 @@
 	return *this;
 	}
 
+#ifdef __TOOLS2_LINUX__
+
+	Deserialiser& operator>>(std::wstring& val)
+	{
+		Cardinality card;
+		*this >> card;
+		TUint32 size = card;
+
+		TUint32 sizebackup = size;
+
+		unsigned short int* buff = 0;
+	
+		if (size & 0x01)
+		{
+			throw std::runtime_error("Decoding 8bit text into std::wstring");
+		}
+		else
+		{
+			size = size >> 1;
+			buff = new unsigned short int[(int)size];
+			TUnicodeExpander exp;
+			TMemoryUnicodeSink sink((TUint16*)buff);
+			exp.ExpandL(sink, *this ,size);
+			unsigned short int* source = buff;
+			wchar_t buffer[size];
+			// Using a temp variable in place of buffer as ConvertUTF16toUTF32 modifies the source pointer passed.
+			wchar_t* temp = buffer;
+	
+			ConvertUTF16toUTF32(&source, source + sizebackup, &temp,  temp + size, lenientConversion);
+	
+			// Appending NUL to the converted buffer.
+			*temp = 0;
+			val.assign(buffer, size);
+
+		}
+
+		ConvertToForwardSlash(val);
+
+		delete buff;
+		return *this;
+	}
+
+#else
+
 	Deserialiser& operator>>(std::wstring& val)
 	{
 
@@ -161,6 +207,7 @@
 	delete buff;
 	return *this;
 	}
+#endif
 
 	void read(TUint8* aDst, TUint32 aCount)
 	{
--- a/secureswitools/swisistools/source/interpretsislib/errors.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/source/interpretsislib/errors.h	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -88,7 +88,7 @@
         }
 
 	inline InterpretSisError( const std::wstring& aError, ErrorCodes aCode )
-        : std::runtime_error( Ucs2ToUtf8(aError) ), iCode( aCode )
+        : std::runtime_error( wstring2string(aError) ), iCode( aCode )
         {
         }
 
--- a/secureswitools/swisistools/source/interpretsislib/expressionevaluator.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/source/interpretsislib/expressionevaluator.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -32,7 +32,6 @@
 #include "sisregistryobject.h"
 #include "logger.h"
 #include "version.h"
-#include "is_utils.h"
 
 // ExpressionResult
 using namespace Utils;
@@ -108,9 +107,9 @@
 	    {
 		iExpressionDepth=0;
 		std::string error = "SIS File expression too complex\n";
-		std::string x;
+		std::string x = wstring2string(iExpEnv.GetPackageName());
         //
-		throw InvalidSis(Ucs2ToUtf8(iExpEnv.GetPackageName(),x), error, SIS_NOT_SUPPORTED);
+		throw InvalidSis(x, error, SIS_NOT_SUPPORTED);
 	    }
 
 	switch (aExpression.Operator())
@@ -248,9 +247,9 @@
 		{
 		iExpressionDepth=0;
 		std::string error = "SIS File contains user options\n";
-		std::string x;
+		std::string x = wstring2string(iExpEnv.GetPackageName());
         //
-		throw InvalidSis(Ucs2ToUtf8(iExpEnv.GetPackageName(),x), error, SIS_NOT_SUPPORTED);
+		throw InvalidSis(x, error, SIS_NOT_SUPPORTED);
 		}
 
 	case CSISExpression::EPrimTypeNumber:
@@ -261,9 +260,9 @@
 		{
 		iExpressionDepth=0;
 		std::string error = "SIS File contains unknown expression\n";
-		std::string x;
+		std::string x = wstring2string(iExpEnv.GetPackageName());
         //
-		throw InvalidSis(Ucs2ToUtf8(iExpEnv.GetPackageName(),x), error, SIS_NOT_SUPPORTED);
+		throw InvalidSis(x, error, SIS_NOT_SUPPORTED);
 		}
     	}
 
@@ -316,8 +315,7 @@
         }
 
     // Require for invalid file exception (also helps with debugging)
-    std::string narrowFileName;
-    narrowFileName = Ucs2ToUtf8( fileName, narrowFileName );
+	    std::string narrowFileName = wstring2string( fileName );
 
     // Now continue with file, assuming we've fixed up the path or then
     // have enough characters to process
@@ -345,8 +343,7 @@
             ConvertToLocalPath( fileName, iCDrive );
 
             // For debugging
-            narrowFileName = Ucs2ToUtf8( fileName, narrowFileName );
-
+			narrowFileName = wstring2string( fileName );
             fileExists = FileExists( fileName );
             break;
             }
@@ -363,7 +360,7 @@
 		std::ostringstream stream;
 		stream << "\tIF EXISTS(\'" << narrowFileName << "\') => " << fileExists;
 		std::string msg = stream.str();
-		std::wstring finalMessage = Utf8ToUcs2( msg );
+    std::wstring finalMessage = string2wstring( msg );
 		LINFO( finalMessage );
 		}
     //
@@ -428,7 +425,7 @@
 					std::ostringstream stream;
 					stream << "Input language " << result << " is not supported by SIS file. Using first language " <<firstLanguage;
 					std::string msg = stream.str();
-					std::wstring finalMessage = Utf8ToUcs2( msg );
+				std::wstring finalMessage = string2wstring( msg );
 					LWARN( finalMessage );	
 					}
 				result = firstLanguage;
@@ -439,7 +436,7 @@
 			std::ostringstream stream;
 			stream << "\tIF " << attributeName << " ... where [" << attributeName << " = " << result << "]";
 			std::string msg = stream.str();
-			std::wstring finalMessage = Utf8ToUcs2( msg );
+        std::wstring finalMessage = string2wstring( msg );
 			LINFO( finalMessage );
 			}
         }
@@ -453,8 +450,7 @@
     	}
     else
         {
-        std::string packageName;
-        packageName = Ucs2ToUtf8( GetPackageName(), packageName );
+        std::string packageName = wstring2string( GetPackageName() );
         //
 		std::string error = "SIS File contains HAL attributes\n";
 		throw InvalidSis( packageName, error, SIS_NOT_SUPPORTED );
--- a/secureswitools/swisistools/source/interpretsislib/installablefile.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/source/interpretsislib/installablefile.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -44,12 +44,17 @@
   iTargetFile(aFdes.Target().GetString()),
   iLocalTargetFile(aFdes.Target().GetString())
 {
+	// Transforming the file path into lower case to maintain consistency
+	// between Windows and Linux as Linux path is case-sensitive.
+	std::transform(iTargetFile.begin(), iTargetFile.end(), iTargetFile.begin(), tolower);
+	std::transform(iLocalTargetFile.begin(), iLocalTargetFile.end(), iLocalTargetFile.begin(), tolower);
+
 	// Update the installing file with the actual target drive letter
 	ChangeTargetDrive(aDrivePath, aInstallingDrive);
 
 	// warn the user if they are using a winscw emulator binary
 	if (aFdata->IsEmulatorExecutable())
-			LWARN(iTargetFile << L" is an emulator binary!");
+			LWARN(iTargetFile.c_str() << L" is an emulator binary!");
 }
 
 // PA SIS files		
@@ -64,6 +69,11 @@
   iTargetFile(aFdes.Target().GetString()),
   iLocalTargetFile(aFdes.Target().GetString())
   {
+	// Transforming the file path into lower case to maintain consistency
+	// between Windows and Linux as Linux path is case-sensitive.
+	std::transform(iTargetFile.begin(), iTargetFile.end(), iTargetFile.begin(), tolower);
+	std::transform(iLocalTargetFile.begin(), iLocalTargetFile.end(), iLocalTargetFile.begin(), tolower);
+
 	// Update the installing file with the actual target drive letter
 	ChangeTargetDrive(aDrivePath, aInstallingDrive);
 
@@ -86,7 +96,7 @@
 				iSid = info.iSecureId;
 				
 				if(fileType & EFileEmulatorExe)
-					LWARN(iTargetFile << L" is an emulator binary!");
+					LWARN(iTargetFile.c_str() << L" is an emulator binary!");
 				}
 			else if (fileType & EFileDll)
 				{
@@ -111,6 +121,9 @@
 {
 	// get the local path
 	ConvertToLocalPath(iLocalTargetFile,aDrivePath);
+#ifdef __TOOLS2_LINUX__
+	ConvertToForwardSlash(iTargetFile);
+#endif
 
 	// change the drive letter
 	if (StringUtils::StartsWithDrive(iTargetFile))
--- a/secureswitools/swisistools/source/interpretsislib/installer.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/source/interpretsislib/installer.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -57,7 +57,11 @@
 // Constants
 const char KRomDriveLetter = 'z';
 const TUint32 KSwiDaemonUid = 0x10202DCE;
+#ifndef __TOOLS2_LINUX__
 const std::wstring KSysBinPath = L"\\sys\\bin\\";
+#else
+const std::wstring KSysBinPath = L"/sys/bin/";
+#endif
 
 TInt CheckWildCard(TInt aVal, TInt aReplace)
 {
@@ -114,7 +118,11 @@
 
 		// Ensure formatting is correct
 		if ( StringUtils::IsLastCharacter( shortName, KDirectorySeparator[ 0 ] ) ||
+			 #ifndef __TOOLS2_LINUX__
              StringUtils::IsLastCharacter( shortName, L'/' ) )
+             #else
+			 StringUtils::IsLastCharacter( shortName, L'\\' ) )
+			 #endif
 		{
 			shortName.erase(shortName.length()-1,1);
 		}
@@ -201,7 +209,7 @@
 			catch  (InterpretSisError& e)
 				{
 				LERROR(L"Failed installing " << (curr->iFileName));
-				LERROR(L"\t" << Utf8ToUcs2(e.what()));
+				LERROR(L"\t" << string2wstring(e.what()));
 				curr = sisFiles.erase(curr);
 				
 				if (result == 0)
@@ -362,7 +370,7 @@
 	{
 		RestoreAll(file, installable, iBackupFlag);
 
-		LERROR(L"\t" << Utf8ToUcs2(e.what()));
+		LERROR(L"\t" << string2wstring(e.what()));
 		int result =  e.GetErrorCode();
 		return result;
 	
@@ -498,7 +506,7 @@
 	if (installType == CSISInfo::EInstAugmentation)
 	{
 		// Clean up the installed files from the specified SP package and the SisRegistry Entry
-		iRegistry.RemoveEntry(uid, aSis.GetPackageName(), aSis.GetVendorName());
+		iRegistry.RemoveEntry(uid, aSis.GetPackageName().c_str(), aSis.GetVendorName().c_str());
 	}
 
 	// Regenerate the ROM stub registry entries for eclipsing check later.
@@ -530,7 +538,7 @@
 			BackupDb.append("_backup");
 
 		 	err=FileCopyA(DbPath.c_str(),BackupDb.c_str(),0);
-			if (err == 0)
+			if (err != 0)
 				LERROR(L"Failed to Backup Database scr.db ");
 		}
 
@@ -543,9 +551,19 @@
 			if (FileExists(itargetLocalFile))
 			{
 				std::wstring itargetBackupFile = (*filedesIter)->GetLocalTarget();
-				itargetBackupFile.append(L"_backup");
+				std::wstring temp = itargetBackupFile.c_str();
+				temp.append(L"_backup");
+				itargetBackupFile = temp;
+
+
 				int pos =0;
-				if((pos = itargetBackupFile.find(L"\\sys\\bin\\", 0)) != std::wstring::npos)
+				#ifdef __LINUX__
+				std::wstring sysBin = L"/sys/bin/";
+				#else
+				std::wstring sysBin = L"\\sys\\bin\\";
+				#endif
+
+				if((pos = itargetBackupFile.find(sysBin, 0)) != std::wstring::npos)
 				{
 					BackupHashForFile(itargetLocalFile, iParamList.SystemDriveLetter(), iParamList.SystemDrivePath());
 				}
@@ -554,7 +572,7 @@
 				std::string iBackupFile = wstring2string(itargetBackupFile);
 
 				err=FileCopyA(iLocalFile.c_str(),iBackupFile.c_str(),0);
-				if (err == 0)
+				if (err != 0)
 					LERROR(L"Failed to Backup installable file ");
 			}
 		}
@@ -592,7 +610,9 @@
 		{
 		    itargetLocalFile = (*filedesIter)->GetLocalTarget();
 			itargetBackupFile = (*filedesIter)->GetLocalTarget();
-			itargetBackupFile.append(L"_backup");
+			std::wstring temp = itargetBackupFile.c_str();
+			temp.append(L"_backup");
+			itargetBackupFile = temp;
 			
 			if (FileExists(itargetBackupFile))
 			{
@@ -627,7 +647,13 @@
 			if (FileExists(itargetBackupFile))
 			{
 				int pos =0;
-				if((pos = itargetBackupFile.find(L"\\sys\\bin\\", 0)) != std::wstring::npos)
+				#ifdef __LINUX__
+				std::wstring sysBin = L"/sys/bin/";
+				#else
+				std::wstring sysBin = L"\\sys\\bin\\";
+				#endif
+
+				if((pos = itargetBackupFile.find(sysBin, 0)) != std::wstring::npos)
 				{
 					RestoreHashForFile(itargetLocalFile, iParamList.SystemDriveLetter(), iParamList.SystemDrivePath());
 				}
@@ -636,8 +662,7 @@
 				std::string iBackupFile = wstring2string(itargetBackupFile);
 				
 				int err = FileMoveA(iBackupFile.c_str(),iLocalFile.c_str());
-
-				if (err == 0)
+				if (err != 0)
 					LERROR(L"Failed to Restore file ");
 			}
 		}
@@ -923,8 +948,8 @@
         else
             {
 			// Unicode characters can not be displayed on DOS prompt
- 			std::string temporary = Ucs2ToUtf8(target);
-			std::wstring targetDisplay = Utf8ToUcs2( temporary );
+ 			std::string temporary = wstring2string(target);
+			std::wstring targetDisplay = string2wstring( temporary );
 		    LINFO(L"Installing file: " << targetDisplay);
 
             std::wstring targetDirectory = localTarget.substr( 0, localTarget.rfind( KDirectorySeparator ) );    		
@@ -975,8 +1000,15 @@
 			{
 				// register the hash
 				std::wstring basename = localTarget.substr( localTarget.rfind( KDirectorySeparator ) + 1 );
-				std::wstring hashdir = iSystemDrivePath + L"\\sys\\hash\\";
+				#ifndef __TOOLS2_LINUX__
+				// Remove the null character at the end and.
+				std::wstring tempStr = iSystemDrivePath.c_str();
+				std::wstring hashdir =  tempStr + L"\\sys\\hash\\";				
 				std::wstring reghashdir = L"$:\\sys\\hash\\";
+				#else
+				std::wstring hashdir = iSystemDrivePath + L"/sys/hash/";
+				std::wstring reghashdir = L"$:/sys/hash/";
+				#endif
 
 				if ( !MakeDir( hashdir ) )
 				{
@@ -987,8 +1019,7 @@
 				// hash file is always created on the system drive
 				reghashdir[0] = iSystemDrive;
 
-				LINFO(L"\tCreating hash: " << reghashdir << basename);
-
+				LINFO(L"\tCreating hash: " << reghashdir << basename);				
 				std::wstring hash = hashdir + basename;
 				HANDLE hFile = MakeSISOpenFile(hash.c_str(), GENERIC_WRITE, CREATE_ALWAYS);		
 				if( INVALID_HANDLE_VALUE == hFile )
@@ -1062,7 +1093,11 @@
 	// find all adorned variants in the ROM/ROFS logs
 	if (iParamList.IsFlagSet(CParameterList::EFlagsRomRofsLogFilesSet))
 	{
+	#ifndef __TOOLS2_LINUX__
 		std::wstring romSearchNameWild = L"z:\\sys\\bin\\";
+	#else
+		std::wstring romSearchNameWild = L"z:/sys/bin/";
+	#endif
 		romSearchNameWild.append(searchNameWild);
 		iRomManager.FindAllAdornedVariants(romSearchNameWild, aAdornedFileNamesFound);
 	}
@@ -1175,7 +1210,11 @@
 		{
 			// we are eclipsing a ROM file, check if this is authorised:
 			// see implementation of IsEclipsable()
+			#ifndef __TOOLS2_LINUX__
 			if (!IsEclipsable(searchNameUnadorned, aSUFlag))
+			#else
+			if (!IsEclipsable(searchNameUnadorned, aSUFlag, localDir))
+			#endif
 			{
 				result = false;
 				break;
@@ -1190,7 +1229,7 @@
 		// this drive should be added to iEclipsableOverwriteFiles.
 		if (processEclipsingSuspectsFoundOnThisDrive && unadornedFound)
 		{
-			iEclipsableOverwriteFiles.push_back(searchNameUnadorned);
+			iEclipsableOverwriteFiles.push_back(searchNameUnadorned.c_str());
 		}
 
 		if (processEclipsingSuspectsFoundOnThisDrive && adornedFound)
@@ -1206,7 +1245,7 @@
 				int drive = tolower(adornedFile[0]);
 				if (drive == disk)
 				{
-					iEclipsableOverwriteFiles.push_back(adornedFile);
+					iEclipsableOverwriteFiles.push_back(adornedFile.c_str());
 				}
 			}
 		}
@@ -1279,7 +1318,11 @@
  @param aRomFile fully qualified filename in ROM that is to be checked for eclipising (i.e: z:\sys\bin\some.dll)
  @param aSUFlag specifies if the installing SIS file has been signed by a SU certificate
 */
+#ifndef __TOOLS2_LINUX__
 bool Installer::IsEclipsable(std::wstring& aRomFile, bool aSUFlag)
+#else
+bool Installer::IsEclipsable(std::wstring& aRomFile, bool aSUFlag, const std::wstring& aDrivePath)
+#endif
 {
 	// SA/SP/PU sis + RU flag + signed by SU root cert is allowed
 	if (aSUFlag)
@@ -1303,7 +1346,11 @@
 		}
 		else if (goesToSysBin) // case 2
 		{
+			#ifndef __TOOLS2_LINUX__
 			if (IsAdornedVariationOf(eclipsableRomFile,aRomFile))
+			#else
+			if (IsAdornedVariationOf(eclipsableRomFile,aRomFile,aDrivePath))
+			#endif
 			{
 				isEclipsable = true;
 				break;
@@ -1337,8 +1384,8 @@
 		// do not display a warning if the installing file is a PA. The user
 		// needs to copy the installing files to the installing directory
 		// prior to installing the SIS file.
-		std::string tempTarget = Ucs2ToUtf8(aTarget);
-  	  	std::wstring targetDisplay = Utf8ToUcs2( tempTarget );
+		std::string tempTarget = wstring2string(aTarget);
+  	  	std::wstring targetDisplay = string2wstring( tempTarget );
 		if (aFile.GetInstallType() == CSISInfo::EInstPreInstalledApp)
 		{
 			LINFO(targetDisplay << L" found for PA installation");
@@ -1354,7 +1401,7 @@
 		if (isSp)
 		{
 			std::wostringstream os;
-			os << aTarget << L" overwrites file from base package 0x" << std::hex << owningUid << L" \"" << owningObj->GetPackageName() << L"\"" << std::endl;
+			os << aTarget.c_str() << L" overwrites file from base package 0x" << std::hex << owningUid << L" \"" << owningObj->GetPackageName() << L"\"" << std::endl;
 			iProblemFiles.append(os.str());
 			iError = ECLIPSING_VIOLATION;
 		}
@@ -1367,13 +1414,13 @@
 		if (isSp || (!aSUFlag && (isPu || isSa)))
 		{
 			std::wostringstream os;
-			os << aTarget << L" overwrites file from base package 0x" << std::hex << owningUid << L" \"" << owningObj->GetPackageName() << L"\"" << std::endl;
+			os << aTarget.c_str() << L" overwrites file from base package 0x" << std::hex << owningUid << L" \"" << owningObj->GetPackageName() << L"\"" << std::endl;
 			iProblemFiles.append(os.str());
 			iError = ECLIPSING_VIOLATION;
 		}
 		else
 		{
-			LWARN(aTarget << L" overwrites file from base package 0x" << std::hex << owningUid << L" \"" << owningObj->GetPackageName() << L"\"");
+		    LWARN(aTarget.c_str() << L" overwrites file from base package 0x" << std::hex << owningUid << L" \"" << owningObj->GetPackageName() << L"\"");
 		}
 	}
 }
@@ -1393,19 +1440,19 @@
 			std::wstring eclipseFile(*curr);
 
 			TUint32 owningUid = 0;
-			const SisRegistryObject* owningObj = iRegistry.OwningPackage(eclipseFile, owningUid);
+			const SisRegistryObject* owningObj = iRegistry.OwningPackage(eclipseFile.c_str(), owningUid);
 			
 			// always allow orphaned file overwriting
 			if (owningUid == 0)
 			{
-				LWARN(eclipseFile << L" eclipses orphaned file.");
+			    LWARN(eclipseFile.c_str() << L" eclipses orphaned file.");
 			}
 			else
 			{
 				// SP/PU can not overwrite a file belonging to a different base pkg or
 				// SP/PU can not eclipse a base package which is not in the ROM.
 				std::wostringstream os;
-				os << eclipseFile << L" eclipses file from package 0x" << std::hex << owningUid << L" \"" << owningObj->GetPackageName() << L"\"" << std::endl;
+				os << eclipseFile.c_str() << L" eclipses file from package 0x"  << std::hex << owningUid << L" \"" << owningObj->GetPackageName().c_str() << L"\""<< std::endl;
 				iProblemFiles.append(os.str());
 				iError = ECLIPSING_VIOLATION;
 				continue;
@@ -1427,10 +1474,17 @@
 	Sids sids;
 	GetSidsFromInstallable(aFiles, sids);
 
+	#ifndef __TOOLS2_LINUX__
 	const std::wstring privatePath = L":\\private\\";
 	const std::wstring sysPath = L":\\sys\\";
 	const std::wstring sysBinPath = L":\\sys\\bin\\";
 	const std::wstring resourcePath = L":\\resource\\";
+	#else
+	const std::wstring privatePath = L":/private/";
+	const std::wstring sysPath = L":/sys/";
+	const std::wstring sysBinPath = L":/sys/bin/";
+	const std::wstring resourcePath = L":/resource/";
+	#endif
 	const std::wstring exeType = L".exe";
 
     int num_of_files = aFiles.size();
@@ -1457,7 +1511,7 @@
         const CSISFileDescription* sisDescription = file->FileDescription();
 
 		// file to be installed
-		std::wstring target( file->GetTarget() );
+		std::wstring target( file->GetTarget().c_str() );
 
 		if (sisDescription->Operation() == CSISFileDescription::EOpText)
 			break;
@@ -1468,7 +1522,7 @@
 				{
 				// eclipsing problem
 				std::wostringstream os;
-				os << L"FN file \"" << target << L"\" can not remove a file from \\sys or \\resource" << std::endl;
+				os << L"FN file \"" << target.c_str() << L"\" can not remove a file from \\sys or \\resource" << std::endl;
 				iProblemFiles.append(os.str());
 				iError = DATA_CAGE_VIOLATION;
 				continue;
@@ -1476,7 +1530,7 @@
 			}
         else 
             {
-			std::wstring realTarget(file->GetLocalTarget());
+			std::wstring realTarget(file->GetLocalTarget().c_str());
 
 		    std::wstring romTarget(target);
 			romTarget[0] = KRomDriveLetter;
@@ -1488,8 +1542,9 @@
 				{
 					// eclipsing problem
 					std::wostringstream os;
-					os << target << L" eclipses file from ROM" << std::endl;
+					os << target.c_str() << L" eclipses file from ROM" << std::endl;
 					iProblemFiles.append(os.str());
+
 					iError = ECLIPSING_VIOLATION;
 					continue;
 				}
@@ -1540,14 +1595,17 @@
 
 						const int KUidStringLength = 8;
 						std::wstring importPath = privatePath;
-
+						#ifndef __TOOLS2_LINUX__
 						importPath.append( uidStr.str() + L"\\import" );
+						#else
+						importPath.append( uidStr.str() + L"/import" );
+						#endif
 
 						if ((target.find(importPath,0) == std::wstring::npos) && !suFlag)
 						{
 							// only SA with RU + SU and PU with RU + SU flag can override other private directory
 							std::wostringstream os;
-							os << target << L" cannot be written to a private directory which "
+							os << target.c_str() << L" cannot be written to a private directory which "
 								<< L"does not belong to any exe in this package" << std::endl;
 							iProblemFiles.append(os.str());
 							iError = DATA_CAGE_VIOLATION;
@@ -1617,8 +1675,8 @@
 					{
 						std::wostringstream os;
 										
-						os << L"The existing file " << owningSidFile << L" already has the SID 0x" << std::hex << sid
-						   << std::dec << L", cannot install " << target << std::endl;
+						os << L"The existing file " << owningSidFile.c_str() << L" already has the SID 0x" << std::hex << sid
+						   << std::dec << L", cannot install " << target.c_str() << std::endl;
 						iProblemFiles.append(os.str());
 						iError = DUPLICATE_SID;
 						continue;
@@ -1642,7 +1700,7 @@
 							{
 								const CSISFileDescription* fD = *iter;
 
-								std::wstring romStubTarget(fD->Target().GetString());
+								std::wstring romStubTarget(fD->Target().GetString().c_str());
 
 								if (StringUtils::WildcardCompare(romStubTarget,romFileWithDuplicateSid))
 								{
@@ -1663,7 +1721,7 @@
 						std::wostringstream os;
 											
 						os << L"A ROM file already has the SID 0x" << std::hex << file->Sid()
-						   << std::dec << L", cannot install " << target << std::endl;
+						   << std::dec << L", cannot install " << target.c_str() << std::endl;
 						iProblemFiles.append(os.str());
 						iError = DUPLICATE_SID;
 						continue;
@@ -1673,7 +1731,7 @@
 		    else if (realTarget.find(sysBinPath) != std::wstring::npos)
 		    {
 				std::wostringstream os;
-				os << target << L" cannot be installed to a data caged area" << std::endl;
+				os << target.c_str() << L" cannot be installed to a data caged area" << std::endl;
 				iProblemFiles.append(os.str());
 				iError = DATA_CAGE_VIOLATION;
 				continue;
@@ -1689,8 +1747,8 @@
 
 	if (!iProblemFiles.empty())
 	{
-		std::string x;
-		throw InvalidSis("", Ucs2ToUtf8(iProblemFiles,x), iError);
+		std::string x = wstring2string(iProblemFiles);
+		throw InvalidSis("", x, iError);
 	}
 }
 
@@ -1728,8 +1786,11 @@
 {
 	int targetDrive = aInstallSISFile.iTargetDrive;
 	std::wstring drivePath = iConfigManager.GetLocalDrivePath(targetDrive);
-	
+	#ifndef __TOOLS2_LINUX__
 	drivePath.append(L"\\private\\");
+	#else
+	drivePath.append(L"/private/");
+	#endif
 
 	// build SwiDaemon Pathname
 	std::wstring ctrl = StringUtils::MakePathFromSID(drivePath, KSwiDaemonUid);
@@ -1744,7 +1805,6 @@
 
 	ctrl.append(s.str());
 
-
 	switch(aSis.GetInstallType())
     {
 	case CSISInfo::EInstInstallation:
--- a/secureswitools/swisistools/source/interpretsislib/installer.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/source/interpretsislib/installer.h	Wed Aug 18 09:55:45 2010 +0300
@@ -116,7 +116,11 @@
 	bool IsValidEclipsingUpgrade(const SisFile& aSis, const SisRegistryObject& registryEntry);
 	bool ValidEclipse(const SisFile& aFile, const std::wstring& target, const InstallableFile& aInstallableFile, bool aSUFlag);
 	void HandleFileOverwriting(const SisFile& aFile, const std::wstring& target, bool aSUFlag);
+	#ifndef __TOOLS2_LINUX__
 	bool IsEclipsable(std::wstring& aRomFile, bool aSUFlag);
+	#else
+	bool IsEclipsable(std::wstring& aRomFile, bool aSUFlag, const std::wstring& aDrivePath);
+	#endif
 	void FilterNonBlockingFilesOfFilename(const SisFile& aFile, const std::wstring& target);
 	void WarnEclipseOverWrite(const SisFile& aFile);
 
--- a/secureswitools/swisistools/source/interpretsislib/is_utils.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/source/interpretsislib/is_utils.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -75,20 +75,71 @@
 }
 
 
+void ConvertToPlatformSpecificPath( TUint16* aIn, TUint32 len )
+{
+    while( len-- > 0 )
+    {
+	#ifdef __TOOLS2_LINUX__
+    	if( *aIn == '\\' )
+    	{
+    		*aIn = '/';
+    	}
+	#else
+    	if( *aIn == '/' )
+    	{
+    		*aIn = '\\';
+    	}
+	#endif
+		
+    	aIn++;
+    }
+}
+
+#ifdef __TOOLS2_LINUX__
+void ConvertToForwardSlash( std::wstring& aIn)
+{
+	std::wstring::size_type idx = 0;
+	
+	while( (idx = aIn.find(L"\\", idx)) != std::wstring::npos)
+		{
+		aIn.replace( idx, 1, KDirectorySeparator );
+		}
+}
+#endif
+
+
 void ConvertToLocalPath( std::wstring& aIn, const std::wstring& aDrivePath )
 {
 	std::wstring::size_type idx = 0;
-	while( (idx = aIn.find(L"\\\\", idx)) != std::wstring::npos)
+
+	#ifndef __TOOLS2_LINUX__
+	while( (idx = aIn.find(L"//", idx)) != std::wstring::npos)
         {
-		aIn.replace( idx, 4, KDirectorySeparator );
+		aIn.replace( idx, 2, KDoubleSlashPathPrefix );
         }
-	//
+
     idx = 0;
+
 	while( (idx = aIn.find(L"/", idx)) != std::wstring::npos)
         {
 		aIn.replace( idx, 1, KDirectorySeparator );
         }
-    
+    #else
+
+	idx = 0;
+
+	while( (idx = aIn.find(L"\\\\", idx)) != std::wstring::npos)
+        {
+		aIn.replace( idx, 2, KDoubleSlashPathPrefix );
+        }
+
+	idx = 0;
+
+	while( (idx = aIn.find(L"\\", idx)) != std::wstring::npos)
+        {
+		aIn.replace( idx, 1, KDirectorySeparator );
+        }
+	#endif
     // If the first two characters represent a drive specification
     // then replace them entirely with the value from the 
     // PC's path ('aDrivePath').
@@ -98,15 +149,14 @@
     const bool startsWithDrive = StringUtils::StartsWithDrive( aIn );
     if ( startsWithDrive )
     {
-	    aIn.replace(aIn.begin(), aIn.begin()+2, aDrivePath);
+	    aIn.replace(aIn.begin(), aIn.begin()+2, aDrivePath.c_str());
     }
     else
     {
-        aIn.insert( 0, aDrivePath );
+        aIn.insert( 0, aDrivePath.c_str() );
     }
 }
 
-
 struct TPair {
 	TUint16 first; 
 	TUint16 second;
@@ -1008,10 +1058,22 @@
 }
 int FoldedCompare(const std::wstring& aLeft, const std::wstring& aRight)
 {
-	std::wstring::const_iterator l  = aLeft.begin();
-	std::wstring::const_iterator r  = aRight.begin();
-	std::wstring::const_iterator le = aLeft.end();
-	std::wstring::const_iterator re = aRight.end();
+	std::wstring iLeft=aLeft.c_str();
+	std::wstring iRight=aRight.c_str();
+
+#ifdef __TOOLS2_LINUX__
+	std::wstring::size_type idx = 0;
+
+	while( (idx = iLeft.find(L"\\", idx)) != std::wstring::npos)
+        {
+		iLeft.replace( idx, 1, KDirectorySeparator );
+        }
+#endif
+
+	std::wstring::const_iterator l  = iLeft.begin();
+	std::wstring::const_iterator r  = iRight.begin();
+	std::wstring::const_iterator le = iLeft.end();
+	std::wstring::const_iterator re = iRight.end();
 
 	while (l != le && r != re)
 	{
@@ -1025,7 +1087,7 @@
 		++r;
 	}
 
-	return aLeft.size() - aRight.size();
+	return iLeft.size() - iRight.size();
 }
 
 int ReadSecurityInfo( SBinarySecurityInfo& aInfo, const std::wstring aFileName )
@@ -1045,7 +1107,12 @@
         throw "Failed in redirection operation";
 	}
 
+#ifndef __LINUX__
     nulStdErr = fopen("NUL:" , "w");
+#else
+    nulStdErr = fopen("/dev/null", "w");
+#endif
+
     if  (!nulStdErr)
 	{
         throw "Failed in redirection operation";
@@ -1087,3 +1154,25 @@
 		} // end for i
 	}
 
+const std::wstring Utils::IntegerToWideString(int aInt)
+	{
+	std::wstringstream wstream;
+	wstream << aInt;
+	return wstream.str();
+	}
+
+std::wstring Utils::Int64ToWideString(TInt64 aInt)
+	{
+	std::wstringstream strInt64;
+	strInt64 << aInt;
+	return strInt64.str();
+	}
+
+int Utils::WideStringToInteger(const std::wstring& aWideString)
+	{
+	unsigned long int value=0;
+	std::wstringstream str(aWideString);
+	str >> value;
+	return value;
+	}
+
--- a/secureswitools/swisistools/source/interpretsislib/is_utils.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/source/interpretsislib/is_utils.h	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -75,6 +75,10 @@
 
 	int GetStat(const std::wstring& aFile, struct stat*);
 
+	void ConvertToPlatformSpecificPath( TUint16* aIn, TUint32 len );
+	#ifdef __TOOLS2_LINUX__
+	void ConvertToForwardSlash( std::wstring& aIn);
+	#endif
 	void ConvertToLocalPath(
 		std::wstring& aIn,
 		const std::wstring& aDrivePath);
@@ -140,9 +144,6 @@
 			dp38,  dp39,  dp40,  dp41,  dp42,  dp43,  dp44,  dp45};
 	 
 	void GetEquivalentLanguageList(CSISLanguage::TLanguage aLang, TLanguagePath& aEquivalents); 
-	std::string wstring2string (const std::wstring& aWide);
-
-	std::wstring string2wstring (const std::string& aNarrow);
 
 	const std::wstring IntegerToWideString(int aInt);
 
--- a/secureswitools/swisistools/source/interpretsislib/rommanager.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/source/interpretsislib/rommanager.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -29,8 +29,13 @@
 #include "is_utils.h"
 
 // String constants
+#ifndef __TOOLS2_LINUX__
 const std::wstring KRomManagerSysBinPath 			= L"z:\\sys\\bin\\";
 const std::string KRomManagerRomDrive               = "Z:\\";
+#else
+const std::wstring KRomManagerSysBinPath 			= L"z:/sys/bin/";
+const std::string KRomManagerRomDrive               = "Z:/";
+#endif
 const std::string KRomManagerRomLogProcessingFile   = "Processing file ";
 const std::string KRomManagerRomLogReadingResource  = "Reading resource ";
 const std::string KRomManagerRomLogReadingResource2 = " to rom linear address";
@@ -146,7 +151,7 @@
     {
     for( std::list<std::wstring>::const_iterator it = aLogFileNames.begin() ; it != aLogFileNames.end(); it++ )
         {
-    	std::string narrowLogFileName = Ucs2ToUtf8( *it );
+    	std::string narrowLogFileName = wstring2string( *it );
     	std::string narrowUpperCaseLogFileName = StringUtils::ToUpper( narrowLogFileName );
 
         // Get the base name
@@ -188,7 +193,7 @@
 
     // Get filename & convert it to uppercase, since our map key is
     // also in upper case form.
-    std::string narrowFileName = Ucs2ToUtf8( aFileName );
+    std::string narrowFileName = wstring2string( aFileName );
     narrowFileName = StringUtils::ToUpper( narrowFileName );
 
     // Do we have a corresponding entry?
@@ -210,7 +215,7 @@
 
 	for ( ; curr != end ; ++curr)
 		{
-		std::wstring romFile = Utf8ToUcs2(curr->first);
+		std::wstring romFile = string2wstring(curr->first);
 		if (StringUtils::WildcardCompare(searchNameWild,romFile))
 			{
 			aAdornedFileNamesFound.push_back(romFile);
@@ -233,7 +238,7 @@
 				TUint32 romSid = romEntry->SecurityInfo().iSecureId;
 				if (romSid != 0 && romSid == aSid)
 					{
-					aFile = Utf8ToUcs2(romEntry->RomFileName());
+					aFile = string2wstring(romEntry->RomFileName());
 					return true;
 					}
 				}
@@ -248,7 +253,7 @@
 
     // Get filename & convert it to uppercase, since our map key is
     // also in upper case form.
-    std::string narrowFileName = Ucs2ToUtf8( aFileName );
+    std::string narrowFileName = wstring2string( aFileName );
     narrowFileName = StringUtils::ToUpper( narrowFileName );
 
     // Do we have a corresponding entry?
@@ -269,7 +274,7 @@
 
 void RomManagerLogFiles::ReadObyFile( const std::string& aFileName )
     {
-	std::wstring fileName = Utf8ToUcs2( aFileName );
+	std::wstring fileName = string2wstring( aFileName );
     if ( FileExists( fileName ) )
         {
     	std::ifstream stream;
@@ -570,7 +575,7 @@
 	}
     //
     stream << std::endl;
-    std::wstring finalMessage = Utf8ToUcs2( stream.str() );
+    std::wstring finalMessage = string2wstring( stream.str() );
     //
 	LERROR( finalMessage );
     }
--- a/secureswitools/swisistools/source/interpretsislib/serialiser.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/source/interpretsislib/serialiser.h	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -26,6 +26,7 @@
 #include "serialisable.h"
 #include "ucmp.h"
 #include "cardinality.h"
+#include "utf8_wrapper.h"
 
 /**
 * @file SERIALISER.H
@@ -81,15 +82,49 @@
 
 	Serialiser& operator<<(std::wstring& val)
 	{
+
+	std::wstring tempval = val.c_str();
+	
+#ifdef __TOOLS2_LINUX__
+	std::wstring::size_type idx = 0;
+	while( (idx = tempval.find(L"/", idx)) != std::wstring::npos)
+        {
+		tempval.replace( idx, 1, L"\\" );
+        }
+#endif
+
 	Cardinality card;
-	TUint32 size = val.size() << 1;
+	TUint32 size = tempval.size() << 1;
+
+#ifdef __TOOLS2_LINUX__
+	const wchar_t * source = tempval.c_str();
+	unsigned short int* buffer = new unsigned short int[size];
+
+	// Using a temp variable in place of buffer as ConvertUTF32toUTF16 modifies the source pointer passed.
+	unsigned short int* temp = buffer;
+
+	ConvertUTF32toUTF16(&source, tempval.c_str() + tempval.size(), &temp,  temp + size, lenientConversion);
+
+	// Appending NULL to the converted buffer.
+	*temp = NULL;
+#endif
+	
 	card.SetSize(size);
 	*this << card;
 
 	TUnicodeCompressor comp;
-	TMemoryUnicodeSource src((TUint16*)val.c_str());
+
+#ifdef __TOOLS2_LINUX__
+	TMemoryUnicodeSource src((TUint16*)buffer);
+#else
+	TMemoryUnicodeSource src((TUint16*)tempval.c_str());
+#endif
+
 	//The compressed unicode output could end up larger than the input, thus restricting the output to KMaxTInt.
-	comp.CompressL(*this, src, KMaxTInt, val.size());
+	comp.CompressL(*this, src, KMaxTInt, tempval.size());
+#ifdef __TOOLS2_LINUX__
+	delete[] buffer;
+#endif
 	return *this;
 	}
 
--- a/secureswitools/swisistools/source/interpretsislib/sisfile.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/source/interpretsislib/sisfile.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -204,10 +204,10 @@
 
 	if (failed)
 		{
-		std::string x;
-		throw InvalidSis(Ucs2ToUtf8(this->GetPackageName(),x),
-			error, SIS_NOT_SUPPORTED);
+		std::string x = wstring2string(this->GetPackageName());
+		throw InvalidSis(x, error, SIS_NOT_SUPPORTED);
 		}
+
 	}
 
 bool SisFile::ProcessInstallOptionsWarning(const CSISInstallBlock& aInstallBlock, std::string& aError)
@@ -219,7 +219,7 @@
 		{
 		const CSISFileDescription& fD = aInstallBlock.FileDescription(i);
         const CSISFileDescription::TSISFileOperation operation = fD.Operation();
-		std::wstring target(fD.Target().GetString());
+		std::wstring target(fD.Target().GetString().c_str());
         //
         switch( operation )
             {
@@ -263,6 +263,7 @@
             success = true;
             break;
         case CSISFileDescription::EOpNull:
+		case CSISFileDescription::EOpNone:
             success = true;
             break;
         default:
@@ -276,6 +277,7 @@
 			break;
 	    	}
 		}
+		return success;
 	}
 
 
--- a/secureswitools/swisistools/source/interpretsislib/sisregistry.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/source/interpretsislib/sisregistry.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -23,7 +23,6 @@
 #include "dbhelper.h"
 #include "dblayer.h"
 #include "dbconstants.h"
-#include "is_utils.h"
 #include "xmlgenerator.h"
 #include "xmlparser.h"
 #include "util.h"
@@ -53,6 +52,7 @@
 // SisX Library Includes
 #include "sisfiledescription.h"
 #include "sisstring.h"
+#include "utility.h"
 
 // User Includes
 #include "sisregistry.h"
@@ -66,9 +66,15 @@
 #include "configmanager.h"
 
 // Constants
+#ifndef __TOOLS2_LINUX__
 const std::wstring SisRegistry::KPathToRegistry(L"\\sys\\install\\sisregistry/");
 const std::wstring SisRegistry::KPathToRomStubs(L"\\system\\install\\");
 const std::wstring SisRegistry::KPathToRegistryVersionMarker(L"\\system\\data\\");
+#else
+const std::wstring SisRegistry::KPathToRegistry(L"/sys/install/sisregistry/");
+const std::wstring SisRegistry::KPathToRomStubs(L"/system/install/");
+const std::wstring SisRegistry::KPathToRegistryVersionMarker(L"/system/data/");
+#endif
 const std::wstring KRegistryEntry(L"00000000.reg");
 const std::wstring KControllerEntry(L"00000000_0000.ctl");
 const std::wstring KBackupLst(L"backup.lst");
@@ -83,9 +89,13 @@
 const std::wstring SisRegistry::KRegistryV52(L"sisregistry_5.2.txt");
 const std::wstring SisRegistry::KRegistryV53(L"sisregistry_5.3.txt");
 const std::wstring SisRegistry::KRegistryV54(L"sisregistry_5.4.txt");
+#ifndef __TOOLS2_LINUX__
 const std::wstring SisRegistry::KRomStubDir(L"z:\\system\\install\\");
 const std::wstring SisRegistry::KRomRegistryVersionMarker(L"z:\\system\\data\\");
-
+#else
+const std::wstring SisRegistry::KRomStubDir(L"z:/system/install/");
+const std::wstring SisRegistry::KRomRegistryVersionMarker(L"z:/system/data/");
+#endif
 const std::string SisRegistry::KRegistryV40string("4.0");
 const std::string SisRegistry::KRegistryV50string("5.0");
 const std::string SisRegistry::KRegistryV51string("5.1");
@@ -547,9 +557,7 @@
 	
 	while(it != iEntries.end())
 	    {
-		if (aUid == it->first &&
-			aPackageName == it->second->GetPackageName() &&
-			aVendorName == it->second->GetVendorName())
+		if (aUid == it->first && !wcscmp(aPackageName.c_str(), it->second->GetPackageName().c_str()) && aVendorName == it->second->GetVendorName() )
 			{
 			LINFO(L"Removing package \"" << it->second->GetPackageName() 
 					<< L"\" prior to re-installation");
@@ -950,7 +958,11 @@
 	{
 	return (aFileName.find(L'?') != std::wstring::npos || 
 			aFileName.find(L'*') != std::wstring::npos || 
+			#ifndef __TOOLS2_LINUX__
 			aFileName[aFileName.length() - 1] == L'\\');
+			#else
+			aFileName[aFileName.length() - 1] == L'/');
+			#endif
 	}
 
 
@@ -1032,7 +1044,11 @@
 			continue;
 		
 		std::fstream input;
+		#ifndef __TOOLS2_LINUX__
 		std::wstring filename(aPath + L"\\" + *c);
+		#else
+		std::wstring filename(aPath + L"/" + *c);
+		#endif
 		
 		OpenFile(filename.c_str(), input, std::fstream::in | std::fstream::binary);
 		
@@ -1043,7 +1059,7 @@
 					
 		if (!obj)
 			{
-			throw std::runtime_error("Cannot create SisRegistryObject for " + Ucs2ToUtf8(filename));
+			throw std::runtime_error("Cannot create SisRegistryObject for " + wstring2string(filename));
 			}
 		Deserialiser des(input);
 		
@@ -1243,7 +1259,7 @@
 				
 				msg.append(L" does not have any SisRegistry file");
 				
-				throw std::runtime_error( Ucs2ToUtf8(msg) );
+				throw std::runtime_error( wstring2string(msg) );
 				}
 
 			aObj.SetIndex( index );
@@ -1255,7 +1271,7 @@
 				
 				msg.append(L" directory NOT found");
 
-				throw std::runtime_error( Ucs2ToUtf8(msg) );
+				throw std::runtime_error( wstring2string(msg) );
 				}
 			}    
 		}
@@ -1278,7 +1294,7 @@
 				
 				msg.append(L" directory NOT found");
 
-				throw std::runtime_error( Ucs2ToUtf8(msg) );
+				throw std::runtime_error( wstring2string(msg) );
 				}
 			}    
 		}
@@ -1331,7 +1347,7 @@
 		
 			msg.append(L" does not have any Sis Controller file");
 
-			throw std::runtime_error( Ucs2ToUtf8(msg) );
+			throw std::runtime_error( wstring2string(msg) );
 			}
 		}
 
@@ -1450,13 +1466,27 @@
 void SisRegistry::UpdateInstallationInformation(XmlDetails::TScrPreProvisionDetail aScrPreProvisionDetail)
 	{
 	CXmlGenerator xmlGenerator;
-	char* tmpFileName = tmpnam(NULL);
+
+	#ifndef __TOOLS2_LINUX__
+		char* tmpFileName = tmpnam(NULL);	
+	#else
+		char tmpFileName[] = "/tmp/interpretsis_XXXXXX";	
+		int temp_fd;
+		temp_fd=mkstemp(tmpFileName); 
+		fclose(fdopen(temp_fd,"w"));
+	#endif
+
 	std::wstring filename(string2wstring(tmpFileName));
 
 	int isRomApplication = 0;
 	xmlGenerator.WritePreProvisionDetails(filename , aScrPreProvisionDetail, isRomApplication);
-						
+
+	#ifdef __TOOLS2_LINUX__
+	std::string executable = "scrtool";
+	#else
 	std::string executable = "scrtool.exe";
+	#endif
+
 	std::string command;
 	command = executable + " -d " + GetDbPath() + " -p " + tmpFileName;
 
@@ -1481,16 +1511,23 @@
 		iParamList.IsFlagSet(CParameterList::EFlagsDisableZDriveChecksSet) 
 		)
 		{
+		#ifndef __TOOLS2_LINUX__
 		return wstring2string(iParamList.SystemDrivePath()) + "\\sys\\install\\scr\\scr.db";
+		#else
+		return wstring2string(iParamList.SystemDrivePath()) + "/sys/install/scr/scr.db";
+		#endif
 		}
-
+	#ifndef __TOOLS2_LINUX__
 	return wstring2string(iParamList.RomDrivePath()) + "\\sys\\install\\scr\\provisioned\\scr.db";
+	#else
+	    return wstring2string(iParamList.RomDrivePath()) + "/sys/install/scr/provisioned/scr.db";
+	#endif
 	
 	}
 
 std::string SisRegistry::GetEpocRoot()
 	{
-	const char* epocRoot = getenv("EPOCROOT");
+	const char* epocRoot = getenv("EPOCROOT");	
 	if(NULL == epocRoot)
 		{
 		std::string err = "EPOCROOT environment variable not specified. Please specify it as part of your environment variable." \
@@ -1513,7 +1550,8 @@
 #else		
 		swprintf(textGlobalId,20,L"%08x",aUid);
 #endif
-	
+		
+
 	std::wstring globalId = textGlobalId;
 	
 	if( aInstallType == CSISInfo::EInstAugmentation || aInstallType == CSISInfo::EInstPreInstalledPatch )
@@ -1646,7 +1684,7 @@
 			ibackupfile.append("_backup");
 
 			int err=FileCopyA(ifile.c_str(),ibackupfile.c_str(),0);
-			if (err == 0)
+			if (err != 0)
 				LERROR(L"Failed to Backup .ctl ");
 		}
 		++currFile;
@@ -1676,7 +1714,7 @@
 
 					RemoveFile(path + *currFile);
 				 	int err = FileMoveA(ibackupfile.c_str(),ifile.c_str());
-					if (err == 0)
+					if (err != 0)
 						LERROR(L"Failed to Restore .ctl ");
 				}
 			}
@@ -1914,8 +1952,8 @@
 	// The property is a concatenation of the algorithm id and the hash data
 	const std::string hashData = aHashContainer.GetData();
 		
-	std::string encodedHashData = Util::Base64Encode(hashData);
-	std::wstring wideHashData = Utils::string2wstring(encodedHashData);
+	std::string encodedHashData = Util::Base64Encode(hashData);	
+	std::wstring wideHashData = string2wstring(encodedHashData);
 	AddComponentProperty( aComponent, DbConstants::CompControllerHashData, wideHashData, aCount, true);
 
 	}
@@ -2075,7 +2113,7 @@
 	for(filedesIter = aFileDescription.begin() ; filedesIter != aFileDescription.end(); ++filedesIter)
 	{
 		// if it has wild card characters then donot process. Continue.
-		if( IsFileWideCard((*filedesIter)->GetLocalFile()) ) 
+		if( IsFileWideCard((*filedesIter)->GetLocalFile()) )
 		{
 			continue;
 		}
@@ -2101,7 +2139,13 @@
 			continue;
 
 		std::string folder;
-		found=RegistrationFileName.find("private\\10003a3f\\");
+		#ifdef __LINUX__
+		const char *privateFolder = "private/10003a3f/";
+		#else
+		const char *privateFolder = "private\\10003a3f\\";
+		#endif
+
+		found=RegistrationFileName.find(privateFolder);
 
 		if( found != string::npos ) 
 			folder = RegistrationFileName.substr(0,found); 
@@ -2184,7 +2228,7 @@
 	if(!aFileDescription->GetHash().GetData().empty())
 		{
 		std::string binHashData = Util::Base64Encode(aFileDescription->GetHash().GetData());
-		std::wstring hashData = Utils::string2wstring(binHashData);
+		std::wstring hashData = string2wstring(binHashData);
 		AddFileProperty( aComponentFile, DbConstants::FileHashData, hashData, true);
 		}
 	}
--- a/secureswitools/swisistools/source/interpretsislib/sisregistry.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/source/interpretsislib/sisregistry.h	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -95,6 +95,7 @@
 	static const std::string KRegistryV52string;
 	static const std::string KRegistryV53string;
 	static const std::string KRegistryV54string;
+	typedef std::multimap<TUint32, SisRegistryObject*> EntryMap;
 
 private: // Internal methods
     void ReadStubs( const std::wstring& aDirectory );
@@ -129,9 +130,6 @@
 private: // Friends
 	friend struct Contains;
 
-private: // Type definitions
-	typedef std::multimap<TUint32, SisRegistryObject*> EntryMap;
-
 private: // Constants
 	static const std::wstring KPathToRegistry;
 	static const std::wstring KPathToRomStubs;
--- a/secureswitools/swisistools/source/interpretsislib/sisregistryobject.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/source/interpretsislib/sisregistryobject.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -150,7 +150,7 @@
 		iProperties.push_back(p);
 		}
 
-	const const CSISArray<CSISDependency, CSISFieldRoot::ESISDependency>& deps =
+	const CSISArray<CSISDependency, CSISFieldRoot::ESISDependency>& deps =
 		aSis.GetDependencies()->DependencyList();
 
 	for(i = 0; i < deps.size(); ++i)
@@ -408,9 +408,9 @@
 		}
 	else
 	{
-		std::string x;
 		std::string error = "can not retrieve localized vendor name";
-		throw InvalidSis(Ucs2ToUtf8((std::wstring)packageName,x), error, INVALID_SIS);
+		std::string x = wstring2string((std::wstring)packageName);
+		throw InvalidSis(x, error, INVALID_SIS);
 	}
 
 	// Signed by SU cert
--- a/secureswitools/swisistools/source/interpretsislib/stringutils.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/source/interpretsislib/stringutils.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -30,6 +30,7 @@
 #include "is_utils.h"
 #include "logger.h"
 #include "utility_interface.h"
+#include "util.h"
 
 // Constants
 const int KInterpretSISExpectedSIDLength = 8;
@@ -51,14 +52,29 @@
 	// then the function will return 0
 	int ret = 0; 
 	int pos = 0;
-	if((pos = aPath.find(L"/", aIndex)) != std::wstring::npos)
+	#ifndef __TOOLS2_LINUX__
+	if((pos = aPath.find(L"//", aIndex)) != std::wstring::npos)
+		{
+		ret = 2;
+		}
+	#else
+	if((pos = aPath.find(L"\\\\", aIndex)) != std::wstring::npos)
+		{
+		ret = 2;
+		}
+	#endif
+
+	#ifndef __TOOLS2_LINUX__
+	else if((pos = aPath.find(L"/", aIndex)) != std::wstring::npos)
 		{
 		ret = 1;
 		}
-	else if((pos = aPath.find(L"\\\\", aIndex)) != std::wstring::npos)
+	#else
+		else if((pos = aPath.find(L"\\", aIndex)) != std::wstring::npos)
 		{
-		ret = 2;
+		ret = 1;
 		}
+	#endif
 	aIndex = pos;
 	return ret;
 	}
@@ -73,7 +89,9 @@
 	int len = ConvertMultiByteToWideChar(src, -1, NULL, 0);
 	buf = new wchar_t[len+1];
 	len = ConvertMultiByteToWideChar(src, -1, buf, len);
-	ret = std::wstring( buf );
+
+	ret = std::wstring( buf ,len);
+
 	delete[] buf;
 	//
     std::wstring::size_type idx = 0;
@@ -82,7 +100,7 @@
 		ret.replace(idx, len, KDirectorySeparator);
         }
     //
-    return ret;
+    return ret.c_str();
     }
 
 
@@ -144,6 +162,14 @@
     return ret;
     }
 
+std::wstring StringUtils::ToLower( const std::wstring& aString )
+    {
+	std::wstring ret( aString );
+	std::transform( ret.begin(), ret.end(), ret.begin(), tolower );
+
+    return ret;
+    }
+
 bool StringUtils::IsLastCharacter( const std::wstring& aString, wchar_t aChar )
     {
     bool isLast = false;
@@ -164,13 +190,17 @@
     //
     if ( aText.length() >= 3 )
         {
-        const std::string prefix = ToUpper( Ucs2ToUtf8( aText.substr( 0, 3 ) ) );
+        const std::string prefix = ToUpper( wstring2string( aText.substr( 0, 3 ) ) );
         //
         const char drive = prefix[ 0 ];
         const char colon = prefix[ 1 ];
         const char backslash = prefix[ 2 ];
         //
+        #ifndef __TOOLS2_LINUX__
         if  ( colon == ':' && backslash == '\\' )
+		#else
+		if  ( colon == ':' && (backslash == '/' || backslash == '\\'))
+		#endif
             {
             startsWithDrive = ( drive >= 'A' && drive <= 'Z' ) || (drive == '!') ;
             }
@@ -270,6 +300,29 @@
  */
 bool StringUtils::WildcardCompare(const std::wstring& aWildCardFileName, const std::wstring& aFileName)
 {
+	#ifdef __TOOLS2_LINUX__
+	// In case the incoming data is a DB entry then it will be having windows
+	// specific paths due to the consistency of DB contents across WINDOWS
+	// and LINUX. So, we need to convert them to LINUX paths and then compare.
+
+	std::wstring::size_type idx = 0;
+
+	while( (idx = aWildCardFileName.find(L"\\", idx)) != std::wstring::npos)
+        {
+		aWildCardFileName.replace( idx, 1, L"/" );
+        }
+
+	idx = 0;
+
+	while( (idx = aFileName.find(L"\\", idx)) != std::wstring::npos)
+        {
+		aFileName.replace( idx, 1, L"/" );
+        }
+	#endif
+
+	aWildCardFileName = StringUtils::ToLower(aWildCardFileName);
+	aFileName = StringUtils::ToLower(aFileName);
+
 	std::wstring::const_iterator wildCurr = aWildCardFileName.begin();
 	std::wstring::const_iterator wildEnd = aWildCardFileName.end();
 
@@ -357,7 +410,19 @@
 */
 std::wstring StringUtils::NameAndExt( const std::wstring& aFile )
 {
+#ifndef __TOOLS2_LINUX__
 	int pos = aFile.find_last_of(L"\\");
+#else
+	// We should also check for backward slash since the caller could be
+	// passing a string containing a windows-specific paths within LINUX.
+	//
+	//    One instance being - an SCR database entry under LINUX, which has
+	//    the windows specific paths of the installed files to maintain
+	//    consistency across WINDOWS and LINUX platforms.
+
+	int pos = aFile.find_last_of(L"/");
+	pos = pos == std::wstring::npos ? aFile.find_last_of(L"\\") : pos;
+#endif
 	if (pos == std::wstring::npos)
 	{
 		return L"";
@@ -382,7 +447,11 @@
 */
 std::wstring StringUtils::DriveAndPath( const std::wstring& aFile )
 {
-	int pos = aFile.find_last_of(L"\\");
+#ifndef __TOOLS2_LINUX__
+		int pos = aFile.find_last_of(L"\\");
+#else
+		int pos = aFile.find_last_of(L"/");
+#endif
 	if (pos == std::wstring::npos)
 	{
 		return L"";
@@ -405,8 +474,13 @@
 */
 std::wstring StringUtils::Path( const std::wstring& aFile )
 {
-	int firstPos = aFile.find_first_of(L"\\");
-	int lastPos = aFile.find_last_of(L"\\");
+#ifndef __TOOLS2_LINUX__
+		int firstPos = aFile.find_first_of(L"\\");
+		int lastPos = aFile.find_last_of(L"\\");
+#else
+		int firstPos = aFile.find_first_of(L"/");
+		int lastPos = aFile.find_last_of(L"/");
+#endif
 	
 	if (lastPos >= firstPos)
 	{
@@ -428,7 +502,12 @@
 */
 std::wstring StringUtils::Name( const std::wstring& aFile )
 {
+#ifndef __TOOLS2_LINUX__
 	int startPos = aFile.find_last_of(L"\\");
+#else
+	int startPos = aFile.find_last_of(L"/");
+#endif
+	
 	int endPos = aFile.find_last_of(L".");
 
 	if (endPos > startPos)
--- a/secureswitools/swisistools/source/interpretsislib/stringutils.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/source/interpretsislib/stringutils.h	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -35,7 +35,17 @@
 #include "symbiantypes.h"
 
 // Constants
+#ifndef __TOOLS2_LINUX__
 const std::wstring KDirectorySeparator( L"\\" );
+const std::wstring KDoubleSlashPathPrefix( L"\\\\" );
+const std::string KDirectorySeparatorString( "\\" );
+const std::string KDoubleSlashPathPrefixString( "\\\\" );
+#else
+const std::wstring KDirectorySeparator( L"/" );
+const std::wstring KDoubleSlashPathPrefix( L"//" );
+const std::string KDirectorySeparatorString( "/" );
+const std::string KDoubleSlashPathPrefixString( "//" );
+#endif
 
 class StringUtils
 	{
@@ -47,6 +57,7 @@
     static std::string ToUpper( const std::string& aString );
 	static std::wstring ToUpper( const std::wstring& aString );
 	static std::string ToLower( const std::string& aString );
+	static std::wstring ToLower( const std::wstring& aString );
     static bool IsLastCharacter( const std::wstring& aString, wchar_t aChar );
     static bool StartsWithDrive( const std::wstring& aText );
     static std::wstring MakePathFromSID( const std::wstring& aBasePath, TUint32 aSID );
--- a/secureswitools/swisistools/source/interpretsislib/utils_posix.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/source/interpretsislib/utils_posix.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -22,14 +22,17 @@
 #include<sstream>
 
 #include"utility_interface.h"
+#include"util.h"
 
 bool FileExists(const std::wstring& aFile)
 {
-	return true;
+	struct stat x;
+	int err = GetStat(aFile,&x );
+	return err == 0; 
 }
 bool RemoveFile(const std::wstring& aFile)
 {
-	return true;
+	return _wunlink(aFile.c_str()) == 0;
 }
 bool CreateFile(const std::wstring& aFile)
 {
@@ -38,16 +41,16 @@
 
 int GetStat(const std::wstring& aFile, struct stat* s)
 {
-	std::string str;
- 	return stat(Ucs2ToUtf8(aFile, str).c_str(), s);
+	std::string str = wstring2string(aFile);
+ 	return stat(str.c_str(), s);
 }
 
 void GetDirContents(const std::wstring& path, 
 					std::list<std::wstring>& contents)
 {
 
-	std::string utfString;
-	DIR* currDir =  opendir(Ucs2ToUtf8(path, utfString).c_str());
+	std::string utfString = wstring2string(path);
+	DIR* currDir =  opendir(utfString.c_str());
 	
 	while (currDir)
 	{
@@ -59,8 +62,8 @@
 		}
 		else
 		{
-			std::wstring ucsString;
-			contents.push_back(Utf8ToUcs2(currElem->d_name, ucsString));
+			std::wstring ucsString = string2wstring(currElem->d_name);
+			contents.push_back(ucsString);
 		}
 	}
 }
@@ -111,14 +114,22 @@
     	}
     else
     	{// Skip creation of root directory
+    	#ifndef __TOOLS2_LINUX__
     	index = aDir.find(L'\\', index);
+		#else
+		index = aDir.find(L'/', index);
+		#endif
     	}
 	do
 		{
     	index += 1;
 		// Try to make each directory in the path. If ERR_ALREADY_EXISTS is returned
   	  	// then this is okay. Other errors are fatal.
+		#ifndef __TOOLS2_LINUX__
 		index = aDir.find(L'\\', index);
+		#else
+		index = aDir.find(L'/', index);
+		#endif
 		std::wstring dir = aDir.substr( 0, index );
 		if(dir == L".")
 			{
@@ -140,8 +151,8 @@
 bool OpenFile(const std::wstring& aFile, std::fstream& aStream,
 			  std::ios_base::open_mode aMode)
 {
-	std::string s;
-	aStream.open(Ucs2ToUtf8(aFile, s).c_str(), aMode);
+	std::string s = wstring2string(aFile);
+	aStream.open(s.c_str(), aMode);
 	return aStream.good();
 }
 
@@ -176,15 +187,27 @@
 
 void RemoveHashForFile(const std::wstring& aFile, const int aDriveLetter, const std::wstring& aPath)
 {
+   	#ifndef __TOOLS2_LINUX__
 	std::wstring hashdir = L"$:\\sys\\hash\\";
+	#else
+	std::wstring hashdir = L"$:/sys/hash/";
+	#endif
 	std::wstring basename = aFile.substr( aFile.rfind( KDirectorySeparator ) + 1) ;
 	if (basename.size() == 0)
 	{
+    	#ifndef __TOOLS2_LINUX__
 		basename = aFile.substr(aFile.rfind(L"\\"));
+		#else
+		basename = aFile.substr(aFile.rfind(L"/"));
+		#endif
 	}
 
 	hashdir[0] = aDriveLetter;
+   	#ifndef __TOOLS2_LINUX__
 	std::wstring hashFile = aPath + L"\\sys\\hash\\" + basename;
+	#else
+	std::wstring hashFile = aPath + L"/sys/hash/" + basename;
+	#endif
 	if (FileExists(hashFile))
 	{
 		RemoveFile(hashFile);
--- a/secureswitools/swisistools/source/interpretsislib/utils_win32.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/source/interpretsislib/utils_win32.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -273,7 +273,9 @@
 
 	return 0;
 }
-std::string Utils::wstring2string (const std::wstring& aWide)
+/*
+//std::string Utils::wstring2string (const std::wstring& aWide)
+std::string wstring2string (const std::wstring& aWide)
 	{
 	int max = WideCharToMultiByte(CP_OEMCP,0,aWide.c_str(),aWide.length(),0,0,0,0);
 	std::string reply;
@@ -293,7 +295,8 @@
 	return reply;
 	}
 
-std::wstring Utils::string2wstring (const std::string& aNarrow)
+//std::wstring Utils::string2wstring (const std::string& aNarrow)
+std::wstring string2wstring (const std::string& aNarrow)
 	{
 	int max = MultiByteToWideChar(CP_OEMCP,0,aNarrow.c_str(),aNarrow.length(),0,0);
 	std::wstring reply;
@@ -312,32 +315,4 @@
 		}
 	return reply;
 	}
-
-const std::wstring Utils::IntegerToWideString(int aInt)
-	{
-	std::wstringstream wstream;
-	wstream << aInt;
-	return wstream.str();
-	}
-
-std::wstring Utils::Int64ToWideString(TInt64 aInt)
-	{
-	wchar_t wint[20];
-	
-#ifdef _MSC_VER
-	swprintf(wint, L"%I64u", aInt);
-#else
-	swprintf(wint, 20, L"%I64u", aInt);
-#endif // _MSC_VER
-	
-	std::wstring strInt64(wint);
-	return strInt64;
-	}
-
-int Utils::WideStringToInteger(const std::wstring& aWideString)
-	{
-	unsigned long int value=0;
-	std::wstringstream str(aWideString);
-	str >> value;
-	return value;
-	}
+*/
--- a/secureswitools/swisistools/source/interpretsislib/xmlgenerator.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/source/interpretsislib/xmlgenerator.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -23,10 +23,13 @@
  @internalTechnology
 */
 
+#include "util.h"
 #include "xmlgenerator.h"
-#include "../common/exception.h"
+#include "exception.h"
 #include "is_utils.h"
 
+#include "utf8_wrapper.h"
+
 #include <xercesc/dom/DOM.hpp>
 #include <xercesc/util/XMLString.hpp>
 #include <xercesc/util/PlatformUtils.hpp>
@@ -55,9 +58,135 @@
 typedef void (*xmlPlatform) ();
 typedef void (*releaseXmlChPtr) (XMLCh** buf);
 
-// constants used for writing to the xml file
-std::wstring	PreProvisionInformation(L"PreProvisionInformation");
-std::wstring	SoftwareTypeName(L"SoftwareTypeName");
+
+//------------------------------------- Literals ------------------------------------------
+// Xerces literals are of type XMLCh*. For gcc XMLCh is defined as unsigned short (UCS16). 
+// In windows wchar_t has the same size as XMLCh therefor literals defined as L"This is a 
+// literal" will work. But in linux size of wchar_t is 4 (UCS32) bytes and hence L cannot 
+// be used for defining literals. To avoid string conversion and dynamic memory allocation 
+// following method is used to represent unsigned short literal. Current compiler has the 
+// limitation to represent such literals.
+//-----------------------------------------------------------------------------------------
+const XMLCh* KPreProvisionInformation = (const XMLCh*)    "P\0r\0e\0P\0r\0o\0v\0i\0s\0i\0o\0n\0I\0n\0f\0o\0r\0m\0a\0t\0i\0o\0n\0\0\0";
+const XMLCh* KSoftwareTypeName = (const XMLCh*)           "S\0o\0f\0t\0w\0a\0r\0e\0T\0y\0p\0e\0N\0a\0m\0e\0\0\0";
+const XMLCh* KUTF16 = (const XMLCh*)                      "U\0T\0F\0-\0001\0006\0\0\0";
+const XMLCh* KComponent = (const XMLCh*)                  "C\0o\0m\0p\0o\0n\0e\0n\0t\0\0\0";
+const XMLCh* KDependentId = (const XMLCh*)                "D\0e\0p\0e\0n\0d\0e\0n\0t\0I\0d\0\0\0"; 
+const XMLCh* KToVersion = (const XMLCh*)                  "T\0o\0V\0e\0r\0s\0i\0o\0n\0\0\0";
+const XMLCh* KFromVersion = (const XMLCh*)                "F\0r\0o\0m\0V\0e\0r\0s\0i\0o\0n\0\0\0";
+const XMLCh* KSupplierId = (const XMLCh*)                 "S\0u\0p\0p\0l\0i\0e\0r\0I\0d\0\0\0";
+const XMLCh* KName = (const XMLCh*)                       "N\0a\0m\0e\0\0\0";
+const XMLCh* KFileProperty_StrValue = (const XMLCh*)      "F\0i\0l\0e\0P\0r\0o\0p\0e\0r\0t\0y\0_\0S\0t\0r\0V\0a\0l\0u\0e\0\0\0";
+const XMLCh* KFileProperty_IntValue = (const XMLCh*)      "F\0i\0l\0e\0P\0r\0o\0p\0e\0r\0t\0y\0_\0I\0n\0t\0V\0a\0l\0u\0e\0\0\0";
+const XMLCh* KLocation = (const XMLCh*)                   "L\0o\0c\0a\0t\0i\0o\0n\0\0\0";
+const XMLCh* KComponentProperty_IsBinary = (const XMLCh*) "C\0o\0m\0p\0o\0n\0e\0n\0t\0P\0r\0o\0p\0e\0r\0t\0y\0_\0I\0s\0B\0i\0n\0a\0r\0y\0\0\0";
+const XMLCh* KComponentProperty_StrValue = (const XMLCh*) "C\0o\0m\0p\0o\0n\0e\0n\0t\0P\0r\0o\0p\0e\0r\0t\0y\0_\0S\0t\0r\0V\0a\0l\0u\0e\0\0\0";
+const XMLCh* KComponentProperty_IntValue = (const XMLCh*) "C\0o\0m\0p\0o\0n\0e\0n\0t\0P\0r\0o\0p\0e\0r\0t\0y\0_\0I\0n\0t\0V\0a\0l\0u\0e\0\0\0";
+const XMLCh* KComponentProperty_Locale = (const XMLCh*)   "C\0o\0m\0p\0o\0n\0e\0n\0t\0P\0r\0o\0p\0e\0r\0t\0y\0_\0L\0o\0c\0a\0l\0e\0\0\0";
+const XMLCh* KComponentLocalizable_Vendor=(const XMLCh*)  "C\0o\0m\0p\0o\0n\0e\0n\0t\0L\0o\0c\0a\0l\0i\0z\0a\0b\0l\0e\0_\0V\0e\0n\0d\0o\0r\0\0\0";
+const XMLCh* KComponentLocalizable_Name = (const XMLCh*)  "C\0o\0m\0p\0o\0n\0e\0n\0t\0L\0o\0c\0a\0l\0i\0z\0a\0b\0l\0e\0_\0N\0a\0m\0e\0\0\0";
+const XMLCh* KComponentLocalizable_Locale=(const XMLCh*)  "C\0o\0m\0p\0o\0n\0e\0n\0t\0L\0o\0c\0a\0l\0i\0z\0a\0b\0l\0e\0_\0L\0o\0c\0a\0l\0e\0\0\0";
+const XMLCh* KBuild = (const XMLCh*)                      "B\0u\0i\0l\0d\0\0\0";
+const XMLCh* KMinor = (const XMLCh*)                      "M\0i\0n\0o\0r\0\0\0";
+const XMLCh* KMajor = (const XMLCh*)                      "M\0a\0j\0o\0r\0\0\0";
+const XMLCh* KVersion = (const XMLCh*)                    "V\0e\0r\0s\0i\0o\0n\0\0\0"; 
+const XMLCh* KHidden = (const XMLCh*)                     "H\0i\0d\0d\0e\0n\0\0\0";
+const XMLCh* KOriginVerified = (const XMLCh*)             "O\0r\0i\0g\0i\0n\0V\0e\0r\0i\0f\0i\0e\0d\0\0\0";
+const XMLCh* KGlobalId = (const XMLCh*)                   "G\0l\0o\0b\0a\0l\0I\0d\0\0\0";
+const XMLCh* KScomoState = (const XMLCh*)                 "S\0c\0o\0m\0o\0S\0t\0a\0t\0e\0\0\0";
+const XMLCh* KSize = (const XMLCh*)                       "S\0i\0z\0e\0\0\0";
+const XMLCh* KRemovable = (const XMLCh*)                  "R\0e\0m\0o\0v\0a\0b\0l\0e\0\0\0";
+const XMLCh* KComponentLocalizable = (const XMLCh*)       "C\0o\0m\0p\0o\0n\0e\0n\0t\0L\0o\0c\0a\0l\0i\0z\0a\0b\0l\0e\0\0\0";
+const XMLCh* KComponentProperty = (const XMLCh*)          "C\0o\0m\0p\0o\0n\0e\0n\0t\0P\0r\0o\0p\0e\0r\0t\0y\0\0\0";
+const XMLCh* KComponentProperty_Value = (const XMLCh*)    "C\0o\0m\0p\0o\0n\0e\0n\0t\0P\0r\0o\0p\0e\0r\0t\0y\0_\0V\0a\0l\0u\0e\0\0\0";
+const XMLCh* KComponentFile = (const XMLCh*)              "C\0o\0m\0p\0o\0n\0e\0n\0t\0F\0i\0l\0e\0\0\0";
+const XMLCh* KFileProperty = (const XMLCh*)               "F\0i\0l\0e\0P\0r\0o\0p\0e\0r\0t\0y\0\0\0";
+const XMLCh* KFileProperty_Value = (const XMLCh*)         "F\0i\0l\0e\0P\0r\0o\0p\0e\0r\0t\0y\0_\0V\0a\0l\0u\0e\0\0\0";
+const XMLCh* KComponentDependency = (const XMLCh*)        "C\0o\0m\0p\0o\0n\0e\0n\0t\0D\0e\0p\0e\0n\0d\0e\0n\0c\0y\0\0\0"; 	
+const XMLCh* KDependencyList = (const XMLCh*)             "D\0e\0p\0e\0n\0d\0e\0n\0c\0y\0L\0i\0s\0t\0\0\0";
+const XMLCh* KRomApplication = (const XMLCh*)             "R\0o\0m\0A\0p\0p\0l\0i\0c\0a\0t\0i\0o\0n\0\0\0";
+const XMLCh* KApplicationRegistrationInfo = (const XMLCh*) "A\0p\0p\0l\0i\0c\0a\0t\0i\0o\0n\0R\0e\0g\0i\0s\0t\0r\0a\0t\0i\0o\0n\0I\0n\0f\0o\0\0\0";
+const XMLCh* KOpaqueData = (const XMLCh*) 				  "O\0p\0a\0q\0u\0e\0D\0a\0t\0a\0\0\0";
+const XMLCh* KData = (const XMLCh*)						  "D\0a\0t\0a\0\0\0";
+const XMLCh* KOpaqueLocale = (const XMLCh*)				  "O\0p\0a\0q\0u\0e\0L\0o\0c\0a\0l\0e\0\0\0";
+const XMLCh* KIsBinary = (const XMLCh*)				  	  "I\0s\0B\0i\0n\0a\0r\0y\0\0\0";
+const XMLCh* KFileOwnershipinfo = (const XMLCh*)		  "F\0i\0l\0e\0O\0w\0n\0e\0r\0s\0h\0i\0p\0i\0n\0f\0o\0\0\0";
+const XMLCh* KFileName = (const XMLCh*) 				  "F\0i\0l\0e\0N\0a\0m\0e\0\0\0";
+const XMLCh* KApplicationLocalizableInfo = (const XMLCh*) "A\0p\0p\0l\0i\0c\0a\0t\0i\0o\0n\0L\0o\0c\0a\0l\0i\0z\0a\0b\0l\0e\0I\0n\0f\0o\0\0\0";
+const XMLCh* KLocalizableAttribute = (const XMLCh*)       "L\0o\0c\0a\0l\0i\0z\0a\0b\0l\0e\0A\0t\0t\0r\0i\0b\0u\0t\0e\0\0\0";
+const XMLCh* KLocalizableAttribute_Value = (const XMLCh*) "L\0o\0c\0a\0l\0i\0z\0a\0b\0l\0e\0A\0t\0t\0r\0i\0b\0u\0t\0e\0_\0V\0a\0l\0u\0e\0\0\0";
+const XMLCh* KLocalizableAttribute_IntValue = (const XMLCh*) "L\0o\0c\0a\0l\0i\0z\0a\0b\0l\0e\0A\0t\0t\0r\0i\0b\0u\0t\0e\0_\0I\0n\0t\0V\0a\0l\0u\0e\0\0\0";
+const XMLCh* KLocalizableAttribute_StrValue = (const XMLCh*) "L\0o\0c\0a\0l\0i\0z\0a\0b\0l\0e\0A\0t\0t\0r\0i\0b\0u\0t\0e\0_\0S\0t\0r\0V\0a\0l\0u\0e\0\0\0";
+const XMLCh* KViewData = (const XMLCh*) "V\0i\0e\0w\0D\0a\0t\0a\0\0\0";
+const XMLCh* KViewDataAttribute = (const XMLCh*) "V\0i\0e\0w\0D\0a\0t\0a\0A\0t\0t\0r\0i\0b\0u\0t\0e\0\0\0";
+const XMLCh* KApplicationDataType = (const XMLCh*) "A\0p\0p\0l\0i\0c\0a\0t\0i\0o\0n\0D\0a\0t\0a\0T\0y\0p\0e\0\0\0";
+const XMLCh* KPriority = (const XMLCh*) "P\0r\0i\0o\0r\0i\0t\0y\0\0\0";
+const XMLCh* KType = (const XMLCh*) "T\0y\0p\0e\0\0\0";
+const XMLCh* KViewData_Value = (const XMLCh*) "V\0i\0e\0w\0D\0a\0t\0a\0_\0V\0a\0l\0u\0e\0\0\0";
+const XMLCh* KViewData_IntValue = (const XMLCh*) "V\0i\0e\0w\0D\0a\0t\0a\0_\0I\0n\0t\0V\0a\0l\0u\0e\0\0\0";
+const XMLCh* KViewData_StrValue = (const XMLCh*) "V\0i\0e\0w\0D\0a\0t\0a\0_\0S\0t\0r\0V\0a\0l\0u\0e\0\0\0";
+const XMLCh* KApplicationServiceInfo = (const XMLCh*) "A\0p\0p\0l\0i\0c\0a\0t\0i\0o\0n\0S\0e\0r\0v\0i\0c\0e\0I\0n\0f\0o\0\0\0";
+const XMLCh* KUid = (const XMLCh*) "U\0i\0d\0\0\0";
+const XMLCh* KServiceOpaqueData = (const XMLCh*) "S\0e\0r\0v\0i\0c\0e\0O\0p\0a\0q\0u\0e\0D\0a\0t\0a\0\0\0";
+const XMLCh* KServiceData = (const XMLCh*) "S\0e\0r\0v\0i\0c\0e\0D\0a\0t\0a\0\0\0";
+const XMLCh* KServiceOpaqueLocale = (const XMLCh*) "S\0e\0r\0v\0i\0c\0e\0O\0p\0a\0q\0u\0e\0L\0o\0c\0a\0l\0e\0\0\0";
+const XMLCh* KApplicationProperty = (const XMLCh*) "A\0p\0p\0l\0i\0c\0a\0t\0i\0o\0n\0P\0r\0o\0p\0e\0r\0t\0y\0\0\0";
+const XMLCh* KLocale = (const XMLCh*) "L\0o\0c\0a\0l\0e\0\0\0";
+const XMLCh* KServiceUid = (const XMLCh*) "S\0e\0r\0v\0i\0c\0e\0U\0i\0d\0\0\0";
+const XMLCh* KIntValue = (const XMLCh*) "I\0n\0t\0V\0a\0l\0u\0e\0\0\0";
+const XMLCh* KStrValue = (const XMLCh*) "S\0t\0r\0V\0a\0l\0u\0e\0\0\0";
+const XMLCh* KIsStr8Bit = (const XMLCh*) "I\0s\0S\0t\0r\08\0B\0i\0t\0\0\0";
+const XMLCh* KApplicationAttribute = (const XMLCh*) "A\0p\0p\0l\0i\0c\0a\0t\0i\0o\0n\0A\0t\0t\0r\0i\0b\0u\0t\0e\0\0\0";
+const XMLCh* KApplicationAttribute_Value = (const XMLCh*) "A\0p\0p\0l\0i\0c\0a\0t\0i\0o\0n\0A\0t\0t\0r\0i\0b\0u\0t\0e\0_\0V\0a\0l\0u\0e\0\0\0";
+const XMLCh* KApplicationAttribute_IntValue = (const XMLCh*) "A\0p\0p\0l\0i\0c\0a\0t\0i\0o\0n\0A\0t\0t\0r\0i\0b\0u\0t\0e\0_\0I\0n\0t\0V\0a\0l\0u\0e\0\0\0";
+const XMLCh* KApplicationAttribute_StrValue = (const XMLCh*) "A\0p\0p\0l\0i\0c\0a\0t\0i\0o\0n\0A\0t\0t\0r\0i\0b\0u\0t\0e\0_\0S\0t\0r\0V\0a\0l\0u\0e\0\0\0";
+
+
+
+
+//-----------------------------------------------------------------------------------------
+
+//------------------------------------------------------------------------------------------------------------------------------
+//											UTILITY FUNCTIONS
+//------------------------------------------------------------------------------------------------------------------------------
+
+XercesString ConvertToXercesString(const char* aString, int aLength)
+	{
+	XMLCh* buffer = new UTF16[aLength + 1];
+	XMLCh* temp = buffer; // save as buffer gets modified..
+	ConvertUTF8toUTF16(&aString, aString + aLength, &temp, buffer + aLength, lenientConversion);
+	
+	// Appending NUL to the converted buffer.
+	*temp = 0;
+
+	XercesString result;
+
+	result.append(buffer);
+	delete[] buffer;
+
+	return result;
+	}
+
+XercesString IntegerToXercesString(int aValue)
+	{
+	std::stringstream str;
+	str << aValue;
+
+	return ConvertToXercesString(str.str().c_str(), str.str().length());
+	}
+
+
+XercesString Int64ToXercesString(TInt64 aInt)
+	{
+	char str[50];
+	
+	sprintf(str, "%I64u", aInt);
+
+	return ConvertToXercesString(str, strlen(str));
+	}
+	
+
+//------------------------------------------------------------------------------------------------------------------------------
 
 
 CXmlGenerator::CXmlGenerator()
@@ -86,9 +215,14 @@
 		std::auto_ptr < SchemaDomErrorHandler > errHandler(new SchemaDomErrorHandler());
 		domWriter->setErrorHandler(errHandler.get());
 
+#ifdef _WIN32
+		// XMLString::trascode() function should be used for conversion.
 		std::auto_ptr < XMLFormatTarget > outputFile( new LocalFileFormatTarget( aXmlFileName.c_str() ) );	
-		
-		const char* epocRoot = getenv("EPOCROOT");
+#else
+        std::string fileName = wstring2string(aXmlFileName);
+		std::auto_ptr < XMLFormatTarget > outputFile( new LocalFileFormatTarget( fileName.c_str() ) );
+#endif // _WIN32		
+		const char* epocRoot = getenv("EPOCROOT");		
 		if(NULL == epocRoot)
 			{
 			throw std::runtime_error("EPOCROOT environment variable not specified.");
@@ -96,31 +230,33 @@
 		
 		std::string epocRootStr(epocRoot); 
 
-		std::string dtdFilePath = epocRootStr + "epoc32\\tools\\preprovision.dtd";
+		#ifdef __LINUX__ 
+		std::string dtdFilePath = epocRootStr + "epoc32/tools/preprovision.dtd";
+		#else 	  	  	 
+		std::string dtdFilePath = epocRootStr + "epoc32\\tools\\preprovision.dtd"; 	
+		#endif
 		
 		fn_auto_ptr<releaseXmlChPtr, XMLCh> dtdPath( &XMLString::release, XMLString::transcode(dtdFilePath.c_str()) );
-		DOMDocumentType* documentType = domImpl->createDocumentType(L"PreProvisionInformation",NULL, dtdPath.get());
+		DOMDocumentType* documentType = domImpl->createDocumentType(KPreProvisionInformation,NULL, dtdPath.get());
 		
 		
-		mem_fn_auto_ptr< releaseDOMDoc, DOMDocument* > domDocument( &XERCES_CPP_NAMESPACE::DOMDocument::release, domImpl->createDocument(	0, PreProvisionInformation.c_str(), documentType) );
+		mem_fn_auto_ptr< releaseDOMDoc, DOMDocument* > domDocument( &XERCES_CPP_NAMESPACE::DOMDocument::release, domImpl->createDocument(	0, KPreProvisionInformation, documentType) );
 
 		DOMElement* rootElement = domDocument->getDocumentElement();
 		
 		// SoftwareTypeName
-		AddChildElement(rootElement, domDocument.get(), SoftwareTypeName.c_str(), aPreProvisionDetail.iSoftwareTypeName.c_str() );
+		AddChildElement(rootElement, domDocument.get(), KSoftwareTypeName, aPreProvisionDetail.SoftwareTypeName().c_str() );
 
 		std::vector<XmlDetails::TScrPreProvisionDetail::TComponent>::const_iterator compIter;
 		for(compIter = aPreProvisionDetail.iComponents.begin(); compIter != aPreProvisionDetail.iComponents.end() ; ++compIter)
 			{
-			DOMElement*  component = domDocument->createElement(L"Component");
+			DOMElement*  component = domDocument->createElement(KComponent);
 			rootElement->appendChild(component);
 
 			WriteComponent(component,domDocument.get(), *compIter, aRomApplication);
 			}
-		
 		// do the serialization through DOMWriter::writeNode();
-		domWriter->writeNode(outputFile.get(), *domDocument.get());
-		
+		domWriter->writeNode(outputFile.get(), *domDocument.get()); 	  			
 		}
         catch (const XMLException& toCatch) 
 			{
@@ -144,7 +280,7 @@
 
 	if (aDomWriter->canSetFeature(XMLUni::fgDOMWRTFormatPrettyPrint, true))
 		 aDomWriter->setFeature(XMLUni::fgDOMWRTFormatPrettyPrint, true);
-	
+
 	if (aDomWriter->canSetFeature(XMLUni::fgDOMWRTNormalizeCharacters, false))
 		aDomWriter->setFeature(XMLUni::fgDOMWRTNormalizeCharacters, false);
 
@@ -163,7 +299,7 @@
 	if (aDomWriter->canSetFeature(XMLUni::fgDOMXMLDeclaration, true))
 		 aDomWriter->setFeature(XMLUni::fgDOMXMLDeclaration, true);
 	
-	aDomWriter->setEncoding(L"UTF-16");
+	aDomWriter->setEncoding(KUTF16);
 	}
 
 void CXmlGenerator::WriteComponent( DOMElement* aRootElement, DOMDocument* aDocument, 
@@ -175,28 +311,29 @@
 	if (aRomApplication) 
 	{
 		int isRomApplication = 1;
-		std::wstring isRomApp = Utils::IntegerToWideString(isRomApplication);
-		AddChildElement(aRootElement, aDocument, L"RomApplication", isRomApp.c_str());
+		XercesString isRomApp = IntegerToXercesString(isRomApplication);
+		AddChildElement(aRootElement, aDocument, KRomApplication, isRomApp.c_str());
 	}
 	
-	std::wstring isRemovable = Utils::IntegerToWideString(aComponent.iComponentDetails.iIsRemovable);
-	AddChildElement(aRootElement, aDocument, L"Removable", isRemovable.c_str() );
+	XercesString isRemovable = IntegerToXercesString(aComponent.iComponentDetails.iIsRemovable);
+	AddChildElement(aRootElement, aDocument, KRemovable, isRemovable.c_str() );
+
 	
-	std::wstring size = Utils::Int64ToWideString(aComponent.iComponentDetails.iSize);
-	AddChildElement(aRootElement, aDocument, L"Size", size.c_str() );
+	XercesString size = Int64ToXercesString(aComponent.iComponentDetails.iSize);
+	AddChildElement(aRootElement, aDocument, KSize, size.c_str() );
 	
-	std::wstring scomoState = Utils::IntegerToWideString(aComponent.iComponentDetails.iScomoState);
-	AddChildElement(aRootElement, aDocument, L"ScomoState", scomoState.c_str() );
+	XercesString scomoState = IntegerToXercesString(aComponent.iComponentDetails.iScomoState);
+	AddChildElement(aRootElement, aDocument, KScomoState, scomoState.c_str() );
 
-	AddChildElement(aRootElement, aDocument, L"GlobalId", aComponent.iComponentDetails.iGlobalId.c_str() );
+	AddChildElement(aRootElement, aDocument, KGlobalId, aComponent.iComponentDetails.GlobalId().c_str() );
 
 	WriteComponentVersion(aRootElement, aDocument, aComponent.iComponentDetails.iVersion);
 	
-	std::wstring isOriginVerified = Utils::IntegerToWideString(aComponent.iComponentDetails.iOriginVerified);
-	AddChildElement(aRootElement, aDocument, L"OriginVerified", isOriginVerified.c_str() );
+	XercesString isOriginVerified = Int64ToXercesString(aComponent.iComponentDetails.iOriginVerified);
+	AddChildElement(aRootElement, aDocument, KOriginVerified, isOriginVerified.c_str() );
 
-	std::wstring isHidden = Utils::IntegerToWideString(aComponent.iComponentDetails.iIsHidden);
-	AddChildElement(aRootElement, aDocument, L"Hidden", isHidden.c_str() );
+	XercesString isHidden = IntegerToXercesString(aComponent.iComponentDetails.iIsHidden);
+	AddChildElement(aRootElement, aDocument, KHidden, isHidden.c_str() );
 
 	WriteComponentLocalizables(aRootElement, aDocument, aComponent.iComponentLocalizables);
 
@@ -217,11 +354,11 @@
 				XmlDetails::TScrPreProvisionDetail::TComponentDetails::TVersion aVersion
 				)
 	{
-	DOMElement*  version = aDocument->createElement(L"Version");
+	DOMElement*  version = aDocument->createElement(KVersion);
 	aRootElement->appendChild(version);
-	version->setAttribute( L"Major", aVersion.iMajor.c_str() );
-	version->setAttribute( L"Minor", aVersion.iMinor.c_str() );
-	version->setAttribute( L"Build", aVersion.iBuild.c_str() );
+	version->setAttribute( KMajor, aVersion.MajorVersion().c_str() );
+	version->setAttribute( KMinor, aVersion.MinorVersion().c_str() );
+	version->setAttribute( KBuild, aVersion.BuildVersion().c_str() );
 	}
 
 void CXmlGenerator::WriteComponentLocalizables
@@ -233,11 +370,13 @@
 	std::vector<ComponentLocalizable>::const_iterator compLocIter;
 	for( compLocIter = aComponentLocalizable.begin() ; compLocIter != aComponentLocalizable.end() ; ++compLocIter)
 		{
-		DOMElement* newRoot = AddTag(aRootElement, aDocument, L"ComponentLocalizable");
-		std::wstring locale = Utils::IntegerToWideString(compLocIter->iLocale);
-		AddChildElement(newRoot,aDocument, L"ComponentLocalizable_Locale", locale.c_str());
-		AddChildElement(newRoot,aDocument, L"ComponentLocalizable_Name", compLocIter->iName.c_str());
-		AddChildElement(newRoot,aDocument, L"ComponentLocalizable_Vendor", compLocIter->iVendor.c_str());
+		DOMElement* newRoot = AddTag(aRootElement, aDocument, KComponentLocalizable);
+		XercesString locale = IntegerToXercesString(compLocIter->iLocale);
+
+
+		AddChildElement(newRoot,aDocument, KComponentLocalizable_Locale, locale.c_str());
+		AddChildElement(newRoot,aDocument, KComponentLocalizable_Name, compLocIter->Name().c_str());
+		AddChildElement(newRoot,aDocument, KComponentLocalizable_Vendor, compLocIter->Vendor().c_str());
 		}
 	}
 
@@ -251,28 +390,28 @@
 	for( compPropIter = aComponentProperties.begin() ; compPropIter != aComponentProperties.end() ; ++compPropIter)
 		{
 		
-		DOMElement* compPropRoot = AddTag(aRootElement, aDocument, L"ComponentProperty");
+		DOMElement* compPropRoot = AddTag(aRootElement, aDocument, KComponentProperty);
 		
-		std::wstring locale = Utils::IntegerToWideString(compPropIter->iLocale);
-		AddChildElement(compPropRoot,aDocument, L"ComponentProperty_Locale", locale.c_str());
+		XercesString locale = IntegerToXercesString(compPropIter->iLocale);
+		AddChildElement(compPropRoot,aDocument, KComponentProperty_Locale, locale.c_str());
 		
-		DOMElement* compPropValueRoot = AddTag(compPropRoot, aDocument, L"ComponentProperty_Value");
+		DOMElement* compPropValueRoot = AddTag(compPropRoot, aDocument, KComponentProperty_Value);
 		
-		std::wstring isBinary = Utils::IntegerToWideString(compPropIter->iIsStr8Bit);
+		XercesString isBinary = IntegerToXercesString(compPropIter->iIsStr8Bit);
 
 		if(compPropIter->iIsIntValue)
 			{
-			AddChildElement(compPropValueRoot,aDocument, L"ComponentProperty_IntValue", compPropIter->iValue.c_str());
+			AddChildElement(compPropValueRoot,aDocument, KComponentProperty_IntValue, compPropIter->Value().c_str());
 			}
 		else
 			{
-			AddChildElement(compPropValueRoot,aDocument, L"ComponentProperty_StrValue", compPropIter->iValue.c_str());
+			AddChildElement(compPropValueRoot,aDocument, KComponentProperty_StrValue, compPropIter->Value().c_str());
 			}
 		
 		
-		AddChildElement(compPropRoot,aDocument, L"ComponentProperty_IsBinary", isBinary.c_str());
+		AddChildElement(compPropRoot,aDocument, KComponentProperty_IsBinary, isBinary.c_str());
 
-		compPropRoot->setAttribute(L"Name", compPropIter->iName.c_str());
+		compPropRoot->setAttribute(KName, compPropIter->Name().c_str());
 		
 		}
 	}
@@ -291,7 +430,7 @@
 	std::vector<AppRegistrationInfo>::const_iterator compFileIter;
 	for( compFileIter = aAppRegInfo.begin() ; compFileIter != aAppRegInfo.end() ; ++compFileIter)
 	{
-		DOMElement* compFileRoot = AddTag(aRootElement, aDocument, L"ApplicationRegistrationInfo");
+		DOMElement* compFileRoot = AddTag(aRootElement, aDocument, KApplicationRegistrationInfo);
 
 		WriteAppAttributes(compFileRoot, aDocument, compFileIter->iApplicationAttribute);
 
@@ -302,18 +441,35 @@
 		{
 			if(0 == fileAppOpaqueDataType->iServiceUid)
 			{
-				DOMElement* filePropValueRoot = AddTag(compFileRoot, aDocument, L"OpaqueData");
-				AddChildElement(filePropValueRoot,aDocument, L"Data", fileAppOpaqueDataType->iOpaqueData.c_str());
-				std::wstring iLocale = Utils::IntegerToWideString(fileAppOpaqueDataType->iLocale);
-				AddChildElement(filePropValueRoot,aDocument, L"OpaqueLocale", iLocale.c_str());
+				DOMElement* filePropValueRoot = AddTag(compFileRoot, aDocument, KOpaqueData);
+				
+				if(fileAppOpaqueDataType->iIsBinary)
+				{
+					std::string temp = wstring2string(fileAppOpaqueDataType->iOpaqueData);
+					std::string binStrData = Util::Base64Encode(temp);
+					std::wstring binData = string2wstring(binStrData);
+					AddChildElement(filePropValueRoot,aDocument, KData, binData.c_str());
+				}
+				else
+				{
+					AddChildElement(filePropValueRoot,aDocument, KData, fileAppOpaqueDataType->iOpaqueData.c_str());
+				}
+				
+				XercesString locale = IntegerToXercesString(fileAppOpaqueDataType->iLocale);
+				AddChildElement(filePropValueRoot,aDocument, KOpaqueLocale, locale.c_str());
+
+				XercesString iBinary = IntegerToXercesString(fileAppOpaqueDataType->iIsBinary);
+				AddChildElement(filePropValueRoot,aDocument, KIsBinary, iBinary.c_str());
+				
 			}
 		}
 
 		for(vector<std::wstring>::iterator mimeiter = compFileIter->iFileOwnershipInfo.begin() ; mimeiter != compFileIter->iFileOwnershipInfo.end() ; ++mimeiter )
 		{
-			DOMElement* filePropRoot = AddTag(compFileRoot, aDocument, L"FileOwnershipinfo");
+			DOMElement* filePropRoot = AddTag(compFileRoot, aDocument, KFileOwnershipinfo);
 
-			AddChildElement(filePropRoot,aDocument, L"FileName",  mimeiter->c_str());
+			XercesString temp = WStringToXercesString(*mimeiter);
+			AddChildElement(filePropRoot,aDocument, KFileName,  temp.c_str());
 		}
 
 		WriteAppServiceInfo(compFileRoot, aDocument, compFileIter->iApplicationServiceInfo, compFileIter->iOpaqueDataType);
@@ -334,7 +490,7 @@
 	std::vector<AppLocalizableInfo>::const_iterator filePropIter;
 	for( filePropIter = aAppLocalizableInfo.begin() ; filePropIter != aAppLocalizableInfo.end() ; ++filePropIter)
 	{
-		DOMElement* filePropRoot = AddTag(aRootElement, aDocument, L"ApplicationLocalizableInfo");
+		DOMElement* filePropRoot = AddTag(aRootElement, aDocument, KApplicationLocalizableInfo);
 
 		WriteAppLocalizableAttribute(filePropRoot, aDocument, filePropIter->iLocalizableAttribute);
 		WriteAppLocalizableViewData(filePropRoot, aDocument, filePropIter->iViewData);
@@ -354,18 +510,20 @@
 	std::vector<AppLocalizableAttribute>::const_iterator filePropIter;
 	for( filePropIter = aAppLocalizableAttribute.begin() ; filePropIter != aAppLocalizableAttribute.end() ; ++filePropIter)
 	{
-		DOMElement* filePropRoot = AddTag(aRootElement, aDocument, L"LocalizableAttribute");
-		DOMElement* filePropValueRoot = AddTag(filePropRoot, aDocument, L"LocalizableAttribute_Value");
+		DOMElement* filePropRoot = AddTag(aRootElement, aDocument, KLocalizableAttribute);
+		DOMElement* filePropValueRoot = AddTag(filePropRoot, aDocument, KLocalizableAttribute_Value);
 
+		XercesString value = WStringToXercesString(filePropIter->iValue);
 		if(filePropIter->iIsIntValue)
 		{
-			AddChildElement(filePropValueRoot, aDocument, L"LocalizableAttribute_IntValue", filePropIter->iValue.c_str());
+			AddChildElement(filePropValueRoot, aDocument, KLocalizableAttribute_IntValue, value.c_str());
 		}
 		else
 		{
-			AddChildElement(filePropValueRoot, aDocument, L"LocalizableAttribute_StrValue", filePropIter->iValue.c_str());
+			AddChildElement(filePropValueRoot, aDocument, KLocalizableAttribute_StrValue, value.c_str());
 		}
-		filePropRoot->setAttribute(L"Name", filePropIter->iName.c_str());
+		XercesString name = WStringToXercesString(filePropIter->iName);
+		filePropRoot->setAttribute(KName, name.c_str());
 	}
 }
 
@@ -382,7 +540,7 @@
 	 std::vector<AppViewData>::const_iterator filePropIter;
 	 for( filePropIter = aAppViewData.begin() ; filePropIter != aAppViewData.end() ; ++filePropIter)
 	 {
-		 DOMElement* filePropRoot = AddTag(aRootElement, aDocument, L"ViewData");
+		 DOMElement* filePropRoot = AddTag(aRootElement, aDocument, KViewData);
 		 WriteAppLocalizableViewDataAttributes(filePropRoot, aDocument, filePropIter->iViewDataAttributes);
 	 }
  }
@@ -396,18 +554,23 @@
 	 std::vector<AppViewDataAttributes>::const_iterator filePropIter;
 	 for( filePropIter = aAppViewDataAttributes.begin() ; filePropIter != aAppViewDataAttributes.end() ; ++filePropIter)
 	 {
-		 DOMElement* filePropRoot = AddTag(aRootElement, aDocument, L"ViewDataAttribute");
-		 DOMElement* filePropValueRoot = AddTag(filePropRoot, aDocument, L"ViewData_Value");
+		 DOMElement* filePropRoot = AddTag(aRootElement, aDocument, KViewDataAttribute);
+		 DOMElement* filePropValueRoot = AddTag(filePropRoot, aDocument, KViewData_Value);
  
+		 XercesString value = WStringToXercesString(filePropIter->iValue);
 		 if(filePropIter->iIsIntValue)
 		 {
-			 AddChildElement(filePropValueRoot, aDocument, L"ViewData_IntValue", filePropIter->iValue.c_str());
+			 AddChildElement(filePropValueRoot, aDocument, KViewData_IntValue, value.c_str());
+
 		 }
 		 else
 		 {
-			 AddChildElement(filePropValueRoot, aDocument, L"ViewData_StrValue", filePropIter->iValue.c_str());
+			 AddChildElement(filePropValueRoot, aDocument, KViewData_StrValue, value.c_str());
+
 		 }
-		 filePropRoot->setAttribute(L"Name", filePropIter->iName.c_str());
+
+		 XercesString name = WStringToXercesString(filePropIter->iName);
+		 filePropRoot->setAttribute(KName, name.c_str());
 	 }
  }
 
@@ -426,10 +589,11 @@
 	std::vector<AppOpaqueDataType>::const_iterator fileAppPropIter;
 	for( filePropIter = aAppServiceInfo.begin() ; filePropIter != aAppServiceInfo.end() ; ++filePropIter)
 	{
-		DOMElement* filePropRoot = AddTag(aRootElement, aDocument, L"ApplicationServiceInfo");
+		DOMElement* filePropRoot = AddTag(aRootElement, aDocument, KApplicationServiceInfo);
 	
-		std::wstring iUid = Utils::IntegerToWideString(filePropIter->iUid);
-		AddChildElement(filePropRoot,aDocument, L"Uid", iUid.c_str());
+		XercesString uid = IntegerToXercesString(filePropIter->iUid);
+		AddChildElement(filePropRoot,aDocument, KUid, uid.c_str());
+
 
 		for( fileAppPropIter = aAppOpaqueData.begin() ; fileAppPropIter != aAppOpaqueData.end() ; ++fileAppPropIter)
 		{
@@ -437,10 +601,13 @@
 			{
 				if(!fileAppPropIter->iOpaqueData.empty())
 				{
-					DOMElement* filePropValueRoot = AddTag(filePropRoot, aDocument, L"ServiceOpaqueData");
-					AddChildElement(filePropValueRoot,aDocument, L"ServiceData", fileAppPropIter->iOpaqueData.c_str());
-					std::wstring iLocale = Utils::IntegerToWideString(fileAppPropIter->iLocale);
-					AddChildElement(filePropValueRoot,aDocument, L"ServiceOpaqueLocale", iLocale.c_str());
+					DOMElement* filePropValueRoot = AddTag(filePropRoot, aDocument, KServiceOpaqueData);
+
+					XercesString opaqueData = WStringToXercesString(fileAppPropIter->iOpaqueData);
+					AddChildElement(filePropValueRoot,aDocument, KServiceData, opaqueData.c_str());
+
+					XercesString locale = IntegerToXercesString(fileAppPropIter->iLocale);
+					AddChildElement(filePropValueRoot,aDocument, KServiceOpaqueLocale, locale.c_str());
 				}
 			}
 		}
@@ -462,11 +629,13 @@
 	std::vector<AppDataType>::const_iterator filePropIter;
 	for( filePropIter = aAppDataType.begin() ; filePropIter != aAppDataType.end() ; ++filePropIter)
 	{
-		DOMElement* filePropRoot = AddTag(aRootElement, aDocument, L"ApplicationDataType");
+		DOMElement* filePropRoot = AddTag(aRootElement, aDocument, KApplicationDataType);
 
-		std::wstring iPriority = Utils::IntegerToWideString(filePropIter->iPriority);
-		AddChildElement(filePropRoot,aDocument, L"Priority", iPriority.c_str());
-		AddChildElement(filePropRoot, aDocument, L"Type", filePropIter->iType.c_str());
+		XercesString priority = IntegerToXercesString(filePropIter->iPriority);
+		AddChildElement(filePropRoot,aDocument, KPriority, priority.c_str());
+
+		XercesString type = WStringToXercesString(filePropIter->iType);
+		AddChildElement(filePropRoot, aDocument, KType, type.c_str());
 	}
 }
 
@@ -483,18 +652,22 @@
 	std::vector<ApplicationAttribute>::const_iterator filePropIter;
 	for( filePropIter = aAppAttributes.begin() ; filePropIter != aAppAttributes.end() ; ++filePropIter)
 	{
-		DOMElement* filePropRoot = AddTag(aRootElement, aDocument, L"ApplicationAttribute");
-		DOMElement* filePropValueRoot = AddTag(filePropRoot, aDocument, L"ApplicationAttribute_Value");
+		DOMElement* filePropRoot = AddTag(aRootElement, aDocument, KApplicationAttribute);
 
+		DOMElement* filePropValueRoot = AddTag(filePropRoot, aDocument, KApplicationAttribute_Value);
+
+		XercesString value = WStringToXercesString(filePropIter->iValue);
 		if(filePropIter->iIsIntValue)
 		{
-			AddChildElement(filePropValueRoot, aDocument, L"ApplicationAttribute_IntValue", filePropIter->iValue.c_str());
+			AddChildElement(filePropValueRoot, aDocument, KApplicationAttribute_IntValue, value.c_str());
 		}
 		else
 		{
-			AddChildElement(filePropValueRoot, aDocument, L"ApplicationAttribute_StrValue", filePropIter->iValue.c_str());
+			AddChildElement(filePropValueRoot, aDocument, KApplicationAttribute_StrValue, value.c_str());
 		}
-		filePropRoot->setAttribute(L"Name", filePropIter->iName.c_str());
+
+		XercesString name = WStringToXercesString(filePropIter->iName);
+		filePropRoot->setAttribute(KName, name.c_str());
 	}
 }
 
@@ -510,25 +683,25 @@
 	std::vector<AppProperty>::const_iterator filePropIter;
 	for( filePropIter = aAppProperty.begin() ; filePropIter != aAppProperty.end() ; ++filePropIter)
 	{
-		DOMElement* filePropRoot = AddTag(aRootElement, aDocument, L"ApplicationProperty");
-
+		DOMElement* filePropRoot = AddTag(aRootElement, aDocument, KApplicationProperty);
 
-		std::wstring iLocale = Utils::IntegerToWideString(filePropIter->iLocale);
-		AddChildElement(filePropRoot,aDocument, L"Locale", iLocale.c_str());
+		XercesString locale = IntegerToXercesString(filePropIter->iLocale);
+		AddChildElement(filePropRoot,aDocument, KLocale, locale.c_str());
 
-		AddChildElement(filePropRoot,aDocument, L"Name", filePropIter->iName.c_str());
+		XercesString name = WStringToXercesString(filePropIter->iName);
+		AddChildElement(filePropRoot,aDocument, KName, name.c_str());
 
-		std::wstring iServiceUid = Utils::IntegerToWideString(filePropIter->iServiceUid);
-		AddChildElement(filePropRoot,aDocument, L"ServiceUid", iServiceUid.c_str());
+		XercesString serviceUid = IntegerToXercesString(filePropIter->iServiceUid);
+		AddChildElement(filePropRoot,aDocument, KServiceUid, serviceUid.c_str());
 
-		std::wstring iIntValue = Utils::IntegerToWideString(filePropIter->iIntValue);
-		AddChildElement(filePropRoot,aDocument, L"IntValue", iIntValue.c_str());
+		XercesString intValue = IntegerToXercesString(filePropIter->iIntValue);
+		AddChildElement(filePropRoot,aDocument, KIntValue, intValue.c_str());
 
-		AddChildElement(filePropRoot, aDocument, L"StrValue", filePropIter->iStrValue.c_str());
+		XercesString strValue = WStringToXercesString(filePropIter->iStrValue);
+		AddChildElement(filePropRoot, aDocument, KStrValue, strValue.c_str());
 
-		std::wstring iIsStr8Bit = Utils::IntegerToWideString(filePropIter->iIsStr8Bit);
-		AddChildElement(filePropRoot,aDocument, L"IsStr8Bit", iIsStr8Bit.c_str());
-
+		XercesString isStr8Bit = IntegerToXercesString(filePropIter->iIsStr8Bit);
+		AddChildElement(filePropRoot,aDocument, KIsStr8Bit, isStr8Bit.c_str());
 	}
 }
 
@@ -541,11 +714,11 @@
 	std::vector<ComponentFile>::const_iterator compFileIter;
 	for( compFileIter = aComponentFiles.begin() ; compFileIter != aComponentFiles.end() ; ++compFileIter)
 		{
-		DOMElement* compFileRoot = AddTag(aRootElement, aDocument, L"ComponentFile");
+		DOMElement* compFileRoot = AddTag(aRootElement, aDocument, KComponentFile);
 
 		WriteFileProperties(compFileRoot, aDocument, compFileIter->iFileProperties);
 		
-		compFileRoot->setAttribute(L"Location", compFileIter->iLocation.c_str());
+		compFileRoot->setAttribute(KLocation, compFileIter->Location().c_str());
 		}
 	}
 
@@ -558,18 +731,18 @@
 	std::vector<FileProperty>::const_iterator filePropIter;
 	for( filePropIter = aFileProperties.begin() ; filePropIter != aFileProperties.end() ; ++filePropIter)
 		{
-		DOMElement* filePropRoot = AddTag(aRootElement, aDocument, L"FileProperty");
-		DOMElement* filePropValueRoot = AddTag(filePropRoot, aDocument, L"FileProperty_Value");
+		DOMElement* filePropRoot = AddTag(aRootElement, aDocument, KFileProperty);
+		DOMElement* filePropValueRoot = AddTag(filePropRoot, aDocument, KFileProperty_Value);
 
 		if(filePropIter->iIsIntValue)
 			{
-			AddChildElement(filePropValueRoot, aDocument, L"FileProperty_IntValue", filePropIter->iValue.c_str());
+			AddChildElement(filePropValueRoot, aDocument, KFileProperty_IntValue, filePropIter->Value().c_str());
 			}
 		else
 			{
-			AddChildElement(filePropValueRoot, aDocument, L"FileProperty_StrValue", filePropIter->iValue.c_str());
+			AddChildElement(filePropValueRoot, aDocument, KFileProperty_StrValue, filePropIter->Value().c_str());
 			}
-		filePropRoot->setAttribute(L"Name", filePropIter->iName.c_str());
+		filePropRoot->setAttribute(KName, filePropIter->Name().c_str());
 		}
 	}
 
@@ -587,20 +760,20 @@
 	std::vector<ComponentDependencyDetail> componentDependencyList = aComponentDependency.iComponentDependencyList;
 	std::vector<ComponentDependencyDetail>::const_iterator compDepIter;
 
-	DOMElement* compDepRoot = AddTag(aRootElement, aDocument, L"ComponentDependency");
+	DOMElement* compDepRoot = AddTag(aRootElement, aDocument, KComponentDependency);
 
 	for( compDepIter = componentDependencyList.begin() ; compDepIter != componentDependencyList.end() ; ++compDepIter)
 		{
-		DOMElement* compDepListRoot = AddTag( compDepRoot, aDocument, L"DependencyList" );
-		AddChildElement( compDepListRoot, aDocument, L"SupplierId", compDepIter->iSupplierId.c_str() );
-		AddChildElement( compDepListRoot, aDocument, L"FromVersion", compDepIter->iFromVersion.c_str() );
-		AddChildElement( compDepListRoot, aDocument, L"ToVersion", compDepIter->iToVersion.c_str() );
+		DOMElement* compDepListRoot = AddTag( compDepRoot, aDocument, KDependencyList );
+		AddChildElement( compDepListRoot, aDocument, KSupplierId, compDepIter->SupplierId().c_str() );
+		AddChildElement( compDepListRoot, aDocument, KFromVersion, compDepIter->FromVersion().c_str() );
+		AddChildElement( compDepListRoot, aDocument, KToVersion, compDepIter->ToVersion().c_str() );
 		}
-	compDepRoot->setAttribute(L"DependentId", aComponentDependency.iDependentId.c_str());
+	compDepRoot->setAttribute(KDependentId, aComponentDependency.DependentId().c_str());
 	}
 
 
-void CXmlGenerator::AddChildElement( DOMElement* aRootElement, DOMDocument* aDocument, const wchar_t* aElementName, const wchar_t* aTextValue )
+void CXmlGenerator::AddChildElement( DOMElement* aRootElement, DOMDocument* aDocument, const XMLCh* aElementName, const XMLCh* aTextValue )
 	{
 	DOMElement*  element = aDocument->createElement(aElementName);
 	aRootElement->appendChild(element);
@@ -609,7 +782,7 @@
 	element->appendChild(textValue);
 	}
 
-DOMElement* CXmlGenerator::AddTag( DOMElement* aRootElement, DOMDocument* aDocument, const wchar_t* aTagName)
+DOMElement* CXmlGenerator::AddTag( DOMElement* aRootElement, DOMDocument* aDocument, const XMLCh* aTagName)
 	{
 	DOMElement*  tagName = aDocument->createElement(aTagName);
 	aRootElement->appendChild(tagName);
@@ -623,6 +796,8 @@
  */
 bool SchemaDomErrorHandler::handleError(const DOMError& domError)
 	{
-	const XMLCh* message = domError.getMessage();
+	const XMLCh* message = domError.getMessage();	
 	return false;
 	}
+
+
--- a/secureswitools/swisistools/source/interpretsislib/xmlgenerator.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/source/interpretsislib/xmlgenerator.h	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -201,19 +201,18 @@
 		void AddChildElement(	
 								XERCES_CPP_NAMESPACE::DOMElement* aRootElement, 
 								XERCES_CPP_NAMESPACE::DOMDocument* aDocument, 
-								const wchar_t* aElementName, 
-								const wchar_t* aTextValue 
+								const XMLCh* aElementName, 
+								const XMLCh* aTextValue 
 							);
 
 		XERCES_CPP_NAMESPACE::DOMElement* AddTag	
 							(	
 								XERCES_CPP_NAMESPACE::DOMElement* aRootElement, 
 								XERCES_CPP_NAMESPACE::DOMDocument* aDocument, 
-								const wchar_t* aTagName
+								const XMLCh* aTagName
 							);
 
 		void SetWriterFeatures(XERCES_CPP_NAMESPACE::DOMWriter* aDomWriter);
-
 	};
 
 
--- a/secureswitools/swisistools/source/rscparser/aplappinforeader.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/source/rscparser/aplappinforeader.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -42,7 +42,11 @@
 
 const TUint KResourceOffsetMask = 0xFFFFF000;
 
+#ifdef __LINUX__
+std::string KAppBinaryPathAndExtension("/sys/bin/.exe");
+#else
 std::string KAppBinaryPathAndExtension("\\sys\\bin\\.exe");
+#endif
 
 const TInt KAppRegistrationInfoResourceId = 1;
 
@@ -54,7 +58,11 @@
 */
 std::string KAppResourceFileExtension(".rsc");
 
+#ifdef __LINUX__
+std::string KLitPathForUntrustedRegistrationResourceFiles("/private/10003a3f/import/apps/");
+#else
 std::string KLitPathForUntrustedRegistrationResourceFiles("\\private\\10003a3f\\import\\apps\\");
+#endif
 
 //
 // CAppInfoReader
@@ -198,6 +206,7 @@
 {
 	Ptr16* iconFileName = iIconFileName;
 	iIconFileName = NULL; // ownership transferred to caller
+	ConvertToPlatformSpecificPath(iconFileName->GetPtr(), iconFileName->GetLength());
 	return iconFileName;
 }
 
@@ -442,11 +451,22 @@
 		size_t found;
 		std::string iLocalPath(iDrivePath);
 
-	  	found=localizeFileName.find_last_of("/\\");
+		#ifdef __LINUX__
+	  	found=localizeFileName.find_last_of("//");
+		#else
+		found=localizeFileName.find_last_of("/\\");
+		#endif
+
 	  	if(found)
 	  		folder = localizeFileName.substr(0,found);
 	  	else
-	  		folder.assign("\\");
+		{
+			#ifdef __LINUX__
+			folder.assign("/");	  		
+			#else
+			folder.assign("\\");
+			#endif
+		}
 	  	
 	  	file = localizeFileName.substr(found+1);
 		file.append(".");
@@ -455,8 +475,13 @@
 				
 		std::wstring iFilePath = string2wstring(iLocalPath);
 		std::wstring iFileName = string2wstring(file);
+
+		#ifdef __LINUX__
+		iLocalPath.append("/");
+		#else
 		iLocalPath.append("\\");
-
+		#endif
+		
 		std::list<std::wstring> locDirs;
 		GetDirContents( iFilePath, locDirs );
 
@@ -468,7 +493,7 @@
 			    std::string fName;
 				std::string sAbsolutePath;
 				sAbsolutePath.assign(iLocalPath);
-			 	fName = Ucs2ToUtf8( *curr );
+			 	fName = wstring2string( *curr );
 
 			   	sAbsolutePath.append(fName);
 				//cout << sAbsolutePath<<endl;
@@ -537,12 +562,15 @@
 
 	// read LTEXT app_file
 	PtrC16* appFile = aResourceReader.ReadTPtrCL();
+
 	if(NULL==appFile)
 	{
-		std::string errMsg= "Failed : Invalid Resource File Name. Application File Name is Mendatory.";
+		std::string errMsg= "Failed : Invalid Resource File Name. Application File Name is Mandatory.";
 		throw CResourceFileException(errMsg);
 	}
 
+	ConvertToPlatformSpecificPath(appFile->iPtr, appFile->iMaxLength);
+
 	TInt err=0;
 	// this object gets used for 2 purposes: first to check that a ParsePtrC can be created over "appFile" without it panicking, and second to construct iAppBinaryFullName
 	err = FindWild(appFile); // do this before creating a TParsePtrC, since TParsePtrC's constructor panics if it fails (which would provide an easy way for malware to kill the Apparc server)
@@ -653,6 +681,7 @@
 	filename = new Ptr16(aIconFileName->iMaxLength);
 	if(NULL==filename || NULL == filename->GetPtr())
 	{
+		parsePtr.SetToNull();
 		std::string errMsg= "Failed : Error in Reading File. Memory Allocation Failed";
 		throw CResourceFileException(errMsg);
 	}
@@ -763,8 +792,10 @@
 	// read LTEXT icon_file
 	iIconFileName = NULL;
 	PtrC16* iconFile = resourceReader.ReadTPtrCL();
+
 	if(NULL != iconFile)
 	{
+		ConvertToPlatformSpecificPath(iconFile->iPtr, iconFile->iMaxLength);
 		Ptr16*	iconFileName = CreateFullIconFileNameL(iconFile);
 		
 		if (iconFileName)
@@ -845,11 +876,22 @@
 				size_t find;
 				std::string iLocalPath(iDrivePath);
 		
+				#ifdef __LINUX__
+				found=localizeFileName.find_last_of("//");
+				#else
 				found=localizeFileName.find_last_of("/\\");
+				#endif
+
 				if(found)
 					folder = localizeFileName.substr(0,found);
 				else
+				{
+					#ifdef __LINUX__
+					folder.assign("/");
+					#else
 					folder.assign("\\");
+					#endif					
+				}
 			
 				file = localizeFileName.substr(found+1);
 				file.append(".");
@@ -858,7 +900,12 @@
 					
 				std::wstring iFilePath = string2wstring(iLocalPath);
 				std::wstring iFileName = string2wstring(file);
+				#ifdef __LINUX__
+				iLocalPath.append("/");
+				#else
 				iLocalPath.append("\\");
+				#endif
+
 		
 				std::list<std::wstring> locDirs;
 				GetDirContents( iFilePath, locDirs );
@@ -872,7 +919,7 @@
 						std::string sAbsolutePath;
 						std::string Locale;
 						sAbsolutePath.assign(iLocalPath);
-						fName = Ucs2ToUtf8( *curr );
+						fName = wstring2string( *curr );
 
 						find=fName.rfind("backup");
 						if(find != string::npos)
@@ -1065,12 +1112,14 @@
 {
 	// read LTEXT localisable_resource_file
 	PtrC16*	localisableResourceFileName = aResourceReader.ReadTPtrCL();
+
 	if(NULL == localisableResourceFileName)
 	{
 		iLocalisableResourceFileName = NULL;
 	}
 	else
 	{
+		ConvertToPlatformSpecificPath(localisableResourceFileName->iPtr, localisableResourceFileName->iMaxLength);
 		if (localisableResourceFileName->iMaxLength > 0 )
 		{
 			ParsePtrC parsePtr(localisableResourceFileName);
@@ -1078,6 +1127,7 @@
 			if(parsePtr.IsValidName())
 			{
 				iLocalisableResourceFileName = NULL;
+				parsePtr.SetToNull();	//To Avoid double Delete in destructor.
 				std::string errMsg= "Failed : Invalid localisable Resource File Name";
 				throw CResourceFileException(errMsg);
 			}
@@ -1090,10 +1140,12 @@
 
 			TInt err=0;
 			std::string sTemp = parsePtr.StrName();
+
 			err = FindWild(registrationFileDrive, KAppResourceFileExtension, sTemp);
 			if(err==1)
 			{
 				std::string errMsg= "Failed : Invalid drive for Registration File";
+				parsePtr.SetToNull();	//To Avoid double Delete in destructor.
 				throw CResourceFileException(errMsg);
 			}
 
@@ -1101,6 +1153,7 @@
 			if(NULL==iLocalisableResourceFileName || NULL==iLocalisableResourceFileName->GetPtr())
 			{
 				std::string errMsg= "Failed : Error in Reading File. Memory Allocation Failed";
+				parsePtr.SetToNull();	//To Avoid double Delete in destructor.
 				throw CResourceFileException(errMsg);
 			}
 
@@ -1119,6 +1172,7 @@
 	iCapability.iLaunchInBackground = aResourceReader.ReadInt8L();
 
 	PtrC16* iTemp = aResourceReader.ReadTPtrCL();
+
 	if(NULL==iTemp || NULL==iTemp->iPtr)
 		iCapability.iGroupName = NULL;
 	else 
@@ -1198,8 +1252,10 @@
 	for (TInt i=0; i < fileOwnershipArraySize; i++)
 	{
 		PtrC16* fileNamePtr_temp = aResourceReader.ReadTPtrCL();
+
 		if(NULL != fileNamePtr_temp)
 		{
+			ConvertToPlatformSpecificPath(fileNamePtr_temp->iPtr, fileNamePtr_temp->iMaxLength);
 			Ptr16* fileNamePtr = new Ptr16(fileNamePtr_temp->iMaxLength);
 			if(NULL==fileNamePtr || NULL==fileNamePtr->GetPtr())
 			{
@@ -1208,6 +1264,7 @@
 			}
 			fileNamePtr->UpdateLength(fileNamePtr_temp->iMaxLength);			  
 			BufCpy(fileNamePtr->GetPtr(),fileNamePtr_temp->iPtr,fileNamePtr_temp->iMaxLength);
+
 			iOwnedFileArray->push_back(fileNamePtr);
 		}
 		else
@@ -1297,6 +1354,7 @@
 	    }
 
 		PtrC8* dataTypePtr  = aResourceReader.ReadTPtrC8L();
+
 		if(NULL != dataTypePtr)
 		{
 			TDataType* dataType = new TDataType(dataTypePtr);
--- a/secureswitools/swisistools/source/rscparser/aplapplistitem.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/source/rscparser/aplapplistitem.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -226,6 +226,7 @@
 
 		// read LTEXT caption
 		PtrC16* viewCaption = aResourceReader.ReadTPtrCL();
+
 		if(NULL != viewCaption)
 		{
 			viewData->SetCaptionL(viewCaption);
@@ -239,9 +240,10 @@
 
 		// read LTEXT icon_file
 		PtrC16* viewIconFile = aResourceReader.ReadTPtrCL();
+
 		if(NULL != viewIconFile)
 		{
-
+			ConvertToPlatformSpecificPath(viewIconFile->iPtr, viewIconFile->iMaxLength);
 			Ptr16*	fullViewIconFileName = ViewDataIconFileNameL(viewIconFile);
 			if (fullViewIconFileName)
 			{
@@ -287,12 +289,17 @@
 	 * aIconFileName will be returned since it is a valid string. 
 	 */	
 	ParsePtrC parsePtr(aIconFileName);
-	if (parsePtr.IsWild() || !parsePtr.PathPresent() || !parsePtr.NamePresent())
+
+	if ( parsePtr.IsWild() || !parsePtr.PathPresent() || !parsePtr.NamePresent() )
+	{
+		parsePtr.SetToNull();
 		return NULL;
+	}
 
 	filename = new Ptr16(aIconFileName->iMaxLength);
 	if(NULL==filename || NULL == filename->GetPtr())
 	{
+		parsePtr.SetToNull();
 		std::string errMsg= "Failed : Error in Reading File. Memory Allocation Failed";
 		throw CResourceFileException(errMsg);
 	}
--- a/secureswitools/swisistools/source/rscparser/apsecutils.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/source/rscparser/apsecutils.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
 // under the terms of "Eclipse Public License v1.0"
@@ -114,7 +114,12 @@
 
 	std::string Filename = Ptr16ToString(&aAppFilename);
 	std::string Path(aDerivedPath);
+	#ifdef __LINUX__
+	Path.append("/sys/bin/");
+	#else
 	Path.append("\\sys\\bin\\");
+	#endif
+
 	Path.append(Filename);
 	Path.append(".exe");
 	
--- a/secureswitools/swisistools/source/rscparser/apsecutils.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/source/rscparser/apsecutils.h	Wed Aug 18 09:55:45 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
 // under the terms of "Eclipse Public License v1.0"
--- a/secureswitools/swisistools/source/rscparser/dirparse.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/source/rscparser/dirparse.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -310,9 +310,17 @@
 
 	componentData.iLocale = aLocale;
 	componentData.iServiceUid = aServUid;
-	componentData.iOpaqueData = aStrValue;
 
-	aAppOpaqueData.iOpaqueDataType.push_back(componentData);
+	/* 
+	 * Under LINUX : The OpaqueData which is read from the resource file will be in UTF-16 format contained
+	 *               in a std::wstring. So, we need to convert it back to UTF-32 format which is the format
+	 *               of LINUX specific std::wstring.
+     * 
+	 * Under WINDOWS : Nothing needs to be done and this is taken care of by XercesStringToWString()
+	 *				   which is platform specific.	
+	 */
+	 componentData.iOpaqueData = XercesStringToWString(reinterpret_cast<const XMLCh*>(aStrValue.c_str()));
+	 aAppOpaqueData.iOpaqueDataType.push_back(componentData);
 }
 
 /**
@@ -326,10 +334,18 @@
 		aParamList->IsFlagSet(CParameterList::EFlagsDisableZDriveChecksSet) 
 		)
 		{
+			#ifdef __LINUX__
+			return wstring2string(aParamList->SystemDrivePath()) + "/sys/install/scr/scr.db";
+			#else
 			return wstring2string(aParamList->SystemDrivePath()) + "\\sys\\install\\scr\\scr.db";
+			#endif
 		}
 
+	#ifdef __LINUX__
+	return wstring2string(aParamList->RomDrivePath()) + "/sys/install/scr/provisioned/scr.db";
+	#else
 	return wstring2string(aParamList->RomDrivePath()) + "\\sys\\install\\scr\\provisioned\\scr.db";
+	#endif
 }
 
 /**
@@ -340,13 +356,27 @@
 												XmlDetails::TScrPreProvisionDetail aScrPreProvisionDetail)
 {
 	CXmlGenerator xmlGenerator;
-	char* tmpFileName = tmpnam(NULL);
+
+	#ifndef __TOOLS2_LINUX__
+		char* tmpFileName = tmpnam(NULL);	
+	#else
+		char tmpFileName[] = "/tmp/interpretsis_preprovision_XXXXXX";	
+		int temp_fd;
+		temp_fd=mkstemp(tmpFileName); 
+		fclose(fdopen(temp_fd,"w"));
+	#endif
+
 	std::wstring filename(string2wstring(tmpFileName));
 
 	int isRomApplication = 1;
 	xmlGenerator.WritePreProvisionDetails(filename , aScrPreProvisionDetail, isRomApplication);						
 
+	#ifdef __LINUX__
+	std::string executable = "scrtool";
+	#else 
 	std::string executable = "scrtool.exe";
+	#endif
+
 	std::string command;
 
 	command = executable + " -d " + GetDbPath(aParamList) + " -p " + tmpFileName;
@@ -517,13 +547,21 @@
 	{
 		size_t found;
 		std::string folder;
+		#ifdef __LINUX__
+		found=aFileName.find("private/10003a3f/");
+		#else
 		found=aFileName.find("private\\10003a3f\\");
+		#endif
 
 		if( found != string::npos )
 			folder = aFileName.substr(0,found);
 		else
 		{
+				#ifdef __LINUX__
+				std::string errMsg= "Failed : Resource File Path should contain /private/10003a3f/";
+				#else
 				std::string errMsg= "Failed : Resource File Path should contain \\private\\10003a3f\\";
+				#endif
 				throw CResourceFileException(errMsg);
 		}
 
@@ -606,7 +644,11 @@
 	else
 	{
 		 aFilePath = aParamList->RomDrivePath();
+		 #ifdef __LINUX__
+		 aFilePath.append(L"/private/10003a3f/apps");
+		 #else
 		 aFilePath.append(L"\\private\\10003a3f\\apps");
+		 #endif
 	}
 
 	int iCount = 0;
@@ -625,9 +667,14 @@
 			{
 				iCount++;
 			    std::string fName;
-		        fName = Ucs2ToUtf8( *curr );
+		        fName = wstring2string( *curr );
 				std::string FilePath = wstring2string(aFilePath);
+				#ifdef __LINUX__				
+				FilePath.append("/");
+				#else
 				FilePath.append("\\");
+				#endif
+
 				FilePath.append(fName);
 				std::cout<<"Parsing - "<<fName<<" ";
 				ReadApplicationInformationFromResourceFilesL(scrPreProvisionDetail,FilePath,aParamList,aInterpretSis,iNewFileFlag);
@@ -645,7 +692,7 @@
 		UpdateInstallationInformation_xml(aParamList,scrPreProvisionDetail);
 	
 	if(!iCount)
-		LERROR(L"Failed : No Resource File in the Directory Specified - ");
+		LINFO(L"No Resource File in the Directory Specified - ");
 }
 
 /**
@@ -653,15 +700,28 @@
  */
 void BackupHashForFile(const std::wstring& aFile, const int aDriveLetter, const std::wstring& aPath)
 {
+	#ifdef __LINUX__
+	std::wstring hashdir = L"$:/sys/hash/";
+	#else
 	std::wstring hashdir = L"$:\\sys\\hash\\";
+	#endif
+
 	std::wstring basename = aFile.substr( aFile.rfind( KDirectorySeparator ) + 1) ;
 	if (basename.size() == 0)
 	{
+		#ifdef __LINUX__
+		basename = aFile.substr(aFile.rfind(L"/"));
+		#else
 		basename = aFile.substr(aFile.rfind(L"\\"));
+		#endif
 	}
 
 	hashdir[0] = aDriveLetter;
+	#ifdef __LINUX__
+	std::wstring hashFile = aPath + L"/sys/hash/" + basename;
+	#else
 	std::wstring hashFile = aPath + L"\\sys\\hash\\" + basename;
+	#endif
 
 	if (FileExists(hashFile))
 	{
@@ -670,7 +730,7 @@
 		iBackupFile.append("_backup");
 
 		int err=FileCopyA(iLocalFile.c_str(),iBackupFile.c_str(),0);
-		if (err == 0)
+		if (err != 0)
 			LERROR(L"Failed to Backup hash file ");
 	}
 }
@@ -680,15 +740,27 @@
  */
 void RestoreHashForFile(const std::wstring& aFile, const int aDriveLetter, const std::wstring& aPath)
 {
+	#ifdef __LINUX__
+	std::wstring hashdir = L"$:/sys/hash/";
+	#else
 	std::wstring hashdir = L"$:\\sys\\hash\\";
+	#endif
 	std::wstring basename = aFile.substr( aFile.rfind( KDirectorySeparator ) + 1) ;
 	if (basename.size() == 0)
 	{
+		#ifdef __LINUX__
+		basename = aFile.substr(aFile.rfind(L"/"));
+		#else
 		basename = aFile.substr(aFile.rfind(L"\\"));
+		#endif
 	}
 
 	hashdir[0] = aDriveLetter;
+	#ifdef __LINUX__
+	std::wstring hashFile = aPath + L"/sys/hash/" + basename;
+	#else
 	std::wstring hashFile = aPath + L"\\sys\\hash\\" + basename;
+	#endif	
 	std::wstring LocalFile(hashFile);
 	hashFile.append(L"_backup");
 
@@ -698,9 +770,8 @@
 		std::string iBackupFile = wstring2string(hashFile);
 
 		int err = FileMoveA(iBackupFile.c_str(),iLocalFile.c_str());
-
-		if (err == 0)
-			LERROR(L"Failed to Restore hash file ");
+		if (err != 0)
+		    LERROR(L"Failed to Restore hash file ");
 	}
 }
 
@@ -715,7 +786,12 @@
  */ 
 
 // Constants
+#ifdef __LINUX__
+const std::wstring KSisDirectorySeparatortap( L"/" );
+#else
 const std::wstring KSisDirectorySeparatortap( L"\\" );
+#endif
+
 
 int FirstInvalidDirSeparatorSizetap(std::wstring& aPath, std::wstring::size_type& aIndex)
 	{
@@ -723,11 +799,19 @@
 	// then the function will return 0
 	int ret = 0; 
 	int pos = 0;
+	#ifdef __LINUX__
+	if((pos = aPath.find(L"\\\\", aIndex)) != std::wstring::npos)
+	#else
 	if((pos = aPath.find(L"//", aIndex)) != std::wstring::npos)
+	#endif
 		{
 		ret = 2;
 		}
+	#ifdef __LINUX__
+	else if((pos = aPath.find(L"\\", aIndex)) != std::wstring::npos)
+	#else
 	else if((pos = aPath.find(L"/", aIndex)) != std::wstring::npos)
+	#endif
 		{
 		ret = 1;
 		}
--- a/secureswitools/swisistools/source/rscparser/parse.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/source/rscparser/parse.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -205,7 +205,12 @@
 {
   string iName;
 
+  #ifdef __LINUX__
+  TInt i = Buf->rfind("/");
+  #else
   TInt i = Buf->rfind("\\");
+  #endif
+
   if(i!=string::npos)
      iName.assign(*Buf, i, Buf->size()-4);
   else
@@ -223,7 +228,12 @@
 {
   string iName;
 
+  #ifdef __LINUX__
+  TInt i = Buf->rfind("/");
+  #else
   TInt i = Buf->rfind("\\");
+  #endif
+  
   if(i!=string::npos)
      iName.assign(*Buf, i, Buf->size());
 
@@ -234,7 +244,12 @@
 {
   string iName;
 
+  #ifdef __LINUX__
+  TInt i = Buf->rfind("/");
+  #else
   TInt i = Buf->rfind("\\");
+  #endif
+  
   if(i!=string::npos)
      iName.assign(*Buf, 0, i);
 
@@ -245,8 +260,14 @@
 {
   string iName;
 
+  #ifdef __LINUX__
+  TInt j = Buf->rfind("/");
+  TInt i = Buf->find("/");
+  #else
   TInt j = Buf->rfind("\\");
   TInt i = Buf->find("\\");
+  #endif
+
   if(i!=string::npos)
      iName.assign(*Buf, i, Buf->size()-j);
 
@@ -277,7 +298,12 @@
 
 TInt ParsePtrC::NamePresent()
 {
+	#ifdef __LINUX__
+	TInt i = Buf->rfind("/");
+    #else
 	TInt i = Buf->rfind("\\");
+    #endif
+
 	if(i!=string::npos)
 		iNamePresent = 1;
 	else
@@ -292,7 +318,12 @@
 
 TInt ParsePtrC::PathPresent()
 {
+	#ifdef __LINUX__
+	TInt i = Buf->find("/");
+	#else
 	TInt i = Buf->find("\\");
+	#endif
+
 	if(i!=string::npos)
 		iPathPresent = 1;
 	else
@@ -330,7 +361,12 @@
 
 TInt ParsePtrC::IsValidName()
 {
-	string::size_type index = Buf->find_last_of("*?< > : \" / |");
+	#ifdef __LINUX__
+	    string::size_type index = Buf->find_last_of("*?< > : \" \\ |");
+	#else
+	    string::size_type index = Buf->find_last_of("*?< > : \" |");
+	#endif
+
 	if( index != string::npos )
 		return 1;
 	return 0;
Binary file secureswitools/swisistools/source/scrtool/data/preprovision.dtd has changed
--- a/secureswitools/swisistools/source/scrtool/main.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/source/scrtool/main.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -37,7 +37,7 @@
 
 	try
 		{
-		const char* epocRoot = getenv("EPOCROOT");
+		const char* epocRoot = getenv("EPOCROOT");		
 		if(NULL == epocRoot)
 			{
 			throw CException("EPOCROOT environment variable not specified.", ExceptionCodes::EEnvNotSpecified);
@@ -49,13 +49,23 @@
 		std::string logFileName(options.GetLogFileName());
 		std::auto_ptr<CLogger> logger(new CLogger(logFileName, options.GetLogLevel()));
 		
-		std::string dllPath = "sqlite3.dll";
+   #ifdef __LINUX__
+  	  	 std::string dllPath = "sqlite-3.6.1.so";
+   #else
+ 	       std::string dllPath = "sqlite3.dll";
+   #endif
+  	  	 	 
 		std::auto_ptr<CDbLayer> db( new CDbLayer(dllPath, options.GetDbFileName()));
 		std::auto_ptr<CScrXmlParser> xmlParser( new CScrXmlParser());
 
 		if(options.IsDbAbsent())
 			{
+		  #ifdef __LINUX__ 		  
+			std::string dbFileName = epocRootStr + "epoc32/tools/create_db.xml";
+			#else
 			std::string dbFileName = epocRootStr + "epoc32\\tools\\create_db.xml";
+			#endif
+			
 			std::auto_ptr<SchemaDetails> schema(xmlParser->ParseDbSchema(dbFileName));
 			db->CreateScrDatabase(*schema);
 			}
--- a/secureswitools/swisistools/source/signsis/parameter.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/source/signsis/parameter.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2004-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -58,10 +58,22 @@
 
 	for (int index = 1; index < argc; index++)
 		{
-		if (	(argv [index][0] == '-') ||
-				(argv [index][0] == '/'))
+ 			// WINDOWS ENVIRONMENT : If the underlying platform is WINDOWS then, 
+ 			// cope up with multiple arguments following the '-' or '/'. 
+ 			//
+ 			// LINUX ENVIRONMENT : If the underlying platform is LINUX then, cope 
+ 			// up with multiple arguments following only the '-'. This restriction 
+ 			// of not dealing with arguments following '/' is due to the fact that, 
+ 			// the absolute paths in case of LINUX start with a '/'. So, this could 
+ 			// be mistaken as an option if we treat anything prefixed by a '/' as 
+ 			// an option. Hence, this facility is being removed once for all and 
+ 			// only '-' can(should) be used for specifying an option.
+		    if (	   (argv [index][0] == '-')   
+#ifndef __LINUX__			
+				    || (argv [index][0] == '/')
+#endif
+			   )
 			{
- 			// cope with multiple arguments following the '-' or '/'
  			int wCharacter = 1;
  			while (argv[index][wCharacter] !='\0')
 				{
@@ -379,7 +391,7 @@
 	{
 	std::cout << std::endl << "SIGNSIS  " << " Version  5.1" << std::endl;
 	std::cout << "A utility for signing Software Installation (SIS) files." << std::endl;
-	std::cout << "Copyright (c) 2007 Symbian Software Ltd. All rights reserved. " << std::endl;
+	std::cout << "Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies). All rights reserved." << std::endl;
 #ifdef _DEBUG
 	std::cout << std::endl << "Development Version" << std::endl;
 #endif
--- a/secureswitools/swisistools/source/signsislib/sissignature.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/source/signsislib/sissignature.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -427,6 +427,7 @@
 					std::cout << ERR_error_string (ERR_get_error (), NULL);
 					}
 				BIO_free(mem);
+				mem = NULL;
 				RSA_free (rsa);
 				}
 			else
@@ -451,6 +452,7 @@
 				{
 				std::cout << ERR_error_string (ERR_get_error (), NULL);
 				BIO_free(mem);
+				mem = NULL;
 				DSA_free (dsa);
 				}
 			else
--- a/secureswitools/swisistools/source/sisxlibrary/siscapabilities.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/siscapabilities.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2005-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -78,11 +78,12 @@
 	CSISException::ThrowIf(oldStderr == -1, CSISException::EFileProblem, "Failed in redirection operation");
 
 	#ifdef __TOOLS2_LINUX__
-	nulStderr = fopen("NULL", "w");
+	nulStderr = fopen("/dev/null", "w");
 	#else
 	nulStderr = fopen("NUL:", "w");
 	#endif
 
+
 	CSISException::ThrowIf(nulStderr == NULL, CSISException::EFileProblem, "Failed in redirection operation");
 
 	CSISException::ThrowIf(_dup2(_fileno(nulStderr), 2) == -1, CSISException::EFileProblem, "Failed in redirection operation");
--- a/secureswitools/swisistools/source/sisxlibrary/siscontents.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/siscontents.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -67,7 +67,11 @@
 bool CSISContents::IsSisFile(const std::wstring& aFileName)
 	{
 	TSISStream input;
+	#ifdef __TOOLS2_LINUX__
 	std::wstring fileName = FixPathDelimiters(aFileName);
+	#else
+	std::wstring fileName = aFileName;
+	#endif
 	HANDLE file = ::MakeSISOpenFile(fileName.c_str(),GENERIC_READ,OPEN_EXISTING);
 	CSISException::ThrowIf ((INVALID_HANDLE_VALUE == file), 
 							CSISException::EFileProblem, std::wstring (L"cannot open ") + fileName);
@@ -99,7 +103,11 @@
 void CSISContents::Load (const std::wstring& aFileName, TUint64* size)
 	{
 	TSISStream input;
+	#ifdef __TOOLS2_LINUX__
 	std::wstring fileName = FixPathDelimiters(aFileName);
+	#else
+	std::wstring fileName = aFileName;
+	#endif
 	HANDLE file = ::MakeSISOpenFile(fileName.c_str(),GENERIC_READ,OPEN_EXISTING);
 	if (INVALID_HANDLE_VALUE == file)
 		{
--- a/secureswitools/swisistools/source/sisxlibrary/sisexpression.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/sisexpression.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2004-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -584,7 +584,7 @@
 		return false;
 		}
 
-	std::wistringstream wStrStream(aString);
+	std::wistringstream wStrStream(aString.c_str());
 
 	if((wStrStream >> std::dec >> aDecimalValue) && wStrStream.eof())
 		{
--- a/secureswitools/swisistools/source/sisxlibrary/sisinfo.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/sisinfo.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -178,6 +178,10 @@
 		{
 		aStream << L", SH";
 		}
+    if (iInstallFlags & EInstFlagNonRemovable)
+        {
+        aStream << L", NR";
+        }
 	#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 	if (iInstallFlags & EInstFlagHide)
 		{
--- a/secureswitools/swisistools/source/sisxlibrary/sisstring.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/sisstring.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -29,7 +29,7 @@
 #include "utility.h"
 #include "exception.h"
 #include "utils.h"
-#include "utf8.h"
+#include "utf8_wrapper.h"
 
 // we cannot write or read a string directly from a file, because we don't know what format the
 // MS implementation of STL will use for the std::string. So we need to go via an intemediate buffer.
--- a/secureswitools/swisistools/source/sisxlibrary/sisstring.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/sisstring.h	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2004-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -261,7 +261,7 @@
 		{
 		return true;
 		}
-	return iData.compare (aString) != 0;
+	return wcscmp(iData.c_str(), aString) != 0;
 	}
 
 
@@ -278,7 +278,7 @@
 inline void CSISString::AddPackageEntry(std::wostream& aStream, bool aVerbose) const
 	{
 	(void)aVerbose;
-	aStream << iData;
+	aStream << iData.c_str();
 	}
 
 #endif // __SISSTRING_H__
--- a/secureswitools/swisistools/source/sisxlibrary/utility.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/utility.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2004-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -48,7 +48,7 @@
 	}
 
 
-std::string wstring2string (const std::wstring& aWide)
+DllExport std::string wstring2string (const std::wstring& aWide)
 	{
 	int max = ConvertWideCharToMultiByte(aWide.c_str(),aWide.length(),0,0);
 	std::string reply;
@@ -84,8 +84,8 @@
 			{
 			}
 		delete [] buffer;
-		}
-	return reply;
+		}	
+	return reply.c_str();
 	}
 
 void EnsureExtended (std::wstring& aName, const std::wstring& aDefaultExtension)
@@ -380,9 +380,16 @@
     int len = 0;
 	while(len = FirstInvalidDirSeparatorSize(ret, idx))
         {
-		ret.replace( idx, len, KSisDirectorySeparator );
+		if(idx == 0 && len == 2)
+			{
+			ret.replace( idx, len, KSisInitialNetworkPathSlashes );
+			}
+		else
+			{
+			ret.replace( idx, len, KSisDirectorySeparator );
+			}
         }
-    return ret;
+    return ret.c_str();
     }
 
 int GetFileType(std::wstring& aFileName)
--- a/secureswitools/swisistools/source/sisxlibrary/utility.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/utility.h	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2004-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -32,11 +32,13 @@
 #include <string>
 #include "basetype.h"
 #include "fieldroot.h"
+#include "../common/toolsconf.h"
 
 #define FreeMemory(x) {if((x) != NULL) {free(x); (x)=NULL;}}
 
 // Constants
 const std::wstring KSisDirectorySeparator( L"/" );
+const std::wstring KSisInitialNetworkPathSlashes( L"//" );
 
 typedef struct {
 	wchar_t*		iName;
@@ -62,7 +64,7 @@
 
 int SearchSortedUCTable (const SIdentifierTable aTable [], const std::wstring& aIdentifier);
 TUint32 IdentifyUCKeyword (const SKeyword aKeyword [], std::wstring aIdentifier, const std::wstring& aContext);
-std::string wstring2string (const std::wstring& aWide);
+DllExport std::string wstring2string (const std::wstring& aWide);
 std::wstring string2wstring (const std::string& aNarrow);
 bool ValidateFileName (std::wstring& aName, const bool aMustExist);
 bool ValidateFileName (std::wstring& aName, const bool aMustExist, const std::wstring& aDefaultExtension);
--- a/secureswitools/swisistools/source/sisxlibrary/utility_interface.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/utility_interface.h	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -38,6 +38,8 @@
 
 // common interface for Windows and Linux
 
+const int commandLength = 512;
+
 wchar_t** CommandLineArgs(int &argc , char *argv[]);
 
 void cleanup(int argc, wchar_t **argv);
@@ -100,31 +102,33 @@
 int ConvertMultiByteToWideChar(const char* aSource, int aSourceLen, wchar_t* aTarget, int aTargetLen, TUint32 aCodePage = 0);
 
 /*
-Copies an existing file to a new file.
-@Parameters : The name of an existing file. 
-If lpExistingFileName does not exist, CopyFile fails, and GetLastError returns ERROR_FILE_NOT_FOUND.
-
-@Parameters : The name of the new file. 
+ * Copies an existing file to a new file. 
+ *
+ * @Parameters aSrc					The name of an existing file.  
+ * @Parameters aDest				The name of the new file. 
+ * @Parameters aFailIfExistsFlag    If this parameter is TRUE and the new file specified by aDest already exists, 
+ *									the function fails. If this parameter is FALSE and the new file already exists, 
+ *									the function overwrites the existing file and succeeds.
+ * @return 
+ *									If the function succeeds, the return value is zero.
+ *									If the function fails, the return value is non-zero.
+ */
 
-@Parameters : If this parameter is TRUE and the new file specified by lpNewFileName already exists, the function fails. If this parameter is FALSE and the new file already exists, the function overwrites the existing file and succeeds.
-
-Return Value
-If the function succeeds, the return value is nonzero.
-If the function fails, the return value is zero.
-*/
-
-int FileCopyA(const char* aSrc, const char* aDest, size_t aFlag);
+int FileCopyA(const char* aSrc, const char* aDest, bool aFailIfExistsFlag);
 
 
 /*
-Moves an existing file or a directory, including its children
-@Parameters : The current name of the file or directory on the local computer. 
-@Parameters : The new name for the file or directory. The new name must not already exist. A new file may be on a different file system or drive. A new directory must be on the same drive. 
-
-Return Value
-If the function succeeds, the return value is nonzero.
-If the function fails, the return value is zero.
-*/
+ * Moves an existing file or a directory, including its children.
+ *
+ * @Parameters aSrc					The current name of the file or directory on the local computer. 
+ * @Parameters aDest				The new name for the file or directory. The new name must not already exist. 
+ *									A new file may be on a different file system or drive. A new directory must be 
+ *									on the same drive. 
+ *
+ * @return
+ *									If the function succeeds, the return value is zero.
+ *									If the function fails, the return value is non-zero.
+ */
 
 int FileMoveA(const char* aSrc, const char* aDest);
 
--- a/secureswitools/swisistools/source/sisxlibrary/utility_linux.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/utility_linux.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -175,18 +175,24 @@
 int _wunlink(const wchar_t* wc)
 	{
 	  int ret = 0;
-	  int len = wcstombs(0,wc,-1);
-	  char *tmp = new char[len];
+	  const int len = wcstombs(0,wc,-1);
+	  
+	  char* tmp = new char[len+1];
 	  ret = wcstombs(tmp, wc, len);
+
 	  if(ret == -1) {
 		printf("wunlink: wcstombs error\n");
-		delete[] tmp;
+		delete [] tmp;
 		return ret;
 		}
+
 	  tmp[ret] = '\0';
 	  ret = unlink(tmp);
+
 	  if(ret != 0)
 		printf("wunlink: %s: %s\n", tmp, strerror(ret));
+
+	  delete [] tmp;
 	  return ret;
 	}
 
@@ -621,14 +627,41 @@
 	}
 
 
-int FileCopyA(const char* aSrc, const char* aDest, size_t aFlag)
+int FileCopyA(const char* aSrc, const char* aDest, bool aFailIfExistsFlag)
 	{
 		int err= 0;
+
+		char cmd[ commandLength ] = "";
+		if( aFailIfExistsFlag )
+		{
+			strcpy(cmd, "cp ");
+		}
+		else
+		{
+			strcpy(cmd, "cp -f ");
+		}
+		strcat(cmd, aSrc);
+		strcat(cmd, " ");
+		strcat(cmd, aDest);
+		strcat(cmd, " 2> /dev/null");
+
+        err = system(cmd);
+
 		return err;
 	}
 int FileMoveA(const char* aSrc, const char* aDest)
 	{
 		int err= 0;
+
+		// Overwrites the orphaned file(if any).
+		char cmd[ commandLength ] = "mv -f ";
+		strcat(cmd, aSrc);
+		strcat(cmd, " ");
+		strcat(cmd, aDest);
+		strcat(cmd, " 2> /dev/null");
+
+		err = system(cmd);
+
 		return err;
 	}
 
--- a/secureswitools/swisistools/source/sisxlibrary/utility_windows.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/utility_windows.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -185,15 +185,21 @@
 	return ::GetLastError();
 	}
 
-int FileCopyA(const char* aSrc, const char* aDest, size_t aFlag)
+int FileCopyA(const char* aSrc, const char* aDest, bool aFailIfExistsFlag)
 {
-	int err=CopyFileA(aSrc,aDest,aFlag);
-	return err;
+	// CopyFileA() returns zero on failure and non-zero otherwise.
+	int err=CopyFileA(aSrc,aDest,aFailIfExistsFlag);
+	// To maintain consistency with the LINUX wrapper API FileCopyA() which uses cp 
+	// command with system(), we return 0 on success and 1 on failure.
+	return !err;
 }
 
 int FileMoveA(const char* aSrc, const char* aDest)
 {
+	// MoveFileA() returns zero on failure and non-zero otherwise.
 	int err=MoveFileA(aSrc,aDest);
-	return err;
+	// To maintain consistency with the LINUX wrapper API FileMoveA() which uses mv
+	// command with system(), we return 0 on success and 1 on failure.
+	return !err;
 }
 
--- a/secureswitools/swisistools/source/sisxlibrary/utils.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/utils.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -28,7 +28,7 @@
 
 #include "utils.h"
 #include <wchar.h>
-#include "utf8.h"
+#include "utf8_wrapper.h"
 #include "utility_interface.h"
 
 #define TMP_FILE_STUB	L"~si"
Binary file secureswitools/swisistools/source/xmlparser/xerces/lib/libxerces_linux.a has changed
--- a/secureswitools/swisistools/source/xmlparser/xmlparser.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/source/xmlparser/xmlparser.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -27,6 +27,7 @@
 #include "xmlparser.h"
 #include "logs.h"
 #include "exception.h"
+#include "utf8_wrapper.h"
 #include "util.h"
 
 #include <xercesc/sax2/XMLReaderFactory.hpp>
@@ -42,13 +43,65 @@
 #include <memory>
 #include <cstdio>
 
+#ifndef _WIN32
+#include <ctype.h>
+
+//__ctype_b was removed from glibc. This is a workaround to fix the linking problem
+extern "C"
+    {
+    const unsigned short int** __ctype_b()
+        {
+        return __ctype_b_loc();
+        }
+    }
+
+#endif // _WIN32
+
 XERCES_CPP_NAMESPACE_USE
 
+
+//------------------------------------------------------------------------------------------------------------------------------
+//											UTILITY FUNCTIONS
+//------------------------------------------------------------------------------------------------------------------------------
+int XercesStringToInteger(const XercesString& aWideStr)
+	{
+	int strLen = aWideStr.length();
+	const XMLCh* source = aWideStr.c_str();	
+  char* buffer = new char[strLen << 2];
+  
+	// Using a temp variable in place of buffer as ConvertUTF16toUTF8 modifies the source pointer passed.
+	char* temp = buffer;	
+	
+	ConvertUTF16toUTF8(&source, aWideStr.c_str() + strLen, &temp,  temp + (strLen << 2));
+	
+	// Appending NUL to the converted buffer.
+	*temp = 0;
+
+	int value = 0;
+	sscanf(buffer, "%d", &value);
+
+	delete[] buffer;
+	return value;
+	}
+
+
 // these function pointers are used to call appropriate release methods of XMLString
 // present in the xerces library. 
 typedef void (*releaseXmlChPtr) (XMLCh** buf);
 typedef void (*releaseChPtr) (char** buf);
 
+#ifdef _WIN32
+
+// We need not do anything for WINDOWS, since XMLCh string(XercesString)
+// and WString both are same and will be in UTF-16 encoding format.
+#define XMLChToWString(aParameter) (aParameter)
+
+#else
+inline std::wstring XMLChToWString(const XercesString& aXercesString)
+	{
+	return XercesStringToWString (aXercesString);
+	}
+#endif // _WIN32
 
 
 DllExport CScrXmlParser::CScrXmlParser()
@@ -259,7 +312,7 @@
 	
 	DOMNodeList* uniqueSwTypeName = swTypeNamesNode->getElementsByTagName(tagUniqueSoftwareTypeName.get());
 	const XMLCh* textContent = uniqueSwTypeName->item(0)->getTextContent();
-	scrEnvDetails.iUniqueSoftwareTypeName = std::wstring(textContent);
+	scrEnvDetails.iUniqueSoftwareTypeName = XMLChToWString(textContent);
 	
 	DOMNodeList* localizableSwTypeNames = swTypeNamesNode->getElementsByTagName(tagLocalizableSwTypeName.get());
 	const  XMLSize_t localizableSwTypeNamesCount = localizableSwTypeNames->getLength();
@@ -284,7 +337,7 @@
 		textContent = launcherExecutable->item(0)->getTextContent();
 		fn_auto_ptr<releaseXmlChPtr, XMLCh> launcherExecutableText( &XMLString::release,textContent );
 		const XMLCh* launcherExecutableValue = launcherExecutableText.get();
-		scrEnvDetails.iLauncherExecutable = launcherExecutableValue;
+		scrEnvDetails.iLauncherExecutable = XMLChToWString(launcherExecutableValue);
 		}
     DOMNodeList* customAcessList = aEnvironment->getElementsByTagName(tagCustomAcess.get());
 	const  XMLSize_t customAcessDataCount = customAcessList->getLength();
@@ -304,7 +357,8 @@
 	for( XMLSize_t count=0 ; count<mimeCount ; ++count )
 		{
 		const XMLCh* textContent = mimes->item(count)->getTextContent();
-		scrEnvDetails.iMIMEDetails.push_back(textContent);
+		std::wstring textString = XMLChToWString(textContent);
+		scrEnvDetails.iMIMEDetails.push_back(textString);
 		}
 			
 	LOGEXIT("CScrXmlParser::GetEnvironmentData()");
@@ -349,7 +403,7 @@
 	
 		DOMNodeList* softwaretype = elementRoot->getElementsByTagName(tagSoftwareTypeName.get());
 		const XMLCh* textContent = softwaretype->item(0)->getTextContent();
-		preProvisionDetail.iSoftwareTypeName = std::wstring(textContent);
+		preProvisionDetail.iSoftwareTypeName = XMLChToWString(textContent);
 	
 		// Retrieve the nodes for Component.
 		DOMNodeList* componentNodes = elementRoot->getElementsByTagName(tagComponent.get());
@@ -455,16 +509,16 @@
 	if(locale->getLength() != 0)
 		{
 		const XMLCh* textLocale = locale->item(0)->getTextContent();
-		componentLocalizable.iLocale = Util::WideCharToInteger(textLocale);
+		componentLocalizable.iLocale = XercesStringToInteger(textLocale);
 		}
 	
 	const XMLCh* textName = name->item(0)->getTextContent();
-	componentLocalizable.iName = textName;
+	componentLocalizable.iName = XMLChToWString(textName);
 
 	if(vendor->getLength() != 0)
 		{
 		const XMLCh* textVendor = vendor->item(0)->getTextContent();
-		componentLocalizable.iVendor = textVendor;
+		componentLocalizable.iVendor = XMLChToWString(textVendor);
 		}
 	LOGEXIT("CScrXmlParser::GetComponentLocalizable()");
 	return componentLocalizable;
@@ -495,12 +549,12 @@
 	XmlDetails::TScrPreProvisionDetail::TComponentProperty componentProperty;
 	
 	const XMLCh* textName = name->getTextContent();
-	componentProperty.iName	= textName;
+	componentProperty.iName	= XMLChToWString(textName);
 	
 	if(locale->getLength() != 0)
 		{
 		const XMLCh* textLocale = locale->item(0)->getTextContent();
-		componentProperty.iLocale = Util::WideCharToInteger(textLocale);
+		componentProperty.iLocale = XercesStringToInteger(textLocale);
 		}
 
 	DOMNodeList* childNodes = value->item(0)->getChildNodes();
@@ -512,13 +566,13 @@
 		if( XMLString::equals(currentElement->getTagName(), tagComponentPropertyIntValue.get()))
 			{
 			componentProperty.iIsIntValue = true;
-			componentProperty.iValue = currentElement->getTextContent();
+			componentProperty.iValue = XMLChToWString(currentElement->getTextContent());
 			break;
 			}
 		else if( XMLString::equals(currentElement->getTagName(), tagComponentPropertyStrValue.get()))
 			{
 			componentProperty.iIsIntValue = false;
-			componentProperty.iValue = currentElement->getTextContent();
+			componentProperty.iValue = XMLChToWString(currentElement->getTextContent());
 			break;
 			}
 		}
@@ -526,7 +580,7 @@
 	if(isBinary->getLength() != 0)
 		{
 		const XMLCh* textIsBinary = isBinary->item(0)->getTextContent();
-		componentProperty.iIsStr8Bit = Util::WideCharToInteger(textIsBinary);		
+		componentProperty.iIsStr8Bit = XercesStringToInteger(textIsBinary);		
 		}
 	LOGEXIT("CScrXmlParser::GetComponentProperty()");
 	return componentProperty;
@@ -556,7 +610,7 @@
 	// attribute - location
 	DOMNamedNodeMap* attributes = aDOMElement->getAttributes();
 	DOMNode* location = attributes->getNamedItem(tagLocation.get());
-	componentFile.iLocation = location->getTextContent();
+	componentFile.iLocation = XMLChToWString(location->getTextContent());
 	LOGEXIT("CScrXmlParser::GetComponentFile()");
 	return componentFile;
 	}
@@ -583,15 +637,15 @@
 		
 		DOMNodeList* supplierId = currentDepDetail->getElementsByTagName(tagSupplierId.get());
 		const XMLCh* textSupplierId = supplierId->item(0)->getTextContent();
-		componentDependencyDetail.iSupplierId = std::wstring(textSupplierId);
+		componentDependencyDetail.iSupplierId = XMLChToWString(textSupplierId);
 		
 		DOMNodeList* fromVersion = currentDepDetail->getElementsByTagName(tagFromVersion.get());
 		const XMLCh* textFromVersion = fromVersion->item(0)->getTextContent();
-		componentDependencyDetail.iFromVersion = std::wstring(textFromVersion);
+		componentDependencyDetail.iFromVersion = XMLChToWString(textFromVersion);
 
 		DOMNodeList* toVersion = currentDepDetail->getElementsByTagName(tagToVersion.get());
 		const XMLCh* textToVersion = toVersion->item(0)->getTextContent();
-		componentDependencyDetail.iToVersion = std::wstring(textToVersion);
+		componentDependencyDetail.iToVersion = XMLChToWString(textToVersion);
 
 		componentDependency.iComponentDependencyList.push_back(componentDependencyDetail);
 		
@@ -600,7 +654,7 @@
 	// attribute - location
 	DOMNamedNodeMap* attributes = aDOMElement->getAttributes();
 	DOMNode* dependentId = attributes->getNamedItem(tagDependentId.get());
-	componentDependency.iDependentId = dependentId->getTextContent();
+	componentDependency.iDependentId = XMLChToWString(dependentId->getTextContent());
 	LOGEXIT("CScrXmlParser::GetComponentDependency()");
 	return componentDependency;
 	}
@@ -628,7 +682,7 @@
 	DOMNodeList* isBinary = aDOMElement->getElementsByTagName(tagFilePropertyIsBinary.get());
 	
 	const XMLCh* textName = name->getTextContent();
-	fileProperty.iName	= textName;
+	fileProperty.iName	= XMLChToWString(textName);
 		
 	int valueLength = value->getLength();
 	if(valueLength != 0)
@@ -644,12 +698,12 @@
 				if( XMLString::equals(valueElement->getTagName(), tagFilePropertyIntValue.get()))
 					{
 					fileProperty.iIsIntValue = true;
-					fileProperty.iValue = currentElement->getTextContent();
+					fileProperty.iValue = XMLChToWString(currentElement->getTextContent());
 					}
 				else if( XMLString::equals(valueElement->getTagName(), tagFilePropertyStrValue.get()))
 					{
 					fileProperty.iIsIntValue = false;
-					fileProperty.iValue = currentElement->getTextContent();
+					fileProperty.iValue = XMLChToWString(currentElement->getTextContent());
 					}
 				}
 			}
@@ -687,31 +741,31 @@
 		{
 		LOGINFO("CScrXmlParser::GetComponentDetails()- rom app");
 		const XMLCh* textRomApplication = romApplication->item(0)->getTextContent();
-		componentDetails.iIsRomApplication = Util::WideCharToInteger(textRomApplication);
+		componentDetails.iIsRomApplication = XercesStringToInteger(textRomApplication);
 		}
 
 	if( removable->getLength() != 0)
 		{
 		const XMLCh* textRemovable = removable->item(0)->getTextContent();
-		componentDetails.iIsRemovable = Util::WideCharToInteger(textRemovable);
+		componentDetails.iIsRemovable = XercesStringToInteger(textRemovable);
 		}
 	
 	if( size->getLength() != 0)
 		{
 		const XMLCh* textSize = size->item(0)->getTextContent();
-		componentDetails.iSize = Util::WideCharToInteger(textSize);
+		componentDetails.iSize = XercesStringToInteger(textSize);
 		}
 	
 	if( scomoState->getLength() != 0)
 		{
 		const XMLCh* textScomoState = scomoState->item(0)->getTextContent();
-		componentDetails.iScomoState = Util::WideCharToInteger(textScomoState);
+		componentDetails.iScomoState = XercesStringToInteger(textScomoState);
 		}
 	
 	if( globalId->getLength() != 0)
 		{
 		const XMLCh* textGlobalId = globalId->item(0)->getTextContent();
-		componentDetails.iGlobalId = textGlobalId;
+		componentDetails.iGlobalId = XMLChToWString(textGlobalId);
 		}
 
 	if( versionDetail->getLength() != 0)
@@ -727,21 +781,21 @@
 		DOMNode* minor = attributes->getNamedItem(tagMinor.get());
 		DOMNode* build = attributes->getNamedItem(tagBuild.get());
 
-		componentDetails.iVersion.iMajor = major->getTextContent();
-		componentDetails.iVersion.iMinor = minor->getTextContent();
-		componentDetails.iVersion.iBuild = build->getTextContent();
+		componentDetails.iVersion.iMajor = XMLChToWString(major->getTextContent());
+		componentDetails.iVersion.iMinor = XMLChToWString(minor->getTextContent());
+		componentDetails.iVersion.iBuild = XMLChToWString(build->getTextContent());
 		}
 	
 	if( originVerified->getLength() != 0)
 		{
 		const XMLCh* textOriginVerified = originVerified->item(0)->getTextContent();
-		componentDetails.iOriginVerified = Util::WideCharToInteger(textOriginVerified);
+		componentDetails.iOriginVerified = XercesStringToInteger(textOriginVerified);
 		}
 	
 	if( hidden->getLength() != 0)
 		{
 		const XMLCh* textHidden = hidden->item(0)->getTextContent();
-		componentDetails.iIsHidden = Util::WideCharToInteger(textHidden);
+		componentDetails.iIsHidden = XercesStringToInteger(textHidden);
 		}
 	LOGEXIT("CScrXmlParser::GetComponentDetails()");
 	return componentDetails;
@@ -761,10 +815,10 @@
 	XmlDetails::TScrEnvironmentDetails::TLocalizedSoftwareTypeName localizedSwTypeName;
 
 	const XMLCh* textLocale = locale->getTextContent();
-	localizedSwTypeName.iLocale = Util::WideCharToInteger(textLocale);
+	localizedSwTypeName.iLocale = XercesStringToInteger(textLocale);
 	
 	const XMLCh* textName = name->getTextContent();
-	localizedSwTypeName.iName = textName;
+	localizedSwTypeName.iName =  XMLChToWString(textName);
 	LOGEXIT("CScrXmlParser::GetLocalizedSoftwareTypeName()");
 	return localizedSwTypeName;
 	}
@@ -788,7 +842,7 @@
 	customAcessList.iSecureId = secureIdVal;
 	
 	const XMLCh* textAccessMode = accessMode->getTextContent();
-	customAcessList.iAccessMode = Util::WideCharToInteger(textAccessMode);
+	customAcessList.iAccessMode = XercesStringToInteger(textAccessMode);
 	LOGEXIT("CScrXmlParser::GetCustomAcessList()");
 	return customAcessList;
 	}
@@ -840,7 +894,7 @@
 		appProperty.iLocale = opaqueDataType.iLocale;
 		appProperty.iName = L"OpaqueData";
 		appProperty.iIntValue = 0;
-		appProperty.iIsStr8Bit = true;
+		appProperty.iIsStr8Bit = opaqueDataType.iIsBinary;
 		appProperty.iServiceUid = 0;
 		appProperty.iStrValue = opaqueDataType.iOpaqueData;
 		
@@ -910,7 +964,7 @@
 	XmlDetails::TScrPreProvisionDetail::TApplicationRegistrationInfo::TAppAttribute appAttribute;
 	
 	const XMLCh* textName = name->getTextContent();
-	appAttribute.iName	= textName;
+	appAttribute.iName	= XMLChToWString(textName);
 	
 	DOMNodeList* childNodes = value->item(0)->getChildNodes();
 	const XMLSize_t nodeCount = childNodes->getLength();
@@ -921,13 +975,13 @@
 		if( XMLString::equals(currentElement->getTagName(), tagApplicationAttributeIntValue.get()))
 			{
 			appAttribute.iIsIntValue = true;
-			appAttribute.iValue = currentElement->getTextContent();
+			appAttribute.iValue = XMLChToWString(currentElement->getTextContent());
 			break;
 			}
 		else if( XMLString::equals(currentElement->getTagName(), tagApplicationAttributeStrValue.get()))
 			{
 			appAttribute.iIsIntValue = false;
-			appAttribute.iValue = currentElement->getTextContent();
+			appAttribute.iValue = XMLChToWString(currentElement->getTextContent());
 			break;
 			}
 		}
@@ -935,7 +989,7 @@
 	if(isBinary->getLength() != 0)
 		{
 		const XMLCh* textIsBinary = isBinary->item(0)->getTextContent();
-		appAttribute.iIsStr8Bit = Util::WideCharToInteger(textIsBinary);		
+		appAttribute.iIsStr8Bit = XercesStringToInteger(textIsBinary);
 		}
 	LOGEXIT("CScrXmlParser::GetAppAttribute()");
 	return appAttribute;
@@ -954,7 +1008,7 @@
 	if( fileName->getLength() != 0)
 		{
 		const XMLCh* fil = fileName->item(0)->getTextContent();
-		file = fil;
+		file = XMLChToWString(fil);
 		}
 
 	LOGEXIT("CScrXmlParser::GetFileOwnershipInfo()");
@@ -977,13 +1031,13 @@
 	if( priority->getLength() != 0)
 		{
 		const XMLCh* pri = priority->item(0)->getTextContent();
-		dataType.iPriority = Util::WideCharToInteger(pri);
+		dataType.iPriority = XercesStringToInteger(pri);
 		}
 
 	if( type->getLength() != 0)
 		{
 		const XMLCh* typ = type->item(0)->getTextContent();
-		dataType.iType = typ;
+		dataType.iType = XMLChToWString(typ);
 		}
 	LOGEXIT("CScrXmlParser::GetDataType()");
 	return dataType;
@@ -996,23 +1050,32 @@
 	// tags in OpaqueDataType 
 	fn_auto_ptr<releaseXmlChPtr, XMLCh> tagData( &XMLString::release, XMLString::transcode("Data") );
 	fn_auto_ptr<releaseXmlChPtr, XMLCh> tagOpaqueLocale( &XMLString::release, XMLString::transcode("OpaqueLocale") );
+	fn_auto_ptr<releaseXmlChPtr, XMLCh> tagIsBinary( &XMLString::release, XMLString::transcode("IsBinary") );
 
 	DOMNodeList* Data = aDOMElement->getElementsByTagName(tagData.get());
 	DOMNodeList* OpaqueLocale = aDOMElement->getElementsByTagName(tagOpaqueLocale.get());
+	DOMNodeList* isBinary = aDOMElement->getElementsByTagName(tagIsBinary.get());
 	
 	XmlDetails::TScrPreProvisionDetail::TApplicationRegistrationInfo::TOpaqueDataType opaqueDataType;
 
 	if( OpaqueLocale->getLength() != 0)
 		{
 		const XMLCh* pri = OpaqueLocale->item(0)->getTextContent();
-		opaqueDataType.iLocale = Util::WideCharToInteger(pri);
+		opaqueDataType.iLocale = XercesStringToInteger(pri);
 		}
 
 	if( Data->getLength() != 0)
 		{
 		const XMLCh* typ = Data->item(0)->getTextContent();
-		opaqueDataType.iOpaqueData = typ;
+		opaqueDataType.iOpaqueData = XMLChToWString(typ);
 		}
+	
+	if(isBinary->getLength() != 0)
+		{
+		const XMLCh* textIsBinary = isBinary->item(0)->getTextContent();
+		opaqueDataType.iIsBinary = XercesStringToInteger(textIsBinary);		
+		}
+
 	LOGEXIT("CScrXmlParser::GetOpaqueDataType()");
 	return opaqueDataType;
 	}
@@ -1033,13 +1096,13 @@
 	if( ServiceOpaqueLocale->getLength() != 0)
 		{
 		const XMLCh* pri = ServiceOpaqueLocale->item(0)->getTextContent();
-		opaqueDataType.iLocale = Util::WideCharToInteger(pri);
+		opaqueDataType.iLocale = XercesStringToInteger(pri);
 		}
 
 	if( ServiceData->getLength() != 0)
 		{
 		const XMLCh* typ = ServiceData->item(0)->getTextContent();
-		opaqueDataType.iOpaqueData = typ;
+		opaqueDataType.iOpaqueData = XMLChToWString(typ);
 		}
 	LOGEXIT("CScrXmlParser::GetServiceOpaqueDataType()");
 	return opaqueDataType;
@@ -1067,7 +1130,7 @@
 	if( uid->getLength() != 0)
 		{
 		const XMLCh* priority = uid->item(0)->getTextContent();
-		appServiceInfo.iUid = Util::WideCharToInteger(priority);
+		appServiceInfo.iUid = XercesStringToInteger(priority);
 		}
 
 	// for each OpaqueData retrieve all tags
@@ -1081,7 +1144,7 @@
 		appProperty.iLocale = opaqueDataType.iLocale;
 		appProperty.iName = L"OpaqueData";
 		appProperty.iIntValue = 0;
-		appProperty.iIsStr8Bit = true;
+		appProperty.iIsStr8Bit = opaqueDataType.iIsBinary;
 		appProperty.iServiceUid = appServiceInfo.iUid;
 		appProperty.iStrValue = opaqueDataType.iOpaqueData;
 		
@@ -1166,7 +1229,7 @@
 	
 	LOGINFO("name->getTextContent");
 	const XMLCh* textName = name->getTextContent();
-	appLocalizableAttribute.iName = textName;
+	appLocalizableAttribute.iName = XMLChToWString(textName);
 	
 	DOMNodeList* childNodes = value->item(0)->getChildNodes();
 	const XMLSize_t nodeCount = childNodes->getLength();
@@ -1177,13 +1240,13 @@
 		if( XMLString::equals(currentElement->getTagName(), tagAppLocalizableInfoAttributeIntValue.get()))
 			{
 			appLocalizableAttribute.iIsIntValue = true;
-			appLocalizableAttribute.iValue = currentElement->getTextContent();
+			appLocalizableAttribute.iValue = XMLChToWString(currentElement->getTextContent());
 			break;
 			}
 		else if( XMLString::equals(currentElement->getTagName(), tagAppLocalizableInfoAttributeStrValue.get()))
 			{
 			appLocalizableAttribute.iIsIntValue = false;
-			appLocalizableAttribute.iValue = currentElement->getTextContent();
+			appLocalizableAttribute.iValue = XMLChToWString(currentElement->getTextContent());
 			break;
 			}
 		}
@@ -1191,7 +1254,7 @@
 	if(isBinary->getLength() != 0)
 		{
 		const XMLCh* textIsBinary = isBinary->item(0)->getTextContent();
-		appLocalizableAttribute.iIsStr8Bit = Util::WideCharToInteger(textIsBinary);		
+		appLocalizableAttribute.iIsStr8Bit = XercesStringToInteger(textIsBinary);
 		}
 
 	LOGEXIT("CScrXmlParser::GetAppLocalizableAttribute()");
@@ -1247,7 +1310,7 @@
 	LOGINFO("name->getTextContent");
 	const XMLCh* textName = name->getTextContent();
 	LOGINFO("assign name");
-	appLocalizableViewDataAttribute.iName = textName;
+	appLocalizableViewDataAttribute.iName = XMLChToWString(textName);
 
 	LOGINFO("getChildNodes()");
 	DOMNodeList* childNodes = value->item(0)->getChildNodes();
@@ -1261,14 +1324,14 @@
 			{
 			LOGINFO("int value");
 			appLocalizableViewDataAttribute.iIsIntValue = true;
-			appLocalizableViewDataAttribute.iValue = currentElement->getTextContent();
+			appLocalizableViewDataAttribute.iValue = XMLChToWString(currentElement->getTextContent());
 			break;
 			}
 		else if( XMLString::equals(currentElement->getTagName(), tagAppLocalizableViewDataStrValue.get()))
 			{
 			LOGINFO("str value");
 			appLocalizableViewDataAttribute.iIsIntValue = false;
-			appLocalizableViewDataAttribute.iValue = currentElement->getTextContent();
+			appLocalizableViewDataAttribute.iValue = XMLChToWString(currentElement->getTextContent());
 			break;
 			}
 		}
@@ -1277,7 +1340,7 @@
 		{
 		LOGINFO("bin value");
 		const XMLCh* textIsBinary = isBinary->item(0)->getTextContent();
-		appLocalizableViewDataAttribute.iIsStr8Bit = Util::WideCharToInteger(textIsBinary);		
+		appLocalizableViewDataAttribute.iIsStr8Bit = XercesStringToInteger(textIsBinary);
 		}
 	LOGEXIT("CScrXmlParser::GetAppLocalizableViewDataAttributes()");
 	return appLocalizableViewDataAttribute;
@@ -1304,25 +1367,25 @@
 	if( locale->getLength() != 0)
 		{
 		const XMLCh* loc = locale->item(0)->getTextContent();
-		appProperty.iLocale = Util::WideCharToInteger(loc);
+		appProperty.iLocale = XercesStringToInteger(loc);
 		}
 
 	if( name->getLength() != 0)
 		{
 		const XMLCh* nam = name->item(0)->getTextContent();
-		appProperty.iName = nam;
+		appProperty.iName = XMLChToWString(nam);
 		}
 	
 	if( intvalue->getLength() != 0)
 		{
 		const XMLCh* intval = intvalue->item(0)->getTextContent();
-		appProperty.iIntValue = Util::WideCharToInteger(intval);
+		appProperty.iIntValue = XercesStringToInteger(intval);
 		}
 
 	if( strvalue->getLength() != 0)
 		{
 		const XMLCh* strval = strvalue->item(0)->getTextContent();
-		appProperty.iStrValue = strval;
+		appProperty.iStrValue = XMLChToWString(strval);
 		}
 	LOGEXIT("CScrXmlParser::GetAppProperty()");
 	return appProperty;
@@ -1374,3 +1437,5 @@
 	std::string msg( "Resetting error handler object" );
 	LOGINFO(msg);
 	}
+
+
--- a/secureswitools/swisistools/source/xmlparser/xmlparser.h	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/source/xmlparser/xmlparser.h	Wed Aug 18 09:55:45 2010 +0300
@@ -37,6 +37,14 @@
 #include <xercesc/dom/DOM.hpp>
 
 #include "toolsconf.h"
+#include "symbiantypes.h"
+#include "utf8_wrapper.h"
+
+// Xerces library uses XMLCh (UTF16 format) as its default character type.
+// We can store the UTF16 returned form the xerces library in the following
+// template class.
+typedef std::basic_string<XMLCh> XercesString;
+
 
 /**
 * This template is used to cleanup memory by calling a function as pointed 
@@ -144,7 +152,7 @@
             std::wstring iLauncherExecutable;
 			std::vector<TCustomAcessList> iCustomAcessList;
 			std::vector<std::wstring> iMIMEDetails;
-			};
+			}; // struct TScrEnvironmentDetails
 
 		
 	class TScrPreProvisionDetail
@@ -160,11 +168,16 @@
 			TComponentLocalizable()
 			:iLocale(0)
 			{}
-			
+
+		public: // public Functions
+			inline XercesString Name();
+			inline XercesString Vendor();
+		
+		public: // Member variables	
 			int iLocale;
 			std::wstring iName;
 			std::wstring iVendor;
-			};
+			}; // class TComponentLocalizable
 		
 		class TComponentProperty
 			{
@@ -176,29 +189,41 @@
 			iIsStr8Bit(false)
 			{}
 
-		public:
+		public: // Member Functions
+			inline XercesString Name();
+			inline XercesString Value();
+
+		public: // Member variables
 			std::wstring iName;
 			int iLocale;
 			std::wstring iValue;
 			bool iIsIntValue;
 			int iIsStr8Bit;
-			};
+			}; // class TComponentProperty
 
 		class TComponentDependency
 			{
 		public:
 			class TComponentDependencyDetail
 				{
-				public:
+				public: // Member Functions
+					inline XercesString SupplierId();
+					inline XercesString FromVersion();
+					inline XercesString ToVersion();
+
+				public: // Member Variables
 					std::wstring iSupplierId;
 					std::wstring iFromVersion;
 					std::wstring iToVersion;
-				};
+				}; // class TComponentDependencyDetail
 
-			public:
+			public: // Member Functions
+				inline XercesString DependentId();
+
+			public: // Member Variables
 				std::wstring iDependentId;
 				std::vector<TComponentDependencyDetail>	iComponentDependencyList;
-			};
+			}; // class TComponentDependency
 
 		class TComponentFile
 			{
@@ -212,15 +237,24 @@
 				TFileProperty()
 				:iIsIntValue(false)
 				{}
+			public: // Member Functions
+				inline XercesString Name();
+				inline XercesString Value();
+	
+			public: // Member Variables
 				std::wstring iName;
 				std::wstring iValue;
 				bool iIsIntValue;
-				};
+				}; // struct TFileProperty
 
+			public: // Member Functions
+			inline XercesString Location();
+			
+			public: // Member Variables
 			std::wstring iLocation;
 			std::vector<TFileProperty> iFileProperties;
 			
-			};
+			}; // class TComponentFile
 		
 		class TComponentDetails
 			{
@@ -241,16 +275,23 @@
 
 				TVersion()
 				{}
+			public:
+				inline XercesString MajorVersion();
+				inline XercesString MinorVersion();
+				inline XercesString BuildVersion();
 
 			public:
 				std::wstring iMajor;
 				std::wstring iMinor;
 				std::wstring iBuild;
-				};
+				}; // class TVersion
+
+			public: // Member Functions
+			inline XercesString GlobalId();
 
 			int iIsRomApplication;
 			int iIsRemovable;
-			__int64 iSize;
+			TInt64 iSize;
 			int iScomoState;
 			std::wstring iGlobalId;
 			TVersion iVersion;
@@ -290,10 +331,12 @@
 					{
 					public:
 					TOpaqueDataType()
-					:iLocale(0)
+					:iLocale(0),
+					iIsBinary(false)
 					{}
 					int iLocale;
 					int iServiceUid;
+					bool iIsBinary; 
 					std::wstring iOpaqueData;
 					};
 
@@ -387,12 +430,14 @@
 			TComponentDependency iComponentDependency;
 			std::vector<TApplicationRegistrationInfo> iApplicationRegistrationInfo;
 			TComponentDetails iComponentDetails;
-			};
+			}; // class TComponent
+
+		inline XercesString SoftwareTypeName();
 
 		std::wstring iSoftwareTypeName;
 		std::vector<TComponent> iComponents;
 		
-		};
+		}; // class TScrPreProvisionDetail
 }
 
 class CScrXmlParser
@@ -512,4 +557,228 @@
 
 XERCES_CPP_NAMESPACE_END
 
+// inline function definitions
+
+#ifndef _WIN32
+inline XercesString WStringToXercesString(const std::wstring& aString)
+	{
+	XMLCh* buffer = new XMLCh[ (aString.length() + 1) * 2 ];
+	XMLCh* temp = buffer;
+	const wchar_t* source = aString.c_str();
+
+	ConvertUCS4toUTF16(&source, source + aString.length(), &temp, buffer + aString.length());
+
+	// Appending NUL to the converted buffer.
+	*temp = 0;
+
+	XercesString result(buffer);
+	delete[] buffer;
+
+	return result; 
+	}
+
+#else
+
+// We need not do anything for WINDOWS, since XercesString
+// and WString both are same and will be in UTF-16 encoding format.
+#define WStringToXercesString(aWString) (aWString)
+
+#endif // _WIN32
+
+
+//------------------------------------------------------------------------------------------------------------------------------
+//											UTILITY FUNCTIONS
+//------------------------------------------------------------------------------------------------------------------------------
+#ifndef _WIN32
+
+inline std::wstring XercesStringToWString(const XercesString& aString)
+	{
+	wchar_t* buffer = new wchar_t[aString.length() + 1];
+	const XMLCh* source = aString.c_str();
+
+	// Using a temp variable in place of buffer as ConvertUTF16toUTF8 modifies the source pointer passed.
+	wchar_t* temp = buffer;
+
+	ConvertUTF16toUCS4(&source, source + aString.length(), &temp, temp + aString.length());
+
+	// Appending NUL to the converted buffer.
+	*temp = 0;
+
+	std::wstring result(buffer);
+	delete[] buffer;
+	return result;
+	}
+#else
+
+// We need not do anything for WINDOWS, since XercesString
+// and WString both are same and will be in UTF-16 encoding format.
+#define XercesStringToWString(aXercesString) (aXercesString)
+
+#endif // _WIN32
+
+
+//------------------------------------------------------------------------------------------------------------------------------
+
+
+
+inline XercesString XmlDetails::TScrPreProvisionDetail::TComponentDetails::TVersion::MajorVersion()
+{
+#ifdef _WIN32
+	return iMajor;
+#else
+	return WStringToXercesString(iMajor);
+#endif // _WIN32
+}
+
+
+inline XercesString XmlDetails::TScrPreProvisionDetail::TComponentDetails::TVersion::MinorVersion()
+{
+#ifdef _WIN32
+	return iMinor;
+#else
+	return WStringToXercesString(iMinor);
+#endif // _WIN32
+}
+
+
+inline XercesString XmlDetails::TScrPreProvisionDetail::TComponentDetails::TVersion::BuildVersion()
+{
+#ifdef _WIN32
+	return iBuild;
+#else
+	return WStringToXercesString(iBuild);
+#endif // _WIN32
+}
+
+
+inline XercesString XmlDetails::TScrPreProvisionDetail::TComponentDetails::GlobalId()
+{
+#ifdef _WIN32
+	return iGlobalId;
+#else  
+	return WStringToXercesString(iGlobalId);
+#endif // _WIN32
+}
+
+
+inline XercesString XmlDetails::TScrPreProvisionDetail::SoftwareTypeName()
+	{
+#ifdef _WIN32
+	return iSoftwareTypeName;
+#else
+	return WStringToXercesString(iSoftwareTypeName);
+#endif // _WIN32
+	}
+
+
+inline XercesString XmlDetails::TScrPreProvisionDetail::TComponentLocalizable::Name()
+	{
+#ifdef _WIN32
+	return iName;
+#else
+	return WStringToXercesString(iName);
+#endif // _WIN32
+	}
+
+
+inline XercesString XmlDetails::TScrPreProvisionDetail::TComponentLocalizable::Vendor()
+	{
+#ifdef _WIN32
+	return iVendor;
+#else
+	return WStringToXercesString(iVendor);
+#endif // _WIN32
+	}
+
+
+inline XercesString XmlDetails::TScrPreProvisionDetail::TComponentProperty::Name()
+	{
+#ifdef _WIN32
+	return iName;
+#else
+	return WStringToXercesString(iName);
+#endif // _WIN32
+	}
+
+inline XercesString XmlDetails::TScrPreProvisionDetail::TComponentProperty::Value()
+	{
+#ifdef _WIN32
+	return iValue;
+#else
+	return WStringToXercesString(iValue);
+#endif // _WIN32
+	}
+
+
+inline XercesString XmlDetails::TScrPreProvisionDetail::TComponentFile::Location()
+	{
+#ifdef _WIN32
+	return iLocation;
+#else
+	return WStringToXercesString(iLocation);
+#endif // _WIN32
+	}
+
+inline XercesString XmlDetails::TScrPreProvisionDetail::TComponentFile::TFileProperty::Name()
+	{
+#ifdef _WIN32
+	return iName;
+#else
+	return WStringToXercesString(iName);
+#endif // _WIN32
+	}
+
+inline XercesString XmlDetails::TScrPreProvisionDetail::TComponentFile::TFileProperty::Value()
+	{
+#ifdef _WIN32
+	return iValue;
+#else
+	return WStringToXercesString(iValue);
+#endif // _WIN32
+	}
+
+inline XercesString XmlDetails::TScrPreProvisionDetail::TComponentDependency::DependentId()
+	{
+#ifdef _WIN32
+	return iDependentId;
+#else
+	return WStringToXercesString(iDependentId);
+#endif // _WIN32
+	}
+
+inline XercesString XmlDetails::TScrPreProvisionDetail::TComponentDependency::TComponentDependencyDetail::SupplierId()
+	{
+#ifdef _WIN32
+	return iSupplierId;
+#else
+	return WStringToXercesString(iSupplierId);
+#endif // _WIN32
+	}
+
+inline XercesString XmlDetails::TScrPreProvisionDetail::TComponentDependency::TComponentDependencyDetail::FromVersion()
+	{
+#ifdef _WIN32
+	return iFromVersion;
+#else
+	return WStringToXercesString(iFromVersion);
+#endif // _WIN32
+	}
+
+inline XercesString XmlDetails::TScrPreProvisionDetail::TComponentDependency::TComponentDependencyDetail::ToVersion()
+	{
+#ifdef _WIN32
+	return iToVersion;
+#else
+	return WStringToXercesString(iToVersion);
+#endif // _WIN32
+	}
+
+
+
+
+
+
+
+
+
 #endif // _XMLPARSER_H
--- a/secureswitools/swisistools/test/tdumpsis/testdumpsis.pl	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/test/tdumpsis/testdumpsis.pl	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2004-2010 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
 # under the terms of the License "Eclipse Public License v1.0"
@@ -345,6 +345,22 @@
 %s
 ;
 ";
+
+#
+# Template string to generate PKG file for TestNRFlag.
+#
+$PkgFileWithNRflag = "	
+; File to verify NR flag is dumped correctly.
+;
+;Languages
+&EN
+;
+#{\"TestPacakge\"}, (0x80000077), 1, 0, 0, TYPE=SA, RU, NR
+;
+%{\"Vendor\"}
+:\"Vendor\"
+";
+
 #
 # Do test for each elements of TestItems array
 #
@@ -535,6 +551,9 @@
 SatisfyCoverage();
 
 VerifyErroneousCommandLineArg();
+
+TestNRFlag();
+
 #
 # Display the result
 #
@@ -1481,3 +1500,52 @@
 	unlink $TestLogFile;
 	}
 
+sub TestNRFlag
+	{
+	$TestNRflagsis = "test_nr_flag.sis";
+	$TestNRflagLog = "test_nr_flag.Log";
+	$TestNRflagpkg = "test_nr_flag.pkg";
+	$DumpsisGenPkgPath = "\/test_nr_flag";
+	$ExpectedStringInDumpedPackage = "NR";
+	WriteLog("Test if the NR flag, in the original package file, is present in the dumped package file \n");
+
+	CreateFile('test_nr_flag.pkg', $PkgFileWithNRflag);
+	# Create a sis file
+	my $result = system("/epoc32/tools/MAKESIS -v $TestNRflagpkg $TestNRflagsis > $TestNRflagLog ");
+	
+	# Execute DumpSIS on the created sis file.
+	my $result1 = system("/epoc32/tools/DUMPSIS $TestNRflagsis > $TestNRflagLog");
+	
+	use Cwd;
+	$dir = cwd;
+	chdir $dir.$DumpsisGenPkgPath;
+	open($pkgcontent,$TestNRflagpkg);
+	foreach (<$pkgcontent>) 
+	{
+		$_ =~ tr/\000//d;
+		if ($_ =~ m/$ExpectedStringInDumpedPackage/) 
+		{
+			$result2 = 1;
+		}
+	}
+	close($pkgcontent);
+
+	chdir $dir;
+	$NumberOfTests++;
+	if ($result == 0 && $result1 == 0 && $result2 == 1) 
+		{
+		$NumberOfPassed++;
+		WriteLog("Passed\n\n");
+		}
+	else 
+		{
+		$NumberOfFailed++;
+		WriteLog("Failed\n\n");
+		}
+		
+	unlink $TestNRflagpkg;
+	unlink $TestNRflagsis;
+	unlink $TestNRflagLog;
+	use File::Path;
+	rmtree "$dir$DumpsisGenPkgPath";
+	}
\ No newline at end of file
--- a/secureswitools/swisistools/test/tinterpretsisinteg/check.pl	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/check.pl	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
 # under the terms of the License "Eclipse Public License v1.0"
@@ -172,7 +172,7 @@
 		$searchresult = 0;
 		$filenotexist = 0;
 	
-		$filename = trim($temp);
+		$filename = lc trim($temp);
 		if($filename eq "")
 		{
 			# Blank line found - no file to check
--- a/secureswitools/swisistools/test/tinterpretsisinteg/testinterpretsis.bat	Tue Jul 06 14:23:31 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/testinterpretsis.bat	Wed Aug 18 09:55:45 2010 +0300
@@ -1,5 +1,5 @@
 @rem
-@rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+@rem Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
 @rem under the terms of the License "Eclipse Public License v1.0"
@@ -1890,7 +1890,7 @@
 call copy \epoc32\winscw\c\tswi\tinterpretsisinteg\data\version_5_3.txt .\romdrive\system\data\sisregistry_5.3.txt > NUL
 call interpretsis -z .\romdrive -c .\cdrive -s \epoc32\winscw\c\tswi\tinterpretsisinteg\data\simple.sis -w info -l \epoc32\winscw\c\interpretsis_test_harness.txt > NUL
 if not %errorlevel%==0 GOTO LAST
-call fc .\cdrive\sys\install\sisregistry\80000001\00000000.reg \epoc32\winscw\c\tswi\tinterpretsisinteg\data\80000001_53\00000000.reg | find "FC: no differences encountered" > NUL
+call fc /c  .\cdrive\sys\install\sisregistry\80000001\00000000.reg \epoc32\winscw\c\tswi\tinterpretsisinteg\data\80000001_53\00000000.reg | find "FC: no differences encountered" > NUL
 if not %errorlevel%==0 GOTO LAST
 ECHO ***ERRORCODE*** %errorlevel% PASS>>\epoc32\winscw\c\interpretsis_test_harness.txt
 GOTO PASS_CLEAN
@@ -1904,7 +1904,7 @@
 call copy \epoc32\winscw\c\tswi\tinterpretsisinteg\data\version_5_1.txt .\romdrive\system\data\sisregistry_5.1.txt > NUL
 call interpretsis -z .\romdrive -c .\cdrive -s \epoc32\winscw\c\tswi\tinterpretsisinteg\data\simple.sis -w info -l \epoc32\winscw\c\interpretsis_test_harness.txt > NUL
 if not %errorlevel%==0 GOTO LAST
-call fc .\cdrive\sys\install\sisregistry\80000001\00000000.reg \epoc32\winscw\c\tswi\tinterpretsisinteg\data\80000001_51\00000000.reg | find "FC: no differences encountered" > NUL
+call fc /c  .\cdrive\sys\install\sisregistry\80000001\00000000.reg \epoc32\winscw\c\tswi\tinterpretsisinteg\data\80000001_51\00000000.reg | find "FC: no differences encountered" > NUL
 if not %errorlevel%==0 GOTO LAST
 ECHO ***ERRORCODE*** %errorlevel% PASS>>\epoc32\winscw\c\interpretsis_test_harness.txt
 GOTO PASS_CLEAN
@@ -1918,7 +1918,7 @@
 call copy \epoc32\winscw\c\tswi\tinterpretsisinteg\data\version_4_1.txt .\romdrive\system\data\sisregistry_4.0.txt > NUL
 call interpretsis -z .\romdrive -c .\cdrive -s \epoc32\winscw\c\tswi\tinterpretsisinteg\data\simple.sis -w info -l \epoc32\winscw\c\interpretsis_test_harness.txt > NUL
 if not %errorlevel%==0 GOTO LAST
-call fc .\cdrive\sys\install\sisregistry\80000001\00000000.reg \epoc32\winscw\c\tswi\tinterpretsisinteg\data\80000001_40\00000000.reg | find "FC: no differences encountered" > NUL
+call fc /c  .\cdrive\sys\install\sisregistry\80000001\00000000.reg \epoc32\winscw\c\tswi\tinterpretsisinteg\data\80000001_40\00000000.reg | find "FC: no differences encountered" > NUL
 if not %errorlevel%==0 GOTO LAST
 ECHO ***ERRORCODE*** %errorlevel% PASS>>\epoc32\winscw\c\interpretsis_test_harness.txt
 GOTO PASS_CLEAN
@@ -1928,7 +1928,7 @@
 if not exist .\romdrive\system\install mkdir .\romdrive\system\install > NUL
 call interpretsis -z .\romdrive -c .\cdrive -s \epoc32\winscw\c\tswi\tinterpretsisinteg\data\simple.sis -k 5.3 -w info -l \epoc32\winscw\c\interpretsis_test_harness.txt > NUL
 if not %errorlevel%==0 GOTO LAST
-call fc .\cdrive\sys\install\sisregistry\80000001\00000000.reg \epoc32\winscw\c\tswi\tinterpretsisinteg\data\80000001_53\00000000.reg | find "FC: no differences encountered" > NUL
+call fc /c  .\cdrive\sys\install\sisregistry\80000001\00000000.reg \epoc32\winscw\c\tswi\tinterpretsisinteg\data\80000001_53\00000000.reg | find "FC: no differences encountered" > NUL
 if not %errorlevel%==0 GOTO LAST
 ECHO ***ERRORCODE*** %errorlevel% PASS>>\epoc32\winscw\c\interpretsis_test_harness.txt
 GOTO PASS_CLEAN
@@ -1940,7 +1940,7 @@
 call copy \epoc32\winscw\c\tswi\tinterpretsisinteg\data\version_4_1.txt .\romdrive\system\data\sisregistry_4.0.txt > NUL
 call interpretsis -z .\romdrive -c .\cdrive -s \epoc32\winscw\c\tswi\tinterpretsisinteg\data\simple.sis -k 5.3 -w info -l \epoc32\winscw\c\interpretsis_test_harness.txt > NUL
 if not %errorlevel%==0 GOTO LAST
-call fc .\cdrive\sys\install\sisregistry\80000001\00000000.reg \epoc32\winscw\c\tswi\tinterpretsisinteg\data\80000001_53\00000000.reg | find "FC: no differences encountered" > NUL
+call fc /c  .\cdrive\sys\install\sisregistry\80000001\00000000.reg \epoc32\winscw\c\tswi\tinterpretsisinteg\data\80000001_53\00000000.reg | find "FC: no differences encountered" > NUL
 if not %errorlevel%==0 GOTO LAST
 ECHO ***ERRORCODE*** %errorlevel% PASS>>\epoc32\winscw\c\interpretsis_test_harness.txt
 GOTO PASS_CLEAN
@@ -1952,7 +1952,7 @@
 call copy \epoc32\winscw\c\tswi\tinterpretsisinteg\data\version_5_3.txt .\romdrive\system\data\sisregistry_5.3.txt > NUL
 call interpretsis -z .\romdrive -c .\cdrive -s \epoc32\winscw\c\tswi\tinterpretsisinteg\data\simple.sis -w info -l \epoc32\winscw\c\interpretsis_test_harness.txt > NUL
 if not %errorlevel%==0 GOTO LAST
-call fc .\cdrive\sys\install\sisregistry\80000001\00000000.reg \epoc32\winscw\c\tswi\tinterpretsisinteg\data\80000001_53\00000000.reg | find "FC: no differences encountered" > NUL
+call fc /c  .\cdrive\sys\install\sisregistry\80000001\00000000.reg \epoc32\winscw\c\tswi\tinterpretsisinteg\data\80000001_53\00000000.reg | find "FC: no differences encountered" > NUL
 if not %errorlevel%==0 GOTO LAST
 ECHO ***ERRORCODE*** %errorlevel% PASS>>\epoc32\winscw\c\interpretsis_test_harness.txt
 GOTO PASS_CLEAN
@@ -1964,7 +1964,7 @@
 call copy \epoc32\winscw\c\tswi\tinterpretsisinteg\data\version_5_1.txt .\romdrive\system\data\sisregistry_5.1.txt > NUL
 call interpretsis -z .\romdrive -c .\cdrive -s \epoc32\winscw\c\tswi\tinterpretsisinteg\data\simple.sis -w info -l \epoc32\winscw\c\interpretsis_test_harness.txt > NUL
 if not %errorlevel%==0 GOTO LAST
-call fc .\cdrive\sys\install\sisregistry\80000001\00000000.reg \epoc32\winscw\c\tswi\tinterpretsisinteg\data\80000001_51\00000000.reg | find "FC: no differences encountered" > NUL
+call fc /c  .\cdrive\sys\install\sisregistry\80000001\00000000.reg \epoc32\winscw\c\tswi\tinterpretsisinteg\data\80000001_51\00000000.reg | find "FC: no differences encountered" > NUL
 if not %errorlevel%==0 GOTO LAST
 ECHO ***ERRORCODE*** %errorlevel% PASS>>\epoc32\winscw\c\interpretsis_test_harness.txt
 GOTO PASS_CLEAN
@@ -1976,7 +1976,7 @@
 call copy \epoc32\winscw\c\tswi\tinterpretsisinteg\data\version_5_3.txt .\romdrive\system\data\sisregistry_5.3.txt > NUL
 call interpretsis -z .\romdrive -c .\cdrive -s \epoc32\winscw\c\tswi\tinterpretsisinteg\data\simple.sis -w info -l \epoc32\winscw\c\interpretsis_test_harness.txt > NUL
 if not %errorlevel%==0 GOTO LAST
-call fc .\cdrive\sys\install\sisregistry\80000001\00000000.reg \epoc32\winscw\c\tswi\tinterpretsisinteg\data\80000001_53\00000000.reg | find "FC: no differences encountered" > NUL
+call fc /c  .\cdrive\sys\install\sisregistry\80000001\00000000.reg \epoc32\winscw\c\tswi\tinterpretsisinteg\data\80000001_53\00000000.reg | find "FC: no differences encountered" > NUL
 if not %errorlevel%==0 GOTO LAST
 ECHO ***ERRORCODE*** %errorlevel% PASS>>\epoc32\winscw\c\interpretsis_test_harness.txt
 GOTO PASS_CLEAN
@@ -2503,7 +2503,7 @@
 if not %errorlevel%==0 GOTO LAST
 set exist_file=.\edrive\private\10202dce\802730A9_0.sis
 if not exist %exist_file% GOTO FAIL_NOT_FOUND
-call fc .\edrive\private\10202dce\802730A9_0.sis \epoc32\winscw\c\tswi\tinterpretsisinteg\data\802730A9_0.sis | find "FC: no differences encountered" > NUL
+call fc /c  .\edrive\private\10202dce\802730A9_0.sis \epoc32\winscw\c\tswi\tinterpretsisinteg\data\802730A9_0.sis | find "FC: no differences encountered" > NUL
 if not %errorlevel%==0 GOTO LAST
 ECHO ***ERRORCODE*** %errorlevel% PASS>>\epoc32\winscw\c\interpretsis_test_harness.txt
 GOTO PASS_CLEAN
Binary file secureswitools/swisistools/test/tscrtool/data/preprovision.dtd has changed