cpsecplugins/cpadvancedsecplugin/src/advsecsettingscertificatemodel_symbian_p.cpp
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 the License "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:  Symbian specific advanced security settings certificate model
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
#include "advsecsettingscertificatemodel_symbian_p.h"
989397f9511c 201039_03
hgs
parents:
diff changeset
    19
#include "advsecsettingscertificatemodel.h"
989397f9511c 201039_03
hgs
parents:
diff changeset
    20
#include "advsecsettingscertificate.h"
989397f9511c 201039_03
hgs
parents:
diff changeset
    21
#include "advsecsettingstrustedcertusageuids.h"
989397f9511c 201039_03
hgs
parents:
diff changeset
    22
#include "advsecsettingsstoreuids.h"
989397f9511c 201039_03
hgs
parents:
diff changeset
    23
#include "advsecsettingscertlistbuilder_symbian.h"
989397f9511c 201039_03
hgs
parents:
diff changeset
    24
#include "advsecsettingscertdetailsbuilder_symbian.h"
989397f9511c 201039_03
hgs
parents:
diff changeset
    25
#include "advsecsettingscertmover_symbian.h"
989397f9511c 201039_03
hgs
parents:
diff changeset
    26
#include <cctcertinfo.h>            // CCTCertInfo
989397f9511c 201039_03
hgs
parents:
diff changeset
    27
#include <certificateapps.h>        // CCertificateAppInfoManager
989397f9511c 201039_03
hgs
parents:
diff changeset
    28
#include <HbTextResolverSymbian>
989397f9511c 201039_03
hgs
parents:
diff changeset
    29
989397f9511c 201039_03
hgs
parents:
diff changeset
    30
_LIT(KTranslationFile, "z:\\resource\\qt\\translations");
989397f9511c 201039_03
hgs
parents:
diff changeset
    31
_LIT(KTranslationPath, "certificate_manager_");
989397f9511c 201039_03
hgs
parents:
diff changeset
    32
989397f9511c 201039_03
hgs
parents:
diff changeset
    33
_LIT(KLocNativeInstallationUsage, "txt_certificate_manager_formlabel_symbian_instal");
989397f9511c 201039_03
hgs
parents:
diff changeset
    34
_LIT(KLocJavaInstallationUsage, "txt_certificate_manager_formlabel_java_installing");
989397f9511c 201039_03
hgs
parents:
diff changeset
    35
_LIT(KLocWidgetInstallationUsage, "txt_certificate_manager_formlabel_widget_installat");
989397f9511c 201039_03
hgs
parents:
diff changeset
    36
_LIT(KLocInternetUsage, "txt_certificate_manager_formlabel_internet");
989397f9511c 201039_03
hgs
parents:
diff changeset
    37
_LIT(KLocOcspUsage, "txt_certificate_manager_formlabel_online_certifica");
989397f9511c 201039_03
hgs
parents:
diff changeset
    38
_LIT(KLocVPNUsage, "txt_certificate_manager_formlabel_vpn");
989397f9511c 201039_03
hgs
parents:
diff changeset
    39
989397f9511c 201039_03
hgs
parents:
diff changeset
    40
#define TRAP_HANDLE_AND_RETURN_IF_ERROR(_f)     \
989397f9511c 201039_03
hgs
parents:
diff changeset
    41
{                                               \
989397f9511c 201039_03
hgs
parents:
diff changeset
    42
    TInt __thr_error = KErrNone;                \
989397f9511c 201039_03
hgs
parents:
diff changeset
    43
    TRAP(__thr_error, _f);                      \
989397f9511c 201039_03
hgs
parents:
diff changeset
    44
    if (__thr_error) {                          \
989397f9511c 201039_03
hgs
parents:
diff changeset
    45
        q_ptr->handleError(__thr_error);        \
989397f9511c 201039_03
hgs
parents:
diff changeset
    46
        return;                                 \
989397f9511c 201039_03
hgs
parents:
diff changeset
    47
    }                                           \
989397f9511c 201039_03
hgs
parents:
diff changeset
    48
}
989397f9511c 201039_03
hgs
parents:
diff changeset
    49
989397f9511c 201039_03
hgs
parents:
diff changeset
    50
989397f9511c 201039_03
hgs
parents:
diff changeset
    51
// ======== LOCAL FUNCTIONS ========
989397f9511c 201039_03
hgs
parents:
diff changeset
    52
989397f9511c 201039_03
hgs
parents:
diff changeset
    53
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
    54
// CopyStringL()
989397f9511c 201039_03
hgs
parents:
diff changeset
    55
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
    56
//
989397f9511c 201039_03
hgs
parents:
diff changeset
    57
QString CopyStringL(const TDesC16 &aDes16)
989397f9511c 201039_03
hgs
parents:
diff changeset
    58
{
989397f9511c 201039_03
hgs
parents:
diff changeset
    59
    QString string;
989397f9511c 201039_03
hgs
parents:
diff changeset
    60
    QT_TRYCATCH_LEAVING(string = QString::fromUtf16(aDes16.Ptr(), aDes16.Length()));
989397f9511c 201039_03
hgs
parents:
diff changeset
    61
    return string;
989397f9511c 201039_03
hgs
parents:
diff changeset
    62
}
989397f9511c 201039_03
hgs
parents:
diff changeset
    63
989397f9511c 201039_03
hgs
parents:
diff changeset
    64
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
    65
// CopyStringL()
989397f9511c 201039_03
hgs
parents:
diff changeset
    66
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
    67
//
989397f9511c 201039_03
hgs
parents:
diff changeset
    68
QString CopyStringL(const TDesC8 &aDes8)
989397f9511c 201039_03
hgs
parents:
diff changeset
    69
{
989397f9511c 201039_03
hgs
parents:
diff changeset
    70
    QString string;
989397f9511c 201039_03
hgs
parents:
diff changeset
    71
    QT_TRYCATCH_LEAVING(string = QString::fromUtf8(
989397f9511c 201039_03
hgs
parents:
diff changeset
    72
        reinterpret_cast<const char*>(aDes8.Ptr()), aDes8.Length()));
989397f9511c 201039_03
hgs
parents:
diff changeset
    73
    return string;
989397f9511c 201039_03
hgs
parents:
diff changeset
    74
}
989397f9511c 201039_03
hgs
parents:
diff changeset
    75
989397f9511c 201039_03
hgs
parents:
diff changeset
    76
989397f9511c 201039_03
hgs
parents:
diff changeset
    77
// ======== MEMBER FUNCTIONS ========
989397f9511c 201039_03
hgs
parents:
diff changeset
    78
989397f9511c 201039_03
hgs
parents:
diff changeset
    79
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
    80
