Iby file creation modification
authorlpyl2111 <>
Fri, 23 Apr 2010 15:09:03 +0100
changeset 26 04d4a7bbc3e0
parent 25 98b66e4fb0be
child 27 4090e5806b8b
Iby file creation modification
secureswitools/swisistools/source/dumpsis/main.cpp
secureswitools/swisistools/source/dumpsis/options.cpp
secureswitools/swisistools/source/dumpsis/options.h
secureswitools/swisistools/source/dumpsislib/dumpsis.cpp
secureswitools/swisistools/source/dumpsislib/dumpsis.h
secureswitools/swisistools/source/sisxlibrary/blob.h
secureswitools/swisistools/source/sisxlibrary/certchaindata.h
secureswitools/swisistools/source/sisxlibrary/checksum.h
secureswitools/swisistools/source/sisxlibrary/datetime.cpp
secureswitools/swisistools/source/sisxlibrary/fieldroot.h
secureswitools/swisistools/source/sisxlibrary/signaturecertchaindata.h
secureswitools/swisistools/source/sisxlibrary/signaturedata.h
secureswitools/swisistools/source/sisxlibrary/sisarray.h
secureswitools/swisistools/source/sisxlibrary/siscapabilities.cpp
secureswitools/swisistools/source/sisxlibrary/siscapabilities.h
secureswitools/swisistools/source/sisxlibrary/siscontents.cpp
secureswitools/swisistools/source/sisxlibrary/siscontents.h
secureswitools/swisistools/source/sisxlibrary/siscontroller.cpp
secureswitools/swisistools/source/sisxlibrary/siscontroller.h
secureswitools/swisistools/source/sisxlibrary/sisdata.cpp
secureswitools/swisistools/source/sisxlibrary/sisdata.h
secureswitools/swisistools/source/sisxlibrary/sisdate.cpp
secureswitools/swisistools/source/sisxlibrary/sisdate.h
secureswitools/swisistools/source/sisxlibrary/sisdatetime.h
secureswitools/swisistools/source/sisxlibrary/sisdependency.cpp
secureswitools/swisistools/source/sisxlibrary/sisdependency.h
secureswitools/swisistools/source/sisxlibrary/siselseif.cpp
secureswitools/swisistools/source/sisxlibrary/siselseif.h
secureswitools/swisistools/source/sisxlibrary/sisexpression.cpp
secureswitools/swisistools/source/sisxlibrary/sisexpression.h
secureswitools/swisistools/source/sisxlibrary/sisfiledescription.cpp
secureswitools/swisistools/source/sisxlibrary/sisfiledescription.h
secureswitools/swisistools/source/sisxlibrary/sishash.cpp
secureswitools/swisistools/source/sisxlibrary/sishash.h
secureswitools/swisistools/source/sisxlibrary/sisif.cpp
secureswitools/swisistools/source/sisxlibrary/sisif.h
secureswitools/swisistools/source/sisxlibrary/sisinfo.cpp
secureswitools/swisistools/source/sisxlibrary/sisinfo.h
secureswitools/swisistools/source/sisxlibrary/sisinstallblock.cpp
secureswitools/swisistools/source/sisxlibrary/sisinstallblock.h
secureswitools/swisistools/source/sisxlibrary/sislanguage.cpp
secureswitools/swisistools/source/sisxlibrary/sislanguage.h
secureswitools/swisistools/source/sisxlibrary/sislogo.cpp
secureswitools/swisistools/source/sisxlibrary/sislogo.h
secureswitools/swisistools/source/sisxlibrary/sisprerequisites.cpp
secureswitools/swisistools/source/sisxlibrary/sisprerequisites.h
secureswitools/swisistools/source/sisxlibrary/sisproperties.cpp
secureswitools/swisistools/source/sisxlibrary/sisproperties.h
secureswitools/swisistools/source/sisxlibrary/sisproperty.h
secureswitools/swisistools/source/sisxlibrary/sissignaturealgorithm.h
secureswitools/swisistools/source/sisxlibrary/sisstring.h
secureswitools/swisistools/source/sisxlibrary/sissupportedlanguages.cpp
secureswitools/swisistools/source/sisxlibrary/sissupportedlanguages.h
secureswitools/swisistools/source/sisxlibrary/sissupportedoption.cpp
secureswitools/swisistools/source/sisxlibrary/sissupportedoption.h
secureswitools/swisistools/source/sisxlibrary/sissupportedoptions.cpp
secureswitools/swisistools/source/sisxlibrary/sissupportedoptions.h
secureswitools/swisistools/source/sisxlibrary/sistime.cpp
secureswitools/swisistools/source/sisxlibrary/sistime.h
secureswitools/swisistools/source/sisxlibrary/sisuid.h
secureswitools/swisistools/source/sisxlibrary/sisversion.cpp
secureswitools/swisistools/source/sisxlibrary/sisversion.h
secureswitools/swisistools/source/sisxlibrary/sisversionrange.cpp
secureswitools/swisistools/source/sisxlibrary/sisversionrange.h
--- a/secureswitools/swisistools/source/dumpsis/main.cpp	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/dumpsis/main.cpp	Fri Apr 23 15:09:03 2010 +0100
@@ -116,13 +116,16 @@
 		
 		SISLogger::SetStream(std::wcout);
 		
