x509_crt_info() list output cosmectics
diff --git a/library/x509_crt.c b/library/x509_crt.c
index 34f70c4..c6fbf6b 100644
--- a/library/x509_crt.c
+++ b/library/x509_crt.c
@@ -1107,20 +1107,26 @@
     size_t n = *size;
     char *p = *buf;
     const x509_sequence *cur = subject_alt_name;
+    const char *sep = "";
+    size_t sep_len = 0;
 
     while( cur != NULL )
     {
-        if( cur->buf.len + 1 >= n )
+        if( cur->buf.len + sep_len >= n )
         {
             *p = '\0';
             return( POLARSSL_ERR_DEBUG_BUF_TOO_SMALL );
         }
 
-        n -= cur->buf.len + 1;
-        *p++ = ' ';
+        n -= cur->buf.len + sep_len;
+        for( i = 0; i < sep_len; i++ )
+            *p++ = sep[i];
         for( i = 0; i < cur->buf.len; i++ )
             *p++ = cur->buf.p[i];
 
+        sep = ", ";
+        sep_len = 2;
+
         cur = cur->next;
     }
 
@@ -1138,46 +1144,55 @@
     int ret;
     size_t n = *size;
     char *p = *buf;
+    const char *sep = "";
 
     if( ns_cert_type & NS_CERT_TYPE_SSL_CLIENT )
     {
-        ret = snprintf( p, n, " SSL Client" );
+        ret = snprintf( p, n, "%sSSL Client", sep );
         SAFE_SNPRINTF();
+        sep = ", ";
     }
     if( ns_cert_type & NS_CERT_TYPE_SSL_SERVER )
     {
-        ret = snprintf( p, n, " SSL Server" );
+        ret = snprintf( p, n, "%sSSL Server", sep );
         SAFE_SNPRINTF();
+        sep = ", ";
     }
     if( ns_cert_type & NS_CERT_TYPE_EMAIL )
     {
-        ret = snprintf( p, n, " Email" );
+        ret = snprintf( p, n, "%sEmail", sep );
         SAFE_SNPRINTF();
+        sep = ", ";
     }
     if( ns_cert_type & NS_CERT_TYPE_OBJECT_SIGNING )
     {
-        ret = snprintf( p, n, " Object Signing" );
+        ret = snprintf( p, n, "%sObject Signing", sep );
         SAFE_SNPRINTF();
+        sep = ", ";
     }
     if( ns_cert_type & NS_CERT_TYPE_RESERVED )
     {
-        ret = snprintf( p, n, " Reserved" );
+        ret = snprintf( p, n, "%sReserved", sep );
         SAFE_SNPRINTF();
+        sep = ", ";
     }
     if( ns_cert_type & NS_CERT_TYPE_SSL_CA )
     {
-        ret = snprintf( p, n, " SSL CA" );
+        ret = snprintf( p, n, "%sSSL CA", sep );
         SAFE_SNPRINTF();
+        sep = ", ";
     }
     if( ns_cert_type & NS_CERT_TYPE_EMAIL_CA )
     {
-        ret = snprintf( p, n, " Email CA" );
+        ret = snprintf( p, n, "%sEmail CA", sep );
         SAFE_SNPRINTF();
+        sep = ", ";
     }
     if( ns_cert_type & NS_CERT_TYPE_OBJECT_SIGNING_CA )
     {
-        ret = snprintf( p, n, " Object Signing CA" );
+        ret = snprintf( p, n, "%sObject Signing CA", sep );
         SAFE_SNPRINTF();
+        sep = ", ";
     }
 
     *size = n;
@@ -1192,41 +1207,49 @@
     int ret;
     size_t n = *size;
     char *p = *buf;
