diff -r 000000000000 -r 2c201484c85f cryptomgmtlibs/cryptotokenfw/tsecdlg/Tsecdlg.h --- /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 +#include + +const TUint KTSecDlgNotiferUid = 0x10204789; + +#ifdef _T_SECDLG_TEXTSHELL + +#include + +/** Method at ordinal 1 to get a list of notifiers from this dll. */ +IMPORT_C CArrayPtr* NotifierArray(); + +#else + +#include +#include +#define MNotifierBase2 MEikSrvNotifierBase2 + +IMPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount); +CArrayPtr* 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