Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
NE_SSL_CLIENT_CERT(3)	      neon API reference	 NE_SSL_CLIENT_CERT(3)

NAME
       ne_ssl_clicert_read, ne_ssl_clicert_name, ne_ssl_clicert_encrypted,
       ne_ssl_clicert_decrypt, ne_ssl_clicert_owner, ne_ssl_clicert_free - SSL
       client certificate handling

SYNOPSIS
       #include	<ne_ssl.h>

       ne_ssl_client_cert *ne_ssl_clicert_read(const char *filename);

       const char *ne_ssl_clicert_name(const ne_ssl_client_cert	*ccert);

       int ne_ssl_clicert_encrypted(const ne_ssl_client_cert *ccert);

       int ne_ssl_clicert_decrypt(ne_ssl_client_cert *ccert,
				  const	char *password);

       const ne_ssl_certificate
						      *ne_ssl_clicert_owner(const ne_ssl_client_cert *ccert);

       void ne_ssl_clicert_free(ne_ssl_client_cert *ccert);

DESCRIPTION
       The ne_ssl_clicert_read function	reads a	client certificate from	a
       PKCS#12-formatted file, and returns an ne_ssl_client_cert object. If
       the client certificate is encrypted, it must be decrypted before	it is
       used. An	ne_ssl_client_cert object holds	a client certificate and the
       associated private key, not just	a certificate; the term	"client
       certificate" will used to refer to this pair.

       A client	certificate can	be in one of two states: encrypted or
       decrypted. The ne_ssl_clicert_encrypted function	will return non-zero
       if the client certificate is in the encrypted state. A client
       certificate object returned by ne_ssl_clicert_read may be initially in
       either state, depending on whether the file was encrypted or not.

       ne_ssl_clicert_decrypt can be used to decrypt a client certificate
       using the appropriate password. This function must only be called if
       the object is in	the encrypted state; if	decryption fails, the
       certificate state does not change, so decryption	can be attempted more
       than once using different passwords.

       A client	certificate can	be given a "friendly name" when	it is created;
       ne_ssl_clicert_name will	return this name (or NULL if no	friendly name
       was specified).	ne_ssl_clicert_name can	be used	when the client
       certificate is in either	the encrypted or decrypted state, and will
       return the same string for the lifetime of the object.

       The function ne_ssl_clicert_owner returns the certificate part of the
       client certificate; it must only	be called if the client	certificate is
       in the decrypted	state.

       When the	client certificate is no longer	needed,	the
       ne_ssl_clicert_free function should be used to destroy the object.

RETURN VALUE
       ne_ssl_clicert_read returns a client certificate	object,	or NULL	if the
       file could not be read.	ne_ssl_clicert_encrypted returns zero if the
       object is in the	decrypted state, or non-zero if	it is in the encrypted
       state.  ne_ssl_clicert_name returns a NUL-terminated friendly name
       string, or NULL.	 ne_ssl_clicert_owner returns a	certificate object.

EXAMPLES
       The following code reads	a client certificate and decrypts it if
       necessary, then loads it	into an	HTTP session.

	   ne_ssl_client_cert *ccert;

	   ccert = ne_ssl_clicert_read("/path/to/client.p12");

	   if (ccert ==	NULL) {
	      /* handle	error... */
	   } else if (ne_ssl_clicert_encrypted(ccert)) {
	      char *password = prompt_for_password();

	      if (ne_ssl_clicert_decrypt(ccert,	password)) {
		 /* could not decrypt! handle error... */
	      }
	   }

	   ne_ssl_set_clicert(sess, ccert);

SEE ALSO
       ne_ssl_cert_read

AUTHOR
       Joe Orton <neon@lists.manyfish.co.uk>
	   Author.

COPYRIGHT
neon 0.30.2		       30 September 2016	 NE_SSL_CLIENT_CERT(3)

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | EXAMPLES | SEE ALSO | AUTHOR | COPYRIGHT

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=ne_ssl_clicert_read&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help