- Corrected removal of leading '00:' in printing serial numbers in certificates and CRLs
diff --git a/ChangeLog b/ChangeLog
index 01f9635..719c812 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -53,6 +53,8 @@
appended with '....' after first 28 octets
* Improved build support for s390x and sparc64 in bignum.h
* Fixed MS Visual C++ name clash with int64 in sha4.h
+ * Corrected removal of leading '00:' in printing serial numbers in
+ certificates and CRLs
= Version 1.0.0 released on 2011-07-27
Features
diff --git a/library/x509parse.c b/library/x509parse.c
index 8341344..d49b643 100644
--- a/library/x509parse.c
+++ b/library/x509parse.c
@@ -2426,6 +2426,9 @@
for( i = 0; i < nr; i++ )
{
+ if( i == 0 && serial->p[i] == 0x0 )
+ continue;
+
ret = snprintf( p, n, "%02X%s",
serial->p[i], ( i < nr - 1 ) ? ":" : "" );
SAFE_SNPRINTF();
@@ -2589,7 +2592,7 @@
const x509_crl *crl )
{
int ret;
- size_t i, n, nr;
+ size_t n;
char *p;
const x509_crl_entry *entry;
@@ -2631,22 +2634,15 @@
prefix );
SAFE_SNPRINTF();
- nr = ( entry->serial.len <= 32 )
- ? entry->serial.len : 32;
+ ret = x509parse_serial_gets( p, n, &entry->serial);
+ SAFE_SNPRINTF();
- for( i = 0; i < nr; i++ )
- {
- ret = snprintf( p, n, "%02X%s",
- entry->serial.p[i], ( i < nr - 1 ) ? ":" : "" );
- SAFE_SNPRINTF();
- }
-
ret = snprintf( p, n, " revocation date: " \
"%04d-%02d-%02d %02d:%02d:%02d",
entry->revocation_date.year, entry->revocation_date.mon,
entry->revocation_date.day, entry->revocation_date.hour,
entry->revocation_date.min, entry->revocation_date.sec );
- SAFE_SNPRINTF();
+ SAFE_SNPRINTF();
entry = entry->next;
}