cpsecplugins/cpadvancedsecplugin/inc/advsecsettingscertmover_symbian.h
author hgs
Thu, 14 Oct 2010 13:56:11 +0300
changeset 63 989397f9511c
permissions -rw-r--r--
201039_03
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
63
989397f9511c 201039_03
hgs
parents:
diff changeset
     1
/*
989397f9511c 201039_03
hgs
parents:
diff changeset
     2
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
989397f9511c 201039_03
hgs
parents:
diff changeset
     3
* All rights reserved.
989397f9511c 201039_03
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
989397f9511c 201039_03
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0""
989397f9511c 201039_03
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
989397f9511c 201039_03
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
989397f9511c 201039_03
hgs
parents:
diff changeset
     8
*
989397f9511c 201039_03
hgs
parents:
diff changeset
     9
* Initial Contributors:
989397f9511c 201039_03
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
989397f9511c 201039_03
hgs
parents:
diff changeset
    11
*
989397f9511c 201039_03
hgs
parents:
diff changeset
    12
* Contributors:
989397f9511c 201039_03
hgs
parents:
diff changeset
    13
*
989397f9511c 201039_03
hgs
parents:
diff changeset
    14
* Description:  Helper class to move certificates
989397f9511c 201039_03
hgs
parents:
diff changeset
    15
*
989397f9511c 201039_03
hgs
parents:
diff changeset
    16
*/
989397f9511c 201039_03
hgs
parents:
diff changeset
    17
989397f9511c 201039_03
hgs
parents:
diff changeset
    18
#ifndef ADVSECSETTINGSCERTMOVER_SYMBIAN_H
989397f9511c 201039_03
hgs
parents:
diff changeset
    19
#define ADVSECSETTINGSCERTMOVER_SYMBIAN_H
989397f9511c 201039_03
hgs
parents:
diff changeset
    20
989397f9511c 201039_03
hgs
parents:
diff changeset
    21
#include <e32base.h>                    // CActive
989397f9511c 201039_03
hgs
parents:
diff changeset
    22
#include <ct/rmpointerarray.h>          // RMPointerArray
989397f9511c 201039_03
hgs
parents:
diff changeset
    23
#include <ct/tcttokenobjecthandle.h>    // TCTTokenObjectHandle
989397f9511c 201039_03
hgs
parents:
diff changeset
    24
989397f9511c 201039_03
hgs
parents:
diff changeset
    25
class RFs;
989397f9511c 201039_03
hgs
parents:
diff changeset
    26
class CUnifiedCertStore;
989397f9511c 201039_03
hgs
parents:
diff changeset
    27
class CUnifiedKeyStore;
989397f9511c 201039_03
hgs
parents:
diff changeset
    28
class CCTCertInfo;
989397f9511c 201039_03
hgs
parents:
diff changeset
    29
class CCTKeyInfo;
989397f9511c 201039_03
hgs
parents:
diff changeset
    30
class CCertAttributeFilter;
989397f9511c 201039_03
hgs
parents:
diff changeset
    31
class TCTKeyAttributeFilter;
989397f9511c 201039_03
hgs
parents:
diff changeset
    32
class MCTWritableCertStore;
989397f9511c 201039_03
hgs
parents:
diff changeset
    33
class MCTKeyStoreManager;
989397f9511c 201039_03
hgs
parents:
diff changeset
    34
989397f9511c 201039_03
hgs
parents:
diff changeset
    35
989397f9511c 201039_03
hgs
parents:
diff changeset
    36
/**
989397f9511c 201039_03
hgs
parents:
diff changeset
    37
 * Certificate mover helper class.
989397f9511c 201039_03
hgs
parents:
diff changeset
    38
 */
989397f9511c 201039_03
hgs
parents:
diff changeset
    39