// AdvSecSettingsCertificateModelPrivate::AdvSecSettingsCertificateModelPrivate()
989397f9511c 201039_03
hgs
parents:
diff changeset
    81
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
    82
//
989397f9511c 201039_03
hgs
parents:
diff changeset
    83
AdvSecSettingsCertificateModelPrivate::AdvSecSettingsCertificateModelPrivate(
989397f9511c 201039_03
hgs
parents:
diff changeset
    84
    AdvSecSettingsCertificateModel *q) : CActive(CActive::EPriorityLow), q_ptr(q),
989397f9511c 201039_03
hgs
parents:
diff changeset
    85
    iState(ENotInitialized)
989397f9511c 201039_03
hgs
parents:
diff changeset
    86
{
989397f9511c 201039_03
hgs
parents:
diff changeset
    87
    CActiveScheduler::Add(this);
989397f9511c 201039_03
hgs
parents:
diff changeset
    88
}
989397f9511c 201039_03
hgs
parents:
diff changeset
    89
989397f9511c 201039_03
hgs
parents:
diff changeset
    90
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
    91
// AdvSecSettingsCertificateModelPrivate::~AdvSecSettingsCertificateModelPrivate()
989397f9511c 201039_03
hgs
parents:
diff changeset
    92
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
    93
//
989397f9511c 201039_03
hgs
parents:
diff changeset
    94
AdvSecSettingsCertificateModelPrivate::~AdvSecSettingsCertificateModelPrivate()
989397f9511c 201039_03
hgs
parents:
diff changeset
    95
{
989397f9511c 201039_03
hgs
parents:
diff changeset
    96
    Cancel();
989397f9511c 201039_03
hgs
parents:
diff changeset
    97
989397f9511c 201039_03
hgs
parents:
diff changeset
    98
    delete iMover;
989397f9511c 201039_03
hgs
parents:
diff changeset
    99
    delete iCertAppInfoManager;
989397f9511c 201039_03
hgs
parents:
diff changeset
   100
    delete iCertStore;
989397f9511c 201039_03
hgs
parents:
diff changeset
   101
    iFs.Close();
989397f9511c 201039_03
hgs
parents:
diff changeset
   102
989397f9511c 201039_03
hgs
parents:
diff changeset
   103
    iCertInfo = NULL;
989397f9511c 201039_03
hgs
parents:
diff changeset
   104
    iCertInfoArray.Close();
989397f9511c 201039_03
hgs
parents:
diff changeset
   105
    delete iCertListBuilder;
989397f9511c 201039_03
hgs
parents:
diff changeset
   106
    delete iDetailsBuilder;
989397f9511c 201039_03
hgs
parents:
diff changeset
   107
989397f9511c 201039_03
hgs
parents:
diff changeset
   108
    iTrustedUids = NULL;
989397f9511c 201039_03
hgs
parents:
diff changeset
   109
    iApplications.Reset();
989397f9511c 201039_03
hgs
parents:
diff changeset
   110
}
989397f9511c 201039_03
hgs
parents:
diff changeset
   111
989397f9511c 201039_03
hgs
parents:
diff changeset
   112
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
   113
// AdvSecSettingsCertificateModelPrivate::initialize()
989397f9511c 201039_03
hgs
parents:
diff changeset
   114
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
   115
//
989397f9511c 201039_03
hgs
parents:
diff changeset
   116
void AdvSecSettingsCertificateModelPrivate::initialize()
989397f9511c 201039_03
hgs
parents:
diff changeset
   117
{
989397f9511c 201039_03
hgs
parents:
diff changeset
   118
    if (!IsActive() && (iState == ENotInitialized)) {
989397f9511c 201039_03
hgs
parents:
diff changeset
   119
        TRAP_HANDLE_AND_RETURN_IF_ERROR(ConstructL());
989397f9511c 201039_03
hgs
parents:
diff changeset
   120
        iCertStore->Initialize(iStatus);
989397f9511c 201039_03
hgs
parents:
diff changeset
   121
        iState = EInitializing;
989397f9511c 201039_03
hgs
parents:
diff changeset
   122
        SetActive();
989397f9511c 201039_03
hgs
parents:
diff changeset
   123
    } else {
989397f9511c 201039_03
hgs
parents:
diff changeset
   124
        q_ptr->handleError(KErrAlreadyExists);
989397f9511c 201039_03
hgs
parents:
diff changeset
   125
    }
989397f9511c 201039_03
hgs
parents:
diff changeset
   126
}
989397f9511c 201039_03
hgs
parents:
diff changeset
   127
989397f9511c 201039_03
hgs
parents:
diff changeset
   128
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
   129
// AdvSecSettingsCertificateModelPrivate::getCertificates()
989397f9511c 201039_03
hgs
parents:
diff changeset
   130
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
   131
//
989397f9511c 201039_03
hgs
parents:
diff changeset
   132
void AdvSecSettingsCertificateModelPrivate::getCertificates(
989397f9511c 201039_03
hgs
parents:
diff changeset
   133
    QList<AdvSecSettingsCertificate*> &certList)
989397f9511c 201039_03
hgs
parents:
diff changeset
   134
{
989397f9511c 201039_03
hgs
parents:
diff changeset
   135
    if (!IsActive() && (iState == EIdle)) {
989397f9511c 201039_03
hgs
parents:
diff changeset
   136
        if (!iCertListBuilder) {
989397f9511c 201039_03
hgs
parents:
diff changeset
   137
            TRAP_HANDLE_AND_RETURN_IF_ERROR(iCertListBuilder =
989397f9511c 201039_03
hgs
parents:
diff changeset
   138
                CAdvSecSettingsCertListBuilder::NewL(iFs, *iCertStore));
989397f9511c 201039_03
hgs
parents:
diff changeset
   139
        }
989397f9511c 201039_03
hgs
parents:
diff changeset
   140
        iCertListBuilder->GetCertificateList(certList, iCertInfoArray, iStatus);
989397f9511c 201039_03
hgs
parents:
diff changeset
   141
        iState = EGettingCertificatesList;
989397f9511c 201039_03
hgs
parents:
diff changeset
   142
        SetActive();
989397f9511c 201039_03
hgs
parents:
diff changeset
   143
    } else {
989397f9511c 201039_03
hgs
parents:
diff changeset
   144
        q_ptr->handleError(KErrInUse);
989397f9511c 201039_03
hgs
parents:
diff changeset
   145
    }
989397f9511c 201039_03
hgs
parents:
diff changeset
   146
}
989397f9511c 201039_03
hgs
parents:
diff changeset
   147
989397f9511c 201039_03
hgs
parents:
diff changeset
   148
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
   149