-		CDumpSis dumpsis(options->SISFileName(), options->Verbose());
+		CDumpSis dumpsis(options->SISFileName(), options->Verbose(), options->GetCompatibleMode() );
 		
 		CDumpSis::TExtractionLevel extractionLevel = CDumpSis::ENone;
 		
 		if(options->ExtractFiles())
 			{
-			extractionLevel = (options->Verbose())? CDumpSis::EEverything : CDumpSis::EAllButCerts;
+			if(options->GetIBYFlag())
+				extractionLevel = CDumpSis::EIbyFiles;
+			else
+				extractionLevel = (options->Verbose())? CDumpSis::EEverything : CDumpSis::EAllButCerts;
 			}
 		else
 			{
@@ -146,7 +149,7 @@
 		switch(oops.ErrorCategory())
 			{
 			case CSISException::EFileProblem:
-				std::cerr << "cannot open specified SIS file for reading" << std::endl;
+				std::cerr << "File I/O error" << std::endl;
 				break;
 			case CSISException::EFileFormat:
 			case CSISException::EMemory:
@@ -181,6 +184,10 @@
 		std::cout << argv[0] << " Finished" << std::endl;
 		getchar ();
 		}
+
+	if(options->GetIBYFlag())
+		std::cout << std::endl << "IBY file created. Note, please remember to add stub-SIS file entry to IBY file!" << std::endl;
+
 	delete options;
 
 	return retVal;
--- a/secureswitools/swisistools/source/dumpsis/options.cpp	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/dumpsis/options.cpp	Fri Apr 23 15:09:03 2010 +0100
@@ -61,11 +61,13 @@
 
 void Options::DisplayUsage ()
 	{
-	std::cout << "Usage: " << CommandName () << " [-v] [-h] [-x] [-l[-y]][-d directory] filename.sis" << std::endl;
+	std::cout << "Usage: " << CommandName () << " [-v] [-h] [-x] [-b] [-c] [-l[-y]][-d directory] filename.sis" << std::endl;
 	std::cout << "Where:\t-i\tdisplays verbose output" << std::endl;
 	std::cout << "\t-v\tdisplays version" << std::endl;
 	std::cout << "\t-h\tdisplays this message" << std::endl;
 	std::cout << "\t-x\textracts the files" << std::endl;
+	std::cout << "\t-b\textracts Iby file(s) too" << std::endl;
+	std::cout << "\t-c\tcompatible mode" << std::endl;
 	std::cout << "\t-d\tspecifies where you wish to extract the files to" << std::endl; 
 	std::cout << "\t-p\tpauses when finishing" << std::endl;
 	std::cout << "\t-l\tlist the executable against their capablities. " << std::endl;
@@ -94,7 +96,9 @@
 	iExtractFilesFlag (false),
 	iPauseOnExit (false),
 	iList(false),
-	iCreateECI(false)
+	iCreateECI(false),
+	iCompatibleMode(false),
+	iCreateIBYFile(false)
 	{
 	while (--argc)
 		{
@@ -153,8 +157,15 @@
 					case 'Y':
 						iCreateECI = true;
 						break;
+					case 'c':
+					case 'C':
+						iCompatibleMode = true;
+						break;
+					case 'b':
+					case 'B':
+						iCreateIBYFile = true;
+						break;
 
-			
 					default:
 						throw ECmdLineUnknownOption;
 					}
--- a/secureswitools/swisistools/source/dumpsis/options.h	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/dumpsis/options.h	Fri Apr 23 15:09:03 2010 +0100
@@ -69,6 +69,8 @@
 	bool				Version () const { return iVersion; }
 	bool				ExtractFiles () const { return iExtractFilesFlag; }
 	bool				PauseOnExit () const { return iPauseOnExit; }
+	bool				GetCompatibleMode () const { return iCompatibleMode; }
+	bool				GetIBYFlag () const { return iCreateIBYFile; }
 
 	/**
 	Return the iList exe flag to which is set to true when -l is specified 
@@ -101,6 +103,8 @@
 	bool				iPauseOnExit;
 	bool				iList;
 	bool				iCreateECI;
+	bool				iCompatibleMode;
+	bool				iCreateIBYFile;
 	std::wstring		iSISFileName;
 	std::wstring		iExtractDirectory;
 	};
--- a/secureswitools/swisistools/source/dumpsislib/dumpsis.cpp	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/dumpsislib/dumpsis.cpp	Fri Apr 23 15:09:03 2010 +0100
@@ -33,10 +33,12 @@
 #include "siscontroller.h"
 #include "exception.h"
 
-CDumpSis::CDumpSis(const std::wstring& aSISFileName, bool aVerbose)
+#define KStubSisMsg "// *** Please add stub-SIS file entry here ***"
+CDumpSis::CDumpSis(const std::wstring& aSISFileName, bool aVerbose, bool aCompatible)
 		: 	iController(NULL),
 			iSisFileName(aSISFileName),
 			iVerbose(aVerbose),
+			iCompatible(aCompatible),
 			iIsStub(false)
 	{
 	bool isSiSFile = CSISContents::IsSisFile(aSISFileName);
@@ -67,29 +69,134 @@
 	std::wistringstream inStream (std::ios::in | std::ios::out);
 	std::wostream outStream (inStream.rdbuf ());
 
-	outStream << wchar_t(0xfeff);
+	if(iCompatible)
+		outStream << wchar_t(0xfeff);
+
 	if(iIsStub)
 		{
-		iController->AddPackageEntry (outStream, iVerbose);
+		iController->AddPackageEntry (outStream, iVerbose, iCompatible);
 		}
 	else
 		{
-		iSisContents.AddPackageEntry (outStream, iVerbose);
+		iSisContents.AddPackageEntry (outStream, iVerbose, iCompatible);
 		}
 	
 	std::wstring str = inStream.str();
+	if(!iCompatible)
+		{
+		std::string ns(str.begin(), str.end());
+		WriteToFile(aPkgFileName, reinterpret_cast<const TUint8*>(ns.c_str()), ns.length());
+		}
+	else
 	WriteToFile(aPkgFileName, reinterpret_cast<const TUint8*>(str.c_str()), str.length()*2);
 	}
 
+void CDumpSis::CreateIbyFile(const std::wstring& aIbyFileName)
+	{
+	std::wistringstream inStream (std::ios::in | std::ios::out);
+	std::wostream outStream (inStream.rdbuf ());
+
+	if(iCompatible)
+		outStream << wchar_t(0xfeff);
+
+	std::wstring tmp;
+	int index = aIbyFileName.find_last_of(L"/");
+	if(index!=-1)
+		tmp = aIbyFileName.substr(index+1,aIbyFileName.length()-index-1);
+	else
+		tmp = aIbyFileName;
+	
+	index = tmp.find_last_of(L".");
+	if(index!=-1)
+		tmp = tmp.replace(index,1,L"_");
+
+	std::transform(tmp.begin(), tmp.end(), tmp.begin(), towupper);
+
+	outStream << L"#ifndef __" << tmp << L"__" << std::endl;
+	outStream << L"#define __" << tmp << L"__" << std::endl << std::endl;
+	if(iIsStub)
+		{
+		iController->AddIbyEntry (outStream, iVerbose, iCompatible);
+		}
+	else
+		{
+		iSisContents.AddIbyEntry (outStream, iVerbose, iCompatible);
+		}
+	
+	outStream << std::endl << KStubSisMsg << std::endl;
+	outStream << std::endl << L"#endif __" << tmp << L"__" << std::endl;
+
+	std::wstring str = inStream.str();
+
+	if(!iCompatible)
+		{
+		std::string ns(str.begin(), str.end());
+		WriteToFile(aIbyFileName, reinterpret_cast<const TUint8*>(ns.c_str()), ns.length());
+		}
+	else
+		WriteToFile(aIbyFileName, reinterpret_cast<const TUint8*>(str.c_str()), str.length()*2);
+
+		
+	}
+
 void CDumpSis::CreatePackage(const CSISController& aSisController, const std::wstring& aPkgFileName)
 	{
 	std::wistringstream inStream (std::ios::in | std::ios::out);
 	std::wostream outStream (inStream.rdbuf ());
 
-	outStream << wchar_t(0xfeff);
-	aSisController.AddPackageEntry (outStream, iVerbose);
+	if(iCompatible)
+		outStream << wchar_t(0xfeff);
+
+	aSisController.AddPackageEntry (outStream, iVerbose, iCompatible);
 	std::wstring str = inStream.str();
-	WriteToFile(aPkgFileName, reinterpret_cast<const TUint8*>(str.c_str()), str.length()*2);
+
+	if(!iCompatible)
+		{
+		std::string ns(str.begin(), str.end());
+		WriteToFile(aPkgFileName, reinterpret_cast<const TUint8*>(ns.c_str()), ns.length());
+		}
+	else
+		WriteToFile(aPkgFileName, reinterpret_cast<const TUint8*>(str.c_str()), str.length()*2);
+
+	}
+void CDumpSis::CreateIbyFile(const CSISController& aSisController, const std::wstring& aIbyFileName)
+	{
+	std::wistringstream inStream (std::ios::in | std::ios::out);
+	std::wostream outStream (inStream.rdbuf ());
+
+	if(iCompatible)
+		outStream << wchar_t(0xfeff);
+
+	std::wstring tmp;
+	int index = aIbyFileName.find_last_of(L"/");
+	if(index!=-1)
+		tmp = aIbyFileName.substr(index+1,aIbyFileName.length()-index-1);
+	else
+		tmp = aIbyFileName;
+	
+	index = tmp.find_last_of(L".");
+	if(index!=-1)
+		tmp = tmp.replace(index,1,L"_");
+
+	std::transform(tmp.begin(), tmp.end(), tmp.begin(), towupper);
+
+	outStream << L"#ifndef __" << tmp << L"__" << std::endl;
+	outStream << L"#define __" << tmp << L"__" << std::endl << std::endl;
+
+	aSisController.AddIbyEntry (outStream, iVerbose, iCompatible);
+
+	outStream << std::endl << KStubSisMsg << std::endl;
+	outStream << std::endl << L"#endif __" << tmp << L"__" << std::endl;
+	std::wstring str = inStream.str();
+
+	if(!iCompatible)
+		{
+		std::string ns(str.begin(), str.end());
+		WriteToFile(aIbyFileName, reinterpret_cast<const TUint8*>(ns.c_str()), ns.length());
+		}
+	else
+		WriteToFile(aIbyFileName, reinterpret_cast<const TUint8*>(str.c_str()), str.length()*2);
+	
 	}
 
 void CDumpSis::ExtractFiles(const std::wstring& aTargetDir, TExtractionLevel aLevel)
@@ -136,6 +243,15 @@
 			ExtractAllCertificates(targetDir);
 			break;
 			}
+		case EIbyFiles:
+			{
+			ExtractIBYFile(targetDir);
+			ExtractBasePackageFile(targetDir);	
+			ExtractFiles(*iController, targetDir);
+			ExtractNestedSisFile(targetDir, *iController, true, 0, iSisContents.SisData().DataUnitCount());
+			ExtractAllCertificates(targetDir);
+			break;
+			}
 		}
 	}
 
@@ -171,6 +287,14 @@
 		}
 	}
 
+void CDumpSis::ExtractIBYFile(const std::wstring& aTargetDir)
+	{
+	std::wstring ibyFileName = iSisFileName;
+	ibyFileName = FixPathDelimiters(ibyFileName);
+	SisFileNameToIbyFileName(ibyFileName);
+	ibyFileName = aTargetDir + KSisDirectorySeparator + ibyFileName;
+	CreateIbyFile(ibyFileName);
+	}
 
 void CDumpSis::ExtractBasePackageFile(const std::wstring& aTargetDir)
 	{
@@ -217,11 +341,40 @@
 	for(int i = 0; i < fileList.size(); ++i)
 		{
 		const CSISFileDescription* fdesc = fileList[i];
-		const wchar_t* fileName = fdesc->GetFileName();
-		std::wstring filePath = aTargetDir + KSisDirectorySeparator + fileName;
+
 		const CSISFileData& fileData = dataUnit.FileData(fdesc->FileIndex());
-		WriteToFile(filePath, fileData.Data(), fileData.UncompressedSize());
-		delete[] const_cast<wchar_t*>(fileName);
+
+		if(!iCompatible)
+			{
+			std::wstring filePath = fdesc->Target().GetString();
+			std::wstring fileNameOnly;
+			int index = filePath.find_last_of(L"\\");
+			if(index!=-1)
+				{
+				fileNameOnly = filePath.substr(index+1,filePath.length()-index-1);
+				filePath = filePath.substr(0, index+1);
+				index = filePath.find_first_of(L":");
+				if(index!=-1)
+					{
+					filePath = filePath.substr(index+2,filePath.length()-index-2);
+					}
+				filePath = aTargetDir + KSisDirectorySeparator+filePath;
+				CreateTargetDir(filePath);
+				try
+					{
+					WriteToFile(filePath+fileNameOnly, fileData.Data(), fileData.UncompressedSize());
+					}
+					catch(...){}
+				}
+			}
+		else
+			{
+			const wchar_t* fileName = fdesc->GetFileName();
+			std::wstring filePath = aTargetDir + KSisDirectorySeparator + fileName;
+			WriteToFile(filePath, fileData.Data(), fileData.UncompressedSize());
+			delete[] const_cast<wchar_t*>(fileName);
+			}
+	
 		}
 	}
 
@@ -264,8 +417,11 @@
 		std::wstring extractionPath = aTargetDir + KSisDirectorySeparator + pathName;
 		CreateTargetDir(extractionPath);
 		ExtractFiles(*iter->second, extractionPath, aStartIndex);
+		std::wstring ibyExtractionPath = extractionPath;
 		extractionPath = extractionPath + KSisDirectorySeparator + pathName + L".pkg";
 		CreatePackage(*iter->second, extractionPath);
+		ibyExtractionPath = ibyExtractionPath + KSisDirectorySeparator + pathName + L".iby";
+		CreateIbyFile(*iter->second, ibyExtractionPath);
 		ExtractNestedSisFile(aTargetDir, *(iter->second), aExtractSis, aStartIndex + iter->first, maxDataUnit);
 		}
 	}
@@ -371,6 +527,28 @@
 		}
 	}
 
+void CDumpSis::SisFileNameToIbyFileName(std::wstring& aFileName)
+	{
+	int pos = aFileName.find_last_of(L'/');
+	if(std::wstring::npos != pos)
+		{
+		aFileName = aFileName.substr(pos+1);
+		}
+
+	for(int i = 0; i < aFileName.size(); ++i)
+		{
+		aFileName[i] = tolower(aFileName[i]);
+		}
+	
+	pos = aFileName.rfind(L".sis");
+	if(std::wstring::npos == pos)
+		{
+		pos = aFileName.rfind(L".ctl");
+		}
+
+	aFileName = aFileName.substr(0, pos);
+	aFileName.append(L".iby");
+	}
 void CDumpSis::SisFileNameToPkgFileName(std::wstring& aFileName)
 	{
 	int pos = aFileName.find_last_of(L'/');
--- a/secureswitools/swisistools/source/dumpsislib/dumpsis.h	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/dumpsislib/dumpsis.h	Fri Apr 23 15:09:03 2010 +0100
@@ -57,6 +57,7 @@
 		EAllDataFiles,		// Extract all files including those present in the embedded SIS.
 		EAllButCerts,		// EAllFiles + Embedded SIS files and their packages
 		EEverything,		// EAllButCerts + certificates
+		EIbyFiles			// EAllButCerts + certificates +IBY files
 		};
 public:
 	/**
@@ -64,7 +65,7 @@
 	 * in memory for future operation. In case of an invalid SIS the 
 	 * constructor will throw an exception.
 	 */
-	explicit CDumpSis(const std::wstring& aSISFileName, bool aVerbose = false);
+	explicit CDumpSis(const std::wstring& aSISFileName, bool aVerbose = false, bool aCompatible = false);
 	/**
 	 * Desctructor. Will delete or free the owned resources.
 	 */
@@ -77,12 +78,24 @@
 	 */
 	void CreatePackage(const std::wstring& aPkgFileName);
 	/**
+	 * This function will create the iby file for the SIS file.
+	 * @param Name of the iby file to be created.
+	 */
+	void CreateIbyFile(const std::wstring& aIbyFileName);
+	/**
 	 * This function will generate package file for a specific controller.
 	 * @param aSisController controller for which the package file needs to be generated.
 	 * @param aPkgFileName Name of the package file to be created.
 	 */
 	void CreatePackage(const CSISController& aSisController, const std::wstring& aPkgFileName);
 	/**
+	 * This function will generate iby file for a specific controller.
+	 * @param aSisController controller for which the iby file needs to be generated.
+	 * @param aIbyFileName Name of the iby file to be created.
+	 */
+	void CreateIbyFile(const CSISController& aSisController, const std::wstring& aIbyFileName);
+	
+	/**
 	 * This will extract contents of the SIS file based on the extraction level provided.
 	 * Please refer TExtractionLevel for details.
 	 * @param aTargetDir Directory to which the contents to be extracted.
@@ -102,6 +115,11 @@
 	 */ 
 	void ExtractBasePackageFile(const std::wstring& aTargetDir);
 	/**
+	 * Extract the iby file to a specified directory.
+	 * @param aTargetDir Directory to which the iby file needs to be extracted.
+	 */ 
+	void ExtractIBYFile(const std::wstring& aTargetDir);
+	/**
 	 * Extract all the certificate chains present in the sis file.
 	 * @param aTargetDir Destination folder.
 	 */ 
@@ -123,6 +141,7 @@
 	void CreateTargetDir(std::wstring& aTargetDir);
 	void CreateDirectoriesRecursively(std::wstring aTargetDir);
 	void SisFileNameToPkgFileName(std::wstring& aFileName);
+	void SisFileNameToIbyFileName(std::wstring& aFileName);
 	void CreateEmbeddedSis(const std::wstring& aFileName, CSISController& aController, int aStart, int aEnd);
 	void ExtractNestedSisFile(	const std::wstring& aTargetDir, 
 								const CSISController& aController, 
@@ -139,6 +158,7 @@
 	CSISController*	iController;
 	std::wstring	iSisFileName;
 	TBool			iVerbose;
+	TBool			iCompatible;
 	TBool			iIsStub;
 	};
 
--- a/secureswitools/swisistools/source/sisxlibrary/blob.h	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/blob.h	Fri Apr 23 15:09:03 2010 +0100
@@ -172,8 +172,10 @@
 	 * @param aStream - Stream in which the package entries need to be written.
 	 * @param aVerbose - If this option is set then detail description of pkg
 	 * 			will be written into the stream.
+	 * @param aCompatible - Flag to notify AddPackageEntry that Dumpsis works in the original,compatible mode
+	 * or in the new way.
 	 */
- 	void AddPackageEntry(std::wostream& aStream, bool aVerbose) const;
+ 	void AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const;
 
 private:
 	void Duplicate (const CBlob <FieldType>& aInitialiser);
@@ -467,7 +469,7 @@
 	}
 
 template <CSISFieldRoot::TFieldType FieldType> inline
-		void CBlob <FieldType>::AddPackageEntry(std::wostream& aStream, bool aVerbose) const
+		void CBlob <FieldType>::AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const
 	{
 	if(aVerbose)
 		{
--- a/secureswitools/swisistools/source/sisxlibrary/certchaindata.h	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/certchaindata.h	Fri Apr 23 15:09:03 2010 +0100
@@ -60,8 +60,10 @@
 	 * @param aStream - Stream in which the package entries need to be written.
 	 * @param aVerbose - If this option is set then detail description of pkg
 	 * 			will be written into the stream.
+	 * @param aCompatible - Flag to notify AddPackageEntry that Dumpsis works in the original,compatible mode
+	 * or in the new way.
 	 */
-	void AddPackageEntry(std::wostream& aStream, bool aVerbose) const;
+	void AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const;
 
 private:
 	CSISBlob		iCertificateData;
@@ -91,7 +93,7 @@
 	}
 
 
-inline void CCertChainData::AddPackageEntry(std::wostream& aStream, bool aVerbose) const
+inline void CCertChainData::AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const
 	{
 	if(aVerbose)
 		{
--- a/secureswitools/swisistools/source/sisxlibrary/checksum.h	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/checksum.h	Fri Apr 23 15:09:03 2010 +0100
@@ -71,8 +71,19 @@
 	 * @param aStream - Stream in which the package entries need to be written.
 	 * @param aVerbose - If this option is set then detail description of pkg
 	 * 			will be written into the stream.
+	 * @param aCompatible - Flag to notify AddPackageEntry that Dumpsis works in the original,compatible mode
+	 * or in the new way.
 	 */
-	void AddPackageEntry(std::wostream& aStream, bool aVerbose) const;
+	void AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const;
+	/**
+	 * Adds the write the iby file details into the stream.
+	 * @param aStream - Stream in which the iby entry need to be written.
+	 * @param aVerbose - If this option is set then detail description of iby
+	 * 			will be written into the stream.
+	 * @param aCompatible - Flag to notify AddIbyEntry that Dumpsis works in the original,compatible mode
+	 * or in the new way.
+	 */
+	void AddIbyEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const;
 
 private:
 	CSISUInt16	iDataChecksum;
@@ -126,7 +137,16 @@
 #endif // GENERATE_ERRORS
 
 template <CSISFieldRoot::TFieldType FieldType> inline
-		void CChecksum <FieldType>::AddPackageEntry(std::wostream& aStream, bool aVerbose) const
+		void CChecksum <FieldType>::AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const
+	{
+	if(aVerbose)
+		{
+		aStream << L"; CRC16: " << std::hex << iDataChecksum.Value() << std::dec << std::endl;
+		}
+	}
+
+template <CSISFieldRoot::TFieldType FieldType> inline
+		void CChecksum <FieldType>::AddIbyEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const
 	{
 	if(aVerbose)
 		{
--- a/secureswitools/swisistools/source/sisxlibrary/datetime.cpp	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/datetime.cpp	Fri Apr 23 15:09:03 2010 +0100
@@ -71,10 +71,10 @@
 	iTime.Set (gmt -> tm_hour, gmt -> tm_min, gmt -> tm_sec);
 	}
 
-void CSISDateTime::AddPackageEntry(std::wostream& aStream, bool aVerbose) const
+void CSISDateTime::AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const
 	{
-	iDate.AddPackageEntry(aStream, aVerbose);
+	iDate.AddPackageEntry(aStream, aVerbose, aCompatible);
 	aStream << L" ";
-	iTime.AddPackageEntry(aStream, aVerbose);
+	iTime.AddPackageEntry(aStream, aVerbose, aCompatible);
 	}
 
--- a/secureswitools/swisistools/source/sisxlibrary/fieldroot.h	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/fieldroot.h	Fri Apr 23 15:09:03 2010 +0100
@@ -213,8 +213,19 @@
 	 * @param aStream - Stream in which the package entries need to be written.
 	 * @param aVerbose - If this option is set then detail description of pkg
 	 * 			will be written into the stream.
+	 * @param aCompatible - Flag to notify AddPackageEntry that Dumpsis works in the original,compatible mode
+	 * or in the new way.
 	 */
-	virtual void AddPackageEntry(std::wostream& aStream, bool aVerbose) const;
+	virtual void AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const;
+	/**
+	 * Adds the write the iby file details into the stream.
+	 * @param aStream - Stream in which the iby entry need to be written.
+	 * @param aVerbose - If this option is set then detail description of iby
+	 * 			will be written into the stream.
+	 * @param aCompatible - Flag to notify AddIbyEntry that Dumpsis works in the original,compatible mode
+	 * or in the new way.
+	 */
+	virtual void AddIbyEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const;
 	/**
 	 * Class name
 	 */
@@ -301,11 +312,25 @@
 #endif // GENERATE_ERRORS
 	};
 
-
-inline void CSISFieldRoot::AddPackageEntry(std::wostream& aStream, bool aVerbose) const
+//	
+// Default AddPackageEntry function.
+// Might be overridden by sub-classes
+//
+inline void CSISFieldRoot::AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const
 	{
 	(void)aStream;
 	(void)aVerbose;
+	(void)aCompatible;
+	}
+//	
+// Default AddIbyEntry function.
+// Might be overridden by sub-classes
+//
+inline void CSISFieldRoot::AddIbyEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const
+	{
+	(void)aStream;
+	(void)aVerbose;
+	(void)aCompatible;
 	}
 
 inline void CSISFieldRoot::InitInstance ()
--- a/secureswitools/swisistools/source/sisxlibrary/signaturecertchaindata.h	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/signaturecertchaindata.h	Fri Apr 23 15:09:03 2010 +0100
@@ -51,7 +51,8 @@
 	inline CSISArray <CSignatureData, CSISFieldRoot::ESISSignature>	& Signatures();
 	inline const CCertChainData& CertificateChain() const;
 	inline void AddSignature(CSignatureData& aSignature);
-	void AddPackageEntry(std::wostream& aStream, bool aVerbose) const;
+	void AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const;
+	void AddIbyEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const;
 
 protected:
 	CSISArray <CSignatureData, CSISFieldRoot::ESISSignature>	iSignatures;
@@ -102,13 +103,23 @@
 	iSignatures.Push(aSignature);
 	}
 
-inline void CSignatureCertChainData::AddPackageEntry(std::wostream& aStream, bool aVerbose) const
+inline void CSignatureCertChainData::AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const
 	{
 	if (aVerbose)
 		{
 		aStream << L"; Signing chain:" << std::endl;
-		iCertificateChain.AddPackageEntry(aStream, aVerbose);
-		iSignatures.AddPackageEntry(aStream, aVerbose);
+		iCertificateChain.AddPackageEntry(aStream, aVerbose, aCompatible);
+		iSignatures.AddPackageEntry(aStream, aVerbose, aCompatible);
+		}
+	}
+
+inline void CSignatureCertChainData::AddIbyEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const
+	{
+	if (aVerbose)
+		{
+		aStream << L"; Signing chain:" << std::endl;
+		iCertificateChain.AddIbyEntry(aStream, aVerbose, aCompatible);
+		iSignatures.AddIbyEntry(aStream, aVerbose, aCompatible);
 		}
 	}
 
--- a/secureswitools/swisistools/source/sisxlibrary/signaturedata.h	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/signaturedata.h	Fri Apr 23 15:09:03 2010 +0100
@@ -56,7 +56,7 @@
 	inline const TUint8*			Data();
 	inline int						DataSize() const;
 	inline void					SetDataByteCount(unsigned int aSize);
-	void AddPackageEntry(std::wostream& aStream, bool aVerbose) const;
+	void AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const;
 
 protected:
 	CSISSignatureAlgorithm	iSignatureAlgorithm;
@@ -114,14 +114,14 @@
 	return iSignatureAlgorithm;
 	}
 
-inline void CSignatureData::AddPackageEntry(std::wostream& aStream, bool aVerbose) const
+inline void CSignatureData::AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const
 	{
 	if (aVerbose)
 		{
 		aStream << L"; Signature:"; 
-		iSignatureAlgorithm.AddPackageEntry(aStream, aVerbose);
+		iSignatureAlgorithm.AddPackageEntry(aStream, aVerbose, aCompatible);
 		aStream << L";";
-		iData.AddPackageEntry(aStream, aVerbose);
+		iData.AddPackageEntry(aStream, aVerbose, aCompatible);
 		}
 	}
 
--- a/secureswitools/swisistools/source/sisxlibrary/sisarray.h	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/sisarray.h	Fri Apr 23 15:09:03 2010 +0100
@@ -94,8 +94,20 @@
 	 * @param aStream stream into which the package details need to be written.
 	 * @param aVerbose If this option is set then detail description of pkg
 	 * 			will be written into the stream.
+	 * @param aCompatible - Flag to notify AddPackageEntry that Dumpsis works in the original,compatible mode
+	 * or in the new way.
+	 * 
 	 */
-	void AddPackageEntry(std::wostream& aStream, bool aVerbose) const;
+	void AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const;
+		/**
+	 * Adds iby file entry related to this structure.
+	 * @param aStream stream into which the iby file details need to be written.
+	 * @param aVerbose If this option is set then detail description of iby
+	 * 			will be written into the stream.
+	 * @param aCompatible - Flag to notify AddIbyEntry that Dumpsis works in the original,compatible mode
+	 * or in the new way.
+	 */
+	void AddIbyEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const;
 	
 	/**
 	 * Operator to access content of this array
@@ -333,11 +345,20 @@
 	}
 
 template <class T, CSISFieldRoot::TFieldType FieldType>
-		void CSISArray <T, FieldType>::AddPackageEntry(std::wostream& aStream, bool aVerbose) const
+		void CSISArray <T, FieldType>::AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const
 	{
 	for (SisArrayIter(T) iterMemb = SisArrayMem(T).begin (); iterMemb != SisArrayMem(T).end (); iterMemb++)
 		{
-		(**iterMemb)->AddPackageEntry(aStream, aVerbose);
+		(**iterMemb)->AddPackageEntry(aStream, aVerbose, aCompatible);
+		}
+	}
+
+template <class T, CSISFieldRoot::TFieldType FieldType>
+		void CSISArray <T, FieldType>::AddIbyEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const
+	{
+	for (SisArrayIter(T) iterMemb = SisArrayMem(T).begin (); iterMemb != SisArrayMem(T).end (); iterMemb++)
+		{
+		(**iterMemb)->AddIbyEntry(aStream, aVerbose, aCompatible);
 		}
 	}
 
--- a/secureswitools/swisistools/source/sisxlibrary/siscapabilities.cpp	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/siscapabilities.cpp	Fri Apr 23 15:09:03 2010 +0100
@@ -141,7 +141,7 @@
 	
 	}
 
-void CSISCapabilities::AddPackageEntry(std::wostream& aStream, bool aVerbose) const
+void CSISCapabilities::AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const
 	{
 	if(WasteOfSpace() || !aVerbose)
 		{
--- a/secureswitools/swisistools/source/sisxlibrary/siscapabilities.h	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/siscapabilities.h	Fri Apr 23 15:09:03 2010 +0100
@@ -97,8 +97,10 @@
 	 * @param aStream - Stream in which the package entries need to be written.
 	 * @param aVerbose - If this option is set then detail description of pkg
 	 * 			will be written into the stream.
+	 * @param aCompatible - Flag to notify AddPackageEntry that Dumpsis works in the original,compatible mode
+	 * or in the new way.
 	 */
-	void AddPackageEntry(std::wostream& aStream, bool aVerbose) const;
+	void AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const;
 	/**
 	 * Get the stored capability list in human readable format.
 	 * @param aCapList will be filled by this function.
--- a/secureswitools/swisistools/source/sisxlibrary/siscontents.cpp	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/siscontents.cpp	Fri Apr 23 15:09:03 2010 +0100
@@ -310,11 +310,17 @@
 	Save (aTargetFileName);
 	}
 
-void CSISContents::AddPackageEntry(std::wostream& aStream, bool aVerbose) const
+void CSISContents::AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const
 	{
-	iControllerChecksum.AddPackageEntry(aStream, aVerbose);
-	iDataChecksum.AddPackageEntry(aStream, aVerbose);
-	iController.AddPackageEntry(aStream, aVerbose); // CSISCompressed
-	Controller().AddPackageEntry(aStream, aVerbose);
-	iData.AddPackageEntry(aStream, aVerbose);
+	iControllerChecksum.AddPackageEntry(aStream, aVerbose, aCompatible);
+	iDataChecksum.AddPackageEntry(aStream, aVerbose, aCompatible);
+	iController.AddPackageEntry(aStream, aVerbose, aCompatible); // CSISCompressed
+	Controller().AddPackageEntry(aStream, aVerbose, aCompatible);
+	iData.AddPackageEntry(aStream, aVerbose, aCompatible);
 	}
+
+void CSISContents::AddIbyEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const
+	{
+	Controller().AddIbyEntry(aStream, aVerbose, aCompatible);
+	iData.AddIbyEntry(aStream, aVerbose, aCompatible);
+	}
--- a/secureswitools/swisistools/source/sisxlibrary/siscontents.h	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/siscontents.h	Fri Apr 23 15:09:03 2010 +0100
@@ -364,8 +364,19 @@
 	 * @param aStream - Stream in which the package entries need to be written.
 	 * @param aVerbose - If this option is set then detail description of pkg
 	 * 			will be written into the stream.
+	 * @param aCompatible - Flag to notify AddPackageEntry that Dumpsis works in the original,compatible mode
+	 * or in the new way.
 	 */
-	void AddPackageEntry(std::wostream& aStream, bool aVerbose) const;
+	void AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const;
+	/**
+	 * Adds the write the package details into the stream.
+	 * @param aStream - Stream in which the package entries need to be written.
+	 * @param aVerbose - If this option is set then detail description of pkg
+	 * 			will be written into the stream.
+	 * @param aCompatible - Flag to notify AddIbyEntry that Dumpsis works in the original,compatible mode
+	 * or in the new way.
+	 */
+	void AddIbyEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const;
 	
 	
 public:
--- a/secureswitools/swisistools/source/sisxlibrary/siscontroller.cpp	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/siscontroller.cpp	Fri Apr 23 15:09:03 2010 +0100
@@ -180,18 +180,27 @@
 }
 
 
-void CSISController::AddPackageEntry(std::wostream& aStream, bool aVerbose) const
+void CSISController::AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const
 	{
-	iSupportedLanguages.AddPackageEntry(aStream, aVerbose);
-	iInfo.AddPackageEntry(aStream, aVerbose);
-	iPrerequisites.AddPackageEntry(aStream, aVerbose);
-	iSupportedOptions.AddPackageEntry(aStream, aVerbose);
-	iProperties.AddPackageEntry(aStream, aVerbose);
-	iLogo.AddPackageEntry(aStream, aVerbose);
-	iInstallBlock.AddPackageEntry(aStream, aVerbose);
+	iSupportedLanguages.AddPackageEntry(aStream, aVerbose, aCompatible );
+	iInfo.AddPackageEntry(aStream, aVerbose, aCompatible);
+	iPrerequisites.AddPackageEntry(aStream, aVerbose, aCompatible);
+	iSupportedOptions.AddPackageEntry(aStream, aVerbose, aCompatible);
+	iProperties.AddPackageEntry(aStream, aVerbose, aCompatible);
+	iLogo.AddPackageEntry(aStream, aVerbose, aCompatible);
+	iInstallBlock.AddPackageEntry(aStream, aVerbose, aCompatible);
 	for(int i = 0; i < iSignatures.size(); ++i)
 		{
-		iSignatures[i].AddPackageEntry(aStream, aVerbose);
+		iSignatures[i].AddPackageEntry(aStream, aVerbose, aCompatible);
+		}
+	}
+
+void CSISController::AddIbyEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const
+	{
+	iInstallBlock.AddIbyEntry(aStream, aVerbose, aCompatible);
+	for(int i = 0; i < iSignatures.size(); ++i)
+		{
+		iSignatures[i].AddIbyEntry(aStream, aVerbose, aCompatible);
 		}
 	}
 
--- a/secureswitools/swisistools/source/sisxlibrary/siscontroller.h	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/siscontroller.h	Fri Apr 23 15:09:03 2010 +0100
@@ -304,12 +304,23 @@
 	 */
 	void AddSignatureChain(CSignatureCertChainData& aSISSigCertChain);
 	/**
-	 * Adds package entry related to this controller.
-	 * @param aStream stream into which the package details need to be written.
-	 * @param aVerbose If this option is set then detail description of pkg
+	 * Adds the write the package details into the stream.
+	 * @param aStream - Stream in which the package entries need to be written.
+	 * @param aVerbose - If this option is set then detail description of pkg
 	 * 			will be written into the stream.
+	 * @param aCompatible - Flag to notify AddPackageEntry that Dumpsis works in the original,compatible mode
+	 * or in the new way.
 	 */
-	void AddPackageEntry(std::wostream& aStream, bool aVerbose) const;
+	void AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const;
+	/**
+	 * Adds the write the iby file details into the stream.
+	 * @param aStream - Stream in which the iby entry need to be written.
+	 * @param aVerbose - If this option is set then detail description of iby
+	 * 			will be written into the stream.
+	 * @param aCompatible - Flag to notify AddIbyEntry that Dumpsis works in the original,compatible mode
+	 * or in the new way.
+	 */
+	void AddIbyEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const;
 	/**
 	 * Retrieves the CSignatureCertChainData pointed by chain index.
 	 * @param aIndex index of the chain in the controller.
--- a/secureswitools/swisistools/source/sisxlibrary/sisdata.cpp	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/sisdata.cpp	Fri Apr 23 15:09:03 2010 +0100
@@ -51,8 +51,12 @@
 	return newData;
 	}
 
-void CSISData::AddPackageEntry(std::wostream& aStream, bool aVerbose) const
+void CSISData::AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const
 	{
-	iDataUnit.AddPackageEntry(aStream, aVerbose);
+	iDataUnit.AddPackageEntry(aStream, aVerbose, aCompatible);
 	}
 
+void CSISData::AddIbyEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const
+	{
+	iDataUnit.AddIbyEntry(aStream, aVerbose, aCompatible);
+	}
--- a/secureswitools/swisistools/source/sisxlibrary/sisdata.h	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/sisdata.h	Fri Apr 23 15:09:03 2010 +0100
@@ -135,8 +135,19 @@
 	 * @param aStream - Stream in which the package entries need to be written.
 	 * @param aVerbose - If this option is set then detail description of pkg
 	 * 			will be written into the stream.
+	 * @param aCompatible - Flag to notify AddPackageEntry that Dumpsis works in the original,compatible mode
+	 * or in the new way.
 	 */
-	void AddPackageEntry(std::wostream& aStream, bool aVerbose) const;
+	void AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const;
+	/**
+	 * Adds the write the iby file details into the stream.
+	 * @param aStream - Stream in which the iby entry need to be written.
+	 * @param aVerbose - If this option is set then detail description of iby
+	 * 			will be written into the stream.
+	 * @param aCompatible - Flag to notify AddIbyEntry that Dumpsis works in the original,compatible mode
+	 * or in the new way.
+	 */
+	void AddIbyEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const;
 	/**
 	 * Retrieve the data unit count present in this SISData.
 	 */
--- a/secureswitools/swisistools/source/sisxlibrary/sisdate.cpp	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/sisdate.cpp	Fri Apr 23 15:09:03 2010 +0100
@@ -80,7 +80,7 @@
 	iDay = aDay;
 	}
 
-void CSISDate::AddPackageEntry(std::wostream& aStream, bool aVerbose) const
+void CSISDate::AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const
 	{
 	// Month starts with 0
 	aStream << static_cast<int>(iYear)		<< L"/";
--- a/secureswitools/swisistools/source/sisxlibrary/sisdate.h	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/sisdate.h	Fri Apr 23 15:09:03 2010 +0100
@@ -62,13 +62,15 @@
 	 * @param aDay New day to set.
 	 */
 	void Set (const TUint16 aYear, const TUint8 aMonth, const TUint8 aDay);
-	/**
+/**
 	 * Adds the write the package details into the stream.
 	 * @param aStream - Stream in which the package entries need to be written.
 	 * @param aVerbose - If this option is set then detail description of pkg
 	 * 			will be written into the stream.
+	 * @param aCompatible - Flag to notify AddPackageEntry that Dumpsis works in the original,compatible mode
+	 * or in the new way.
 	 */
-	void AddPackageEntry(std::wostream& aStream, bool aVerbose) const;
+	void AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const;
 	/**
 	 * Get the year
 	 */
--- a/secureswitools/swisistools/source/sisxlibrary/sisdatetime.h	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/sisdatetime.h	Fri Apr 23 15:09:03 2010 +0100
@@ -68,8 +68,10 @@
 	 * @param aStream - Stream in which the package entries need to be written.
 	 * @param aVerbose - If this option is set then detail description of pkg
 	 * 			will be written into the stream.
+	 * @param aCompatible - Flag to notify AddPackageEntry that Dumpsis works in the original,compatible mode
+	 * or in the new way.
 	 */
-	void AddPackageEntry(std::wostream& aStream, bool aVerbose) const;
+	void AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const;
 	/**
 	 * Get the date (CSISDate).
 	 */
--- a/secureswitools/swisistools/source/sisxlibrary/sisdependency.cpp	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/sisdependency.cpp	Fri Apr 23 15:09:03 2010 +0100
@@ -68,17 +68,17 @@
 	return "Dependency";
 	}
 
-void CSISDependency::AddPackageEntry(std::wostream& aStream, bool aVerbose) const
+void CSISDependency::AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const
 	{
 	aStream << ((iDependencyType == ETargetDependency)?L"[" : L"(");
-	iUid.AddPackageEntry(aStream, aVerbose);
+	iUid.AddPackageEntry(aStream, aVerbose, aCompatible);
 	aStream << ((iDependencyType == ETargetDependency)?L"]," : L"),");
-	iVersionRange.AddPackageEntry(aStream, aVerbose);
+	iVersionRange.AddPackageEntry(aStream, aVerbose, aCompatible);
 	aStream << L" ,{";
 	for (int i = 0; i < iDependencyNames.size(); ++i)
 		{
 		aStream << L"\"";
-		iDependencyNames[i].AddPackageEntry(aStream, aVerbose);
+		iDependencyNames[i].AddPackageEntry(aStream, aVerbose, aCompatible);
 		aStream << L"\"";
 		if ((i+1) < iDependencyNames.size())
 			{
--- a/secureswitools/swisistools/source/sisxlibrary/sisdependency.h	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/sisdependency.h	Fri Apr 23 15:09:03 2010 +0100
@@ -92,8 +92,10 @@
 	 * @param aStream - Stream in which the package entries need to be written.
 	 * @param aVerbose - If this option is set then detail description of pkg
 	 * 			will be written into the stream.
+	 * @param aCompatible - Flag to notify AddPackageEntry that Dumpsis works in the original,compatible mode
+	 * or in the new way.
 	 */
-	void AddPackageEntry(std::wostream& aStream, bool aVerbose) const;
+	void AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const;
 	/**
 	 * Set whether the dependency is a target(device) or package dependency.
 	 * @param aDependencyType new dependency type.
--- a/secureswitools/swisistools/source/sisxlibrary/siselseif.cpp	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/siselseif.cpp	Fri Apr 23 15:09:03 2010 +0100
@@ -31,11 +31,11 @@
 #include "siselseif.h"
 
 
-void CSISElseIf::AddPackageEntry(std::wostream& aStream, bool aVerbose) const
+void CSISElseIf::AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const
 	{
 	aStream << L"ELSEIF ";
-	iExpression.AddPackageEntry(aStream, aVerbose);
+	iExpression.AddPackageEntry(aStream, aVerbose, aCompatible);
 	aStream << std::endl;
-	iInstallBlock.AddPackageEntry(aStream, aVerbose);
+	iInstallBlock.AddPackageEntry(aStream, aVerbose, aCompatible);
 	}
 
--- a/secureswitools/swisistools/source/sisxlibrary/siselseif.h	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/siselseif.h	Fri Apr 23 15:09:03 2010 +0100
@@ -79,12 +79,14 @@
 	 */
 	inline void GetEmbeddedControllers(TControllerMap& aControllers) const;
 	/**
-	 * Adds package entry related to this else-if block
-	 * @param aStream stream into which the package details need to be written.
-	 * @param aVerbose If this option is set then detail description of pkg
+	 * Adds the write the package details into the stream.
+	 * @param aStream - Stream in which the package entries need to be written.
+	 * @param aVerbose - If this option is set then detail description of pkg
 	 * 			will be written into the stream.
+	 * @param aCompatible - Flag to notify AddPackageEntry that Dumpsis works in the original,compatible mode
+	 * or in the new way.
 	 */
-	void AddPackageEntry(std::wostream& aStream, bool aVerbose) const;
+	void AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const;
 
 private:
 	void InsertMembers ();
--- a/secureswitools/swisistools/source/sisxlibrary/sisexpression.cpp	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/sisexpression.cpp	Fri Apr 23 15:09:03 2010 +0100
@@ -268,7 +268,7 @@
 	SetValue (static_cast <TUint32> (IdentifyUCKeyword (KVariables, aIdentifier, L"unknown variable")));
 	}
 
-void CSISExpression::AddPackageEntry(std::wostream& aStream, bool aVerbose) const
+void CSISExpression::AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const
 	{
 	TExpressionFeatures* features = findExpressionFeature (iOperator);
 	if(NULL == features)
@@ -285,7 +285,7 @@
 			aStream << L"\"";
 			}
 
-		LHS().AddPackageEntry(aStream, aVerbose);
+		LHS().AddPackageEntry(aStream, aVerbose, aCompatible);
 		if(iOperator.Value() == EFuncExists)
 			{
 			aStream << L"\"";
@@ -297,11 +297,11 @@
 	std::wstring supportedLanguageStr = iString.GetString().substr(0,KFuncSupportedLanguagePrefix.length());
 	if((iOperator.Value() == EFuncExists) && (versionStr == KFuncVersionPrefix))
 		{
-		WriteVersionCondition (aStream, aVerbose);
+		WriteVersionCondition (aStream, aVerbose, aCompatible);
 		}
 	else if ((iOperator.Value() == EFuncExists) && (supportedLanguageStr == KFuncSupportedLanguagePrefix))
 		{
-		WriteSupportedLanguageCondition (aStream, aVerbose);
+		WriteSupportedLanguageCondition (aStream, aVerbose, aCompatible);
 		}
 	else
 		{	
@@ -316,7 +316,7 @@
 			aStream << L"\"";
 			}
 
-		RHS().AddPackageEntry(aStream, aVerbose);
+		RHS().AddPackageEntry(aStream, aVerbose, aCompatible);
 		if(iOperator.Value() == EFuncExists)
 			{
 			aStream << L"\"";
@@ -335,7 +335,7 @@
 				aStream << L"\"";
 				}
 			
-			iString.AddPackageEntry(aStream, aVerbose);
+			iString.AddPackageEntry(aStream, aVerbose, aCompatible);
 			if(iOperator.Value() == EFuncExists)
 				{
 				aStream << L"\"";
@@ -370,7 +370,7 @@
 		}
 	}
 
-void CSISExpression::WriteVersionCondition(std::basic_ostream<wchar_t>& aStream, bool aVerbose) const
+void CSISExpression::WriteVersionCondition(std::basic_ostream<wchar_t>& aStream, bool aVerbose, bool aCompatible) const
 	{
 	std::wstring parseString = iString.GetString().substr(KFuncVersionPrefix.length());
 	std::wstring outputArgs;
@@ -530,7 +530,7 @@
 
 		// Output the condition as an exists statement and comment warnings to the stream
 		aStream << L"exists(\"";
-		iString.AddPackageEntry(aStream, aVerbose);
+		iString.AddPackageEntry(aStream, aVerbose, aCompatible);
 		aStream << L"\")" << std::endl;
 		aStream << L"; warning: \"VERSION\" condition output as \"EXISTS\"" << std::endl;
 		aStream << L"; " << msgString;
@@ -594,7 +594,7 @@
 	return false;
 	}
 
-void CSISExpression::WriteSupportedLanguageCondition(std::basic_ostream<wchar_t>& aStream, bool aVerbose) const
+void CSISExpression::WriteSupportedLanguageCondition(std::basic_ostream<wchar_t>& aStream, bool aVerbose, bool aCompatible) const
 	{
 	std::wstring parseString = iString.GetString().substr(KFuncSupportedLanguagePrefix.length());
 	std::wstring outputArgs;
@@ -623,7 +623,7 @@
 
 		// Output the condition as an exists statement and comment warnings to the stream
 		aStream << L"exists(\"";
-		iString.AddPackageEntry(aStream, aVerbose);
+		iString.AddPackageEntry(aStream, aVerbose, aCompatible);
 		aStream << L"\")" << std::endl;
 		aStream << L"; warning: \"Supported_Language\" condition output as \"EXISTS\"" << std::endl;
 		aStream << L"; " << msgString;
--- a/secureswitools/swisistools/source/sisxlibrary/sisexpression.h	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/sisexpression.h	Fri Apr 23 15:09:03 2010 +0100
@@ -98,13 +98,13 @@
 	void SetNumeric (const TInt32 aValue);
 	void SetLanguageComparision (const TInt32 aValue);
 	void SetVariable (const std::wstring& aIdentifier);
-	void AddPackageEntry(std::wostream& aStream, bool aVerbose) const;
+	void AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const;
 	inline CSISUInt32 Operator() const;
 	inline const CSISString& String() const;
 	inline TInt IntValue() const;
 		
-	void 		WriteVersionCondition (std::wostream& aStream, bool aVerbose) const;
-	void 		WriteSupportedLanguageCondition (std::wostream& aStream, bool aVerbose) const;
+	void 		WriteVersionCondition (std::wostream& aStream, bool aVerbose, bool aCompatible) const;
+	void 		WriteSupportedLanguageCondition (std::wostream& aStream, bool aVerbose, bool aCompatible) const;
 	static bool	ExtractNextToken(std::wstring& aParseString, std::wstring& aTokenString);
 	static bool	IsHexadecimal(const std::wstring& aString);
 	static bool	IsHexadecimal(const std::wstring& aString, TUint32& aHexValue);
--- a/secureswitools/swisistools/source/sisxlibrary/sisfiledescription.cpp	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/sisfiledescription.cpp	Fri Apr 23 15:09:03 2010 +0100
@@ -96,6 +96,7 @@
 		{NULL}
 	};
 
+int FileOrData = 0;
 void CSISFileDescription::InsertMembers ()
 	{
 	InsertMember (iTarget);
@@ -364,21 +365,33 @@
 	
 	}
 
-void CSISFileDescription::AddPackageEntry(std::wostream& aStream, bool aVerbose) const
+void CSISFileDescription::AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const
 	{
+	std::wstring filePath = iTarget.GetString();
 	aStream <<L";";
-	iTarget.AddPackageEntry(aStream, aVerbose);
+	iTarget.AddPackageEntry(aStream, aVerbose, aCompatible);
 	aStream << std::endl << L"; File length " << iLength << L" (" << iUncompressedLength << L")" << std::endl;
-	iCapabilities.AddPackageEntry(aStream, aVerbose);
-	iHash.AddPackageEntry(aStream, aVerbose);
+	iCapabilities.AddPackageEntry(aStream, aVerbose, aCompatible);
+	iHash.AddPackageEntry(aStream, aVerbose, aCompatible);
 	
-	const wchar_t* fileName = GetFileName(); 
-	
-	aStream <<std::endl <<L"\"" << fileName << L"\"";
-	delete[] const_cast<wchar_t*>(fileName);
+	if(aCompatible)
+		{
+		const wchar_t* fileName = GetFileName(); 
+		aStream << L"\"" << fileName << L"\"";
+		delete[] const_cast<wchar_t*>(fileName);
+		}
+	else
+		{
+		int index = filePath.find_first_of(L":");
+		if(index!=-1)
+				filePath = filePath.substr(index+2,filePath.length()-index-2);
+
+		aStream << L"\"" << filePath << L"\"";
+		}
+
 	aStream << L"-";
 	aStream << L"\"";
-	iTarget.AddPackageEntry(aStream, aVerbose);
+	iTarget.AddPackageEntry(aStream, aVerbose, aCompatible);
 	aStream << L"\"";
 
 	TUint32 operation = (TUint32) iOperation;
@@ -403,7 +416,7 @@
 			{
 			options &= ~EInstFileRunOptionByMimeType;
 			aStream << L", " << (aVerbose?L"FILEMIME, ":L"FM,\" ");
-			iMimeType.AddPackageEntry(aStream, aVerbose);
+			iMimeType.AddPackageEntry(aStream, aVerbose, aCompatible);
 			aStream<<L"\"";
 			}
 		else
@@ -493,6 +506,68 @@
 		}
 	}
 
+void CSISFileDescription::AddIbyEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const
+	{
+	std::wstring fileExt = iTarget.GetString();
+	std::wstring filePath = fileExt;
+	if(fileExt.length()>0)
+		{
+		int index = fileExt.find_last_of(L".");
+		if(index!=-1)
+			fileExt = fileExt.substr(index+1,fileExt.length()-index-1);
+		}
+
+	if(fileExt.compare(L"exe")==0 || fileExt.compare(L"EXE")==0 || fileExt.compare(L"dll")==0 || fileExt.compare(L"DLL")==0)
+		{
+		if(FileOrData==2)
+			aStream << std::endl;
+			
+		FileOrData = 1;
+		}
+	else
+		{
+		if(FileOrData==1)
+			aStream << std::endl;
+			
+		FileOrData = 2;
+		}
+
+	if(fileExt.length()==0)
+		aStream << L"; Unknown file name" << std::endl;
+
+	aStream << L"; File length " << iLength << L" (" << iUncompressedLength << L")";
+	
+	aStream << std::endl;
+
+	if(fileExt.length()==0)
+		aStream << L"; ";
+
+	if(FileOrData==1)
+		aStream << L"file=";
+	else
+		aStream << L"data=";
+
+	if(aCompatible)
+		{
+		const wchar_t* fileName = GetFileName(); 
+		aStream << L"\"" << fileName << L"\"";
+		delete[] const_cast<wchar_t*>(fileName);
+		}
+	else
+		{
+		int index = filePath.find_first_of(L":");
+		if(index!=-1)
+				filePath = filePath.substr(index+2,filePath.length()-index-2);
+
+		aStream << L"\"" << filePath << L"\"";
+		}
+	aStream << L"          ";
+	aStream << L"\"";
+	iTarget.AddIbyEntry(aStream, aVerbose, aCompatible);
+	aStream << L"\"";
+
+	aStream << std::endl;
+	}
 const wchar_t* CSISFileDescription::GetFileName() const
 	{
 	// Using actual iFileIndex rather than iFileNum because source file might be
--- a/secureswitools/swisistools/source/sisxlibrary/sisfiledescription.h	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/sisfiledescription.h	Fri Apr 23 15:09:03 2010 +0100
@@ -211,12 +211,23 @@
 	 */
 	const wchar_t* GetFileName() const;
 	/**
-	 * Adds package entry related to the file description.
-	 * @param aStream stream into which the package details need to be written.
-	 * @param aVerbose If this option is set then detail description of pkg
+	 * Adds the write the package details into the stream.
+	 * @param aStream - Stream in which the package entries need to be written.
+	 * @param aVerbose - If this option is set then detail description of pkg
 	 * 			will be written into the stream.
+	 * @param aCompatible - Flag to notify AddPackageEntry that Dumpsis works in the original,compatible mode
+	 * or in the new way.
 	 */
-	void AddPackageEntry(std::wostream& aStream, bool aVerbose) const;
+	void AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const;
+	/**
+	 * Adds the write the iby file details into the stream.
+	 * @param aStream - Stream in which the iby entry need to be written.
+	 * @param aVerbose - If this option is set then detail description of iby
+	 * 			will be written into the stream.
+	 * @param aCompatible - Flag to notify AddIbyEntry that Dumpsis works in the original,compatible mode
+	 * or in the new way.
+	 */
+	void AddIbyEntry(std::wostream& aStream, bool aVerbose,  bool aCompatible) const;
 	/**
 	 * Retrieves the capability list associated with this sis file.
 	 * @param aCapList list to be filled by this function.
--- a/secureswitools/swisistools/source/sisxlibrary/sishash.cpp	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/sishash.cpp	Fri Apr 23 15:09:03 2010 +0100
@@ -69,12 +69,12 @@
 	iBlob.Assign (data, size);
 	}
 
-void CSISHash::AddPackageEntry(std::wostream& aStream, bool aVerbose) const
+void CSISHash::AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const
 	{
 	if(aVerbose)
 		{
 		aStream << L"; " << ((iAlgorithm.Value()==EHashSHA)?L"SHA-1: ":L"Unknown hash: ");
-		iBlob.AddPackageEntry(aStream, aVerbose);
+		iBlob.AddPackageEntry(aStream, aVerbose, aCompatible);
 		aStream << std::endl;
 		}
 	}
--- a/secureswitools/swisistools/source/sisxlibrary/sishash.h	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/sishash.h	Fri Apr 23 15:09:03 2010 +0100
@@ -61,7 +61,7 @@
 	void SetHash(const TUint8* aHash, TUint32 aHashSize);
 	bool VerifyAlgorithm () const;
 	const CSISBlob& Blob() const;
-	void AddPackageEntry(std::wostream& aStream, bool aVerbose) const;
+	void AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const;
 
 private:
 	CSISUInt32	iAlgorithm;
--- a/secureswitools/swisistools/source/sisxlibrary/sisif.cpp	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/sisif.cpp	Fri Apr 23 15:09:03 2010 +0100
@@ -29,13 +29,13 @@
 
 #include "sisif.h"
 
-void CSISIf::AddPackageEntry(std::wostream& aStream, bool aVerbose) const
+void CSISIf::AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const
 	{
 	aStream << L"IF ";
-	iExpression.AddPackageEntry(aStream, aVerbose);
+	iExpression.AddPackageEntry(aStream, aVerbose, aCompatible);
 	aStream << std::endl;
-	iInstallBlock.AddPackageEntry(aStream, aVerbose);
-	iElseIfs.AddPackageEntry(aStream, aVerbose);
+	iInstallBlock.AddPackageEntry(aStream, aVerbose, aCompatible);
+	iElseIfs.AddPackageEntry(aStream, aVerbose, aCompatible);
 	aStream << L"ENDIF" << std::endl;
 	}
 
--- a/secureswitools/swisistools/source/sisxlibrary/sisif.h	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/sisif.h	Fri Apr 23 15:09:03 2010 +0100
@@ -106,12 +106,14 @@
 	 */
 	const CSISInstallBlock& InstallBlock () const;
 	/**
-	 * Adds package entry related to this if block.
-	 * @param aStream stream into which the package details need to be written.
-	 * @param aVerbose If this option is set then detail description of pkg
+	 * Adds the write the package details into the stream.
+	 * @param aStream - Stream in which the package entries need to be written.
+	 * @param aVerbose - If this option is set then detail description of pkg
 	 * 			will be written into the stream.
+	 * @param aCompatible - Flag to notify AddPackageEntry that Dumpsis works in the original,compatible mode
+	 * or in the new way.
 	 */
-	void AddPackageEntry(std::wostream& aStream, bool aVerbose) const;
+	void AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const;
 	/**
 	 * Retrieves the list of files present in the if block.
 	 * @param aFileList this will be filled by this function.
--- a/secureswitools/swisistools/source/sisxlibrary/sisinfo.cpp	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/sisinfo.cpp	Fri Apr 23 15:09:03 2010 +0100
@@ -124,7 +124,7 @@
 	return reply;
 	}
 
-void CSISInfo::AddPackageEntry(std::wostream& aStream, bool aVerbose) const
+void CSISInfo::AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const
 	{
 	if (aVerbose)
 		{
@@ -134,7 +134,7 @@
 	for (int i=0; i < iNames.size(); ++i)
 		{
 		aStream << L"\"";
-		iNames[i].AddPackageEntry(aStream, aVerbose);
+		iNames[i].AddPackageEntry(aStream, aVerbose, aCompatible);
 		aStream << L"\"";
 		if ((i+1)<iNames.size())
 			{
@@ -142,9 +142,9 @@
 			}
 		}
 	aStream << L"}, (";
-	iUid.AddPackageEntry(aStream, aVerbose);
+	iUid.AddPackageEntry(aStream, aVerbose, aCompatible);
 	aStream << L"), ";
-	iVersion.AddPackageEntry(aStream, aVerbose);
+	iVersion.AddPackageEntry(aStream, aVerbose, aCompatible);
 	aStream << L", TYPE=";
 	switch (iInstallType)
 		{
@@ -198,7 +198,7 @@
 		for (int j = 0; j < vendorCount; ++j)
 			{
 			aStream << L"\"";
-			iVendorNames[j].AddPackageEntry(aStream, aVerbose);
+			iVendorNames[j].AddPackageEntry(aStream, aVerbose, aCompatible);
 			aStream << L"\"";
 			if ((j+1)<vendorCount)
 				{
@@ -215,11 +215,11 @@
 	if (aVerbose)
 		{
 		aStream << L"; SIS file build time ";
-		iCreationTime.AddPackageEntry(aStream, aVerbose);
+		iCreationTime.AddPackageEntry(aStream, aVerbose, aCompatible);
 		aStream << std::endl;
 		}
 	aStream << L":\"";
-	iVendorUniqueName.AddPackageEntry(aStream, aVerbose);
+	iVendorUniqueName.AddPackageEntry(aStream, aVerbose, aCompatible);
 	aStream << L"\"" << std::endl;
 	aStream << std::endl;
 	}
--- a/secureswitools/swisistools/source/sisxlibrary/sisinfo.h	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/sisinfo.h	Fri Apr 23 15:09:03 2010 +0100
@@ -150,12 +150,14 @@
 	 */
 	void SetNow ();
 	/**
-	 * Adds package entry related to sis info.
-	 * @param aStream stream into which the package details need to be written.
-	 * @param aVerbose If this option is set then detail description of pkg
+	 * Adds the write the package details into the stream.
+	 * @param aStream - Stream in which the package entries need to be written.
+	 * @param aVerbose - If this option is set then detail description of pkg
 	 * 			will be written into the stream.
+	 * @param aCompatible - Flag to notify AddPackageEntry that Dumpsis works in the original,compatible mode
+	 * or in the new way.
 	 */
-	void AddPackageEntry(std::wostream& aStream, bool aVerbose) const;
+	void AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const;
 	/**
 	 * @return Vendor Name Count
 	 */
--- a/secureswitools/swisistools/source/sisxlibrary/sisinstallblock.cpp	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/sisinstallblock.cpp	Fri Apr 23 15:09:03 2010 +0100
@@ -132,12 +132,12 @@
 		}
 	}
 
-void CSISInstallBlock::AddPackageEntry(std::wostream& aStream, bool aVerbose) const
+void CSISInstallBlock::AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const
 	{
 	TUint32 descriptionsCount = iFiles.size();
 	for (TUint32 i = 0; i < descriptionsCount; ++i)
 		{
-		iFiles[i].AddPackageEntry(aStream, aVerbose);
+		iFiles[i].AddPackageEntry(aStream, aVerbose, aCompatible);
 		}
 	TUint32 embeddedCount = iEmbeddedFiles.size();
 	if (embeddedCount)
@@ -157,5 +157,16 @@
 			aStream << L"@\"" << sisFileName << L"\",(0x" << std::hex << iEmbeddedFiles[i].UID1() << std::dec << L")" << std::endl;
 			}
 		}
