cpsecplugins/cpadvancedsecplugin/inc/advsecsettingscertdetailsbuilder_symbian.h
author hgs
Thu, 14 Oct 2010 13:56:11 +0300
changeset 63 989397f9511c
permissions -rw-r--r--
201039_03

/*
* Copyright (c) 2010 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:  Helper class to construct certificate details
*
*/

#ifndef ADVSECSETTINGSCERTDETAILSBUILDER_SYMBIAN_H
#define ADVSECSETTINGSCERTDETAILSBUILDER_SYMBIAN_H

#include <e32base.h>                    // CActive
#include <ct/rmpointerarray.h>          // RMPointerArray
#include <unifiedcertstore.h>           // CUnifiedCertStore
#include <QMap>

class RFs;
class CUnifiedCertStore;
class CUnifiedKeyStore;
class CCTCertInfo;
class CCTKeyInfo;
class CCertAttributeFilter;
class TCTKeyAttributeFilter;


/**
 * Certificate details helper class.
 */
class CAdvSecSettingsCertDetailsBuilder : public CActive
{
public:     // constructor and destructor
    static CAdvSecSettingsCertDetailsBuilder *NewL(RFs &aFs, CUnifiedCertStore &aCertStore);
    ~CAdvSecSettingsCertDetailsBuilder();

public:     // new functions
    void GetDetailsL(const CCTCertInfo &aCert, QMap<int,QString> &aDetails,
        TRequestStatus &aStatus);

protected:  // from CActive
    void DoCancel();
    void RunL();
    TInt RunError(TInt aError);

private:    // new functions
    CAdvSecSettingsCertDetailsBuilder(RFs &aFs, CUnifiedCertStore &aCertStore);
    void ConstructL();
    void InitializeKeyStoreL();
    void RetrieveCertificateL();
    void ListKeysL();
    void ReturnCertificateDetailsL();
    void AppendLabelL();
    void AppendIssuerL();
    void AppendSubjectL();
    void AppendValidityPeriodL();
    void AppendLocationL();
    void AppendFormatL();
    void AppendKeyUsageL();
    void AppendAlgorithmL();
    void AppendSerialNumberL();
    void AppendFingerprintsL();
    void AppendPublicKeyL();
    void AppendTrustedSitesL();
    QString CertificateFormatStringL(const TCertificateFormat aFormat) const;
    QString AlgorithmNameStringL(TAlgorithmId aAlgorithmId) const;

private:    // data
    RFs &iFs;
    CUnifiedCertStore &iCertStore;
    const CCTCertInfo *iCertInfo;   // not owned
    TRequestStatus *iClientStatus;  // not owned
    QMap<int,QString> *iDetails;    // not owned

    CCertificate *iCertificate;
    HBufC8 *iCertificateUrl;
    TPtr8 iCertUrlPtr;

    CUnifiedKeyStore *iKeyStore;
    TCTKeyAttributeFilter *iKeyFilter;
    RMPointerArray<CCTKeyInfo> iKeys;

    enum TDetailsBuilderState {
        ENotInitialized,
        EInitializingKeyStore,
        ERetrievingCertificate,
        EListingKeys,
        EIdle,
        EFailed
    } iState;
};

#endif // ADVSECSETTINGSCERTDETAILSBUILDER_SYMBIAN_H