cryptomgmtlibs/cryptotokenfw/tsecdlg/Tsecdlg.h
changeset 0 2c201484c85f
child 8 35751d3474b7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cryptomgmtlibs/cryptotokenfw/tsecdlg/Tsecdlg.h	Wed Jul 08 11:25:26 2009 +0100
@@ -0,0 +1,121 @@
+/*
+* Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+
+
+
+/**
+ @file 
+ @internalTechnology
+*/
+ 
+#ifndef __TSECDLG_H__
+#define __TSECDLG_H__
+
+#include <e32base.h>
+#include <secdlgimpldefs.h>
+
+const TUint KTSecDlgNotiferUid = 0x10204789;
+
+#ifdef _T_SECDLG_TEXTSHELL
+
+#include <twintnotifier.h>
+
+/** Method at ordinal 1 to get a list of notifiers from this dll. */
+IMPORT_C CArrayPtr<MNotifierBase2>* NotifierArray();
+
+#else
+
+#include <eiknotapi.h>
+#include <implementationproxy.h>
+#define MNotifierBase2 MEikSrvNotifierBase2
+
+IMPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount);
+CArrayPtr<MNotifierBase2>* NotifierArray();
+
+#endif
+
+class CInputSpec : public CBase
+	{
+ public:
+	CInputSpec(TSecurityDialogOperation aOp, HBufC* aLabelSpec, HBufC* aResponse1, HBufC* aResponse2);
+	~CInputSpec();
+	TSecurityDialogNotification Operation() const { return iOp; }
+	const TDesC& LabelSpec() const { return *iLabelSpec; }
+	const TDesC& Response1() const { return *iResponse1; }
+	const TDesC& Response2() const { return *iResponse2; }
+ private:
+	TSecurityDialogNotification iOp;
+	HBufC* iLabelSpec;
+	HBufC* iResponse1;
+	HBufC* iResponse2;
+	};
+
+/**
+ * This is a dummy implementation of the security dialog notifier.  This version
+ * responds to dialogs with data read from t_secdlg_in.dat present on system drive.  
+ * This contains the expected sequence of dialogs, and the desired responses.  It keeps a
+ * count of how many dialogs it has answered in t_secdlg_out.dat present on system drive.
+ */
+class CTestSecDlgNotifier : public CBase, public MNotifierBase2
+	{
+public:
+	static CTestSecDlgNotifier* NewL();
+	CTestSecDlgNotifier();
+
+private:
+	void ConstructL();
+
+	/**
+	 * Get the index of the next response by reading how many dialogs we have
+	 * already answered.
+	 */
+	TInt GetInputIndexL();
+
+	/**
+	 * Write the number of dalogs answered to the output file.
+	 */
+	void WriteDialogCountL(TInt aCount);
+
+	/**
+	 * Read an input specification.
+	 */
+	CInputSpec* ReadInputSpecL(TInt aIndex);
+
+	void DoEnterPINL(const CInputSpec& aSpec, const TDesC8& aBuffer, TInt aReplySlot, const RMessagePtr2& aMessage);
+	void DoChangePINL(const CInputSpec& aSpec, const TDesC8& aBuffer, TInt aReplySlot, const RMessagePtr2& aMessage);
+	void DoStartL( const TDesC8& aBuffer, TInt aReplySlot, const RMessagePtr2& aMessage );
+	void DoServerAuthenticationFailureL(const CInputSpec& aSpec, const TDesC8& aBuffer, TInt aReplySlot, const RMessagePtr2& aMessage );
+ 	void DoSecureConnectionL(const CInputSpec& aSpec, const TDesC8& aBuffer, TInt aReplySlot, const RMessagePtr2& aMessage );
+
+private:
+	void Release();
+	TNotifierInfo RegisterL();
+	TNotifierInfo Info() const;
+	
+	virtual void StartL( const TDesC8& aBuffer, TInt aReplySlot, const RMessagePtr2& aMessage );
+	virtual TPtrC8 StartL( const TDesC8& aBuffer );
+	
+	void Cancel();
+	TPtrC8 UpdateL( const TDesC8& aBuffer );
+
+private:
+	RFs iFs;
+	TNotifierInfo iInfo;
+	};
+
+#endif