From 6f115edd745b2f21218bbf0f4ed8584fe0ac3e3a Mon Sep 17 00:00:00 2001 From: Richard Moore Date: Thu, 10 Nov 2011 22:37:16 +0000 Subject: 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 --- src/network/ssl/qsslcertificate.cpp | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) (limited to 'src/network/ssl') 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; } -- cgit v1.2.3