// AdvSecSettingsCertificateModelPrivate::getCertificateDetails()
989397f9511c 201039_03
hgs
parents:
diff changeset
   150
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
   151
//
989397f9511c 201039_03
hgs
parents:
diff changeset
   152
void AdvSecSettingsCertificateModelPrivate::getCertificateDetails(
989397f9511c 201039_03
hgs
parents:
diff changeset
   153
    const AdvSecSettingsCertificate &cert, QMap<int,QString> &details)
989397f9511c 201039_03
hgs
parents:
diff changeset
   154
{
989397f9511c 201039_03
hgs
parents:
diff changeset
   155
    if (!IsActive() && (iState == EIdle)) {
989397f9511c 201039_03
hgs
parents:
diff changeset
   156
        iCertInfo = CertificateInfo(cert);
989397f9511c 201039_03
hgs
parents:
diff changeset
   157
        if (iCertInfo) {
989397f9511c 201039_03
hgs
parents:
diff changeset
   158
            if (!iDetailsBuilder) {
989397f9511c 201039_03
hgs
parents:
diff changeset
   159
                TRAP_HANDLE_AND_RETURN_IF_ERROR(iDetailsBuilder =
989397f9511c 201039_03
hgs
parents:
diff changeset
   160
                    CAdvSecSettingsCertDetailsBuilder::NewL(iFs, *iCertStore));
989397f9511c 201039_03
hgs
parents:
diff changeset
   161
            }
989397f9511c 201039_03
hgs
parents:
diff changeset
   162
            TRAP_HANDLE_AND_RETURN_IF_ERROR(
989397f9511c 201039_03
hgs
parents:
diff changeset
   163
                iDetailsBuilder->GetDetailsL(*iCertInfo, details, iStatus));
989397f9511c 201039_03
hgs
parents:
diff changeset
   164
            iState = EBuildingCertificateDetails;
989397f9511c 201039_03
hgs
parents:
diff changeset
   165
            SetActive();
989397f9511c 201039_03
hgs
parents:
diff changeset
   166
        }
989397f9511c 201039_03
hgs
parents:
diff changeset
   167
    } else {
989397f9511c 201039_03
hgs
parents:
diff changeset
   168
        q_ptr->handleError(KErrInUse);
989397f9511c 201039_03
hgs
parents:
diff changeset
   169
    }
989397f9511c 201039_03
hgs
parents:
diff changeset
   170
}
989397f9511c 201039_03
hgs
parents:
diff changeset
   171
989397f9511c 201039_03
hgs
parents:
diff changeset
   172
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
   173
// AdvSecSettingsCertificateModelPrivate::isDeletable()
989397f9511c 201039_03
hgs
parents:
diff changeset
   174
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
   175
//
989397f9511c 201039_03
hgs
parents:
diff changeset
   176
bool AdvSecSettingsCertificateModelPrivate::isDeletable(
989397f9511c 201039_03
hgs
parents:
diff changeset
   177
    const AdvSecSettingsCertificate &cert) const
989397f9511c 201039_03
hgs
parents:
diff changeset
   178
{
989397f9511c 201039_03
hgs
parents:
diff changeset
   179
    const CCTCertInfo* certInfo = CertificateInfo(cert);
989397f9511c 201039_03
hgs
parents:
diff changeset
   180
    if (certInfo) {
989397f9511c 201039_03
hgs
parents:
diff changeset
   181
        return certInfo->IsDeletable();
989397f9511c 201039_03
hgs
parents:
diff changeset
   182
    }
989397f9511c 201039_03
hgs
parents:
diff changeset
   183
    return false;
989397f9511c 201039_03
hgs
parents:
diff changeset
   184
}
989397f9511c 201039_03
hgs
parents:
diff changeset
   185
989397f9511c 201039_03
hgs
parents:
diff changeset
   186
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
   187
// AdvSecSettingsCertificateModelPrivate::deleteCertificate()
989397f9511c 201039_03
hgs
parents:
diff changeset
   188
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
   189
//
989397f9511c 201039_03
hgs
parents:
diff changeset
   190
void AdvSecSettingsCertificateModelPrivate::deleteCertificate(
989397f9511c 201039_03
hgs
parents:
diff changeset
   191
    const AdvSecSettingsCertificate &cert)
989397f9511c 201039_03
hgs
parents:
diff changeset
   192
{
989397f9511c 201039_03
hgs
parents:
diff changeset
   193
    if (!IsActive() && (iState == EIdle)) {
989397f9511c 201039_03
hgs
parents:
diff changeset
   194
        iCertInfo = CertificateInfo(cert);
989397f9511c 201039_03
hgs
parents:
diff changeset
   195
        if (iCertInfo) {
989397f9511c 201039_03
hgs
parents:
diff changeset
   196
            iCertStore->Remove(*iCertInfo, iStatus);
989397f9511c 201039_03
hgs
parents:
diff changeset
   197
            iState = EDeletingCertificate;
989397f9511c 201039_03
hgs
parents:
diff changeset
   198
            SetActive();
989397f9511c 201039_03
hgs
parents:
diff changeset
   199
        }
989397f9511c 201039_03
hgs
parents:
diff changeset
   200
    } else {
989397f9511c 201039_03
hgs
parents:
diff changeset
   201
        q_ptr->handleError(KErrInUse);
989397f9511c 201039_03
hgs
parents:
diff changeset
   202
    }
989397f9511c 201039_03
hgs
parents:
diff changeset
   203
}
989397f9511c 201039_03
hgs
parents:
diff changeset
   204
989397f9511c 201039_03
hgs
parents:
diff changeset
   205
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
   206
// AdvSecSettingsCertificateModelPrivate::getTrustSettings()
989397f9511c 201039_03
hgs
parents:
diff changeset
   207
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
   208
//
989397f9511c 201039_03
hgs
parents:
diff changeset
   209
void AdvSecSettingsCertificateModelPrivate::getTrustSettings(
989397f9511c 201039_03
hgs
parents:
diff changeset
   210
    const AdvSecSettingsCertificate &cert, QMap<int,bool> &usageIdAndTrust)
