--- 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 ¶meters);
bool updateFromParameters(const QVariantMap ¶meters);
void updateButtons(const QVariantMap ¶meters);
+ void prepareForErrorDetails(const QVariantMap ¶meters);
+ bool displayAdditionalQuery(const QVariantMap ¶meters);
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 ¶meters);
void updateFromParameters(const QVariantMap ¶meters);
void changeType(SifUiDeviceDialogType type);
+ QString applicationName() const;
signals:
void memorySelectionChanged(const QChar &driveLetter);
@@ -60,6 +67,8 @@
bool updateMemorySelection(const QVariantMap ¶meters);
bool updateProgressBar(const QVariantMap ¶meters);
bool updateErrorText(const QVariantMap ¶meters);
+ 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 ¶meters);
void updateCertificates(const QVariantMap ¶meters);
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 ¶meters) : 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 ¶meters)
{
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 ¶meters)
+{
+ 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 ¶meters)
+{
+ 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 ¶meters)
{
+ 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 ¶meters)
{
+ 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 ¶meters)
{
- 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(®istrySession);
- 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(®istrySession);
- }
-
-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"), ®FileName);
+ 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)"), ®FileName);
+ 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(®ResourceFileName);
+ 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(®istrySession);
+ return;
+ }
+
+ TRAP(err, registrySession.AddAppRegInfoL(regFileName));
+ CheckFailL(err, _L("AddAppRegInfoL"));
+
+ TRAP(err, registrySession.RemoveAppRegInfoL(regFileName));
+ CheckFailL(err, _L("RemoveAppRegInfoL"));
+
+ CleanupStack::PopAndDestroy(®istrySession);
+ }
#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(®istrySession);
+
+ 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