diff -r 000000000000 -r 164170e6151a pkiutilities/CertmanUi/INC/CertmanuiKeeper.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pkiutilities/CertmanUi/INC/CertmanuiKeeper.h Tue Jan 26 15:20:08 2010 +0200 @@ -0,0 +1,353 @@ +/* +* Copyright (c) 2003-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 CCertManUIKeeper class +* +*/ + + +#ifndef CERTMANUIKEEPER_H +#define CERTMANUIKEEPER_H + +// INCLUDES +#include +#include +#include +#include +#include + +// FORWARD DECLARATIONS +class CCrCertEntry; +class CCertManUISyncWrapper; +class CCertManUICertData; +class CCertManUiDialogs; +class CEikColumnListBox; +class CAknTabGroup; +class CAknNavigationDecorator; +class CAknNavigationControlContainer; +class CCertManUICertificateHelper; +class CCertManUIWaitDialog; + +// CLASS DECLARATION + +/** +* CCertManUIKeeper view control class. +* +* @lib certmanui.lib +*/ +NONSHARABLE_CLASS( CCertManUIKeeper ): public CCoeControl, public MCoeControlObserver + { + public: // functions + + /** + * Default constructor + */ + CCertManUIKeeper(); + + /** + * Destructor. + */ + ~CCertManUIKeeper(); + + /** + * NewL + */ + static class CCertManUIKeeper* NewL(const TRect& aRect, TUid aViewId); + + /** + * NewLC + */ + static class CCertManUIKeeper* NewLC(const TRect& aRect, TUid aViewId); + + /** + * Activates the WimTitle and CertManUI Trust Settings title + */ + void ActivateTitleL(TInt aCurrentTitle); + + /** + * Returns *iCertStore + */ + CUnifiedCertStore*& CertManager(); + + + /** + * Initializes CertManUI Keeper + */ + void InitializeL(const TRect& aRect, TUid aViewId); + + /** + * Returns *iKeyStore + */ + CUnifiedKeyStore*& KeyManager(); + + /** + * Added here because FocusChanged need to be included + * in every control derived from CCoeControl that can have listbox + */ + void FocusChanged(TDrawNow aDrawNow); + + /** + * Checks that cacerts.dat file is not corrupt + * and returns CA certificates from it. + */ + void RefreshCAEntriesL(); + + /** + * Checks that cacerts.dat file is not corrupt + * and returns user certificates from it. + */ + void RefreshUserCertEntriesL(); + + /** + * Returns peer certificates. + */ + void RefreshPeerCertEntriesL(); + + /** + * Returns peer certificates. + */ + void RefreshDeviceCertEntriesL(); + + /** + * Shows error note + */ + void ShowErrorNoteL(TInt aError); + + /** + * Displays wait dialog + */ + void StartWaitDialogL(TInt aDialogSelector); + + /** + * Closes wait dialog + */ + void CloseWaitDialogL(); + + /** + * Check whether local feature is on + */ + TBool IsLocalFeatureSupported( const TInt aFeature ) const; + + public: //data + + /** + * Added here because FocusChanged need to be included + * in every control derived from CCoeControl that can have listbox + */ + CEikColumnListBox* iListBox; + + + /** + * To store CA certificate entries for Authority and Trust view + * Includes label from x509certnameparser. + */ + RMPointerArray iCALabelEntries; + + /** + * To store CA certificate entries for Authority and Trust view + * Includes label from x509certnameparser. + */ + RMPointerArray iUserLabelEntries; + + /** + * To store Peer certificate entries for Trusted Site view + * Includes label from x509certnameparser. + */ + RMPointerArray iPeerLabelEntries; + + /** + * To store Peer certificate entries for Device certificate view + * Includes label from x509certnameparser. + */ + RMPointerArray iDeviceLabelEntries; + + /** + * Used to wrap asynchronous calls + */ + CCertManUISyncWrapper* iWrapper; + + /** + * File session handle. + */ + RFs iRfs; + + /** + * To keep track of the currupted state of cacerts.dat + * ETrue = not corrupted + * EFalse = corrupted + */ + TBool iCertsDatOK; + + /** + * To know when CertManUI is started the first time + * ETrue = startup + * EFalse = not startup + */ + TBool iStartup; + + /** + * Certificate helper class + */ + CCertManUICertificateHelper* iCertificateHelper; + + private: // functions + + /** + * EPOC default constructor. + * @param aRect Frame rectangle for container. + */ + void ConstructL(const TRect& aRect, TUid aViewId); + + /** + * Opens resource file. + */ + void AddResourceFileL(); + + /** + * Handles control events + * Cannot be changed to non-leaving function. + * L-function is required by the class definition, even if empty. + */ + void HandleControlEventL( CCoeControl* aControl,TCoeEvent aEventType ); + + /** + * Called when a key is pressed + * Cannot be changed to non-leaving function. + * L-function is required by the class definition, even if empty. + */ + TKeyResponse OfferKeyEventL( + const TKeyEvent& aKeyEvent, TEventCode aType); + + /** + * Read local variation settings + */ + void ReadLocalVariationL(); + + + private: //data + + /** + * To store the previous view id inside CertManUI + */ + TUid iPreviousViewId; + + /** + * To store the previous view id outside CertManUI, KSettListSecurityViewId + */ + TUid iPreviousAppViewId; + + /** + * To list certificates with criteria. + */ + CCertAttributeFilter* iFilter; + + /** + * To list certificates with criteria. + */ + + TCTKeyAttributeFilter* iKeyFilter; + + /** + * UnifiedCertStore + */ + CUnifiedCertStore* iStore; + + /** + * UnifiedCertStore + */ + CUnifiedKeyStore* iKeyStore; + + /** + * To store CA certificate entries. + */ + RMPointerArray iCAEntries; + + /** + * To store User certificate entries. + */ + RMPointerArray iUserEntries; + + /** + * To store Peer certificate entries. + */ + RMPointerArray iPeerEntries; + + /** + * To store Device certificate entries. + */ + RMPointerArray iDeviceEntries; + + /** + * To store Key entries + */ + RMPointerArray iKeyEntries; + + /* + * Wait dialog + */ + CCertManUIWaitDialog* iCertmanUIDialog; + + /** + * Local variantion mask + */ + TInt iLocalFeaturesMask; + + /** + * Resource loader + */ + RConeResourceLoader iResourceLoader; + + + }; + +/** +* Small helper class to put label and certificate in same class. +* +* @lib certmanui.lib +*/ +NONSHARABLE_CLASS( CCertManUICertData ): public CBase + { + public: + + CCertManUICertData(); + + void Release(); + + HBufC* iCAEntryLabel; + HBufC* iUserEntryLabel; + HBufC* iPeerEntryLabel; + HBufC* iDeviceEntryLabel; + CCTCertInfo* iCAEntry; + CCTCertInfo* iUserEntry; + CCTCertInfo* iPeerEntry; + CCTCertInfo* iDeviceEntry; + + private: + ~CCertManUICertData(); + + }; + + +/** + * Helper function to close wait dialog if leave happens. + * CCertManUIKeeper::StartWaitDialogL() brings wait dialog visible. + * Wait dialog must be closed by calling CCertManUIKeeper::CloseWaitDialogL(). + * If code leaves after StartWaitDialogL() and before CloseWaitDialogL(), + * the wait dialog is never closed. + */ +void CleanupCloseWaitDialogPushL( CCertManUIKeeper& aKeeper ); + + +#endif // __CERTMANUIKEEPER_H + +// End of File