diff -r 000000000000 -r ba25891c3a9e secureswitools/swianalysistoolkit/source/dumpswiregistrytool/sisfiledescription.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/secureswitools/swianalysistoolkit/source/dumpswiregistrytool/sisfiledescription.cpp Thu Dec 17 08:51:10 2009 +0200 @@ -0,0 +1,129 @@ +/* +* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#include "sisfiledescription.h" + +const char* const FileOperationOptionsList[]= + { + "Reserved", + "FileRunOptionInstall", + "FileRunOptionUninstall", + "FileRunOptionByMimeType", + "FileRunOptionWaitEnd", + "FileRunOptionSendEnd", + "Reserved", + "Reserved", + "Reserved", + "FileTextOptionContinue", + "FileTextOptionSkipIfNo", + "FileTextOptionAbortIfNo", + "FileTextOptionExitIfNo", + "Reserved", + "Reserved", + "VerifyOnRestore" + }; + +const char* const FileOperationList[]= + { + "Install", + "Run", + "Text", + "Null" + }; + +SISFileDescription::SISFileDescription() + :iTarget (0) , + iMimeType (0) , + iOperation (0) , + iOperationOptions (0) , + iAlgorithm (0) , + iHash (0) , + iUncompressedLengthl (0) , + iUncompressedLengthh (0) , + iIndex (0) , + iSid (0) + { + iAlgorithms[0] = "MD2"; + iAlgorithms[1] = "MD5"; + iAlgorithms[2] = "SHA1"; + iAlgorithms[3] = "HMAC"; + } + + +void SISFileDescription::ExtractSISFileDescription(StreamReader& aReader ) + { + iTarget = aReader.ReadDescriptor(); + iMimeType = aReader.ReadDescriptor(); + iOperation = aReader.ReadInt32(); + //indicates which options are applicable to the processing of this file during installation + iOperationOptions = aReader.ReadInt32(); + //indicates the algorithm used to generate the hash + iAlgorithm = aReader.ReadInt32(); + iHash = aReader.ReadDescriptor(); + iUncompressedLengthl = aReader.ReadInt32(); + iUncompressedLengthh = aReader.ReadInt32(); + iIndex = aReader.ReadInt32(); + iSid = aReader.ReadInt32(); + } + +void SISFileDescription::DisplaySISFileDescription(int i) + { + int j = 0 ; + int k = 0 ; + cout << "Target" << i+1 << ":" << iTarget << endl ; + while(iOperation) + { + if(iOperation & 0x01) + { + cout << "File Operation Type :" << FileOperationList[j] << endl; + } + j++; + iOperation = iOperation >> 1; + } + + while(iOperationOptions) + { + if(iOperationOptions & 0x01) + { + cout << "File Operation Options Type :" << FileOperationOptionsList[k] << endl; + } + k++; + iOperationOptions = iOperationOptions >> 1; + } + + if(iAlgorithms.find(iAlgorithm) !=iAlgorithms.end()) + { + cout << "Algorithm :" << iAlgorithms[iAlgorithm] << endl; + } + else + { + cout << "Algorithm :" << "Unknown" << endl; + } + + cout <<"SID :" << std::hex << "0x" << iSid << endl << endl; + } + +SISFileDescription::~SISFileDescription() + { + delete [] iTarget; + delete [] iMimeType; + delete [] iHash; + } + + +