989397f9511c 201039_03
hgs
parents:
diff changeset
   211
{
989397f9511c 201039_03
hgs
parents:
diff changeset
   212
    if (!IsActive() && (iState == EIdle)) {
989397f9511c 201039_03
hgs
parents:
diff changeset
   213
        iCertInfo = CertificateInfo(cert);
989397f9511c 201039_03
hgs
parents:
diff changeset
   214
        if (iCertInfo) {
989397f9511c 201039_03
hgs
parents:
diff changeset
   215
            iTrustedUids = &usageIdAndTrust;
989397f9511c 201039_03
hgs
parents:
diff changeset
   216
            iApplications.Reset();
989397f9511c 201039_03
hgs
parents:
diff changeset
   217
            iCertStore->Applications(*iCertInfo, iApplications, iStatus);
989397f9511c 201039_03
hgs
parents:
diff changeset
   218
            iState = EReadingApplications;
989397f9511c 201039_03
hgs
parents:
diff changeset
   219
            SetActive();
989397f9511c 201039_03
hgs
parents:
diff changeset
   220
        }
989397f9511c 201039_03
hgs
parents:
diff changeset
   221
    } else {
989397f9511c 201039_03
hgs
parents:
diff changeset
   222
        q_ptr->handleError(KErrInUse);
989397f9511c 201039_03
hgs
parents:
diff changeset
   223
    }
989397f9511c 201039_03
hgs
parents:
diff changeset
   224
}
989397f9511c 201039_03
hgs
parents:
diff changeset
   225
989397f9511c 201039_03
hgs
parents:
diff changeset
   226
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
   227
// AdvSecSettingsCertificateModelPrivate::setTrustSettings()
989397f9511c 201039_03
hgs
parents:
diff changeset
   228
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
   229
//
989397f9511c 201039_03
hgs
parents:
diff changeset
   230
void AdvSecSettingsCertificateModelPrivate::setTrustSettings(
989397f9511c 201039_03
hgs
parents:
diff changeset
   231
    const AdvSecSettingsCertificate &cert, const QMap<int,bool> &usageIdAndTrust)
989397f9511c 201039_03
hgs
parents:
diff changeset
   232
{
989397f9511c 201039_03
hgs
parents:
diff changeset
   233
    if (!IsActive() && (iState == EIdle)) {
989397f9511c 201039_03
hgs
parents:
diff changeset
   234
        iCertInfo = CertificateInfo(cert);
989397f9511c 201039_03
hgs
parents:
diff changeset
   235
        if (iCertInfo) {
989397f9511c 201039_03
hgs
parents:
diff changeset
   236
            iApplications.Reset();
989397f9511c 201039_03
hgs
parents:
diff changeset
   237
            QMapIterator<int,bool> usageIter(usageIdAndTrust);
989397f9511c 201039_03
hgs
parents:
diff changeset
   238
            while (usageIter.hasNext()) {
989397f9511c 201039_03
hgs
parents:
diff changeset
   239
                usageIter.next();
989397f9511c 201039_03
hgs
parents:
diff changeset
   240
                if (usageIter.value()) {
989397f9511c 201039_03
hgs
parents:
diff changeset
   241
                    iApplications.Append(TUid::Uid(usageIter.key()));
989397f9511c 201039_03
hgs
parents:
diff changeset
   242
                }
989397f9511c 201039_03
hgs
parents:
diff changeset
   243
            }
989397f9511c 201039_03
hgs
parents:
diff changeset
   244
989397f9511c 201039_03
hgs
parents:
diff changeset
   245
            iCertStore->SetApplicability(*iCertInfo, iApplications, iStatus);
989397f9511c 201039_03
hgs
parents:
diff changeset
   246
            iState = EWritingApplications;
989397f9511c 201039_03
hgs
parents:
diff changeset
   247
            SetActive();
989397f9511c 201039_03
hgs
parents:
diff changeset
   248
        }
989397f9511c 201039_03
hgs
parents:
diff changeset
   249
    } else {
989397f9511c 201039_03
hgs
parents:
diff changeset
   250
        q_ptr->handleError(KErrInUse);
989397f9511c 201039_03
hgs
parents:
diff changeset
   251
    }
989397f9511c 201039_03
hgs
parents:
diff changeset
   252
}
989397f9511c 201039_03
hgs
parents:
diff changeset
   253
989397f9511c 201039_03
hgs
parents:
diff changeset
   254
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
   255
// AdvSecSettingsCertificateModelPrivate::getCertificateUsageNames()
989397f9511c 201039_03
hgs
parents:
diff changeset
   256
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
   257
//
989397f9511c 201039_03
hgs
parents:
diff changeset
   258
void AdvSecSettingsCertificateModelPrivate::getCertificateUsageNames(
989397f9511c 201039_03
hgs
parents:
diff changeset
   259
    QMap<int,QString> &usageIdAndName)
989397f9511c 201039_03
hgs
parents:
diff changeset
   260
{
989397f9511c 201039_03
hgs
parents:
diff changeset
   261
    usageIdAndName.clear();
989397f9511c 201039_03
hgs
parents:
diff changeset
   262
    QT_TRAP_THROWING(DoGetCertificateUsageNamesL(usageIdAndName));
989397f9511c 201039_03
hgs
parents:
diff changeset
   263
}
989397f9511c 201039_03
hgs
parents:
diff changeset
   264
989397f9511c 201039_03
hgs
parents:
diff changeset
   265
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
   266
// AdvSecSettingsCertificateModelPrivate::moveToPersonalCertificates()
989397f9511c 201039_03
hgs
parents:
diff changeset
   267
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
   268
//
989397f9511c 201039_03
hgs
parents:
diff changeset
   269
void AdvSecSettingsCertificateModelPrivate::moveToPersonalCertificates(
989397f9511c 201039_03
hgs
parents:
diff changeset
   270
    const AdvSecSettingsCertificate &cert)
989397f9511c 201039_03
hgs
parents:
diff changeset
   271
{
989397f9511c 201039_03
hgs
parents:
diff changeset
   272
    if (!IsActive() && (iState == EIdle)) {
989397f9511c 201039_03
hgs
parents:
diff changeset
   273
        iCertInfo = CertificateInfo(cert);
989397f9511c 201039_03
hgs
parents:
diff changeset
   274
        if (iCertInfo) {
989397f9511c 201039_03
hgs
parents:
diff changeset
   275
            if (!iMover) {
989397f9511c 201039_03
hgs
parents:
diff changeset
   276
                TRAP_HANDLE_AND_RETURN_IF_ERROR(iMover =
989397f9511c 201039_03
hgs
parents:
diff changeset
   277
                    CAdvSecSettingsCertMover::NewL(iFs));
989397f9511c 201039_03
hgs
parents:
diff changeset
   278
            }
989397f9511c 201039_03
hgs
parents:
diff changeset
   279
            // personal certificate store == file certificate store
989397f9511c 201039_03
hgs
parents:
diff changeset
   280
            iMover->Move(*iCertInfo, KAdvSecSettingsDeviceCertStore,
989397f9511c 201039_03
hgs
parents:
diff changeset
   281
                KAdvSecSettingsFileCertStore, iStatus);
989397f9511c 201039_03
hgs
parents:
diff changeset
   282
            iState = EMovingCertificateToPersonalStore;
989397f9511c 201039_03
hgs
parents:
diff changeset
   283
            SetActive();
989397f9511c 201039_03
hgs
parents:
diff changeset
   284
        }
989397f9511c 201039_03
hgs
parents:
diff changeset
   285
    } else {
989397f9511c 201039_03
hgs
parents:
diff changeset
   286
        q_ptr->handleError(KErrInUse);
989397f9511c 201039_03
hgs
parents:
diff changeset
   287
    }
989397f9511c 201039_03
hgs
parents:
diff changeset
   288
}
989397f9511c 201039_03
hgs
parents:
diff changeset
   289
