From 8a8788f4df5811346f36613f0c12bfdc6f343e14 Mon Sep 17 00:00:00 2001 From: Andre Hartmann Date: Fri, 21 Apr 2017 07:59:54 +0200 Subject: [PATCH] QSslCertificatePrivate: make use of QByteArray::toHex(separator) Qt 5.9 introduced a QByteArray::toHex() overload that inserts a separator char after each byte. The function colonSeparatedHex() could not be replaced completely, as it skips leading zeros also. Change-Id: Ic1d5d4771a0a5171f0e7e9813b83eb4c1f59f085 Reviewed-by: Timur Pocheptsov --- src/network/ssl/qsslcertificate_qt.cpp | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/src/network/ssl/qsslcertificate_qt.cpp b/src/network/ssl/qsslcertificate_qt.cpp index 5e8f4cfac7..1cc2b1f964 100644 --- a/src/network/ssl/qsslcertificate_qt.cpp +++ b/src/network/ssl/qsslcertificate_qt.cpp @@ -272,17 +272,12 @@ QList QSslCertificatePrivate::certificatesFromDer(const QByteAr static QByteArray colonSeparatedHex(const QByteArray &value) { - QByteArray hexString; - hexString.reserve(value.size() * 3); - for (int a = 0; a < value.size(); ++a) { - const quint8 b = value.at(a); - if (b || !hexString.isEmpty()) { // skip leading zeros - hexString += QByteArray::number(b, 16).rightJustified(2, '0'); - hexString += ':'; - } - } - hexString.chop(1); - return hexString; + const int size = value.size(); + int i = 0; + while (i < size && !value.at(i)) // skip leading zeros + ++i; + + return value.mid(i).toHex(':'); } bool QSslCertificatePrivate::parse(const QByteArray &data)