-	iIfs.AddPackageEntry(aStream, aVerbose);
+	iIfs.AddPackageEntry(aStream, aVerbose, aCompatible);
 	}
+
+void CSISInstallBlock::AddIbyEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const
+	{
+	TUint32 descriptionsCount = iFiles.size();
+	for (TUint32 i = 0; i < descriptionsCount; ++i)
+		{
+		iFiles[i].AddIbyEntry(aStream, aVerbose, aCompatible);
+		}
+
+	iIfs.AddIbyEntry(aStream, aVerbose, aCompatible);
+	}
--- a/secureswitools/swisistools/source/sisxlibrary/sisinstallblock.h	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/sisinstallblock.h	Fri Apr 23 15:09:03 2010 +0100
@@ -167,11 +167,23 @@
 	 */
 	void ExtractCapabilities(const std::wstring& aFileName);
 	/**
-	 * Add package entry related to this install block.
-	 * @param aStream stream where the details need to be written.
-	 * @param aVerbose if true detail description will be written.
+	 * Adds the write the package details into the stream.
+	 * @param aStream - Stream in which the package entries need to be written.
+	 * @param aVerbose - If this option is set then detail description of pkg
+	 * 			will be written into the stream.
+	 * @param aCompatible - Flag to notify AddPackageEntry that Dumpsis works in the original,compatible mode
+	 * or in the new way.
 	 */