989397f9511c 201039_03
hgs
parents:
diff changeset
   290
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
   291
// AdvSecSettingsCertificateModelPrivate::moveToDeviceCertificates()
989397f9511c 201039_03
hgs
parents:
diff changeset
   292
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
   293
//
989397f9511c 201039_03
hgs
parents:
diff changeset
   294
void AdvSecSettingsCertificateModelPrivate::moveToDeviceCertificates(
989397f9511c 201039_03
hgs
parents:
diff changeset
   295
    const AdvSecSettingsCertificate &cert)
989397f9511c 201039_03
hgs
parents:
diff changeset
   296
{
989397f9511c 201039_03
hgs
parents:
diff changeset
   297
    if (!IsActive() && (iState == EIdle)) {
989397f9511c 201039_03
hgs
parents:
diff changeset
   298
        iCertInfo = CertificateInfo(cert);
989397f9511c 201039_03
hgs
parents:
diff changeset
   299
        if (iCertInfo) {
989397f9511c 201039_03
hgs
parents:
diff changeset
   300
            if (!iMover) {
989397f9511c 201039_03
hgs
parents:
diff changeset
   301
                TRAP_HANDLE_AND_RETURN_IF_ERROR(iMover =
989397f9511c 201039_03
hgs
parents:
diff changeset
   302
                    CAdvSecSettingsCertMover::NewL(iFs));
989397f9511c 201039_03
hgs
parents:
diff changeset
   303
            }
989397f9511c 201039_03
hgs
parents:
diff changeset
   304
            iMover->Move(*iCertInfo, KAdvSecSettingsFileCertStore,
989397f9511c 201039_03
hgs
parents:
diff changeset
   305
                KAdvSecSettingsDeviceCertStore, iStatus);
989397f9511c 201039_03
hgs
parents:
diff changeset
   306
            iState = EMovingCertificateToDeviceStore;
989397f9511c 201039_03
hgs
parents:
diff changeset
   307
            SetActive();
989397f9511c 201039_03
hgs
parents:
diff changeset
   308
        }
989397f9511c 201039_03
hgs
parents:
diff changeset
   309
    } else {
989397f9511c 201039_03
hgs
parents:
diff changeset
   310
        q_ptr->handleError(KErrInUse);
989397f9511c 201039_03
hgs
parents:
diff changeset
   311
    }
989397f9511c 201039_03
hgs
parents:
diff changeset
   312
}
989397f9511c 201039_03
hgs
parents:
diff changeset
   313
989397f9511c 201039_03
hgs
parents:
diff changeset
   314
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
   315
// AdvSecSettingsCertificateModelPrivate::DoCancel()
989397f9511c 201039_03
hgs
parents:
diff changeset
   316
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
   317
//
989397f9511c 201039_03
hgs
parents:
diff changeset
   318
void AdvSecSettingsCertificateModelPrivate::DoCancel()
989397f9511c 201039_03
hgs
parents:
diff changeset
   319
{
989397f9511c 201039_03
hgs
parents:
diff changeset
   320
    switch (iState) {
989397f9511c 201039_03
hgs
parents:
diff changeset
   321
    case EInitializing:
989397f9511c 201039_03
hgs
parents:
diff changeset
   322
        iCertStore->CancelInitialize();
989397f9511c 201039_03
hgs
parents:
diff changeset
   323
        break;
989397f9511c 201039_03
hgs
parents:
diff changeset
   324
    case EGettingCertificatesList:
989397f9511c 201039_03
hgs
parents:
diff changeset
   325
        delete iCertListBuilder;
989397f9511c 201039_03
hgs
parents:
diff changeset
   326
        iCertListBuilder = NULL;
989397f9511c 201039_03
hgs
parents:
diff changeset
   327
        break;
989397f9511c 201039_03
hgs
parents:
diff changeset
   328
    case EBuildingCertificateDetails:
989397f9511c 201039_03
hgs
parents:
diff changeset
   329
        delete iDetailsBuilder;
989397f9511c 201039_03
hgs
parents:
diff changeset
   330
        iDetailsBuilder = NULL;
989397f9511c 201039_03
hgs
parents:
diff changeset
   331
        break;
989397f9511c 201039_03
hgs
parents:
diff changeset
   332
    case EDeletingCertificate:
989397f9511c 201039_03
hgs
parents:
diff changeset
   333
        iCertStore->CancelRemove();
989397f9511c 201039_03
hgs
parents:
diff changeset
   334
        break;
989397f9511c 201039_03
hgs
parents:
diff changeset
   335
    case EReadingApplications:
989397f9511c 201039_03
hgs
parents:
diff changeset
   336
        iCertStore->CancelApplications();
989397f9511c 201039_03
hgs
parents:
diff changeset
   337
        break;
989397f9511c 201039_03
hgs
parents:
diff changeset
   338
    case EWritingApplications:
989397f9511c 201039_03
hgs
parents:
diff changeset
   339
        iCertStore->CancelSetApplicability();
989397f9511c 201039_03
hgs
parents:
diff changeset
   340
        break;
989397f9511c 201039_03
hgs
parents:
diff changeset
   341
    case EMovingCertificateToPersonalStore:
989397f9511c 201039_03
hgs
parents:
diff changeset
   342
    case EMovingCertificateToDeviceStore:
989397f9511c 201039_03
hgs
parents:
diff changeset
   343
        delete iMover;
989397f9511c 201039_03
hgs
parents:
diff changeset
   344
        iMover = NULL;
989397f9511c 201039_03
hgs
parents:
diff changeset
   345
        break;
989397f9511c 201039_03
hgs
parents:
diff changeset
   346
    default:
989397f9511c 201039_03
hgs
parents:
diff changeset
   347
        break;
989397f9511c 201039_03
hgs
parents:
diff changeset
   348
    }
989397f9511c 201039_03
hgs
parents:
diff changeset
   349
    if (iState == EInitializing) {
989397f9511c 201039_03
hgs
parents:
diff changeset
   350
        iState = ENotInitialized;
989397f9511c 201039_03
hgs
parents:
diff changeset
   351
    } else {
989397f9511c 201039_03
hgs
parents:
diff changeset
   352
        iState = EIdle;
989397f9511c 201039_03
hgs
parents:
diff changeset
   353
    }
989397f9511c 201039_03
hgs
parents:
diff changeset
   354
    q_ptr->handleError(KErrCancel);
989397f9511c 201039_03
hgs
parents:
diff changeset
   355
}
989397f9511c 201039_03
hgs
parents:
diff changeset
   356
