![]() |
Qt 6.x
The Qt SDK
|
#include <qtlskey_base_p.h>
Public Member Functions | |
TlsKeyBase (KeyType type=QSsl::PublicKey, KeyAlgorithm algorithm=QSsl::Opaque) | |
bool | isNull () const override |
KeyType | type () const override |
KeyAlgorithm | algorithm () const override |
bool | isPkcs8 () const override |
QByteArray | pemFromDer (const QByteArray &der, const QMap< QByteArray, QByteArray > &headers) const override |
![]() | |
virtual | ~TlsKey () |
virtual void | decodeDer (KeyType type, KeyAlgorithm algorithm, const QByteArray &der, const QByteArray &passPhrase, bool deepClear)=0 |
virtual void | decodePem (KeyType type, KeyAlgorithm algorithm, const QByteArray &pem, const QByteArray &passPhrase, bool deepClear)=0 |
virtual QByteArray | toPem (const QByteArray &passPhrase) const =0 |
virtual QByteArray | derFromPem (const QByteArray &pem, QMap< QByteArray, QByteArray > *headers) const =0 |
virtual QByteArray | pemFromDer (const QByteArray &der, const QMap< QByteArray, QByteArray > &headers) const =0 |
virtual void | fromHandle (Qt::HANDLE handle, KeyType type)=0 |
virtual Qt::HANDLE | handle () const =0 |
virtual bool | isNull () const =0 |
virtual KeyType | type () const =0 |
virtual KeyAlgorithm | algorithm () const =0 |
virtual int | length () const =0 |
virtual void | clear (bool deepClear)=0 |
virtual bool | isPkcs8 () const =0 |
virtual QByteArray | decrypt (Cipher cipher, const QByteArray &data, const QByteArray &passPhrase, const QByteArray &iv) const =0 |
virtual QByteArray | encrypt (Cipher cipher, const QByteArray &data, const QByteArray &key, const QByteArray &iv) const =0 |
QByteArray | pemHeader () const |
QByteArray | pemFooter () const |
Static Protected Member Functions | |
static QByteArray | pkcs8Header (bool encrypted) |
static QByteArray | pkcs8Footer (bool encrypted) |
static bool | isEncryptedPkcs8 (const QByteArray &der) |
Protected Attributes | |
bool | keyIsNull = true |
KeyType | keyType = QSsl::PublicKey |
KeyAlgorithm | keyAlgorithm = QSsl::Opaque |
Additional Inherited Members | |
![]() | |
using | KeyType = QSsl::KeyType |
using | KeyAlgorithm = QSsl::KeyAlgorithm |
Definition at line 30 of file qtlskey_base_p.h.
|
inline |
Definition at line 33 of file qtlskey_base_p.h.
|
inlineoverridevirtual |
Return this key's algorithm.
Implements QTlsPrivate::TlsKey.
Definition at line 47 of file qtlskey_base_p.h.
References keyAlgorithm.
Referenced by QTlsPrivate::TlsKeyOpenSSL::clear(), QTlsPrivate::TlsKeyOpenSSL::decodeDer(), QTlsPrivate::TlsKeyGeneric::decodeDer(), QTlsPrivate::TlsKeyOpenSSL::decodePem(), QTlsPrivate::TlsKeyGeneric::decodePem(), QTlsPrivate::TlsKeyOpenSSL::length(), and QTlsPrivate::TlsKeyOpenSSL::toPem().
|
staticprotected |
Definition at line 62 of file qtlskey_base.cpp.
References items, QAsn1Element::ObjectIdentifierType, QAsn1Element::OctetStringType, PKCS12_OID, PKCS5_MD2_DES_CBC_OID, PKCS5_MD2_RC2_CBC_OID, PKCS5_MD5_DES_CBC_OID, PKCS5_MD5_RC2_CBC_OID, PKCS5_PBES2_ENCRYPTION_OID, PKCS5_SHA1_DES_CBC_OID, PKCS5_SHA1_RC2_CBC_OID, QAsn1Element::read(), QAsn1Element::SequenceType, QList< T >::size(), QByteArray::startsWith(), QAsn1Element::toList(), QList< T >::toList(), and QAsn1Element::type().
Referenced by pemFromDer().
|
inlineoverridevirtual |
Returns true
if this is a null key, false
otherwise.
Implements QTlsPrivate::TlsKey.
Definition at line 39 of file qtlskey_base_p.h.
References keyIsNull.
Referenced by QTlsPrivate::TlsKeyOpenSSL::length(), and QTlsPrivate::TlsKeyOpenSSL::toPem().
|
inlineoverridevirtual |
This function is internally used only by Qt's own TLS plugins and affects the way PEM file is generated by TlsKey. It's sufficient to override it and return false
in case a new TLS backend is not using Qt's plugin as a base.
Implements QTlsPrivate::TlsKey.
Reimplemented in QTlsPrivate::TlsKeyGeneric.
Definition at line 51 of file qtlskey_base_p.h.
Referenced by pemFromDer().
|
overridevirtual |
If overridden, this function is expected to convert der, using headers, to PEM format.
Implements QTlsPrivate::TlsKey.
Definition at line 11 of file qtlskey_base.cpp.
References QByteArray::append(), QMap< Key, T >::constBegin(), QMap< Key, T >::constEnd(), i, QByteArray::insert(), QMap< Key, T >::isEmpty(), isEncryptedPkcs8(), isPkcs8(), it, QTlsPrivate::TlsKey::pemFooter(), QTlsPrivate::TlsKey::pemHeader(), pkcs8Footer(), pkcs8Header(), QByteArray::prepend(), QByteArray::size(), and QByteArray::toBase64().
Referenced by QTlsPrivate::TlsKeyOpenSSL::decodeDer(), and QTlsPrivate::TlsKeyGeneric::toPem().
|
staticprotected |
Definition at line 55 of file qtlskey_base.cpp.
References QByteArrayLiteral.
Referenced by QTlsPrivate::TlsKeyOpenSSL::derFromPem(), QTlsPrivate::TlsKeyGeneric::derFromPem(), and pemFromDer().
|
staticprotected |
Definition at line 48 of file qtlskey_base.cpp.
References QByteArrayLiteral.
Referenced by QTlsPrivate::TlsKeyOpenSSL::derFromPem(), QTlsPrivate::TlsKeyGeneric::derFromPem(), and pemFromDer().
|
inlineoverridevirtual |
Returns the type of this key (public or private).
Implements QTlsPrivate::TlsKey.
Definition at line 43 of file qtlskey_base_p.h.
References keyType.
Referenced by QTlsPrivate::TlsKeyOpenSSL::decodeDer(), QTlsPrivate::TlsKeyGeneric::decodeDer(), QTlsPrivate::TlsKeyOpenSSL::decodePem(), QTlsPrivate::TlsKeyGeneric::decodePem(), QTlsPrivate::TlsKeyOpenSSL::derFromPem(), QTlsPrivate::TlsKeyGeneric::derFromPem(), QTlsPrivate::TlsKeyOpenSSL::toPem(), and QTlsPrivate::TlsKeyGeneric::toPem().
|
protected |
Definition at line 65 of file qtlskey_base_p.h.
Referenced by algorithm(), QTlsPrivate::TlsKeyOpenSSL::decodeDer(), QTlsPrivate::TlsKeyGeneric::decodeDer(), QTlsPrivate::TlsKeyOpenSSL::decodePem(), QTlsPrivate::TlsKeyGeneric::decodePem(), QTlsPrivate::TlsKeyOpenSSL::fromEVP_PKEY(), QTlsPrivate::TlsKeyOpenSSL::fromHandle(), QTlsPrivate::TlsKeyOpenSSL::handle(), and QTlsPrivate::TlsKeyOpenSSL::publicKeyFromX509().
|
protected |
Definition at line 63 of file qtlskey_base_p.h.
Referenced by QTlsPrivate::TlsKeyOpenSSL::clear(), QTlsPrivate::TlsKeyGeneric::clear(), QTlsPrivate::TlsKeyGeneric::decodeDer(), QTlsPrivate::TlsKeyOpenSSL::decodePem(), QTlsPrivate::TlsKeyOpenSSL::fromEVP_PKEY(), QTlsPrivate::TlsKeyOpenSSL::fromHandle(), isNull(), and QTlsPrivate::TlsKeyOpenSSL::publicKeyFromX509().
|
protected |
Definition at line 64 of file qtlskey_base_p.h.
Referenced by QTlsPrivate::TlsKeyOpenSSL::decodeDer(), QTlsPrivate::TlsKeyGeneric::decodeDer(), QTlsPrivate::TlsKeyOpenSSL::decodePem(), QTlsPrivate::TlsKeyGeneric::decodePem(), QTlsPrivate::TlsKeyOpenSSL::fromEVP_PKEY(), QTlsPrivate::TlsKeyOpenSSL::fromHandle(), QTlsPrivate::TlsKeyGeneric::fromHandle(), QTlsPrivate::TlsKeyOpenSSL::publicKeyFromX509(), and type().