-	void AddPackageEntry(std::wostream& aStream, bool aVerbose) const;
+	void AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const;
+	/**
+	 * Adds the write the iby file details into the stream.
+	 * @param aStream - Stream in which the iby entry need to be written.
+	 * @param aVerbose - If this option is set then detail description of iby
+	 * 			will be written into the stream.
+	 * @param aCompatible - Flag to notify AddIbyEntry that Dumpsis works in the original,compatible mode
+	 * or in the new way.
+	 */
+	void AddIbyEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const;
 	/**
 	 * Get the list of files present in the sis file. It can also return all
 	 * the files present in the nested if blocks and else blocks.
--- a/secureswitools/swisistools/source/sisxlibrary/sislanguage.cpp	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/sislanguage.cpp	Fri Apr 23 15:09:03 2010 +0100
@@ -165,7 +165,7 @@
 	return L"Unknown";
 	}
 
-void CSISLanguage::AddPackageEntry(std::wostream& aStream, bool aVerbose) const
+void CSISLanguage::AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const
 	{
 	TDialect dialect = 0;
 	aStream << GetLanguageCode(dialect);
--- a/secureswitools/swisistools/source/sisxlibrary/sislanguage.h	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/sislanguage.h	Fri Apr 23 15:09:03 2010 +0100
@@ -690,7 +690,7 @@
 	TLanguage Value () const;
 
 	static TDialect IdentifyLanguage (const std::wstring& aIdentifier);
-	void AddPackageEntry(std::wostream& aStream, bool aVerbose) const;
+	void AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const;
 	
 private:
 	const wchar_t* GetLanguageCode(TDialect& aDialect) const;
--- a/secureswitools/swisistools/source/sisxlibrary/sislogo.cpp	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/sislogo.cpp	Fri Apr 23 15:09:03 2010 +0100
@@ -58,7 +58,7 @@
 	return ! (Required () || iLogoFile.HasMimeType ());
 	}
 
-void CSISLogo::AddPackageEntry(std::wostream& aStream, bool aVerbose) const
+void CSISLogo::AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const
 	{
 	if(WasteOfSpace())
 		{
@@ -74,12 +74,36 @@
 	delete[] const_cast<wchar_t*>(dataFileNameW); 
 	aStream << L", " ;
 	aStream << L"\"";
-	iLogoFile.MimeType().AddPackageEntry(aStream, aVerbose);
+	iLogoFile.MimeType().AddPackageEntry(aStream, aVerbose, aCompatible);
 	aStream << L"\"";
 	aStream << L", " ;
 	aStream << L"\"";
-	iLogoFile.Target().AddPackageEntry(aStream, aVerbose);
+	iLogoFile.Target().AddPackageEntry(aStream, aVerbose, aCompatible);
 	aStream << L"\"";
 	aStream << std::endl << std::endl;
 	}
 
+void CSISLogo::AddIbyEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const
+	{
+	if(WasteOfSpace())
+		{
+		return;
+		}
+	if (aVerbose)
+		{
+		aStream << L"; Logo" << std::endl;
+		}
+	aStream << L"=";
+	const wchar_t* dataFileNameW = iLogoFile.GetFileName();
+	aStream <<L"\"" << dataFileNameW << L"\"";
+	delete[] const_cast<wchar_t*>(dataFileNameW); 
+	aStream << L", " ;
+	aStream << L"\"";
+	iLogoFile.MimeType().AddIbyEntry(aStream, aVerbose, aCompatible);
+	aStream << L"\"";
+	aStream << L", " ;
+	aStream << L"\"";
+	iLogoFile.Target().AddIbyEntry(aStream, aVerbose, aCompatible);
+	aStream << L"\"";
+	aStream << std::endl << std::endl;
+	}
--- a/secureswitools/swisistools/source/sisxlibrary/sislogo.h	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/sislogo.h	Fri Apr 23 15:09:03 2010 +0100
@@ -45,12 +45,12 @@
 
 	void Set (const std::wstring& aMime, const std::wstring& aTarget, const TUint32 aFileIndex, const CSISDataUnit& aDataUnit);
 	void SetSizes (const TUint64 aCompressedSize, const TUint64 aUncompressedSize);
-	void AddPackageEntry(std::wostream& aStream, bool aVerbose) const;
+	void AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const;
+	void AddIbyEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const;
 	inline const CSISFileDescription& FileDesc() const; 
 
 private:
 	CSISFileDescription iLogoFile;
-
 	};
 
 
--- a/secureswitools/swisistools/source/sisxlibrary/sisprerequisites.cpp	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/sisprerequisites.cpp	Fri Apr 23 15:09:03 2010 +0100
@@ -40,7 +40,7 @@
 	return false;
 	}
 
-void CSISPrerequisites::AddPackageEntry(std::wostream& aStream, bool aVerbose) const
+void CSISPrerequisites::AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const
 	{
 	if (iTargetDevices.size())
 		{
@@ -56,7 +56,7 @@
 			{
 			aStream << L"; Target dependencies" << std::endl;
 			}
-		iTargetDevices.AddPackageEntry(aStream, aVerbose);
+		iTargetDevices.AddPackageEntry(aStream, aVerbose, aCompatible);
 		}
 
 	if (iDependencies.size())
@@ -65,7 +65,35 @@
 			{
 			aStream << L"; Dependencies" << std::endl;
 			}
-		iDependencies.AddPackageEntry(aStream, aVerbose);
+		iDependencies.AddPackageEntry(aStream, aVerbose, aCompatible);
 		}
 	}
 
+void CSISPrerequisites::AddIbyEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const
+	{
+	if (iTargetDevices.size())
+		{
+		// Since iTargetDevices and iDependencies are of same type and they
+		// have different structure in the package (pkg) file we need to set
+		// 
+		for(int i = 0; i < iTargetDevices.size(); ++i)
+			{
+			iTargetDevices[i].SetDependencyType(CSISDependency::ETargetDependency);
+			}
+		
+		if (aVerbose)
+			{
+			aStream << L"; Target dependencies" << std::endl;
+			}
+		iTargetDevices.AddIbyEntry(aStream, aVerbose, aCompatible);
+		}
+
+	if (iDependencies.size())
+		{
+		if (aVerbose)
+			{
+			aStream << L"; Dependencies" << std::endl;
+			}
+		iDependencies.AddIbyEntry(aStream, aVerbose, aCompatible);
+		}
+	}
--- a/secureswitools/swisistools/source/sisxlibrary/sisprerequisites.h	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/sisprerequisites.h	Fri Apr 23 15:09:03 2010 +0100
@@ -81,8 +81,19 @@
 	 * @param aStream - Stream in which the package entries need to be written.
 	 * @param aVerbose - If this option is set then detail description of pkg
 	 * 			will be written into the stream.
+	 * @param aCompatible - Flag to notify AddPackageEntry that Dumpsis works in the original,compatible mode
+	 * or in the new way.
 	 */