989397f9511c 201039_03
hgs
parents:
diff changeset
   357
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
   358
// AdvSecSettingsCertificateModelPrivate::RunL()
989397f9511c 201039_03
hgs
parents:
diff changeset
   359
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
   360
//
989397f9511c 201039_03
hgs
parents:
diff changeset
   361
void AdvSecSettingsCertificateModelPrivate::RunL()
989397f9511c 201039_03
hgs
parents:
diff changeset
   362
{
989397f9511c 201039_03
hgs
parents:
diff changeset
   363
    User::LeaveIfError(iStatus.Int());
989397f9511c 201039_03
hgs
parents:
diff changeset
   364
989397f9511c 201039_03
hgs
parents:
diff changeset
   365
    switch (iState) {
989397f9511c 201039_03
hgs
parents:
diff changeset
   366
    case EInitializing:
989397f9511c 201039_03
hgs
parents:
diff changeset
   367
        iState = EIdle;
989397f9511c 201039_03
hgs
parents:
diff changeset
   368
        q_ptr->handleInitializeCompleted();
989397f9511c 201039_03
hgs
parents:
diff changeset
   369
        break;
989397f9511c 201039_03
hgs
parents:
diff changeset
   370
    case EGettingCertificatesList:
989397f9511c 201039_03
hgs
parents:
diff changeset
   371
        iState = EIdle;
989397f9511c 201039_03
hgs
parents:
diff changeset
   372
        q_ptr->handleGetCertificatesCompleted();
989397f9511c 201039_03
hgs
parents:
diff changeset
   373
        break;
989397f9511c 201039_03
hgs
parents:
diff changeset
   374
    case EBuildingCertificateDetails:
989397f9511c 201039_03
hgs
parents:
diff changeset
   375
        iState = EIdle;
989397f9511c 201039_03
hgs
parents:
diff changeset
   376
        q_ptr->handleGetCertificateDetailsCompleted();
989397f9511c 201039_03
hgs
parents:
diff changeset
   377
        break;
989397f9511c 201039_03
hgs
parents:
diff changeset
   378
    case EDeletingCertificate:
989397f9511c 201039_03
hgs
parents:
diff changeset
   379
        iState = EIdle;
989397f9511c 201039_03
hgs
parents:
diff changeset
   380
        q_ptr->handleDeleteCertificateCompleted();
989397f9511c 201039_03
hgs
parents:
diff changeset
   381
        break;
989397f9511c 201039_03
hgs
parents:
diff changeset
   382
    case EReadingApplications:
989397f9511c 201039_03
hgs
parents:
diff changeset
   383
        ReturnTrustSettingsDetails();
989397f9511c 201039_03
hgs
parents:
diff changeset
   384
        iState = EIdle;
989397f9511c 201039_03
hgs
parents:
diff changeset
   385
        q_ptr->handleGetTrustSettingsCompleted();
989397f9511c 201039_03
hgs
parents:
diff changeset
   386
        break;
989397f9511c 201039_03
hgs
parents:
diff changeset
   387
    case EWritingApplications:
989397f9511c 201039_03
hgs
parents:
diff changeset
   388
        iState = EIdle;
989397f9511c 201039_03
hgs
parents:
diff changeset
   389
        q_ptr->handleSetTrustSettingsCompleted();
989397f9511c 201039_03
hgs
parents:
diff changeset
   390
        break;
989397f9511c 201039_03
hgs
parents:
diff changeset
   391
    case EMovingCertificateToPersonalStore:
989397f9511c 201039_03
hgs
parents:
diff changeset
   392
        iState = EIdle;
989397f9511c 201039_03
hgs
parents:
diff changeset
   393
        q_ptr->handleMoveToPersonalCertificateCompleted();
989397f9511c 201039_03
hgs
parents:
diff changeset
   394
        break;
989397f9511c 201039_03
hgs
parents:
diff changeset
   395
    case EMovingCertificateToDeviceStore:
989397f9511c 201039_03
hgs
parents:
diff changeset
   396
        iState = EIdle;
989397f9511c 201039_03
hgs
parents:
diff changeset
   397
        q_ptr->handleMoveToDeviceCertificatesCompleted();
989397f9511c 201039_03
hgs
parents:
diff changeset
   398
        break;
989397f9511c 201039_03
hgs
parents:
diff changeset
   399
    default:
989397f9511c 201039_03
hgs
parents:
diff changeset
   400
        ASSERT(EFalse);
989397f9511c 201039_03
hgs
parents:
diff changeset
   401
        break;
989397f9511c 201039_03
hgs
parents:
diff changeset
   402
    }
989397f9511c 201039_03
hgs
parents:
diff changeset
   403
}
989397f9511c 201039_03
hgs
parents:
diff changeset
   404
989397f9511c 201039_03
hgs
parents:
diff changeset
   405
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
   406
// AdvSecSettingsCertificateModelPrivate::RunError()
989397f9511c 201039_03
hgs
parents:
diff changeset
   407
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
   408
//
989397f9511c 201039_03
hgs
parents:
diff changeset
   409
TInt AdvSecSettingsCertificateModelPrivate::RunError(TInt aError)
989397f9511c 201039_03
hgs
parents:
diff changeset
   410
{
989397f9511c 201039_03
hgs
parents:
diff changeset
   411
    if (iState == EInitializing) {
989397f9511c 201039_03
hgs
parents:
diff changeset
   412
        iState = ENotInitialized;
989397f9511c 201039_03
hgs
parents:
diff changeset
   413
    } else {
989397f9511c 201039_03
hgs
parents:
diff changeset
   414
        iState = EIdle;
989397f9511c 201039_03
hgs
parents:
diff changeset
   415
    }
989397f9511c 201039_03
hgs
parents:
diff changeset
   416
    q_ptr->handleError(aError);
989397f9511c 201039_03
hgs
parents:
diff changeset
   417
    return KErrNone;
989397f9511c 201039_03
hgs
parents:
diff changeset
   418
}
989397f9511c 201039_03
hgs
parents:
diff changeset
   419
989397f9511c 201039_03
hgs
parents:
diff changeset
   420
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
   421
// AdvSecSettingsCertificateModelPrivate::ConstructL()
989397f9511c 201039_03
hgs
parents:
diff changeset
   422
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
   423
