pkiutilities/untrustedcertificatedialog/inc/untrustedcertificateinfobase.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 31 Aug 2010 16:04:40 +0300
branchRCL_3
changeset 21 09b1ac925e3f
permissions -rw-r--r--
Revision: 201033 Kit: 201035

/*
* 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.
*
*/

#ifndef UNTRUSTEDCERTIFICATEINFOBASE_H
#define UNTRUSTEDCERTIFICATEINFOBASE_H

#include <QObject>
#include <QDateTime>

/**
 * Certificate info class for secure connections (TLS) untrusted certificate dialog.
 * This is abstract class that is used in UI code to get displayable certificate
 * details. Concrete (possibly platform specific) classes implement the functionality.
 */
class UntrustedCertificateInfoBase : public QObject
{
    Q_OBJECT

public:     // definitions
    enum CertificateFormat {
        UnknownCertificate,
        X509Certificate,
        WTLSCertificate,
        X968Certificate
    };
    enum Algorithm {
        Unknown,
        RSA,
        DSA,
        DH,
        MD2,
        MD5,
        SHA1,
        SHA224,
        SHA256,
        SHA384,
        SHA512
    };

protected:  // constructor, available for derived classes only
    UntrustedCertificateInfoBase();

public:     // destructor
    virtual ~UntrustedCertificateInfoBase();

public:     // new functions
    virtual const QString subjectName() const;
    virtual const QString issuerName() const;
    virtual const QByteArray fingerprint() const;
    virtual const QByteArray serialNumber() const;
    virtual const QDateTime validFrom() const;
    virtual const QDateTime validTo() const;
    virtual const QString format() const;
    virtual const QString digestAlgorithm() const;
    virtual const QString asymmetricAlgorithm() const;
    virtual const QString combinedAlgorithmName() const;
    virtual const QString formattedFingerprint(const QByteArray &fingerprint) const;
    virtual const QString formattedSerialNumber(const QByteArray &serialNumber) const;
    virtual bool isDateValid() const;

public:     // new abstract functions
    virtual bool commonNameMatches(const QString &siteName) const = 0;
    virtual QString certificateDetails(const QString &siteName) const = 0;

private:    // new functions
    const QString algorithmName(Algorithm algorithm) const;

protected:  // data
    QString mSubjectName;
    QString mIssuerName;
    QByteArray mFingerprint;
    QByteArray mSerialNumber;
    QDateTime mValidFrom;
    QDateTime mValidTo;
    CertificateFormat mFormat;
    Algorithm mDigestAlgorithm;
    Algorithm mAsymmetricAlgorithm;
};

#endif // UNTRUSTEDCERTIFICATEINFOBASE_H