QSslCertificateExtension Class

The QSslCertificateExtension class provides an API for accessing the extensions of an X509 certificate. More...

Header: #include <QSslCertificateExtension>
qmake: QT += network
Since: Qt 5.0

This class was introduced in Qt 5.0.

Note: All functions in this class are reentrant.

Detailed Description

QSslCertificateExtension provides access to an extension stored in an X509 certificate. The information available depends on the type of extension being accessed.

All X509 certificate extensions have the following properties:

PropertyDescription
nameThe human readable name of the extension, eg. 'basicConstraints'.
criticalityThis is a boolean value indicating if the extension is critical to correctly interpreting the certificate.
oidThe ASN.1 object identifier that specifies which extension this is.
supportedIf this is true the structure of the extension's value will not change between Qt versions.
valueA QVariant with a structure dependent on the type of extension.

Whilst this class provides access to any type of extension, only some are guaranteed to be returned in a format that will remain unchanged between releases. The isSupported() method returns true for extensions where this is the case.

The extensions currently supported, and the structure of the value returned are as follows:

NameOIDDetails
basicConstraints2.5.29.19Returned as a QVariantMap. The key 'ca' contains a boolean value, the optional key 'pathLenConstraint' contains an integer.
authorityInfoAccess1.3.6.1.5.5.7.1.1Returned as a QVariantMap. There is a key for each access method, with the value being a URI.
subjectKeyIdentifier2.5.29.14Returned as a QVariant containing a QString. The string is the key identifier.
authorityKeyIdentifier2.5.29.35Returned as a QVariantMap. The optional key 'keyid' contains the key identifier as a hex string stored in a QByteArray. The optional key 'serial' contains the authority key serial number as a qlonglong. Currently there is no support for the general names field of this extension.

In addition to the supported extensions above, many other common extensions will be returned in a reasonably structured way. Extensions that the SSL backend has no support for at all will be returned as a QByteArray.

Further information about the types of extensions certificates can contain can be found in RFC 5280.

See also QSslCertificate::extensions().