summaryrefslogtreecommitdiffstats
path: root/src/network/ssl/qsslcertificate.cpp
diff options
context:
space:
mode:
authorRichard Moore <rich@kde.org>2011-11-10 22:37:16 +0000
committerQt by Nokia <qt-info@nokia.com>2011-11-15 10:16:12 +0100
commit6f115edd745b2f21218bbf0f4ed8584fe0ac3e3a (patch)
tree60e0642f012892173dc9e4267663ecb7370686d6 /src/network/ssl/qsslcertificate.cpp
parent6f4bdf3b6406912ccdf8ef8101e1836e73ee218b (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/qsslcertificate.cpp')
-rw-r--r--src/network/ssl/qsslcertificate.cpp24
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;
}