class CAdvSecSettingsCertMover : public CActive
989397f9511c 201039_03
hgs
parents:
diff changeset
    40
{
989397f9511c 201039_03
hgs
parents:
diff changeset
    41
public:     // constructor and destructor
989397f9511c 201039_03
hgs
parents:
diff changeset
    42
    static CAdvSecSettingsCertMover *NewL(RFs &aFs);
989397f9511c 201039_03
hgs
parents:
diff changeset
    43
    ~CAdvSecSettingsCertMover();
989397f9511c 201039_03
hgs
parents:
diff changeset
    44
989397f9511c 201039_03
hgs
parents:
diff changeset
    45
public:     // new functions
989397f9511c 201039_03
hgs
parents:
diff changeset
    46
    void Move(const CCTCertInfo &aCert, TInt aSourceStoreTokenId,
989397f9511c 201039_03
hgs
parents:
diff changeset
    47
        TInt aTargetStoreTokenId, TRequestStatus &aStatus);
989397f9511c 201039_03
hgs
parents:
diff changeset
    48
989397f9511c 201039_03
hgs
parents:
diff changeset
    49
protected:  // from CActive
989397f9511c 201039_03
hgs
parents:
diff changeset
    50
    void DoCancel();
989397f9511c 201039_03
hgs
parents:
diff changeset
    51
    void RunL();
989397f9511c 201039_03
hgs
parents:
diff changeset
    52
    TInt RunError(TInt aError);
989397f9511c 201039_03
hgs
parents:
diff changeset
    53
989397f9511c 201039_03
hgs
parents:
diff changeset
    54
private:    // new functions
989397f9511c 201039_03
hgs
parents:
diff changeset
    55
    CAdvSecSettingsCertMover(RFs &aFs);
989397f9511c 201039_03
hgs
parents:
diff changeset
    56
    void ConstructL();
989397f9511c 201039_03
hgs
parents:
diff changeset
    57
    void StartMoveOperationL();
989397f9511c 201039_03
hgs
parents:
diff changeset
    58
    TInt CorrespondingKeyStoreTokenId(TInt aCertStoreTokenId);
989397f9511c 201039_03
hgs
parents:
diff changeset
    59
    void StartMovingKeysL();
989397f9511c 201039_03
hgs
parents:
diff changeset
    60
    void FindSourceAndTargetKeyStoresL();
989397f9511c 201039_03
hgs
parents:
diff changeset
    61
    void FindSourceAndTargetCertStoreL();
989397f9511c 201039_03
hgs
parents:
diff changeset
    62
    void ExportFirstKeyL();
989397f9511c 201039_03
hgs
parents:
diff changeset
    63
    void ExportOneKeyL();
989397f9511c 201039_03
hgs
parents:
diff changeset
    64
    void ExportNextKeyL();
989397f9511c 201039_03
hgs
parents:
diff changeset
    65
    void SaveExportedKeyL();
989397f9511c 201039_03
hgs
parents:
diff changeset
    66
    void DeleteOriginalKeyL();
989397f9511c 201039_03
hgs
parents:
diff changeset
    67
    void StartMovingCertificatesL();
989397f9511c 201039_03
hgs
parents:
diff changeset
    68
    void RetrieveFirstCertL();
989397f9511c 201039_03
hgs
parents:
diff changeset
    69
    void RetrieveOneCertL();
989397f9511c 201039_03
hgs
parents:
diff changeset
    70
    void RetrieveNextCertL();
989397f9511c 201039_03
hgs
parents:
diff changeset
    71
    void SaveRetrievedCertL();
989397f9511c 201039_03
hgs
parents:
diff changeset
    72
    void DeleteOriginalCertL();
989397f9511c 201039_03
hgs
parents:
diff changeset
    73
989397f9511c 201039_03
hgs
parents:
diff changeset
    74
989397f9511c 201039_03
hgs
parents:
diff changeset
    75
private:    // data
989397f9511c 201039_03
hgs
parents:
diff changeset
    76
    RFs &iFs;
989397f9511c 201039_03
hgs
parents:
diff changeset
    77
    const CCTCertInfo *iCertInfo;   // not owned
989397f9511c 201039_03
hgs
parents:
diff changeset
    78
    TInt iSourceCertStoreTokenId;
989397f9511c 201039_03
hgs
parents:
diff changeset
    79
    TInt iTargetCertStoreTokenId;
989397f9511c 201039_03
hgs
parents:
diff changeset
    80
    TRequestStatus *iClientStatus;  // not owned
989397f9511c 201039_03
hgs
parents:
diff changeset
    81
    HBufC8 *iDataBuffer;
989397f9511c 201039_03
hgs
parents:
diff changeset
    82
989397f9511c 201039_03
hgs
parents:
diff changeset
    83
    CUnifiedCertStore *iCertStore;
989397f9511c 201039_03
hgs
parents:
diff changeset
    84
    MCTWritableCertStore *iSourceCertStore; // not owned
989397f9511c 201039_03
hgs
parents:
diff changeset
    85
    MCTWritableCertStore *iTargetCertStore; // not owned
989397f9511c 201039_03
hgs
parents:
diff changeset
    86
    CCertAttributeFilter *iCertFilter;
989397f9511c 201039_03
hgs
parents:
diff changeset
    87
    RMPointerArray<CCTCertInfo> iCerts;
989397f9511c 201039_03
hgs
parents:
diff changeset
    88
    TInt iCertIndex;
989397f9511c 201039_03
hgs
parents:
diff changeset
    89
    TPtr8 iDataPtr;
989397f9511c 201039_03
hgs
parents:
diff changeset
    90
989397f9511c 201039_03
hgs
parents:
diff changeset
    91
    CUnifiedKeyStore *iKeyStore;
989397f9511c 201039_03
hgs
parents:
diff changeset
    92
    MCTKeyStoreManager *iSourceKeyStore;    // not owned
989397f9511c 201039_03
hgs
parents:
diff changeset
    93
    MCTKeyStoreManager *iTargetKeyStore;    // not owned
989397f9511c 201039_03
hgs
parents:
diff changeset
    94
    TCTKeyAttributeFilter *iKeyFilter;
989397f9511c 201039_03
hgs
parents:
diff changeset
    95
    RMPointerArray<CCTKeyInfo> iKeys;
989397f9511c 201039_03
hgs
parents:
diff changeset
    96
    TInt iKeyIndex;
989397f9511c 201039_03
hgs
parents:
diff changeset
    97
    TCTTokenObjectHandle iSourceKeyHandle;
989397f9511c 201039_03
hgs
parents:
diff changeset
    98
    CCTKeyInfo *iSavedKeyInfo;
989397f9511c 201039_03
hgs
parents:
diff changeset
    99
989397f9511c 201039_03
hgs
parents:
diff changeset
   100
    enum TMoverState {
989397f9511c 201039_03
hgs
parents:
diff changeset
   101
        ENotInitialized,
989397f9511c 201039_03
hgs
parents:
diff changeset
   102
        EInitializingCertStore,
989397f9511c 201039_03
hgs
parents:
diff changeset
   103
        EInitializingKeyStore,
989397f9511c 201039_03
hgs
parents:
diff changeset
   104
        EIdle,
989397f9511c 201039_03
hgs
parents:
diff changeset
   105
        EMovingKeyListingKeys,
989397f9511c 201039_03
hgs
parents:
diff changeset
   106
        EMovingKeyExportingKeys,
989397f9511c 201039_03
hgs
parents:
diff changeset
   107
        EMovingKeyImportingKeys,
989397f9511c 201039_03
hgs
parents:
diff changeset
   108
        EMovingKeyDeletingOriginal,
989397f9511c 201039_03
hgs
parents:
diff changeset
   109
        EMovingCertListingCerts,
989397f9511c 201039_03
hgs
parents:
diff changeset
   110
        EMovingCertRetrievingCerts,
989397f9511c 201039_03
hgs
parents:
diff changeset
   111
        EMovingCertAddingCerts,
989397f9511c 201039_03
hgs
parents:
diff changeset
   112
        EMovingCertDeletingOriginal,
989397f9511c 201039_03
hgs
parents:
diff changeset
   113
        EFailed
989397f9511c 201039_03
hgs
parents:
diff changeset
   114
    } iState;
989397f9511c 201039_03
hgs
parents:
diff changeset
   115
};
989397f9511c 201039_03
hgs
parents:
diff changeset
   116
989397f9511c 201039_03
hgs
parents:
diff changeset
   117
#endif // ADVSECSETTINGSCERTMOVER_SYMBIAN_H