- Moved storing of a printable serial into a separate function
diff --git a/library/x509parse.c b/library/x509parse.c
index 6dae943..b37c4c2 100644
--- a/library/x509parse.c
+++ b/library/x509parse.c
@@ -2306,12 +2306,37 @@
}
/*
+ * Store the serial in printable form into buf; no more
+ * than size characters will be written
+ */
+int x509parse_serial_gets( char *buf, size_t size, const x509_buf *serial )
+{
+ int i, ret, nr, n;
+ char *p;
+
+ p = buf;
+ n = size;
+
+ nr = ( serial->len <= 32 )
+ ? serial->len : 32;
+
+ for( i = 0; i < nr; i++ )
+ {
+ ret = snprintf( p, n, "%02X%s",
+ serial->p[i], ( i < nr - 1 ) ? ":" : "" );
+ SAFE_SNPRINTF();
+ }
+
+ return( size - n );
+}
+
+/*
* Return an informational string about the certificate.
*/
int x509parse_cert_info( char *buf, size_t size, const char *prefix,
const x509_cert *crt )
{
- int i, n, nr, ret;
+ int n, ret;
char *p;
p = buf;
@@ -2324,15 +2349,8 @@
prefix );
SAFE_SNPRINTF();
- nr = ( crt->serial.len <= 32 )
- ? crt->serial.len : 32;
-
- for( i = 0; i < nr; i++ )
- {
- ret = snprintf( p, n, "%02X%s",
- crt->serial.p[i], ( i < nr - 1 ) ? ":" : "" );
- SAFE_SNPRINTF();
- }
+ ret = x509parse_serial_gets( p, n, &crt->serial);
+ SAFE_SNPRINTF();
ret = snprintf( p, n, "\n%sissuer name : ", prefix );
SAFE_SNPRINTF();