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

FreeBSD Manual Pages

  
 
  

home | help
hx509_cert(3)		      Heimdal x509 library		   hx509_cert(3)

NAME
     hx509_cert - hx509 certificate functions

SYNOPSIS
   Functions
     hx509_cert  hx509_cert_init  (hx509_context  context, const Certificate *c,
	 heim_error_t *error)
     hx509_cert hx509_cert_init_data (hx509_context context,  const  void  *ptr,
	 size_t len, heim_error_t *error)
     void hx509_cert_free (hx509_cert cert)
     hx509_cert hx509_cert_ref (hx509_cert cert)
     void  hx509_verify_ctx_f_allow_default_trustanchors  (hx509_verify_ctx ctx,
	 int boolean)
     int   hx509_cert_find_subjectAltName_otherName   (hx509_context	context,
	 hx509_cert cert, const heim_oid *oid, hx509_octet_string_list *list)
     int hx509_cert_cmp (hx509_cert p, hx509_cert q)
     int hx509_cert_get_issuer (hx509_cert p, hx509_name *name)
     int hx509_cert_get_subject (hx509_cert p, hx509_name *name)
     int   hx509_cert_get_base_subject	(hx509_context	context,  hx509_cert  c,
	 hx509_name *name)
     int hx509_cert_get_serialnumber (hx509_cert p, heim_integer *i)
     time_t hx509_cert_get_notBefore (hx509_cert p)
     time_t hx509_cert_get_notAfter (hx509_cert p)
     int hx509_cert_get_SPKI (hx509_context context, hx509_cert  p,  SubjectPub-
	 licKeyInfo *spki)
     int    hx509_cert_get_SPKI_AlgorithmIdentifier    (hx509_context	context,
	 hx509_cert p, AlgorithmIdentifier *alg)
     int hx509_cert_get_issuer_unique_id (hx509_context context,  hx509_cert  p,
	 heim_bit_string *issuer)
     int  hx509_cert_get_subject_unique_id (hx509_context context, hx509_cert p,
	 heim_bit_string *subject)
     int hx509_verify_hostname (hx509_context context,	const  hx509_cert  cert,
	 int flags, hx509_hostname_type type, const char *hostname, const struct
	 sockaddr *sa, int sa_size)
     hx509_cert_attribute   hx509_cert_get_attribute   (hx509_cert  cert,  const
	 heim_oid *oid)
     int hx509_cert_set_friendly_name (hx509_cert cert, const char *name)
     const char * hx509_cert_get_friendly_name (hx509_cert cert)
     int hx509_query_alloc (hx509_context context, hx509_query **q)
     void hx509_query_match_option (hx509_query *q, hx509_query_option option)
     int hx509_query_match_issuer_serial (hx509_query *q,  const  Name	*issuer,
	 const heim_integer *serialNumber)
     int hx509_query_match_friendly_name (hx509_query *q, const char *name)
     int hx509_query_match_eku (hx509_query *q, const heim_oid *eku)
     int  hx509_query_match_cmp_func  (hx509_query *q, int(*func)(hx509_context,
	 hx509_cert, void *), void *ctx)
     void hx509_query_free (hx509_context context, hx509_query *q)
     void hx509_query_statistic_file (hx509_context context, const char *fn)
     void hx509_query_unparse_stats (hx509_context context, int printtype,  FILE
	 *out)
     int  hx509_cert_check_eku	(hx509_context	context,  hx509_cert cert, const
	 heim_oid *eku, int allow_any_eku)
     int    hx509_cert_binary	 (hx509_context    context,    hx509_cert     c,
	 heim_octet_string *os)
     int hx509_print_cert (hx509_context context, hx509_cert cert, FILE *out)

Detailed Description
     See the The basic certificate for description and examples.

