summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@redhat.com>2017-08-18 11:16:50 +0200
committerNikos Mavrogiannopoulos <nmav@redhat.com>2017-08-18 11:56:30 +0200
commitfbdd3fb8a3eae977fb2a25fa59306cbdcd64d858 (patch)
tree606a6929750ca580eebef80641f5d54d0f741370
parent1ab4856bc52d350e7257afad82a3f10f2dae6a3b (diff)
downloadgnutls-fbdd3fb8a3eae977fb2a25fa59306cbdcd64d858.tar.gz
certtool: simplified certificate PEM printing
Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
-rw-r--r--src/common.c25
1 files changed, 5 insertions, 20 deletions
diff --git a/src/common.c b/src/common.c
index acf56fb228..931703ae21 100644
--- a/src/common.c
+++ b/src/common.c
@@ -198,37 +198,22 @@ print_x509_info(gnutls_session_t session, FILE *out, int flag, int print_cert)
}
if (print_cert) {
- size_t size = 0;
- char *p = NULL;
+ gnutls_datum_t pem;
ret =
- gnutls_x509_crt_export(crt,
- GNUTLS_X509_FMT_PEM, p,
- &size);
- if (ret == GNUTLS_E_SHORT_MEMORY_BUFFER) {
- p = malloc(size + 1);
- if (!p) {
- fprintf(stderr, "gnutls_malloc\n");
- exit(1);
- }
-
- ret =
- gnutls_x509_crt_export(crt,
- GNUTLS_X509_FMT_PEM,
- p, &size);
- }
+ gnutls_x509_crt_export2(crt,
+ GNUTLS_X509_FMT_PEM, &pem);
if (ret < 0) {
fprintf(stderr, "Encoding error: %s\n",
gnutls_strerror(ret));
return;
}
- p[size] = 0;
fputs("\n", out);
- fputs(p, out);
+ fputs((char*)pem.data, out);
fputs("\n", out);
- gnutls_free(p);
+ gnutls_free(pem.data);
}
gnutls_x509_crt_deinit(crt);