pkiutilities/untrustedcertificatedialog/src/untrustedcertificateinfo_symbian.cpp
author hgs
Thu, 07 Oct 2010 14:07:34 +0300
changeset 62 3255e7d5bd67
parent 30 cc1cea6aabaf
permissions -rw-r--r--
201037_06
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
26
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     1
/*
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     2
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     3
* All rights reserved.
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     4
* This component and the accompanying materials are made available
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     6
* which accompanies this distribution, and is available
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     8
*
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     9
* Initial Contributors:
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    11
*
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    12
* Contributors:
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    13
*
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    14
* Description: Certificate info class for TLS untrusted certificate dialog.
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    15
*
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    16
*/
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    17
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    18
#include "untrustedcertificateinfo_symbian.h"
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    19
#include <signed.h>                             // TAlgorithmId
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    20
#include <x509cert.h>                           // CX509Certificate
30
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
    21
#include <X509CertNameParser.h>                 // X509CertNameParser
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
    22
#include <hash.h>                               // CMD5
26
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    23
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    24
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    25
// ======== LOCAL FUNCTIONS ========
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    26
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    27
// ----------------------------------------------------------------------------
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    28
// mapAlgorithm()
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    29
// ----------------------------------------------------------------------------
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    30
//
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    31
UntrustedCertificateInfoBase::Algorithm mapAlgorithm(TAlgorithmId aAlgId)
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    32
{
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    33
    UntrustedCertificateInfoBase::Algorithm algorithm =
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    34
        UntrustedCertificateInfoBase::Unknown;
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    35
    switch(aAlgId) {
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    36
        case ERSA:
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    37
            algorithm = UntrustedCertificateInfoBase::RSA;
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    38
            break;
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    39
        case EDSA:
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    40
            algorithm = UntrustedCertificateInfoBase::DSA;
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    41
            break;
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    42
        case EDH:
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    43
            algorithm = UntrustedCertificateInfoBase::DH;
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    44
            break;
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    45
        case EMD2:
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    46
            algorithm = UntrustedCertificateInfoBase::MD2;
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    47
            break;
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    48
        case EMD5:
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    49
            algorithm = UntrustedCertificateInfoBase::MD5;
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    50
            break;
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    51
        case ESHA1:
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    52
            algorithm = UntrustedCertificateInfoBase::SHA1;
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    53
            break;
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    54
        case ESHA224:
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    55
            algorithm = UntrustedCertificateInfoBase::SHA224;
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    56
            break;
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    57
        case ESHA256:
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    58
            algorithm = UntrustedCertificateInfoBase::SHA256;
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    59
            break;
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    60
        case ESHA384:
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    61
            algorithm = UntrustedCertificateInfoBase::SHA384;
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    62
            break;
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    63
        case ESHA512:
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    64
            algorithm = UntrustedCertificateInfoBase::SHA512;
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    65
            break;
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    66
        default:
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    67
            break;
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    68
    }
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    69
    return algorithm;
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    70
}
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    71
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    72
// ----------------------------------------------------------------------------
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    73
// convertDateTime()
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    74
// ----------------------------------------------------------------------------
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    75
//
30
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
    76
void convertDateTime(const TTime& aFromTime, QDateTime& aToDateTime)
26
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    77
{
30
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
    78
    const TDateTime &symbianDateTime = aFromTime.DateTime();
26
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    79
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    80
    QDate date(symbianDateTime.Year(), symbianDateTime.Month()+1, symbianDateTime.Day()+1);
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    81
    QTime time(symbianDateTime.Hour(), symbianDateTime.Minute(), symbianDateTime.Second());
30
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
    82
    aToDateTime.setDate(date);
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
    83
    aToDateTime.setTime(time);
26
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    84
}
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    85
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    86
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    87
// ======== MEMBER FUNCTIONS ========
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    88
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    89
// ----------------------------------------------------------------------------
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    90
// UntrustedCertificateInfoSymbian::UntrustedCertificateInfoSymbian()
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    91
// ----------------------------------------------------------------------------
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    92
//
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    93
UntrustedCertificateInfoSymbian::UntrustedCertificateInfoSymbian(
30
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
    94
    const QByteArray &aEncodedCert) : UntrustedCertificateInfoBase(),
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
    95
    mCert(0), mMd5Fingerprint()