//
989397f9511c 201039_03
hgs
parents:
diff changeset
   424
void AdvSecSettingsCertificateModelPrivate::ConstructL()
989397f9511c 201039_03
hgs
parents:
diff changeset
   425
{
989397f9511c 201039_03
hgs
parents:
diff changeset
   426
    User::LeaveIfError(iFs.Connect());
989397f9511c 201039_03
hgs
parents:
diff changeset
   427
    const TBool KWriteMode = ETrue;
989397f9511c 201039_03
hgs
parents:
diff changeset
   428
    iCertStore = CUnifiedCertStore::NewL(iFs, KWriteMode);
989397f9511c 201039_03
hgs
parents:
diff changeset
   429
    iCertAppInfoManager = CCertificateAppInfoManager::NewL();
989397f9511c 201039_03
hgs
parents:
diff changeset
   430
    if (!HbTextResolverSymbian::Init(KTranslationFile, KTranslationPath)) {
989397f9511c 201039_03
hgs
parents:
diff changeset
   431
        // TODO: text resolver initialisation failed
989397f9511c 201039_03
hgs
parents:
diff changeset
   432
    }
989397f9511c 201039_03
hgs
parents:
diff changeset
   433
}
989397f9511c 201039_03
hgs
parents:
diff changeset
   434
989397f9511c 201039_03
hgs
parents:
diff changeset
   435
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
   436
// AdvSecSettingsCertificateModelPrivate::ReturnTrustSettingsDetails()
989397f9511c 201039_03
hgs
parents:
diff changeset
   437
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
   438
//
989397f9511c 201039_03
hgs
parents:
diff changeset
   439
void AdvSecSettingsCertificateModelPrivate::ReturnTrustSettingsDetails()
989397f9511c 201039_03
hgs
parents:
diff changeset
   440
{
989397f9511c 201039_03
hgs
parents:
diff changeset
   441
    if (iTrustedUids && iCertInfo) {
989397f9511c 201039_03
hgs
parents:
diff changeset
   442
        iTrustedUids->clear();
989397f9511c 201039_03
hgs
parents:
diff changeset
   443
989397f9511c 201039_03
hgs
parents:
diff changeset
   444
        // Set applicable trusted usages for different kinds of certs.
989397f9511c 201039_03
hgs
parents:
diff changeset
   445
        TUid tokenType(iCertInfo->Token().TokenType().Type());
989397f9511c 201039_03
hgs
parents:
diff changeset
   446
        if (tokenType.iUid == KAdvSecSettingsSWICertStore) {
989397f9511c 201039_03
hgs
parents:
diff changeset
   447
            iTrustedUids->insert(KAdvSecSettingsTrustedUsageSwInstallNativeSis, false);
989397f9511c 201039_03
hgs
parents:
diff changeset
   448
            iTrustedUids->insert(KAdvSecSettingsTrustedUsageSwInstallSisOcsp, false);
989397f9511c 201039_03
hgs
parents:
diff changeset
   449
        } else if (tokenType.iUid == KAdvSecSettingsMidpCertStore) {
989397f9511c 201039_03
hgs
parents:
diff changeset
   450
            iTrustedUids->insert(KAdvSecSettingsTrustedUsageSwInstallJava, false);
989397f9511c 201039_03
hgs
parents:
diff changeset
   451
        } else {
989397f9511c 201039_03
hgs
parents:
diff changeset
   452
            const RArray<TCertificateAppInfo> &apps(iCertAppInfoManager->Applications());
989397f9511c 201039_03
hgs
parents:
diff changeset
   453
            for (TInt index = 0; index < apps.Count(); ++index) {
989397f9511c 201039_03
hgs
parents:
diff changeset
   454
                const TCertificateAppInfo &appInfo = apps[index];
989397f9511c 201039_03
hgs
parents:
diff changeset
   455
                int usageId = appInfo.Id().iUid;
989397f9511c 201039_03
hgs
parents:
diff changeset
   456
                iTrustedUids->insert(usageId, false);
989397f9511c 201039_03
hgs
parents:
diff changeset
   457
            }
989397f9511c 201039_03
hgs
parents:
diff changeset
   458
        }
989397f9511c 201039_03
hgs
parents:
diff changeset
   459
989397f9511c 201039_03
hgs
parents:
diff changeset
   460
        // Set trusted usages, usually this just replaces some of the values set above.
989397f9511c 201039_03
hgs
parents:
diff changeset
   461
        TInt count = iApplications.Count();
989397f9511c 201039_03
hgs
parents:
diff changeset
   462
        for (TInt index = 0; index < count; ++index ) {
989397f9511c 201039_03
hgs
parents:
diff changeset
   463
            iTrustedUids->insert(iApplications[index].iUid, true);
989397f9511c 201039_03
hgs
parents:
diff changeset
   464
        }
989397f9511c 201039_03
hgs
parents:
diff changeset
   465
989397f9511c 201039_03
hgs
parents:
diff changeset
   466
        // Native and Java installation use certs only from SWI and MIDP cert stores.
989397f9511c 201039_03
hgs
parents:
diff changeset
   467
        // Hence, native and Java install usages are not displayed for certs in file
989397f9511c 201039_03
hgs
parents:
diff changeset
   468
        // cert store.
989397f9511c 201039_03
hgs
parents:
diff changeset
   469
        if (tokenType.iUid == KAdvSecSettingsFileCertStore) {
989397f9511c 201039_03
hgs
parents:
diff changeset
   470
            iTrustedUids->remove(KAdvSecSettingsTrustedUsageSwInstallNativeSis);
989397f9511c 201039_03
hgs
parents:
diff changeset
   471
            iTrustedUids->remove(KAdvSecSettingsTrustedUsageSwInstallJava);
989397f9511c 201039_03
hgs
parents:
diff changeset
   472
        }
989397f9511c 201039_03
hgs
parents:
diff changeset
   473
    }
989397f9511c 201039_03
hgs
parents:
diff changeset
   474
}
989397f9511c 201039_03
hgs
parents:
diff changeset
   475
989397f9511c 201039_03
hgs
parents:
diff changeset
   476
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
   477
// AdvSecSettingsCertificateModelPrivate::DoGetCertificateUsageNamesL()
989397f9511c 201039_03
hgs
parents:
diff changeset
   478
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
   479
//
989397f9511c 201039_03
hgs
parents:
diff changeset
   480
void AdvSecSettingsCertificateModelPrivate::DoGetCertificateUsageNamesL(
989397f9511c 201039_03
hgs
parents:
diff changeset
   481
    QMap<int,QString> &usageIdAndName)