Function Documentation
   int hx509_cert_binary (hx509_context context, hx509_cert c, heim_octet_string
     * os)
     Encodes the hx509 certificate as a DER encode binary.

     Parameters
	 context A hx509 context.
	 c the certificate to encode.
	 os  the  encode  certificate, set to NULL, 0 on case of error. Free the
	 os->data with hx509_xfree().

     Returns
	 An hx509 error code, see hx509_get_error_string().

   int	hx509_cert_check_eku  (hx509_context  context,	hx509_cert  cert,  const
     heim_oid * eku, int allow_any_eku)
     Check the extended key usage on the hx509 certificate.

     Parameters
	 context A hx509 context.
	 cert A hx509 context.
	 eku the EKU to check for
	 allow_any_eku if the any EKU is set, allow that to be a substitute.

     Returns
	 An hx509 error code, see hx509_get_error_string().

   int hx509_cert_cmp (hx509_cert p, hx509_cert q)
     Compare to hx509 certificate object, useful for sorting.

     Parameters
	 p a hx509 certificate object.
	 q a hx509 certificate object.

     Returns
	 0 the objects are the same, returns > 0 is p is 'larger' then q, < 0 if
	 p is 'smaller' then q.

   int	  hx509_cert_find_subjectAltName_otherName    (hx509_context	context,
     hx509_cert cert, const heim_oid * oid, hx509_octet_string_list * list)
     Return a list of subjectAltNames specified by oid in  the	certificate.  On
     error the

     The    returned	list	of   octet   string   should   be   freed   with
     hx509_free_octet_string_list().

     Parameters
	 context A hx509 context.
	 cert a hx509 certificate object.
	 oid an oid to for SubjectAltName.
	 list list of matching SubjectAltName.

     Returns
	 An hx509 error code, see hx509_get_error_string().

   void hx509_cert_free (hx509_cert cert)
     Free reference to the hx509 certificate object, if the  refcounter  reaches
     0, the object if freed. Its allowed to pass in NULL.

     Parameters
	 cert the cert to free.

   hx509_cert_attribute   hx509_cert_get_attribute   (hx509_cert   cert,   const
     heim_oid * oid)
     Get an external attribute for the certificate, examples are  friendly  name
     and id.

     Parameters
	 cert hx509 certificate object to search
	 oid an oid to search for.

     Returns
	 an  hx509_cert_attribute, only valid as long as the certificate is ref-
	 erenced.

   int	hx509_cert_get_base_subject  (hx509_context   context,	 hx509_cert   c,
     hx509_name * name)
     Return the name of the base subject of the hx509 certificate. If the certi-
     icate  is	a  verified proxy certificate, the this function return the base
     certificate (root of the proxy chain). If the proxy certificate is not ver-
     ified with the base  certificate  HX509_PROXY_CERTIFICATE_NOT_CANONICALIZED
     is returned.

     Parameters
	 context a hx509 context.
	 c a hx509 certificate object.
	 name  a  pointer to a hx509 name, should be freed by hx509_name_free().
	 See also hx509_cert_get_subject().

     Returns
	 An hx509 error code, see hx509_get_error_string().

   const char* hx509_cert_get_friendly_name (hx509_cert cert)
     Get friendly name of the certificate.

     Parameters
	 cert cert to get the friendly name from.

     Returns
	 an friendly name or NULL if there is. The friendly name is  only  valid
	 as long as the certificate is referenced.

   int hx509_cert_get_issuer (hx509_cert p, hx509_name * name)
     Return the name of the issuer of the hx509 certificate.

     Parameters
	 p a hx509 certificate object.
	 name a pointer to a hx509 name, should be freed by hx509_name_free().

     Returns
	 An hx509 error code, see hx509_get_error_string().

   int	hx509_cert_get_issuer_unique_id  (hx509_context  context,  hx509_cert p,
     heim_bit_string * issuer)
     Get a copy of the Issuer Unique ID

     Parameters
	 context a hx509_context
	 p a hx509 certificate
	 issuer the issuer id returned, free with der_free_bit_string()

     Returns
	 An hx509 error  code,	see  hx509_get_error_string().	The  error  code
	 HX509_EXTENSION_NOT_FOUND is returned if the certificate doesn't have a
	 issuerUniqueID

   time_t hx509_cert_get_notAfter (hx509_cert p)
     Get notAfter time of the certificate.

     Parameters
	 p a hx509 certificate object.

     Returns
	 return not after time.

   time_t hx509_cert_get_notBefore (hx509_cert p)
     Get notBefore time of the certificate.

     Parameters
	 p a hx509 certificate object.

     Returns
	 return not before time

   int hx509_cert_get_serialnumber (hx509_cert p, heim_integer * i)
     Get serial number of the certificate.

     Parameters
	 p a hx509 certificate object.
	 i serial number, should be freed ith der_free_heim_integer().

     Returns
	 An hx509 error code, see hx509_get_error_string().

   int hx509_cert_get_SPKI (hx509_context context, hx509_cert p, SubjectPublicK-
     eyInfo * spki)
     Get the SubjectPublicKeyInfo structure from the hx509 certificate.

     Parameters
	 context a hx509 context.
	 p a hx509 certificate object.
	 spki  SubjectPublicKeyInfo, should be freed with free_SubjectPublicKey-
	 Info().

     Returns
	 An hx509 error code, see hx509_get_error_string().

   int	  hx509_cert_get_SPKI_AlgorithmIdentifier    (hx509_context	context,
     hx509_cert p, AlgorithmIdentifier * alg)
     Get the AlgorithmIdentifier from the hx509 certificate.

     Parameters
	 context a hx509 context.
	 p a hx509 certificate object.
	 alg  AlgorithmIdentifier,  should  be	freed with free_AlgorithmIdenti-
	 fier(). The algorithmidentifier is typicly rsaEncryption, or  id-ecPub-
	 licKey, or some other public key mechanism.

     Returns
	 An hx509 error code, see hx509_get_error_string().

   int hx509_cert_get_subject (hx509_cert p, hx509_name * name)
     Return the name of the subject of the hx509 certificate.

     Parameters
	 p a hx509 certificate object.
	 name  a  pointer to a hx509 name, should be freed by hx509_name_free().
	 See also hx509_cert_get_base_subject().

     Returns
	 An hx509 error code, see hx509_get_error_string().

   int hx509_cert_get_subject_unique_id (hx509_context	context,  hx509_cert  p,
     heim_bit_string * subject)
     Get a copy of the Subect Unique ID

     Parameters
	 context a hx509_context
	 p a hx509 certificate
	 subject the subject id returned, free with der_free_bit_string()

     Returns
	 An  hx509  error  code,  see  hx509_get_error_string().  The error code
	 HX509_EXTENSION_NOT_FOUND is returned if the certificate doesn't have a
	 subjectUniqueID

   hx509_cert hx509_cert_init (hx509_context context,  const  Certificate  *  c,
     heim_error_t * error)
     Allocate  and init an hx509 certificate object from the decoded certificate
     `cA'.

     Parameters
	 context A hx509 context.
	 c
	 error

     Returns
	 Returns an hx509 certificate

   hx509_cert hx509_cert_init_data (hx509_context context,  const  void  *  ptr,
     size_t len, heim_error_t * error)
     Just  like  hx509_cert_init(), but instead of a decode certificate takes an
     pointer and length to a memory region that contains a DER/BER encoded  cer-
     tificate.

     If  the memory region doesn't contain just the certificate and nothing more
     the function will fail with HX509_EXTRA_DATA_AFTER_STRUCTURE.

     Parameters
	 context A hx509 context.
	 ptr pointer to memory region containing encoded certificate.
	 len length of memory region.
	 error possibly returns an error

     Returns
	 An hx509 certificate

   hx509_cert hx509_cert_ref (hx509_cert cert)
     Add a reference to a hx509 certificate object.

     Parameters
	 cert a pointer to an hx509 certificate object.

     Returns
	 the same object as is passed in.

   int hx509_cert_set_friendly_name (hx509_cert cert, const char * name)
     Set the friendly name on the certificate.

     Parameters
	 cert The certificate to set the friendly name on
	 name Friendly name.

     Returns
	 An hx509 error code, see hx509_get_error_string().

   int hx509_print_cert (hx509_context context, hx509_cert cert, FILE * out)
     Print a simple representation of a certificate

     Parameters
	 context A hx509 context, can be NULL
	 cert certificate to print
	 out the stdio output stream, if NULL, stdout is used

     Returns
	 An hx509 error code

   int hx509_query_alloc (hx509_context context, hx509_query ** q)
     Allocate an query controller. Free using hx509_query_free().

     Parameters
	 context A hx509 context.
	 q return pointer to a hx509_query.

     Returns
	 An hx509 error code, see hx509_get_error_string().

   void hx509_query_free (hx509_context context, hx509_query * q)
     Free the query controller.

     Parameters
	 context A hx509 context.
	 q a pointer to the query controller.

   int	hx509_query_match_cmp_func  (hx509_query  *   q,   int(*)(hx509_context,
     hx509_cert, void *) func, void * ctx)
     Set the query controller to match using a specific match function.

     Parameters
	 q a hx509 query controller.
	 func  function  to use for matching, if the argument is NULL, the match
	 function is removed.
	 ctx context passed to the function.

     Returns
	 An hx509 error code, see hx509_get_error_string().

   int hx509_query_match_eku (hx509_query * q, const heim_oid * eku)
     Set the query controller to require an one specific EKU (extended	key  us-
     age).  Any previous EKU matching is overwitten. If NULL is passed in as the
     eku, the EKU requirement is reset.

     Parameters
	 q a hx509 query controller.
	 eku an EKU to match on.

     Returns
	 An hx509 error code, see hx509_get_error_string().

   int hx509_query_match_friendly_name (hx509_query * q, const char * name)
     Set the query controller to match on a friendly name

     Parameters
	 q a hx509 query controller.
	 name a friendly name to match on

     Returns
	 An hx509 error code, see hx509_get_error_string().

   int hx509_query_match_issuer_serial (hx509_query * q, const	Name  *  issuer,
     const heim_integer * serialNumber)
     Set  the  issuer  and  serial  number of match in the query controller. The
     function make copies of the isser and serial number.

     Parameters
	 q a hx509 query controller
	 issuer issuer to search for
	 serialNumber the serialNumber of the issuer.

     Returns
	 An hx509 error code, see hx509_get_error_string().

   void hx509_query_match_option (hx509_query * q, hx509_query_option option)
     Set match options for the hx509 query controller.

     Parameters
	 q query controller.
	 option options to control the query controller.

     Returns
	 An hx509 error code, see hx509_get_error_string().

   void hx509_query_statistic_file (hx509_context context, const char * fn)
     Set a statistic file for the query statistics.

     Parameters
	 context A hx509 context.
	 fn statistics file name

   void hx509_query_unparse_stats (hx509_context context, int printtype, FILE  *
     out)
     Unparse the statistics file and print the result on a FILE descriptor.

     Parameters
	 context A hx509 context.
	 printtype tyep to print
	 out the FILE to write the data on.

   void hx509_verify_ctx_f_allow_default_trustanchors (hx509_verify_ctx ctx, int
     boolean)
     Allow  using  the	operating system builtin trust anchors if no other trust
     anchors are configured.

     Parameters
	 ctx a verification context
	 boolean if non zero, useing the operating  systems  builtin  trust  an-
	 chors.

     Returns
	 An hx509 error code, see hx509_get_error_string().

   int	hx509_verify_hostname (hx509_context context, const hx509_cert cert, int
     flags, hx509_hostname_type type, const char * hostname, const struct  sock-
     addr * sa, int sa_size)
     Verify  that the certificate is allowed to be used for the hostname and ad-
     dress.

     Parameters
	 context A hx509 context.
	 cert the certificate to match with
	 flags Flags to modify the behavior:

	 * HX509_VHN_F_ALLOW_NO_MATCH no match is ok

	 type type of hostname:

	 * HX509_HN_HOSTNAME for plain hostname.

	 * HX509_HN_DNSSRV for DNS SRV names.

	 hostname the hostname to check
	 sa address of the host
	 sa_size length of address

     Returns
	 An hx509 error code, see hx509_get_error_string().

Author
     Generated automatically by Doxygen for Heimdal x509 library from the source
     code.

Version 7.8.0			 Tue Nov 15 2022		   hx509_cert(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=hx509_cert_get_serialnumber&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help