Functions | |
| int | hx509_cert_init (hx509_context context, const Certificate *c, hx509_cert *cert) |
| int | hx509_cert_init_data (hx509_context context, const void *ptr, size_t len, hx509_cert *cert) |
| 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, SubjectPublicKeyInfo *spki) |
| int | hx509_cert_get_SPKI_AlgorithmIdentifier (hx509_context context, hx509_cert p, AlgorithmIdentifier *alg) |
| 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_cmp_func (hx509_query *q, int(*func)(void *, hx509_cert), 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_cert_binary | ( | hx509_context | context, | |
| hx509_cert | c, | |||
| heim_octet_string * | os | |||
| ) |
Encodes the hx509 certificate as a DER encode binary.
| context | A hx509 context. | |
| c | the certificate to encode. | |
| os | the encode certificate, set to NULL, 0 on case of error. Free the returned structure with hx509_xfree(). |
| 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.
| 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. |
| int hx509_cert_cmp | ( | hx509_cert | p, | |
| hx509_cert | q | |||
| ) |
Compare to hx509 certificate object, useful for sorting.
| p | a hx509 certificate object. | |
| q | a hx509 certificate object. |
| 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().
| context | A hx509 context. | |
| cert | a hx509 certificate object. | |
| oid | an oid to for SubjectAltName. | |
| list | list of matching SubjectAltName. |
| 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.
| 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.
| cert | hx509 certificate object to search | |
| oid | an oid to search for. |
| 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 certiicate is a verified proxy certificate, the this function return the base certificate (root of the proxy chain). If the proxy certificate is not verified with the base certificate HX509_PROXY_CERTIFICATE_NOT_CANONICALIZED is returned.
| 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(). |
| const char* hx509_cert_get_friendly_name | ( | hx509_cert | cert | ) |
Get friendly name of the certificate.
| cert | cert to get the friendly name from. |
| int hx509_cert_get_issuer | ( | hx509_cert | p, | |
| hx509_name * | name | |||
| ) |
Return the name of the issuer of the hx509 certificate.
| p | a hx509 certificate object. | |
| name | a pointer to a hx509 name, should be freed by hx509_name_free(). |
| time_t hx509_cert_get_notAfter | ( | hx509_cert | p | ) |
Get notAfter time of the certificate.
| p | a hx509 certificate object. |
| time_t hx509_cert_get_notBefore | ( | hx509_cert | p | ) |
Get notBefore time of the certificate.
| p | a hx509 certificate object. |
| int hx509_cert_get_serialnumber | ( | hx509_cert | p, | |
| heim_integer * | i | |||
| ) |
Get serial number of the certificate.
| p | a hx509 certificate object. | |
| i | serial number, should be freed ith der_free_heim_integer(). |
| int hx509_cert_get_SPKI | ( | hx509_context | context, | |
| hx509_cert | p, | |||
| SubjectPublicKeyInfo * | spki | |||
| ) |
Get the SubjectPublicKeyInfo structure from the hx509 certificate.
| context | a hx509 context. | |
| p | a hx509 certificate object. | |
| spki | SubjectPublicKeyInfo, should be freed with free_SubjectPublicKeyInfo(). |
| int hx509_cert_get_SPKI_AlgorithmIdentifier | ( | hx509_context | context, | |
| hx509_cert | p, | |||
| AlgorithmIdentifier * | alg | |||
| ) |
Get the AlgorithmIdentifier from the hx509 certificate.
| context | a hx509 context. | |
| p | a hx509 certificate object. | |
| alg | AlgorithmIdentifier, should be freed with free_AlgorithmIdentifier(). |
| int hx509_cert_get_subject | ( | hx509_cert | p, | |
| hx509_name * | name | |||
| ) |
Return the name of the subject of the hx509 certificate.
| 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(). |
| int hx509_cert_init | ( | hx509_context | context, | |
| const Certificate * | c, | |||
| hx509_cert * | cert | |||
| ) |
Allocate and init an hx509 certificate object from the decoded certificate `cī.
| context | A hx509 context. | |
| c | ||
| cert |
| int hx509_cert_init_data | ( | hx509_context | context, | |
| const void * | ptr, | |||
| size_t | len, | |||
| hx509_cert * | cert | |||
| ) |
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 certificate.
If the memory region doesn't contain just the certificate and nothing more the function will fail with HX509_EXTRA_DATA_AFTER_STRUCTURE.
| context | A hx509 context. | |
| ptr | pointer to memory region containing encoded certificate. | |
| len | length of memory region. | |
| cert | a return pointer to a hx509 certificate object, will contain NULL on error. |
| hx509_cert hx509_cert_ref | ( | hx509_cert | cert | ) |
Add a reference to a hx509 certificate object.
| cert | a pointer to an hx509 certificate object. |
| int hx509_cert_set_friendly_name | ( | hx509_cert | cert, | |
| const char * | name | |||
| ) |
Set the friendly name on the certificate.
| cert | The certificate to set the friendly name on | |
| name | Friendly name. |
| int hx509_query_alloc | ( | hx509_context | context, | |
| hx509_query ** | q | |||
| ) |
Allocate an query controller. Free using hx509_query_free().
| context | A hx509 context. | |
| q | return pointer to a hx509_query. |
| void hx509_query_free | ( | hx509_context | context, | |
| hx509_query * | q | |||
| ) |
Free the query controller.
| context | A hx509 context. | |
| q | a pointer to the query controller. |
| int hx509_query_match_cmp_func | ( | hx509_query * | q, | |
| int(*)(void *, hx509_cert) | func, | |||
| void * | ctx | |||
| ) |
Set the query controller to match using a specific match function.
| 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. |
| int hx509_query_match_friendly_name | ( | hx509_query * | q, | |
| const char * | name | |||
| ) |
Set the query controller to match on a friendly name
| q | a hx509 query controller. | |
| name | a friendly name to match on |
| 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.
| q | a hx509 query controller | |
| issuer | issuer to search for | |
| serialNumber | the serialNumber of the issuer. |
| void hx509_query_match_option | ( | hx509_query * | q, | |
| hx509_query_option | option | |||
| ) |
Set match options for the hx509 query controller.
| q | query controller. | |
| option | options to control the query controller. |
| void hx509_query_statistic_file | ( | hx509_context | context, | |
| const char * | fn | |||
| ) |
Set a statistic file for the query statistics.
| 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.
| 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.
| ctx | a verification context | |
| boolean | if non zero, useing the operating systems builtin trust anchors. |
| 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 | |||
| ) |
Verify that the certificate is allowed to be used for the hostname and address.
| context | A hx509 context. | |
| cert | the certificate to match with | |
| flags | Flags to modify the behavior:
| |
| type | type of hostname:
| |
| hostname | the hostname to check | |
| sa | address of the host | |
| sa_size | length of address |
1.5.4