-	void AddPackageEntry(std::wostream& aStream, bool aVerbose) const;
+	void AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const;
+	/**
+	 * Adds the write the iby file details into the stream.
+	 * @param aStream - Stream in which the iby entry need to be written.
+	 * @param aVerbose - If this option is set then detail description of iby
+	 * 			will be written into the stream.
+	 * @param aCompatible - Flag to notify AddIbyEntry that Dumpsis works in the original,compatible mode
+	 * or in the new way.
+	 */
+	void AddIbyEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const;
 	/**
 	 * Get the list of dependencies.
 	 */
--- a/secureswitools/swisistools/source/sisxlibrary/sisproperties.cpp	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/sisproperties.cpp	Fri Apr 23 15:09:03 2010 +0100
@@ -25,7 +25,7 @@
 
 #include "sisproperties.h"
 
-void CSISProperties::AddPackageEntry(std::wostream& aStream, bool aVerbose) const
+void CSISProperties::AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const
 	{
 	TUint32 propertiesCount = iProperty.size();
 	if (propertiesCount == 0)
@@ -40,7 +40,7 @@
 	TUint32 i = 0;
 	do
 		{
-		iProperty[i].AddPackageEntry(aStream, aVerbose);
+		iProperty[i].AddPackageEntry(aStream, aVerbose, aCompatible);
 		if (++i < propertiesCount)
 			{
 			aStream << L", ";
--- a/secureswitools/swisistools/source/sisxlibrary/sisproperties.h	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/sisproperties.h	Fri Apr 23 15:09:03 2010 +0100
@@ -44,7 +44,7 @@
 	virtual std::string Name () const;
 
 	void AddProperty (const TUint32 aKey, const TUint32 aValue);
-	void AddPackageEntry(std::wostream& aStream, bool aVerbose) const;
+	void AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const;
 	inline const SISPropertyArray& Properties() const;
 
 private:
--- a/secureswitools/swisistools/source/sisxlibrary/sisproperty.h	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/sisproperty.h	Fri Apr 23 15:09:03 2010 +0100
@@ -53,7 +53,7 @@
 	virtual void CreateDefects ();
 #endif // GENERATE_ERRORS
 	
-	void AddPackageEntry(std::wostream& aStream, bool aVerbose) const;
+	void AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const;
 	
 	inline TKey Key() const;
 	inline TValue Value() const;
@@ -115,7 +115,7 @@
 	}
 #endif // GENERATE_ERRORS
 
-inline void CSISProperty::AddPackageEntry(std::wostream& aStream, bool aVerbose) const
+inline void CSISProperty::AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const
 	{
 	(void)aVerbose;
 	aStream << iKey << L"=" << iValue;
--- a/secureswitools/swisistools/source/sisxlibrary/sissignaturealgorithm.h	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/sissignaturealgorithm.h	Fri Apr 23 15:09:03 2010 +0100
@@ -55,7 +55,7 @@
 	TAlgorithm Algorithm () const;
 	bool IsAlgorithmKnown () const;
 	void Verify (const TUint32 aLanguages) const;
-	void AddPackageEntry(std::wostream& aStream, bool aVerbose) const;
+	void AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const;
 
 protected:
 	CSISString	iAlgorithmIdentifier;
@@ -93,12 +93,12 @@
 	return (iAlgorithm > EAlgNone) && (iAlgorithm < EAlgIllegal);
 	}
 
-inline void CSISSignatureAlgorithm::AddPackageEntry(std::wostream& aStream, bool aVerbose) const
+inline void CSISSignatureAlgorithm::AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const
 	{
 	if (aVerbose)
 		{
 		aStream << L"Algorithm: ";
-		iAlgorithmIdentifier.AddPackageEntry(aStream, aVerbose);
+		iAlgorithmIdentifier.AddPackageEntry(aStream, aVerbose, aCompatible);
 		aStream << std::endl;
 		}
 	}
--- a/secureswitools/swisistools/source/sisxlibrary/sisstring.h	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/sisstring.h	Fri Apr 23 15:09:03 2010 +0100
@@ -148,8 +148,19 @@
 	 * @param aStream - Stream in which the package entries need to be written.
 	 * @param aVerbose - If this option is set then detail description of pkg
 	 * 			will be written into the stream.
+	 * @param aCompatible - Flag to notify AddPackageEntry that Dumpsis works in the original,compatible mode
+	 * or in the new way.
 	 */
-	void AddPackageEntry(std::wostream& aStream, bool aVerbose) const;
+	void AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const;
+	/**
+	 * Adds the write the iby file details into the stream.
+	 * @param aStream - Stream in which the iby entry need to be written.
+	 * @param aVerbose - If this option is set then detail description of iby
+	 * 			will be written into the stream.
+	 * @param aCompatible - Flag to notify AddIbyEntry that Dumpsis works in the original,compatible mode
+	 * or in the new way.
+	 */
+	void AddIbyEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const;
 
 	/**
 	 * Delete the temporary buffer used for reading the string.
@@ -275,11 +286,20 @@
 	return iData;
 	}
 
-inline void CSISString::AddPackageEntry(std::wostream& aStream, bool aVerbose) const
+inline void CSISString::AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const
 	{
 	(void)aVerbose;
+	(void)aCompatible;
 	aStream << iData;
 	}
 
+inline void CSISString::AddIbyEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const
+	{
+	(void)aVerbose;
+	(void)aCompatible;
+	if(iData.length()>0)
+		aStream << iData;
+	}
+
 #endif // __SISSTRING_H__
 
--- a/secureswitools/swisistools/source/sisxlibrary/sissupportedlanguages.cpp	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/sissupportedlanguages.cpp	Fri Apr 23 15:09:03 2010 +0100
@@ -39,7 +39,7 @@
 	return "Supported Languages";
 	}
 
-void CSISSupportedLanguages::AddPackageEntry(std::wostream& aStream, bool aVerbose) const
+void CSISSupportedLanguages::AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const
 	{
 	TUint32 optionCount = iSupportedLanguage.size();
 	if (optionCount == 0)
@@ -53,7 +53,7 @@
 	aStream << L"&";
 	for (TUint32 i = 0; i < optionCount; ++i)
 		{
-		iSupportedLanguage[i].AddPackageEntry(aStream, aVerbose);
+		iSupportedLanguage[i].AddPackageEntry(aStream, aVerbose, aCompatible);
 		if (i < (optionCount-1))
 			{
 			aStream << L", ";
--- a/secureswitools/swisistools/source/sisxlibrary/sissupportedlanguages.h	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/sissupportedlanguages.h	Fri Apr 23 15:09:03 2010 +0100
@@ -47,7 +47,7 @@
 	bool AreLanguagesSpecified () const;
 	TUint32 LanguageCount () const;
 	CSISLanguage::TLanguage Language (const TUint32 aIndex) const;
-	void AddPackageEntry(std::wostream& aStream, bool aVerbose) const;
+	void AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const;
 
 private:
 	CSISArray <CSISLanguage, CSISFieldRoot::ESISLanguage> iSupportedLanguage;
--- a/secureswitools/swisistools/source/sisxlibrary/sissupportedoption.cpp	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/sissupportedoption.cpp	Fri Apr 23 15:09:03 2010 +0100
@@ -39,13 +39,13 @@
 	return "Supported Option";
 	}
 
-void CSISSupportedOption::AddPackageEntry(std::wostream& aStream, bool aVerbose) const
+void CSISSupportedOption::AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const
 	{
 	TUint32 optionCount = iNames.size();
 	for (TUint32 i = 0; i < optionCount; ++i)
 		{
 		aStream << L"\"";
-		iNames[i].AddPackageEntry(aStream, aVerbose);
+		iNames[i].AddPackageEntry(aStream, aVerbose, aCompatible);
 		aStream << L"\"";
 		if (i < (optionCount-1))
 			{
@@ -53,3 +53,18 @@
 			}
 		}
 	}
+
+void CSISSupportedOption::AddIbyEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const
+	{
+	TUint32 optionCount = iNames.size();
+	for (TUint32 i = 0; i < optionCount; ++i)
+		{
+		aStream << L"\"";
+		iNames[i].AddIbyEntry(aStream, aVerbose, aCompatible);
+		aStream << L"\"";
+		if (i < (optionCount-1))
+			{
+			aStream << L", ";
+			}
+		}
+	}
--- a/secureswitools/swisistools/source/sisxlibrary/sissupportedoption.h	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/sissupportedoption.h	Fri Apr 23 15:09:03 2010 +0100
@@ -46,7 +46,8 @@
 
 	void AddOptionName (const std::wstring& aName);
 	TUint32 LanguageCount () const;
-	void AddPackageEntry(std::wostream& aStream, bool aVerbose) const;
+	void AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const;
+	void AddIbyEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const;
 
 private:
 	CSISArrayOfStrings iNames;
--- a/secureswitools/swisistools/source/sisxlibrary/sissupportedoptions.cpp	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/sissupportedoptions.cpp	Fri Apr 23 15:09:03 2010 +0100
@@ -24,7 +24,7 @@
 
 #include "sissupportedoptions.h"
 
-void CSISSupportedOptions::AddPackageEntry(std::wostream& aStream, bool aVerbose) const
+void CSISSupportedOptions::AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const
 	{
 	TUint32 optionCount = iSupportedOption.size();
 	if (optionCount == 0)
@@ -35,7 +35,7 @@
 	for (TUint32 i = 0; i < optionCount; ++i)
 		{
 		aStream << L"{";
-		iSupportedOption[i].AddPackageEntry(aStream, aVerbose);
+		iSupportedOption[i].AddPackageEntry(aStream, aVerbose, aCompatible);
 		aStream << L"}";
 		if (i < (optionCount-1))
 			{
@@ -45,3 +45,23 @@
 	aStream << L")" << std::endl << std::endl;
 	}
 
+void CSISSupportedOptions::AddIbyEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const
+	{
+	TUint32 optionCount = iSupportedOption.size();
+	if (optionCount == 0)
+		{
+		return;
+		}
+	aStream << L"!(";
+	for (TUint32 i = 0; i < optionCount; ++i)
+		{
+		aStream << L"{";
+		iSupportedOption[i].AddIbyEntry(aStream, aVerbose, aCompatible);
+		aStream << L"}";
+		if (i < (optionCount-1))
+			{
+			aStream << L", ";
+			}
+		}
+	aStream << L")" << std::endl << std::endl;
+	}
--- a/secureswitools/swisistools/source/sisxlibrary/sissupportedoptions.h	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/sissupportedoptions.h	Fri Apr 23 15:09:03 2010 +0100
@@ -44,7 +44,8 @@
 
 	void AddOption ();
 	void AddOptionName (const std::wstring& aName);
-	void AddPackageEntry(std::wostream& aStream, bool aVerbose) const;
+	void AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const;
+	void AddIbyEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const;
 	inline TUint32 SupportedOptionCount() const;
 	
 private:
--- a/secureswitools/swisistools/source/sisxlibrary/sistime.cpp	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/sistime.cpp	Fri Apr 23 15:09:03 2010 +0100
@@ -76,7 +76,7 @@
 	iSeconds = aSeconds;
 	}
 
-void CSISTime::AddPackageEntry(std::wostream& aStream, bool aVerbose) const
+void CSISTime::AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const
 	{
 	aStream << static_cast<int>(iHours)		<< L":"; 
 	aStream << static_cast<int>(iMinutes)	<< L":";
--- a/secureswitools/swisistools/source/sisxlibrary/sistime.h	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/sistime.h	Fri Apr 23 15:09:03 2010 +0100
@@ -71,8 +71,10 @@
 	 * @param aStream - Stream in which the package entries need to be written.
 	 * @param aVerbose - If this option is set then detail description of pkg
 	 * 			will be written into the stream.
+	 * @param aCompatible - Flag to notify AddPackageEntry that Dumpsis works in the original,compatible mode
+	 * or in the new way.
 	 */
-	void AddPackageEntry(std::wostream& aStream, bool aVerbose) const;
+	void AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const;
 	/**
 	 * Get value for Hours
 	 */
--- a/secureswitools/swisistools/source/sisxlibrary/sisuid.h	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/sisuid.h	Fri Apr 23 15:09:03 2010 +0100
@@ -74,8 +74,10 @@
 	 * @param aStream - Stream in which the package entries need to be written.
 	 * @param aVerbose - If this option is set then detail description of pkg
 	 * 			will be written into the stream.
+	 * @param aCompatible - Flag to notify AddPackageEntry that Dumpsis works in the original,compatible mode
+	 * or in the new way.
 	 */
-	inline void AddPackageEntry(std::wostream& aStream, bool aVerbose) const;
+	inline void AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const;
 
 private:
 	CSISUInt32 iUID;
@@ -122,7 +124,7 @@
 	return "Uid";
 	}
 
-inline void CSISUid::AddPackageEntry(std::wostream& aStream, bool aVerbose) const
+inline void CSISUid::AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const
 	{
 	aStream << L"0x" << std::hex << iUID << std::dec;
 	}
--- a/secureswitools/swisistools/source/sisxlibrary/sisversion.cpp	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/sisversion.cpp	Fri Apr 23 15:09:03 2010 +0100
@@ -88,7 +88,7 @@
 		}
 	}
 