26
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    96
{
30
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
    97
    QT_TRAP_THROWING(ConstructL(aEncodedCert));
26
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    98
}
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    99
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   100
// ----------------------------------------------------------------------------
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   101
// UntrustedCertificateInfoSymbian::~UntrustedCertificateInfoSymbian()
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   102
// ----------------------------------------------------------------------------
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   103
//
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   104
UntrustedCertificateInfoSymbian::~UntrustedCertificateInfoSymbian()
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   105
{
30
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   106
    delete mCert;
26
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   107
}
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   108
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   109
// ----------------------------------------------------------------------------
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   110
// UntrustedCertificateInfoSymbian::commonNameMatches()
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   111
// ----------------------------------------------------------------------------
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   112
//
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   113
bool UntrustedCertificateInfoSymbian::commonNameMatches(const QString &siteName) const
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   114
{
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   115
    bool matches = false;
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   116
    QT_TRAP_THROWING(matches = CommonNameMatchesL(siteName));
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   117
    return matches;
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   118
}
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   119
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   120
// ----------------------------------------------------------------------------
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   121
// UntrustedCertificateInfoSymbian::certificateDetails()
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   122
// ----------------------------------------------------------------------------
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   123
//
30
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   124
QString UntrustedCertificateInfoSymbian::certificateDetails(const QString &siteName) const
26
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   125
{
30
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   126
    // TODO: localized UI string needed
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   127
    QString details = tr("Service:\n%1\n\nIssuer:\n%2\n\nSubject:\n%3\n\n"
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   128
        "Valid from:\n%4\n\nValid until:\n%5\n\nCertificate format:\n%6\n\n"
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   129
        "Algorithm:\n%7\n\nSerial number:\n%8\n\n"
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   130
        "Fingerprint (SHA1):\n%9\n\nFingerprint (MD5):\n%10")
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   131
        .arg(siteName)                                  // %1
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   132
        .arg(issuerName())                              // %2
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   133
        .arg(subjectName())                             // %3
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   134
        .arg(validFrom().toString())                    // %4
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   135
        .arg(validTo().toString())                      // %5
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   136
        .arg(format())                                  // %6
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   137
        .arg(combinedAlgorithmName())                   // %7
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   138
        .arg(formattedSerialNumber(serialNumber()))     // %8
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   139
        .arg(formattedFingerprint(fingerprint()))       // %9
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   140
        .arg(formattedFingerprint(mMd5Fingerprint));    // %10
26
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   141
    return details;
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   142
}
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   143
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   144
// ----------------------------------------------------------------------------
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   145
// UntrustedCertificateInfoSymbian::ConstructL()
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   146
// ----------------------------------------------------------------------------
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   147
//
30
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   148
void UntrustedCertificateInfoSymbian::ConstructL(const QByteArray &aEncodedCert)
26
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   149
{
30
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   150
    TPtrC8 encodedCert( reinterpret_cast<const TText8*>( aEncodedCert.constData() ),
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   151
        aEncodedCert.length() );
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   152
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   153
    ASSERT( mCert == 0 );
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   154
    mCert = CX509Certificate::NewL( encodedCert );
26
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   155
30
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   156
    HBufC16* subjectBuf = NULL;
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   157
    X509CertNameParser::SubjectFullNameL( *mCert, subjectBuf );
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   158
    CleanupStack::PushL( subjectBuf );
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   159
    QT_TRYCATCH_LEAVING( mSubjectName =
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   160
        QString::fromUtf16(subjectBuf->Ptr(), subjectBuf->Length()) );
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   161
    CleanupStack::PopAndDestroy( subjectBuf );
26
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   162
30
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   163
    HBufC16* issuerBuf = NULL;
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   164
    X509CertNameParser::IssuerFullNameL( *mCert, issuerBuf );
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   165
    CleanupStack::PushL( issuerBuf );
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   166
    QT_TRYCATCH_LEAVING( mIssuerName =
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   167
        QString::fromUtf16(issuerBuf->Ptr(), issuerBuf->Length()));
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   168
    CleanupStack::PopAndDestroy( issuerBuf );
26
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   169
30
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   170
    TPtrC8 fingerprint = mCert->Fingerprint();
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   171
    QT_TRYCATCH_LEAVING( mFingerprint = QByteArray::fromRawData(
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   172
        reinterpret_cast<const char*>(fingerprint.Ptr()), fingerprint.Length()) );
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   173
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   174
    mMd5Fingerprint = Md5FingerprintL( mCert->Encoding() );
26
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   175
30
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   176
    TPtrC8 serialNumber = mCert->SerialNumber();
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   177
    QT_TRYCATCH_LEAVING( mSerialNumber = QByteArray::fromRawData(
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   178
        reinterpret_cast<const char*>(serialNumber.Ptr()), serialNumber.Length()) );
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   179
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   180
    const CValidityPeriod& validityPeriod = mCert->ValidityPeriod();
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   181
    convertDateTime(validityPeriod.Start(), mValidFrom);
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   182
    convertDateTime(validityPeriod.Finish(), mValidTo);
26
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   183
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   184
    mFormat = X509Certificate;
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   185
30
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   186
    const CSigningAlgorithmIdentifier& alg = mCert->SigningAlgorithm();
26
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   187
    mDigestAlgorithm = mapAlgorithm(alg.DigestAlgorithm().Algorithm());
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   188
    mAsymmetricAlgorithm = mapAlgorithm(alg.AsymmetricAlgorithm().Algorithm());
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   189
}
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   190
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   191
// ----------------------------------------------------------------------------
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   192
// UntrustedCertificateInfoSymbian::CommonNameMatchesL()
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   193
// ----------------------------------------------------------------------------
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   194
//
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   195
bool UntrustedCertificateInfoSymbian::CommonNameMatchesL(const QString &siteName) const
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   196
{
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   197
    bool matches = false;
30
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   198
    const CX500DistinguishedName& distinguishedName = mCert->SubjectName();
26
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   199
    HBufC* commonNameSymbian = distinguishedName.ExtractFieldL( KX520CommonName );
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   200
    if (commonNameSymbian) {
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   201
        CleanupStack::PushL(commonNameSymbian);
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   202
        QString commonName = QString::fromRawData(
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   203
            reinterpret_cast<const QChar*>(commonNameSymbian->Ptr()),
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   204
            commonNameSymbian->Length());
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   205
        matches = ( commonName == siteName );       // TODO: accept '*' chars in commonName?
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   206
        CleanupStack::PopAndDestroy(commonNameSymbian);
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   207
    }
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   208
    return matches;
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   209
}
aad866c37519 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   210
30
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   211
// ----------------------------------------------------------------------------
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   212
// UntrustedCertificateInfoSymbian::Md5FingerprintL()
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   213
// ----------------------------------------------------------------------------
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   214
//
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   215
QByteArray UntrustedCertificateInfoSymbian::Md5FingerprintL( const TDesC8& aEncodedCert ) const
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   216
{
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   217
    CMD5* md5 = CMD5::NewL();
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   218
    CleanupStack::PushL( md5 );
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   219
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   220
    const TPtrC8 fingerprintSymbian = md5->Hash( aEncodedCert );
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   221
    QByteArray fingerprint( reinterpret_cast<const char*>( fingerprintSymbian.Ptr() ),
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   222
        fingerprintSymbian.Length() );
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   223
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   224
    CleanupStack::PopAndDestroy( md5 );
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   225
    return fingerprint;
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   226
}
cc1cea6aabaf 201025_01
hgs
parents: 26
diff changeset
   227