989397f9511c 201039_03
hgs
parents:
diff changeset
   482
{
989397f9511c 201039_03
hgs
parents:
diff changeset
   483
    // Pre-defined localized usage names
989397f9511c 201039_03
hgs
parents:
diff changeset
   484
    HBufC* usageName = HbTextResolverSymbian::LoadLC(KLocNativeInstallationUsage);
989397f9511c 201039_03
hgs
parents:
diff changeset
   485
    usageIdAndName[KAdvSecSettingsTrustedUsageSwInstallNativeSis] = CopyStringL(*usageName);
989397f9511c 201039_03
hgs
parents:
diff changeset
   486
    CleanupStack::PopAndDestroy(usageName);
989397f9511c 201039_03
hgs
parents:
diff changeset
   487
989397f9511c 201039_03
hgs
parents:
diff changeset
   488
    usageName = HbTextResolverSymbian::LoadLC(KLocJavaInstallationUsage);
989397f9511c 201039_03
hgs
parents:
diff changeset
   489
    usageIdAndName[KAdvSecSettingsTrustedUsageSwInstallJava] = CopyStringL(*usageName);
989397f9511c 201039_03
hgs
parents:
diff changeset
   490
    CleanupStack::PopAndDestroy(usageName);
989397f9511c 201039_03
hgs
parents:
diff changeset
   491
989397f9511c 201039_03
hgs
parents:
diff changeset
   492
    usageName = HbTextResolverSymbian::LoadLC(KLocWidgetInstallationUsage);
989397f9511c 201039_03
hgs
parents:
diff changeset
   493
    usageIdAndName[KAdvSecSettingsTrustedUsageSwInstallWidget] = CopyStringL(*usageName);
989397f9511c 201039_03
hgs
parents:
diff changeset
   494
    CleanupStack::PopAndDestroy(usageName);
989397f9511c 201039_03
hgs
parents:
diff changeset
   495
989397f9511c 201039_03
hgs
parents:
diff changeset
   496
    usageName = HbTextResolverSymbian::LoadLC(KLocInternetUsage);
989397f9511c 201039_03
hgs
parents:
diff changeset
   497
    usageIdAndName[KAdvSecSettingsTrustedUsageInternet] = CopyStringL(*usageName);
989397f9511c 201039_03
hgs
parents:
diff changeset
   498
    CleanupStack::PopAndDestroy(usageName);
989397f9511c 201039_03
hgs
parents:
diff changeset
   499
989397f9511c 201039_03
hgs
parents:
diff changeset
   500
    usageName = HbTextResolverSymbian::LoadLC(KLocOcspUsage);
989397f9511c 201039_03
hgs
parents:
diff changeset
   501
    usageIdAndName[KAdvSecSettingsTrustedUsageSwInstallSisOcsp] = CopyStringL(*usageName);
989397f9511c 201039_03
hgs
parents:
diff changeset
   502
    CleanupStack::PopAndDestroy(usageName);
989397f9511c 201039_03
hgs
parents:
diff changeset
   503
989397f9511c 201039_03
hgs
parents:
diff changeset
   504
    usageName = HbTextResolverSymbian::LoadLC(KLocVPNUsage);
989397f9511c 201039_03
hgs
parents:
diff changeset
   505
    usageIdAndName[KAdvSecSettingsTrustedUsageVPN] = CopyStringL(*usageName);
989397f9511c 201039_03
hgs
parents:
diff changeset
   506
    CleanupStack::PopAndDestroy(usageName);
989397f9511c 201039_03
hgs
parents:
diff changeset
   507
989397f9511c 201039_03
hgs
parents:
diff changeset
   508
    // TODO: localized UI string needed
989397f9511c 201039_03
hgs
parents:
diff changeset
   509
    usageIdAndName[KAdvSecSettingsTrustedUsageWap] = QString("Wap");
989397f9511c 201039_03
hgs
parents:
diff changeset
   510
989397f9511c 201039_03
hgs
parents:
diff changeset
   511
    // Possible additional usage names defined in system databases
989397f9511c 201039_03
hgs
parents:
diff changeset
   512
    if (iCertAppInfoManager) {
989397f9511c 201039_03
hgs
parents:
diff changeset
   513
        const RArray<TCertificateAppInfo> &apps(iCertAppInfoManager->Applications());
989397f9511c 201039_03
hgs
parents:
diff changeset
   514
        for(TInt index = 0; index < apps.Count(); ++index) {
989397f9511c 201039_03
hgs
parents:
diff changeset
   515
            const TCertificateAppInfo &appInfo = apps[index];
989397f9511c 201039_03
hgs
parents:
diff changeset
   516
989397f9511c 201039_03
hgs
parents:
diff changeset
   517
            int usageId = appInfo.Id().iUid;
989397f9511c 201039_03
hgs
parents:
diff changeset
   518
            if (!usageIdAndName.contains(usageId)) {
989397f9511c 201039_03
hgs
parents:
diff changeset
   519
                QString usageName = CopyStringL(appInfo.Name());
989397f9511c 201039_03
hgs
parents:
diff changeset
   520
                usageIdAndName.insert(usageId, usageName);
989397f9511c 201039_03
hgs
parents:
diff changeset
   521
            }
989397f9511c 201039_03
hgs
parents:
diff changeset
   522
        }
989397f9511c 201039_03
hgs
parents:
diff changeset
   523
    }
989397f9511c 201039_03
hgs
parents:
diff changeset
   524
}
989397f9511c 201039_03
hgs
parents:
diff changeset
   525
989397f9511c 201039_03
hgs
parents:
diff changeset
   526
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
   527
// AdvSecSettingsCertificateModelPrivate::CertificateInfo()
989397f9511c 201039_03
hgs
parents:
diff changeset
   528
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
   529
//
989397f9511c 201039_03
hgs
parents:
diff changeset
   530
const CCTCertInfo *AdvSecSettingsCertificateModelPrivate::CertificateInfo(
989397f9511c 201039_03
hgs
parents:
diff changeset
   531
    const AdvSecSettingsCertificate &cert) const
989397f9511c 201039_03
hgs
parents:
diff changeset
   532
{
989397f9511c 201039_03
hgs
parents:
diff changeset
   533
    TInt index = cert.modelIndex();
989397f9511c 201039_03
hgs
parents:
diff changeset
   534
    if (index >= 0 && index < iCertInfoArray.Count()) {
989397f9511c 201039_03
hgs
parents:
diff changeset
   535
        return iCertInfoArray[index];
989397f9511c 201039_03
hgs
parents:
diff changeset
   536
    }
989397f9511c 201039_03
hgs
parents:
diff changeset
   537
    return NULL;
989397f9511c 201039_03
hgs
parents:
diff changeset
   538
}
989397f9511c 201039_03
hgs
parents:
diff changeset
   539