diff options
author | Nikos Mavrogiannopoulos <nmav@redhat.com> | 2017-08-18 11:16:50 +0200 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@redhat.com> | 2017-08-18 11:56:30 +0200 |
commit | fbdd3fb8a3eae977fb2a25fa59306cbdcd64d858 (patch) | |
tree | 606a6929750ca580eebef80641f5d54d0f741370 | |
parent | 1ab4856bc52d350e7257afad82a3f10f2dae6a3b (diff) | |
download | gnutls-fbdd3fb8a3eae977fb2a25fa59306cbdcd64d858.tar.gz |
certtool: simplified certificate PEM printing
Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
-rw-r--r-- | src/common.c | 25 |
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); |