pkiutilities/untrustedcertificatedialog/src/untrustedcertificateinfo_symbian.cpp
branchRCL_3
changeset 22 03674e5abf46
parent 21 09b1ac925e3f
child 23 94da73d93b58
--- a/pkiutilities/untrustedcertificatedialog/src/untrustedcertificateinfo_symbian.cpp	Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,227 +0,0 @@
-/*
-* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Certificate info class for TLS untrusted certificate dialog.
-*
-*/
-
-#include "untrustedcertificateinfo_symbian.h"
-#include <signed.h>                             // TAlgorithmId
-#include <x509cert.h>                           // CX509Certificate
-#include <X509CertNameParser.h>                 // X509CertNameParser
-#include <hash.h>                               // CMD5
-
-
-// ======== LOCAL FUNCTIONS ========
-
-// ----------------------------------------------------------------------------
-// mapAlgorithm()
-// ----------------------------------------------------------------------------
-//
-UntrustedCertificateInfoBase::Algorithm mapAlgorithm(TAlgorithmId aAlgId)
-{
-    UntrustedCertificateInfoBase::Algorithm algorithm =
-        UntrustedCertificateInfoBase::Unknown;
-    switch(aAlgId) {
-        case ERSA:
-            algorithm = UntrustedCertificateInfoBase::RSA;
-            break;
-        case EDSA:
-            algorithm = UntrustedCertificateInfoBase::DSA;
-            break;
-        case EDH:
-            algorithm = UntrustedCertificateInfoBase::DH;
-            break;
-        case EMD2:
-            algorithm = UntrustedCertificateInfoBase::MD2;
-            break;
-        case EMD5:
-            algorithm = UntrustedCertificateInfoBase::MD5;
-            break;
-        case ESHA1:
-            algorithm = UntrustedCertificateInfoBase::SHA1;
-            break;
-        case ESHA224:
-            algorithm = UntrustedCertificateInfoBase::SHA224;
-            break;
-        case ESHA256:
-            algorithm = UntrustedCertificateInfoBase::SHA256;
-            break;
-        case ESHA384:
-            algorithm = UntrustedCertificateInfoBase::SHA384;
-            break;
-        case ESHA512:
-            algorithm = UntrustedCertificateInfoBase::SHA512;
-            break;
-        default:
-            break;
-    }
-    return algorithm;
-}
-
-// ----------------------------------------------------------------------------
-// convertDateTime()
-// ----------------------------------------------------------------------------
-//
-void convertDateTime(const TTime& aFromTime, QDateTime& aToDateTime)
-{
-    const TDateTime &symbianDateTime = aFromTime.DateTime();
-
-    QDate date(symbianDateTime.Year(), symbianDateTime.Month()+1, symbianDateTime.Day()+1);
-    QTime time(symbianDateTime.Hour(), symbianDateTime.Minute(), symbianDateTime.Second());
-    aToDateTime.setDate(date);
-    aToDateTime.setTime(time);
-}
-
-
-// ======== MEMBER FUNCTIONS ========
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificateInfoSymbian::UntrustedCertificateInfoSymbian()
-// ----------------------------------------------------------------------------
-//
-UntrustedCertificateInfoSymbian::UntrustedCertificateInfoSymbian(
-    const QByteArray &aEncodedCert) : UntrustedCertificateInfoBase(),
-    mCert(0), mMd5Fingerprint()
-{
-    QT_TRAP_THROWING(ConstructL(aEncodedCert));
-}
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificateInfoSymbian::~UntrustedCertificateInfoSymbian()
-// ----------------------------------------------------------------------------
-//
-UntrustedCertificateInfoSymbian::~UntrustedCertificateInfoSymbian()
-{
-    delete mCert;
-}
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificateInfoSymbian::commonNameMatches()
-// ----------------------------------------------------------------------------
-//
-bool UntrustedCertificateInfoSymbian::commonNameMatches(const QString &siteName) const
-{
-    bool matches = false;
-    QT_TRAP_THROWING(matches = CommonNameMatchesL(siteName));
-    return matches;
-}
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificateInfoSymbian::certificateDetails()
-// ----------------------------------------------------------------------------
-//
-QString UntrustedCertificateInfoSymbian::certificateDetails(const QString &siteName) const
-{
-    // TODO: localized UI string needed
-    QString details = tr("Service:\n%1\n\nIssuer:\n%2\n\nSubject:\n%3\n\n"
-        "Valid from:\n%4\n\nValid until:\n%5\n\nCertificate format:\n%6\n\n"
-        "Algorithm:\n%7\n\nSerial number:\n%8\n\n"
-        "Fingerprint (SHA1):\n%9\n\nFingerprint (MD5):\n%10")
-        .arg(siteName)                                  // %1
-        .arg(issuerName())                              // %2
-        .arg(subjectName())                             // %3
-        .arg(validFrom().toString())                    // %4
-        .arg(validTo().toString())                      // %5
-        .arg(format())                                  // %6
-        .arg(combinedAlgorithmName())                   // %7
-        .arg(formattedSerialNumber(serialNumber()))     // %8
-        .arg(formattedFingerprint(fingerprint()))       // %9
-        .arg(formattedFingerprint(mMd5Fingerprint));    // %10
-    return details;
-}
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificateInfoSymbian::ConstructL()
-// ----------------------------------------------------------------------------
-//
-void UntrustedCertificateInfoSymbian::ConstructL(const QByteArray &aEncodedCert)
-{
-    TPtrC8 encodedCert( reinterpret_cast<const TText8*>( aEncodedCert.constData() ),
-        aEncodedCert.length() );
-
-    ASSERT( mCert == 0 );
-    mCert = CX509Certificate::NewL( encodedCert );
-
-    HBufC16* subjectBuf = NULL;
-    X509CertNameParser::SubjectFullNameL( *mCert, subjectBuf );
-    CleanupStack::PushL( subjectBuf );
-    QT_TRYCATCH_LEAVING( mSubjectName =
-        QString::fromUtf16(subjectBuf->Ptr(), subjectBuf->Length()) );
-    CleanupStack::PopAndDestroy( subjectBuf );
-
-    HBufC16* issuerBuf = NULL;
-    X509CertNameParser::IssuerFullNameL( *mCert, issuerBuf );
-    CleanupStack::PushL( issuerBuf );
-    QT_TRYCATCH_LEAVING( mIssuerName =
-        QString::fromUtf16(issuerBuf->Ptr(), issuerBuf->Length()));
-    CleanupStack::PopAndDestroy( issuerBuf );
-
-    TPtrC8 fingerprint = mCert->Fingerprint();
-    QT_TRYCATCH_LEAVING( mFingerprint = QByteArray::fromRawData(
-        reinterpret_cast<const char*>(fingerprint.Ptr()), fingerprint.Length()) );
-
-    mMd5Fingerprint = Md5FingerprintL( mCert->Encoding() );
-
-    TPtrC8 serialNumber = mCert->SerialNumber();
-    QT_TRYCATCH_LEAVING( mSerialNumber = QByteArray::fromRawData(
-        reinterpret_cast<const char*>(serialNumber.Ptr()), serialNumber.Length()) );
-
-    const CValidityPeriod& validityPeriod = mCert->ValidityPeriod();
-    convertDateTime(validityPeriod.Start(), mValidFrom);
-    convertDateTime(validityPeriod.Finish(), mValidTo);
-
-    mFormat = X509Certificate;
-
-    const CSigningAlgorithmIdentifier& alg = mCert->SigningAlgorithm();
-    mDigestAlgorithm = mapAlgorithm(alg.DigestAlgorithm().Algorithm());
-    mAsymmetricAlgorithm = mapAlgorithm(alg.AsymmetricAlgorithm().Algorithm());
-}
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificateInfoSymbian::CommonNameMatchesL()
-// ----------------------------------------------------------------------------
-//
-bool UntrustedCertificateInfoSymbian::CommonNameMatchesL(const QString &siteName) const
-{
-    bool matches = false;
-    const CX500DistinguishedName& distinguishedName = mCert->SubjectName();
-    HBufC* commonNameSymbian = distinguishedName.ExtractFieldL( KX520CommonName );
-    if (commonNameSymbian) {
-        CleanupStack::PushL(commonNameSymbian);
-        QString commonName = QString::fromRawData(
-            reinterpret_cast<const QChar*>(commonNameSymbian->Ptr()),
-            commonNameSymbian->Length());
-        matches = ( commonName == siteName );       // TODO: accept '*' chars in commonName?
-        CleanupStack::PopAndDestroy(commonNameSymbian);
-    }
-    return matches;
-}
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificateInfoSymbian::Md5FingerprintL()
-// ----------------------------------------------------------------------------
-//
-QByteArray UntrustedCertificateInfoSymbian::Md5FingerprintL( const TDesC8& aEncodedCert ) const
-{
-    CMD5* md5 = CMD5::NewL();
-    CleanupStack::PushL( md5 );
-
-    const TPtrC8 fingerprintSymbian = md5->Hash( aEncodedCert );
-    QByteArray fingerprint( reinterpret_cast<const char*>( fingerprintSymbian.Ptr() ),
-        fingerprintSymbian.Length() );
-
-    CleanupStack::PopAndDestroy( md5 );
-    return fingerprint;
-}
-