Use a QMultiMap for issuer/subjectInfo
The map can contain multiple entries for one key, so a multi map is the correct data structure. Change-Id: I852ba3548f46415d8078fd0e8fdd7953ec6c370b Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>bb10
parent
5823d391b4
commit
4e507464e4
|
|
@ -50,7 +50,7 @@
|
|||
QT_BEGIN_NAMESPACE
|
||||
|
||||
// forward declaration
|
||||
static QMap<QByteArray, QString> _q_mapFromX509Name(X509_NAME *name);
|
||||
static QMultiMap<QByteArray, QString> _q_mapFromX509Name(X509_NAME *name);
|
||||
|
||||
bool QSslCertificate::operator==(const QSslCertificate &other) const
|
||||
{
|
||||
|
|
@ -615,16 +615,16 @@ QByteArray QSslCertificatePrivate::asn1ObjectName(ASN1_OBJECT *object)
|
|||
return asn1ObjectId(object);
|
||||
}
|
||||
|
||||
static QMap<QByteArray, QString> _q_mapFromX509Name(X509_NAME *name)
|
||||
static QMultiMap<QByteArray, QString> _q_mapFromX509Name(X509_NAME *name)
|
||||
{
|
||||
QMap<QByteArray, QString> info;
|
||||
QMultiMap<QByteArray, QString> info;
|
||||
for (int i = 0; i < q_X509_NAME_entry_count(name); ++i) {
|
||||
X509_NAME_ENTRY *e = q_X509_NAME_get_entry(name, i);
|
||||
|
||||
QByteArray name = QSslCertificatePrivate::asn1ObjectName(q_X509_NAME_ENTRY_get_object(e));
|
||||
unsigned char *data = nullptr;
|
||||
int size = q_ASN1_STRING_to_UTF8(&data, q_X509_NAME_ENTRY_get_data(e));
|
||||
info.insertMulti(name, QString::fromUtf8((char*)data, size));
|
||||
info.insert(name, QString::fromUtf8((char*)data, size));
|
||||
#if QT_CONFIG(opensslv11)
|
||||
q_CRYPTO_free(data, nullptr, 0);
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -102,8 +102,8 @@ public:
|
|||
QByteArray versionString;
|
||||
QByteArray serialNumberString;
|
||||
|
||||
QMap<QByteArray, QString> issuerInfo;
|
||||
QMap<QByteArray, QString> subjectInfo;
|
||||
QMultiMap<QByteArray, QString> issuerInfo;
|
||||
QMultiMap<QByteArray, QString> subjectInfo;
|
||||
QDateTime notValidAfter;
|
||||
QDateTime notValidBefore;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue