diff -r 09b1ac925e3f -r 03674e5abf46 pkiutilities/untrustedcertificatedialog/src/untrustedcertificateinfobase.cpp --- a/pkiutilities/untrustedcertificatedialog/src/untrustedcertificateinfobase.cpp Tue Aug 31 16:04:40 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,268 +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 "UntrustedCertificateInfoBase.h" - -const char *KHexNumberFormatSimple = "%X"; -const char *KHexNumberFormatTwoDigitsWithLeadingZeroes = "%02X"; -const int KCharsPerBlock = 2; -const char KBlockSeparator = ' '; - - -// ======== MEMBER FUNCTIONS ======== - -// ---------------------------------------------------------------------------- -// UntrustedCertificateInfoBase::UntrustedCertificateInfoBase() -// ---------------------------------------------------------------------------- -// -UntrustedCertificateInfoBase::UntrustedCertificateInfoBase() : QObject(), - mSubjectName(), mIssuerName(), mFingerprint(), mSerialNumber(), mValidFrom(), mValidTo(), - mFormat(UnknownCertificate), mDigestAlgorithm(Unknown), mAsymmetricAlgorithm(Unknown) -{ -} - -// ---------------------------------------------------------------------------- -// UntrustedCertificateInfoBase::~UntrustedCertificateInfoBase() -// ---------------------------------------------------------------------------- -// -UntrustedCertificateInfoBase::~UntrustedCertificateInfoBase() -{ -} - -// ---------------------------------------------------------------------------- -// UntrustedCertificateInfoBase::subjectName() -// ---------------------------------------------------------------------------- -// -const QString UntrustedCertificateInfoBase::subjectName() const -{ - return mSubjectName; -} - -// ---------------------------------------------------------------------------- -// UntrustedCertificateInfoBase::issuerName() -// ---------------------------------------------------------------------------- -// -const QString UntrustedCertificateInfoBase::issuerName() const -{ - return mIssuerName; -} - -// ---------------------------------------------------------------------------- -// UntrustedCertificateInfoBase::fingerprint() -// ---------------------------------------------------------------------------- -// -const QByteArray UntrustedCertificateInfoBase::fingerprint() const -{ - return mFingerprint; -} - -// ---------------------------------------------------------------------------- -// UntrustedCertificateInfoBase::serialNumber() -// ---------------------------------------------------------------------------- -// -const QByteArray UntrustedCertificateInfoBase::serialNumber() const -{ - return mSerialNumber; -} - -// ---------------------------------------------------------------------------- -// UntrustedCertificateInfoBase::validFrom() -// ---------------------------------------------------------------------------- -// -const QDateTime UntrustedCertificateInfoBase::validFrom() const -{ - return mValidFrom; -} - -// ---------------------------------------------------------------------------- -// UntrustedCertificateInfoBase::validTo() -// ---------------------------------------------------------------------------- -// -const QDateTime UntrustedCertificateInfoBase::validTo() const -{ - return mValidTo; -} - -// ---------------------------------------------------------------------------- -// UntrustedCertificateInfoBase::format() -// ---------------------------------------------------------------------------- -// -const QString UntrustedCertificateInfoBase::format() const -{ - QString format; - switch (mFormat) { - case X509Certificate: - //: Type name for X509 certificates displayed in certificate details. - // TODO: localised UI string - format = tr("X.509"); - break; - default: - //: Type name for unknown certificates displayed in certificate details. - // TODO: localised UI string - format = tr("Unknown"); - break; - } - return format; -} - -// ---------------------------------------------------------------------------- -// UntrustedCertificateInfoBase::digestAlgorithm() -// ---------------------------------------------------------------------------- -// -const QString UntrustedCertificateInfoBase::digestAlgorithm() const -{ - return algorithmName(mDigestAlgorithm); -} - -// ---------------------------------------------------------------------------- -// UntrustedCertificateInfoBase::AsymmetricAlgorithm() -// ---------------------------------------------------------------------------- -// -const QString UntrustedCertificateInfoBase::asymmetricAlgorithm() const -{ - return algorithmName(mAsymmetricAlgorithm); -} - -// ---------------------------------------------------------------------------- -// UntrustedCertificateInfoBase::AsymmetricAlgorithm() -// ---------------------------------------------------------------------------- -// -const QString UntrustedCertificateInfoBase::combinedAlgorithmName() const -{ - if (mDigestAlgorithm != Unknown && mAsymmetricAlgorithm != Unknown) { - //: Format to combine digest and asymmetric algorithm names. - //: %1 is digest (signing) and %2 is asymmetric (public-key) algorithm. - // TODO: localised UI string needed - return tr("%1%2").arg(digestAlgorithm()).arg(asymmetricAlgorithm()); - } - //: Algorithm name for unknown algorithm. - // TODO: localised UI string needed - return tr("Unknown"); -} - -// ---------------------------------------------------------------------------- -// UntrustedCertificateInfoBase::formattedFingerprint() -// ---------------------------------------------------------------------------- -// -const QString UntrustedCertificateInfoBase::formattedFingerprint( - const QByteArray &byteArray) const -{ - QString formatted; - - QString number; - int blockIndex = 0; - int count = byteArray.count(); - for (int index = 0; index < count; ++index) { - if (blockIndex == KCharsPerBlock) { - formatted.append(KBlockSeparator); - blockIndex = 0; - } - number.sprintf(KHexNumberFormatTwoDigitsWithLeadingZeroes, - static_cast(byteArray.at(index))); - formatted.append(number); - ++blockIndex; - } - - return formatted; -} - -// ---------------------------------------------------------------------------- -// UntrustedCertificateInfoBase::formattedSerialNumber() -// ---------------------------------------------------------------------------- -// -const QString UntrustedCertificateInfoBase::formattedSerialNumber( - const QByteArray &serialNumber) const -{ - QString formatted; - - QString number; - int count = serialNumber.count(); - for (int index = 0; index < count; ++index) { - number.sprintf(KHexNumberFormatSimple, - static_cast(serialNumber.at(index))); - formatted.append(number); - } - - return formatted; -} - -// ---------------------------------------------------------------------------- -// UntrustedCertificateInfoBase::isDateValid() -// ---------------------------------------------------------------------------- -// -bool UntrustedCertificateInfoBase::isDateValid() const -{ - QDateTime current = QDateTime::currentDateTime(); - return (mValidFrom <= current && mValidTo >= current); -} - -// ---------------------------------------------------------------------------- -// UntrustedCertificateInfoBase::algorithmName() -// ---------------------------------------------------------------------------- -// -const QString UntrustedCertificateInfoBase::algorithmName(Algorithm algorithm) const -{ - QString name; - switch (algorithm) { - case RSA: - //: Certificate details algorithm name - // TODO: localized UI string - name = tr("RSA"); - break; - case DSA: - //: Certificate details algorithm name - // TODO: localized UI string - name = tr("DSA"); - break; - case DH: - //: Certificate details algorithm name - // TODO: localized UI string - name = tr("DH"); - break; - case MD2: - //: Certificate details algorithm name - // TODO: localized UI string - name = tr("MD2"); - break; - case MD5: - //: Certificate details algorithm name - // TODO: localized UI string - name = tr("MD5"); - break; - case SHA1: - //: Certificate details algorithm name - // TODO: localized UI string - name = tr("SHA1"); - break; - case SHA224: - case SHA256: - case SHA384: - case SHA512: - //: Certificate details algorithm name - // TODO: localized UI string - name = tr("SHA2"); - break; - case Unknown: - default: - //: Certificate details algorithm name - // TODO: localized UI string - name = tr("Unknown"); - break; - } - return name; -} -