--- 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.
*/