# hx509 name functions

## Functions
int | hx509_name_to_string (const hx509_name name, char **str)
int | hx509_name_cmp (hx509_name n1, hx509_name n2)
int | hx509_parse_name (hx509_context context, const char *str, hx509_name *name)
int | hx509_name_copy (hx509_context context, const hx509_name from, hx509_name *to)
int | hx509_name_to_Name (const hx509_name from, Name *to)
int | hx509_name_expand (hx509_context context, hx509_name name, hx509_env env)
void | hx509_name_free (hx509_name *name)
int | hx509_unparse_der_name (const void *data, size_t length, char **str)
int | hx509_name_binary (const hx509_name name, heim_octet_string *os)
int | hx509_name_is_null_p (const hx509_name name)
int | hx509_general_name_unparse (GeneralName *name, char **str)

## Detailed Description

See the PKIX/X.509 Names for description and examples.

## Function Documentation

int hx509_general_name_unparse | ( | GeneralName * | name,
|  | char ** | str |
| ) |  |  |

Unparse the hx509 name in name into a string.

Parameters:

  | name | the name to print
  | str | an allocated string returns the name in string form

Returns:
  An hx509 error code, see hx509_get_error_string().

int hx509_name_binary | ( | const hx509_name | name,
|  | heim_octet_string * | os |
| ) |  |  |

Convert a hx509_name object to DER encoded name.

Parameters:

  | name | name to concert
  | os | data to a DER encoded name, free the resulting octet string with hx509_xfree(os->data).

Returns:
  An hx509 error code, see hx509_get_error_string().

int hx509_name_cmp | ( | hx509_name | n1,
|  | hx509_name | n2 |
| ) |  |  |

Compare to hx509 name object, useful for sorting.

Parameters:

  | n1 | a hx509 name object.
  | n2 | a hx509 name object.

Returns:
  0 the objects are the same, returns > 0 is n2 is "larger" then n2, < 0 if n1 is "smaller" then n2.

int hx509_name_copy | ( | hx509_context | context,
|  | const hx509_name | from,
|  | hx509_name * | to |
| ) |  |  |

Copy a hx509 name object.

Parameters:

  | context | A hx509 cotext.
  | from | the name to copy from
  | to | the name to copy to

Returns:
  An hx509 error code, see hx509_get_error_string().

int hx509_name_expand | ( | hx509_context | context,
|  | hx509_name | name,
|  | hx509_env | env |
| ) |  |  |

Expands variables in the name using env. Variables are on the form ${name}. Useful when dealing with certificate templates.

Parameters:

  | context | A hx509 cotext.
  | name | the name to expand.
  | env | environment variable to expand.

Returns:
  An hx509 error code, see hx509_get_error_string().

Only UTF8String rdnSequence names are allowed

void hx509_name_free | ( | hx509_name * | name | ) |

Free a hx509 name object, upond return *name will be NULL.

Parameters:

  | name | a hx509 name object to be freed.

int hx509_name_is_null_p | ( | const hx509_name | name | ) |

Unparse the hx509 name in name into a string.

Parameters:

  | name | the name to check if its empty/null.

Returns:
  non zero if the name is empty/null.

int hx509_name_to_Name | ( | const hx509_name | from,
|  | Name * | to |
| ) |  |  |

Convert a hx509_name into a Name.

Parameters:

  | from | the name to copy from
  | to | the name to copy to

Returns:
  An hx509 error code, see hx509_get_error_string().

int hx509_name_to_string | ( | const hx509_name | name,
|  | char ** | str |
| ) |  |  |

Convert the hx509 name object into a printable string. The resulting string should be freed with free().

Parameters:

  | name | name to print
  | str | the string to return

Returns:
  An hx509 error code, see hx509_get_error_string().

int hx509_parse_name | ( | hx509_context | context,
|  | const char * | str,
|  | hx509_name * | name |
| ) |  |  |

Parse a string into a hx509 name object.

Parameters:

  | context | A hx509 context.
  | str | a string to parse.
  | name | the resulting object, NULL in case of error.

Returns:
  An hx509 error code, see hx509_get_error_string().

int hx509_unparse_der_name | ( | const void * | data,
|  | size_t | length,
|  | char ** | str |
| ) |  |  |

Convert a DER encoded name info a string.

Parameters:

  | data | data to a DER/BER encoded name
  | length | length of data
  | str | the resulting string, is NULL on failure.

Returns:
  An hx509 error code, see hx509_get_error_string().