diff --git a/library/x509_csr.c b/library/x509_csr.c
index a0d4c36..082e461 100644
--- a/library/x509_csr.c
+++ b/library/x509_csr.c
@@ -366,8 +366,12 @@
     int ret;
     size_t n;
     char *p;
-    const char *desc;
     char key_size_str[BEFORE_COLON];
+#if defined(POLARSSL_RSASSA_PSS_CERTIFICATES)
+    const x509_buf *sig_params = &csr->sig_params;
+#else
+    const x509_buf *sig_params = NULL;
+#endif
 
     p = buf;
     n = size;
@@ -384,35 +388,9 @@
     ret = snprintf( p, n, "\n%ssigned using  : ", prefix );
     SAFE_SNPRINTF();
 
-    ret = oid_get_sig_alg_desc( &csr->sig_oid, &desc );
-    if( ret != 0 )
-        ret = snprintf( p, n, "???"  );
-    else
-        ret = snprintf( p, n, "%s", desc );
+    ret = x509_sig_alg_gets( p, n, &csr->sig_oid, csr->sig_pk, sig_params );
     SAFE_SNPRINTF();
 
-#if defined(POLARSSL_RSASSA_PSS_CERTIFICATES)
-    if( csr->sig_pk == POLARSSL_PK_RSASSA_PSS )
-    {
-        md_type_t md_alg, mgf_md;
-        const md_info_t *md_info, *mgf_md_info;
-        int salt_len, trailer_field;
-
-        if( ( ret = x509_get_rsassa_pss_params( &csr->sig_params,
-                        &md_alg, &mgf_md, &salt_len, &trailer_field ) ) != 0 )
-            return( ret );
-
-        md_info = md_info_from_type( md_alg );
-        mgf_md_info = md_info_from_type( mgf_md );
-
-        ret = snprintf( p, n, " (%s, MGF1-%s, 0x%02X, %d)",
-                              md_info ? md_info->name : "???",
-                              mgf_md_info ? mgf_md_info->name : "???",
-                              salt_len, trailer_field );
-        SAFE_SNPRINTF();
-    }
-#endif /* POLARSSL_RSASSA_PSS_CERTIFICATES */
-
     if( ( ret = x509_key_size_helper( key_size_str, BEFORE_COLON,
                                       pk_get_name( &csr->pk ) ) ) != 0 )
     {
