Function: gnutls-format-certificate
gnutls-format-certificate is a function defined in gnutls.c.
Signature
(gnutls-format-certificate CERT)
Documentation
Format a X.509 certificate to a string.
Given a PEM-encoded X.509 certificate CERT, returns a human-readable string representation.
Source Code
// Defined in /usr/src/emacs/src/gnutls.c
{
CHECK_STRING (cert);
int err;
gnutls_x509_crt_t crt;
err = gnutls_x509_crt_init (&crt);
check_memory_full (err);
if (err < GNUTLS_E_SUCCESS)
error ("gnutls-format-certificate error: %s", emacs_gnutls_strerror (err));
gnutls_datum_t crt_data = { SDATA (cert), strlen (SSDATA (cert)) };
err = gnutls_x509_crt_import (crt, &crt_data, GNUTLS_X509_FMT_PEM);
check_memory_full (err);
if (err < GNUTLS_E_SUCCESS)
{
gnutls_x509_crt_deinit (crt);
error ("gnutls-format-certificate error: %s",
emacs_gnutls_strerror (err));
}
gnutls_datum_t out;
err = gnutls_x509_crt_print (crt, GNUTLS_CRT_PRINT_FULL, &out);
check_memory_full (err);
if (err < GNUTLS_E_SUCCESS)
{
gnutls_x509_crt_deinit (crt);
error ("gnutls-format-certificate error: %s",
emacs_gnutls_strerror (err));
}
Lisp_Object result = make_string_from_bytes ((char *) out.data, out.size,
out.size);
gnutls_free (out.data);
gnutls_x509_crt_deinit (crt);
return result;
}