-void CSISVersion::AddPackageEntry(std::wostream& aStream, bool aVerbose) const
+void CSISVersion::AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const
 	{
 	(void)aVerbose;
 	aStream << iMajor << L", " << iMinor << L", " << iBuild;
--- a/secureswitools/swisistools/source/sisxlibrary/sisversion.h	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/sisversion.h	Fri Apr 23 15:09:03 2010 +0100
@@ -97,8 +97,10 @@
 	 * @param aStream - Stream in which the package entries need to be written.
 	 * @param aVerbose - If this option is set then detail description of pkg
 	 * 			will be written into the stream.
+	 * @param aCompatible - Flag to notify AddPackageEntry that Dumpsis works in the original,compatible mode
+	 * or in the new way.
 	 */
-	void AddPackageEntry(std::wostream& aStream, bool aVerbose) const;
+	void AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const;
 
 private:
 	void InsertMembers ();
--- a/secureswitools/swisistools/source/sisxlibrary/sisversionrange.cpp	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/sisversionrange.cpp	Fri Apr 23 15:09:03 2010 +0100
@@ -44,13 +44,13 @@
 	return "Version Range";
 	}
 
-void CSISVersionRange::AddPackageEntry(std::wostream& aStream, bool aVerbose) const
+void CSISVersionRange::AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const
 	{
-	iFromVersion.AddPackageEntry(aStream, aVerbose);
+	iFromVersion.AddPackageEntry(aStream, aVerbose, aCompatible);
 	if (iToVersion.Specified())
 		{
 		aStream << L" ~ ";
-		iToVersion.AddPackageEntry(aStream, aVerbose);
+		iToVersion.AddPackageEntry(aStream, aVerbose, aCompatible);
 		}
 	}
 
--- a/secureswitools/swisistools/source/sisxlibrary/sisversionrange.h	Fri Apr 16 15:05:20 2010 +0300
+++ b/secureswitools/swisistools/source/sisxlibrary/sisversionrange.h	Fri Apr 23 15:09:03 2010 +0100
@@ -71,8 +71,10 @@
 	 * @param aStream - Stream in which the package entries need to be written.
 	 * @param aVerbose - If this option is set then detail description of pkg
 	 * 			will be written into the stream.
+	 * @param aCompatible - Flag to notify AddPackageEntry that Dumpsis works in the original,compatible mode
+	 * or in the new way.
 	 */
-	void AddPackageEntry(std::wostream& aStream, bool aVerbose) const;
+	void AddPackageEntry(std::wostream& aStream, bool aVerbose, bool aCompatible) const;
 	/**
 	 * Get the value of from version.
 	 */