+    const char *sep = "";
 
     if( key_usage & KU_DIGITAL_SIGNATURE )
     {
-        ret = snprintf( p, n, " digitalSignature" );
+        ret = snprintf( p, n, "%sDigital Signature", sep );
         SAFE_SNPRINTF();
+        sep = ", ";
     }
     if( key_usage & KU_NON_REPUDIATION )
     {
-        ret = snprintf( p, n, " nonRepudiation" );
+        ret = snprintf( p, n, "%sNon Repudiation", sep );
         SAFE_SNPRINTF();
+        sep = ", ";
     }
     if( key_usage & KU_KEY_ENCIPHERMENT )
     {
-        ret = snprintf( p, n, " keyEncipherment" );
+        ret = snprintf( p, n, "%sKey Encipherment", sep );
         SAFE_SNPRINTF();
+        sep = ", ";
     }
     if( key_usage & KU_DATA_ENCIPHERMENT )
     {
-        ret = snprintf( p, n, " dataEncipherment" );
+        ret = snprintf( p, n, "%sData Encipherment", sep );
         SAFE_SNPRINTF();
+        sep = ", ";
     }
     if( key_usage & KU_KEY_AGREEMENT )
     {
-        ret = snprintf( p, n, " keyAgreement" );
+        ret = snprintf( p, n, "%sKey Agreement", sep );
         SAFE_SNPRINTF();
+        sep = ", ";
     }
     if( key_usage & KU_KEY_CERT_SIGN )
     {
-        ret = snprintf( p, n, " keyCertSign" );
+        ret = snprintf( p, n, "%sKey Cert Sign", sep );
         SAFE_SNPRINTF();
+        sep = ", ";
     }
     if( key_usage & KU_CRL_SIGN )
     {
-        ret = snprintf( p, n, " cRLSign" );
+        ret = snprintf( p, n, "%sCRL Sign", sep );
         SAFE_SNPRINTF();
+        sep = ", ";
     }
 
     *size = n;
@@ -1243,15 +1266,18 @@
     size_t n = *size;
     char *p = *buf;
     const x509_sequence *cur = extended_key_usage;
+    const char *sep = "";
 
     while( cur != NULL )
     {
         if( oid_get_extended_key_usage( &cur->buf, &desc ) != 0 )
             desc = "???";
 
-        ret = snprintf( p, n, " %s", desc );
+        ret = snprintf( p, n, "%s%s", sep, desc );
         SAFE_SNPRINTF();
 
+        sep = ", ";
+
         cur = cur->next;
     }
 
@@ -1352,7 +1378,7 @@
 
     if( crt->ext_types & EXT_SUBJECT_ALT_NAME )
     {
-        ret = snprintf( p, n, "\n%ssubject alt name  :", prefix );
+        ret = snprintf( p, n, "\n%ssubject alt name  : ", prefix );
         SAFE_SNPRINTF();
 
         if( ( ret = x509_info_subject_alt_name( &p, &n,
@@ -1362,7 +1388,7 @@
 
     if( crt->ext_types & EXT_NS_CERT_TYPE )
     {
-        ret = snprintf( p, n, "\n%scert. type        :", prefix );
+        ret = snprintf( p, n, "\n%scert. type        : ", prefix );
         SAFE_SNPRINTF();
 
         if( ( ret = x509_info_cert_type( &p, &n, crt->ns_cert_type ) ) != 0 )
@@ -1371,7 +1397,7 @@
 
     if( crt->ext_types & EXT_KEY_USAGE )
     {
-        ret = snprintf( p, n, "\n%skey usage         :", prefix );
+        ret = snprintf( p, n, "\n%skey usage         : ", prefix );
         SAFE_SNPRINTF();
 
         if( ( ret = x509_info_key_usage( &p, &n, crt->key_usage ) ) != 0 )
@@ -1380,7 +1406,7 @@
 
     if( crt->ext_types & EXT_EXTENDED_KEY_USAGE )
     {
-        ret = snprintf( p, n, "\n%sext key usage     :", prefix );
+        ret = snprintf( p, n, "\n%sext key usage     : ", prefix );
         SAFE_SNPRINTF();
 
         if( ( ret = x509_info_ext_key_usage( &p, &n,