Scroll to navigation

NE_SSL_CERT_READ(3) neon API reference NE_SSL_CERT_READ(3)


ne_ssl_cert_read, ne_ssl_cert_write, ne_ssl_cert_import, ne_ssl_cert_export - functions to read or write certificates to and from files or strings


#include <ne_ssl.h>

ne_ssl_certificate *ne_ssl_cert_read(const char *filename);

int ne_ssl_cert_write(const ne_ssl_certificate *cert, const char *filename);

ne_ssl_certificate *ne_ssl_cert_import(const char *data);

char *ne_ssl_cert_export(const ne_ssl_certificate *cert);


The ne_ssl_cert_write function writes a certificate to a file using the PEM encoding. The ne_ssl_cert_export function returns a base64-encoded NUL-terminated string representing the certificate. This string is malloc-allocated and should be destroyed using free by the caller.

The ne_ssl_cert_read function reads a certificate from a PEM-encoded file, and returns a certificate object. The ne_ssl_cert_import function returns a certificate object from a base64-encoded string, data, as returned by ne_ssl_cert_export. The certificate object returned by these functions should be destroyed using ne_ssl_cert_free after use.


ne_ssl_cert_read returns NULL if a certificate could not be read from the file. ne_ssl_cert_write returns non-zero if the certificate could not be written to the file. ne_ssl_cert_export always returns a NUL-terminated string, and never NULL. ne_ssl_cert_import returns NULL if the string was not a valid base64-encoded certificate.


The string produced by ne_ssl_cert_export is the base64 encoding of the DER representation of the certificate. The file written by ne_ssl_cert_write uses the PEM format: this is the base64 encoding of the DER representation with newlines every 64 characters, and start and end marker lines.


Joe Orton



29 January 2024 neon 0.33.0