diff -r 000000000000 -r 164170e6151a pkiutilities/SecModUI/inc/SecModUIModel.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pkiutilities/SecModUI/inc/SecModUIModel.h Tue Jan 26 15:20:08 2010 +0200 @@ -0,0 +1,396 @@ +/* +* 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 "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: Declaration of the CSecModUIModel class +* +*/ + + +#ifndef CSECMODUIMODEL_H +#define CSECMODUIMODEL_H + +// INCLUDES +#include "SecModUI.h" +#include +#include +#include + +// CONSTANTS +const TInt KPinGIndex = 0; // PIN-G should be always first AO in the AO list. +const TInt KMaxSettItemSize = 200; + +const TInt KPinGSettIndex = 0; +const TInt KPinNrSettIndex = 1; + +const TUid KUidSecMod = { 0x101F8668 }; + +// Panic strings +_LIT(KPanicNullPointer, "SecModUI: invalid pointer"); +_LIT(KPanicIndexOutOfRange, "SecModUI: array indexed out of range"); + +// FORWARD DECLARATIONS +class CUnifiedKeyStore; +class MCTAuthenticationObject; +class MCTAuthenticationObjectList; +class CSecModUISyncWrapper; +class CEikTextListBox; +class MCTKeyStore; +class MCTToken; +class CEikonEnv; + + +// DATA TYPES +enum TSecModPanicCode + { + EPanicNullPointer, + EPanicIndexOutOfRange + }; + +// FUNCTION PROTOTYPES +GLREF_C void Panic( TInt aPanic ); + +// CLASS DECLARATION + +/** +* class CSecModUIModel +* Model of the application +* +* @lib SecModUI.lib +* @since Series 60 3.0 +*/ +class CSecModUIModel : public CBase, public MSecModUI + { + public: // Constructors and destructLoadTokenLabelsLor + + /** + * Two-phased constructor. + */ + static CSecModUIModel* NewL(); + + /** + * Destructor. + */ + virtual ~CSecModUIModel(); + + public: // New functions + + /** + * Activates title to the title pane + * @param aTitle Title to be activated + * @return void + */ + void ActivateTitleL(const TDesC& aTitle) const; + + /** + * Activates current tokens label to the title pane + * @return void + */ + void ActivateTokenLabelToTitleL() const; + + /** + * Initializes unified keystore + * @return Error value + */ + TInt InitializeKeyStoreL(); + + /** + * Load labels of the tokens to the listbox + * @param aListBox Listbox + * @return void + */ + void LoadTokenLabelsL(CEikTextListBox& aListBox); + + /** + * Checks that does active token have also signing code(s) + * @param aItemArray contains localised stings + * @return void + */ + void CheckCodeViewStringsL(MDesCArray& aItemArray); + + /** + * Opens and activates token + * @param aTokenIndex Index of the token to be opened. + * @return void + */ + void OpenTokenL(TInt aTokenIndex); + + /** + * Opens authentication object view + * @param aIndex 0 is access code view + * 1 is signing code view + * @return void + */ + void OpenAuthObjViewL(TInt aIndex); + + /** + * Closes authentication object + * @param aIndex Index of the AO to be closed. + * @return void + */ + void CloseAuthObjL(TInt aIndex); + + /** + * Loads PIN-NR labels to the listbox + * @param aListBox + * @param aShowBlockedNote If ETrue, shows code blocked if code is blocked. + * @return void + */ + void LoadPinNRLabelsL(CEikTextListBox& aListBox, TBool aShowBlockedNote); + + /** + * Loads items of the access code view list + * @param aListBox where items are appended. + * @return void + */ + void LoadPinGItemsL(CEikTextListBox& aListBox); + + /** + * Writes AO status item to the descriptor + * @param aIndex Index of the authentication object + * @param aItem Descriptor where status is written. + * @param aShowBlockedNote If ETrue, shows code blocked if code is blocked. + * @return void + */ + void PINStatusItemL( + TInt aIndex, TDes& aItem, TBool aShowBlockedNote) const; + + /** + * Writes AO request status to the descriptor + * @param aIndex Index of the authentication object + * @param aItem Descriptor where status is written. + * @return void + */ + void PINRequestItemL(TInt aIndex, TDes& aItem) const; + + /** + * Displays security module details dialog. + * @param aTokenIndex Index of the token, which details are shown. + * @return void + */ + void ViewSecModDetailsL(TInt aTokenIndex); + + /** + * Displays details dialog of the active security module . + * @return void + */ + void ViewOpenedSecModDetailsL(); + + /** + * Deletes keystore + * @param aTokenIndex Index of the token to be deleted. + * @return ETrue if keystore was deleted. + */ + TBool DeleteKeyStoreL(TInt aTokenIndex); + + /** + * Returns ETrue if token is deletable. + * @param aTokenIndex Index of the token to be deleted. + * @return ETrue / EFalse + */ + TBool IsTokenDeletable(TInt aTokenIndex); + + /** + * Launches change or unblock operation depending + * of the status of the PIN-NR + * @param aIndex Index of the AO + * @return ?description + */ + void ChangeOrUnblockPinNrL(TInt aIndex); + + /** + * Launches change or unblock operation depending + * of the status of the PIN + * @param aIndex Index of the AO + * @return ?description + */ + void ChangeOrUnblockPinL(TInt aIndex); + + /** + * Changes PIN-NR + * @param aIndex Index of the AO + * @return void + */ + void ChangePinNrL(TInt aIndex); + + /** + * Changes PIN + * @param aIndex Index of the AO + * @return void + */ + void ChangePinL(TInt aIndex); + + /** + * Unblocks PIN-NR + * @param aIndex Index of the AO + * @return void + */ + void UnblockPinNrL(TInt aIndex); + + /** + * Unblocks PIN + * @param aIndex Index of the AO + * @return void + */ + void UnblockPinL(TInt aIndex); + + /** + * Returns ETrue if PIN-NR is changeable. + * @param aIndex Index of the AO + * @return ETrue / EFalse + */ + TBool PinNrChangeable(TInt aIndex) const; + + /** + * Returns ETrue if PIN is changeable. + * @param aIndex Index of the AO + * @return ETrue / EFalse + */ + TBool PinChangeable(TInt aIndex) const; + + /** + * Returns ETrue if PIN-NR is unblockable. + * @param aIndex Index of the AO + * @return ETrue / EFalse + */ + TBool PinNrUnblockable(TInt aIndex) const; + + /** + * Returns ETrue if PIN is unblockable. + * @param aIndex Index of the AO + * @return ETrue / EFalse + */ + TBool PinUnblockable(TInt aIndex) const; + + /** + * Returns ETrue if PIN request can be disabled / enabled. + * @param aIndex Index of the AO + * @return ETrue / EFalse + */ + TBool PinRequestChangeable(TInt aIndex) const; + + /** + * Returs ETrue if PIN is open. + * @param aIndex Index of the AO + * @return ?description + */ + TBool PinOpen(TInt aIndex) const; + + /** + * Disables / enables PIN depending on the status of the PIN. + * @param ?arg1 ?description + * @return ?description + */ + TInt ChangeCodeRequestL(TInt aIndex); + + /** + * Shows confirmation query. + * @param aResourceId Id of the resource + * @return Response of the user. + */ + TInt ShowConfirmationQueryL(TInt aResourceId) const; + + /** + * Shows confirmation note dialog. + * @param aResourceId Id of the resource + * @return void + */ + void ShowConfirmationNoteL(TInt aResourceId) const; + + /** + * Shows information note dialog. + * @param aResourceId Id of the resource + * @return void + */ + void ShowInformationNoteL(TInt aResourceId, const TDesC& aString = KNullDesC) const; + + /** + * Shows error note if needed. + * @param aError + * @return void + */ + void ShowErrorNoteL(TInt aError) const; + + CSecModUISyncWrapper& Wrapper(); + + /** + * Returns the number of security modules. + */ + TInt SecurityModuleCount() const; + + private: + + /** + * C++ default constructor. + */ + CSecModUIModel(); + + /** + * By default Symbian 2nd phase constructor is private. + */ + void ConstructL(); + + void ResetAndDestroyCTObjects(); + + void ResetAndDestroyAOs(); + + void AddResourceFileL(); + + void InitAuthObjectsL(); + + void ListAuthObjectsL(); + + void CreateSettingItem(const TDesC& aTitle, + const TDesC& aValue, + TDes& aItem) const; + + void AppendItemL(TDes& aMessage, + TInt aResItem, + const TDesC& aValue, + TInt aResNotDefined) const; + + void AppendResourceL(TDes& aMessage, TInt aResource) const; + + void AppendResourceAndEnterL(TDes& aMessage, TInt aResource) const; + + void AppendValueL(TDes& aMessage, + const TDesC& aValue, + TInt aResNotDefined) const; + + void AppendLocationL(TDes& aMessage, TUid aUid, TInt aItemRes=0) const; + + void AppendPinNRsL( TDes& aMessage ) const; + + private: // Data + // Resource file offsets + TInt iResourceFileOffset; + TInt iResourceFileOffset2; + TInt iResourceFileOffset3; + + CSecModUISyncWrapper* iWrapper; // owned + + CEikonEnv* iEikEnv; + + /** + * Crypto Token objects + */ + CUnifiedKeyStore* iUnifiedKeyStore; // owned + MCTKeyStore* iKeyStore; // not owned + MCTAuthenticationObjectList* iAOList; // owned, items not owned + RMPointerArray iAOArray; // items not owned + + RMPointerArray iAOKeyStores; // items not owned + }; + +#endif // CSecModUIModel_H + +// End of File