summaryrefslogtreecommitdiffstats
path: root/src/network/ssl/qsslcertificate_p.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/network/ssl/qsslcertificate_p.h')
-rw-r--r--src/network/ssl/qsslcertificate_p.h42
1 files changed, 38 insertions, 4 deletions
diff --git a/src/network/ssl/qsslcertificate_p.h b/src/network/ssl/qsslcertificate_p.h
index 6cf6974543..b0c99e545d 100644
--- a/src/network/ssl/qsslcertificate_p.h
+++ b/src/network/ssl/qsslcertificate_p.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the QtNetwork module of the Qt Toolkit.
@@ -40,8 +40,8 @@
****************************************************************************/
-#ifndef QSSLCERTIFICATE_P_H
-#define QSSLCERTIFICATE_P_H
+#ifndef QSSLCERTIFICATE_OPENSSL_P_H
+#define QSSLCERTIFICATE_OPENSSL_P_H
#include "qsslcertificate.h"
@@ -61,10 +61,23 @@
#include <QtCore/qdatetime.h>
#include <QtCore/qmap.h>
+#ifndef QT_NO_OPENSSL
#include <openssl/x509.h>
+#else
+struct X509;
+struct X509_EXTENSION;
+struct ASN1_OBJECT;
+#endif
+
+#ifdef Q_OS_WINRT
+#include <wrl.h>
+#include <windows.security.cryptography.certificates.h>
+#endif
QT_BEGIN_NAMESPACE
+// forward declaration
+
class QSslCertificatePrivate
{
public:
@@ -76,8 +89,10 @@ public:
~QSslCertificatePrivate()
{
+#ifndef QT_NO_OPENSSL
if (x509)
q_X509_free(x509);
+#endif
}
bool null;
@@ -89,6 +104,18 @@ public:
QDateTime notValidAfter;
QDateTime notValidBefore;
+#ifdef QT_NO_OPENSSL
+ bool subjectMatchesIssuer;
+ QSsl::KeyAlgorithm publicKeyAlgorithm;
+ QByteArray publicKeyDerData;
+ QMultiMap<QSsl::AlternativeNameEntryType, QString> subjectAlternativeNames;
+ QList<QSslCertificateExtension> extensions;
+
+ QByteArray derData;
+
+ bool parse(const QByteArray &data);
+ bool parseExtension(const QByteArray &data, QSslCertificateExtension *extension);
+#endif
X509 *x509;
void init(const QByteArray &data, QSsl::EncodingFormat format);
@@ -102,12 +129,19 @@ public:
static QList<QSslCertificate> certificatesFromDer(const QByteArray &der, int count = -1);
static bool isBlacklisted(const QSslCertificate &certificate);
static QSslCertificateExtension convertExtension(X509_EXTENSION *ext);
+ static QByteArray subjectInfoToString(QSslCertificate::SubjectInfo info);
friend class QSslSocketBackendPrivate;
QAtomicInt ref;
+
+#ifdef Q_OS_WINRT
+ Microsoft::WRL::ComPtr<ABI::Windows::Security::Cryptography::Certificates::ICertificate> certificate;
+
+ static QSslCertificate QSslCertificate_from_Certificate(ABI::Windows::Security::Cryptography::Certificates::ICertificate *iCertificate);
+#endif
};
QT_END_NAMESPACE
-#endif
+#endif // QSSLCERTIFICATE_OPENSSL_P_H