crypto/weakcryptospi/test/dumpcryptoplugin/dumpprocessor.h
changeset 8 35751d3474b7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/crypto/weakcryptospi/test/dumpcryptoplugin/dumpprocessor.h	Thu Sep 10 14:01:51 2009 +0300
@@ -0,0 +1,285 @@
+/*
+* Copyright (c) 2007-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: 
+* definition of the dump processor classes
+*
+*/
+
+
+/**
+ @file
+ @internalComponent
+ @released
+*/
+
+#ifndef _DUMPPROCESSOR_H__
+#define _DUMPPROCESSOR_H__
+
+#include <e32base.h>
+#include <f32file.h>
+
+namespace CryptoSpi
+	{
+	//Interfaces Name
+	_LIT(KHash, "hash");
+	_LIT(KRandom, "random");
+	_LIT(KSymmetricCipher, "symcipher");
+	_LIT(KAsymmetricCipher, "asymcipher");
+	_LIT(KSigner, "signer");
+	_LIT(KVerifier, "verifier");
+	_LIT(KKeyPairGenerator, "keypairgen");
+	_LIT(KKeyAgreement, "keyagree");
+	_LIT(KAsyncHash, "asynchash");
+	_LIT(KAsyncRandom, "asyncrandom");
+	_LIT(KAsyncSymmetricCipher, "asyncsymcipher");
+	_LIT(KAsyncAsymmetricCipher, "asyncasymcipher");
+	_LIT(KAsyncSigner, "asyncsigner");
+	_LIT(KAsyncVerifier, "asyncverifier");
+	_LIT(KAsyncKeyPairGenerator, "asynckeypairgen");
+	_LIT(KAsyncKeyAgreement, "asynckeyagree");
+
+	//Algorithms Name
+	_LIT(KMd2, "md2");
+	_LIT(KMd4, "md4");
+	_LIT(KMd5, "md5");
+	_LIT(KSha1, "sha1");
+	_LIT(KDes, "des");
+	_LIT(K3Des, "3des");
+	_LIT(KRC2, "rc2");
+	_LIT(KAes, "aes");
+	_LIT(KRC4, "rc4");
+	_LIT(KRsaCipher, "rsacipher");
+	_LIT(KRsaSigner, "rsasigner");
+	_LIT(KRsaVerifier, "rsaverifier");
+	_LIT(KRsaKeyPair, "rsakeypair");
+	_LIT(KDsaSigner, "dsasigner");
+	_LIT(KDsaVerifier, "dsaverifier");
+	_LIT(KDsaKeyPair, "dsakeypair");
+	_LIT(KDhKeyPair, "dhkeypair");
+	_LIT(KDhKeyAgreement, "dhkeyagree");
+
+	_LIT(KNewLine, "\r\n");
+	_LIT(KPressAnyKey, "Press any key to quit... \n");
+	
+	class CCharacteristicsAndPluginName;
+	class CCharacteristics;
+	class CExtendedCharacteristics;
+	
+	/**
+	Class to store the command line parameters
+	*/
+	NONSHARABLE_CLASS(CDumpToolParameters) : public CBase
+		{
+	public:
+		/**
+		The options for the command line
+		*/
+		enum TOption
+			{
+			/**
+			Help option
+			*/
+			EOptionHelp=0,
+			/**
+			Option to dump the extended characteristics
+			*/			
+			EOptionExtendedCharacteristic
+			};	
+
+		/**
+		Create a CDumpToolParameters instance and leave it on the cleanup stack
+		@return the pointer to newly created instance
+		*/
+		static CDumpToolParameters* NewLC();
+		/**
+		Desctructor
+		*/		
+		~CDumpToolParameters();
+		/**
+		Look for the command line option
+		@return ETrue if found, otherwise EFalse
+		*/
+		TBool FindOption(TOption aOption) const;
+
+	private:
+		/**
+		Constructor
+		*/
+		CDumpToolParameters();
+
+	public:
+		/**
+		Command line list
+		*/
+		RArray<TInt> iOptions;
+		/**
+		The interface uid
+		*/
+		TInt32 iInterface;
+		/**
+		The algorithm uid
+		*/
+		TInt32 iAlgorithm;
+		/**
+		The dll name
+		*/
+		TFileName iDllName;
+		/**
+		Log file name
+		*/
+		TFileName iDumpFileName;
+		/**
+		Invalid options
+		*/
+		RPointerArray<HBufC> iInvalidOptions;
+		};
+	
+	/**
+	The class to retrieve the characteristics and extended characteristic,
+	and output them to the text file
+	*/
+	NONSHARABLE_CLASS(CDumpToolProcessor) : public CBase
+		{
+	public:
+		/**
+		Create a CDumpToolProcessor instance
+		@param aParams the input parameters
+		@param aConsole the console pointer
+		@return the pointer to the newly CDumpToolProcessor
+		*/
+		static CDumpToolProcessor* NewLC(const CDumpToolParameters& aParams, CConsoleBase* aConsole);
+		
+		/**
+		Destructor
+		*/
+		~CDumpToolProcessor();
+		
+		/**
+		Output the characteristics to the text file
+		*/
+		void ProcessL();
+		
+	private:
+		/**
+		Constructor
+		@param aParams the command line parameters reference
+		@param aConsole the console pointer
+		*/
+		CDumpToolProcessor(const CDumpToolParameters& aParams, CConsoleBase* aConsole);
+		
+		/**
+		2nd phase constructor
+		*/
+		void ConstructL();
+		
+		/**
+		Log the characteristics and dll name to the text file
+		@param aElement the characteristics and Dll index instance
+		*/
+		void OutputCharcteristicsAndDllL(const CCharacteristicsAndPluginName& aElement);
+		
+		/**
+		log the characteristics head
+		@param aInterfaceUid the interface uid
+		*/
+		void OutputCharacteristicHeadL(TInt32 aInterfaceUid);
+		
+		/**
+		Log the interface uid
+		@param aInterfaceUid the interface uid
+		*/
+		void OutputInterfaceNameL(TInt32 aInterfaceUid);
+
+		/**
+		Log the algorithm uid
+		@param aAlgorithmUid the algorithm uid
+		*/		
+		void OutputAlgorithmNameL(TInt32 aAlgorithmUid);
+
+		/**
+		Log the static characteristics
+		@param aCharacter the characteristic instance
+		*/		
+		void OutputSpecificCharacteristicL(const CCharacteristics& aCharacter);
+		
+		/**
+		Log the extended characteristics
+		@param aCharacter the extended characteristic reference
+		*/
+		void OutputExtendedCharacteristicL(const CExtendedCharacteristics& aCharacter);
+		
+		/**
+		Log the Hash operation mode
+		@param aIndex the index of the operation mode
+		@param aOperationMode the operation mode
+		*/
+		void OutputHashOperationModeL(TInt aIndex, TInt32 aOperationMode);
+		
+		/**
+		Log the symmetric operation mode
+		@param aIndex the index of the operation mode
+		@param aOperationMode the operation mode
+		*/		
+		void OutputSymmetricOperationModeL(TInt aIndex, TInt32 aOperationMode);
+		
+		/**
+		Log the padding mode
+		@param aIndex the index of the padding mode
+		@param aPaddingMode the padding mode
+		*/		
+		void OutputPaddingModeL(TInt aIndex, TInt32 aPaddingMode);
+		
+		/**
+		Log functions
+		*/
+		void LogL(TRefByValue<const TDesC8> aFmt, ...);
+		void LogL(TRefByValue<const TDesC> aFmt, ...);
+		
+		/**
+		Dispaly functions
+		*/
+		void DisplayHelp();
+		void DisplayInvalidOptions();
+	private:
+		/**
+		The reference of the input parameters
+		*/
+		const CDumpToolParameters& iInputParams;
+		/**
+		Array of the characteristics
+		*/
+		RPointerArray<CCharacteristicsAndPluginName> iCharacters;
+		/**
+		File Server Handle
+		*/
+		RFs iFs;
+		/**
+		Log file handle
+		*/
+		RFile iLogFile;
+		/**
+		Log file name
+		*/
+		TFileName iDumpFileName;
+		/**
+		Console
+		*/
+		CConsoleBase* iConsole;
+		};
+	}
+	
+#endif //_DUMPPROCESSOR_H__
+
+
+