diff options
author | Richard Moore <rich@kde.org> | 2011-11-10 22:37:16 +0000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-11-15 10:16:12 +0100 |
commit | 6f115edd745b2f21218bbf0f4ed8584fe0ac3e3a (patch) | |
tree | 60e0642f012892173dc9e4267663ecb7370686d6 /src/network/ssl | |
parent | 6f4bdf3b6406912ccdf8ef8101e1836e73ee218b (diff) |
Always use the hex format for certificate serial numbers.
In Qt 4.x the serial number is reported by a mixture of the hex value
and the number, The hex is what is used by other tools, and we should do
the same.
Change-Id: Ia0361d43fb5b920d053c95e932e0c8a012436e5e
Reviewed-by: Peter Hartmann <peter.hartmann@nokia.com>
Diffstat (limited to 'src/network/ssl')
-rw-r--r-- | src/network/ssl/qsslcertificate.cpp | 24 |
1 files changed, 8 insertions, 16 deletions
diff --git a/src/network/ssl/qsslcertificate.cpp b/src/network/ssl/qsslcertificate.cpp index ea92485b6e..b902f451b8 100644 --- a/src/network/ssl/qsslcertificate.cpp +++ b/src/network/ssl/qsslcertificate.cpp @@ -271,28 +271,20 @@ QByteArray QSslCertificate::version() const } /*! - Returns the certificate's serial number string in decimal format. - In case the serial number cannot be converted to decimal format - (i.e. if it is bigger than 4294967295, which means it does not fit into 4 bytes), - its hexadecimal version is returned. + Returns the certificate's serial number string in hexadecimal format. */ QByteArray QSslCertificate::serialNumber() const { if (d->serialNumberString.isEmpty() && d->x509) { ASN1_INTEGER *serialNumber = d->x509->cert_info->serialNumber; - // if we cannot convert to a long, just output the hexadecimal number - if (serialNumber->length > 4) { - QByteArray hexString; - hexString.reserve(serialNumber->length * 3); - for (int a = 0; a < serialNumber->length; ++a) { - hexString += QByteArray::number(serialNumber->data[a], 16).rightJustified(2, '0'); - hexString += ':'; - } - hexString.chop(1); - d->serialNumberString = hexString; - } else { - d->serialNumberString = QByteArray::number(qlonglong(q_ASN1_INTEGER_get(serialNumber))); + QByteArray hexString; + hexString.reserve(serialNumber->length * 3); + for (int a = 0; a < serialNumber->length; ++a) { + hexString += QByteArray::number(serialNumber->data[a], 16).rightJustified(2, '0'); + hexString += ':'; } + hexString.chop(1); + d->serialNumberString = hexString; } return d->serialNumberString; } |