=pod =head1 NAME ASN1_STRING_dup, ASN1_STRING_cmp, ASN1_STRING_set, ASN1_STRING_length, ASN1_STRING_type, ASN1_STRING_get0_data, ASN1_STRING_data, ASN1_STRING_to_UTF8 - ASN1_STRING utility functions =head1 SYNOPSIS #include int ASN1_STRING_length(ASN1_STRING *x); const unsigned char * ASN1_STRING_get0_data(const ASN1_STRING *x); unsigned char * ASN1_STRING_data(ASN1_STRING *x); ASN1_STRING * ASN1_STRING_dup(ASN1_STRING *a); int ASN1_STRING_cmp(ASN1_STRING *a, ASN1_STRING *b); int ASN1_STRING_set(ASN1_STRING *str, const void *data, int len); int ASN1_STRING_type(const ASN1_STRING *x); int ASN1_STRING_to_UTF8(unsigned char **out, const ASN1_STRING *in); =head1 DESCRIPTION These functions allow an B structure to be manipulated. ASN1_STRING_length() returns the length of the content of B. ASN1_STRING_get0_data() returns an internal pointer to the data of B. Since this is an internal pointer it should B be freed or modified in any way. ASN1_STRING_data() is similar to ASN1_STRING_get0_data() except the returned value is not constant. This function is deprecated: applications should use ASN1_STRING_get0_data() instead. ASN1_STRING_dup() returns a copy of the structure B. ASN1_STRING_cmp() compares B and B returning 0 if the two are identical. The string types and content are compared. ASN1_STRING_set() sets the data of string B to the buffer B or length B. The supplied data is copied. If B is -1 then the length is determined by strlen(data). ASN1_STRING_type() returns the type of B, using standard constants such as B. ASN1_STRING_to_UTF8() converts the string B to UTF8 format, the converted data is allocated in a buffer in B<*out>. The length of B is returned or a negative error code. The buffer B<*out> should be freed using OPENSSL_free(). =head1 NOTES Almost all ASN1 types in OpenSSL are represented as an B structure. Other types such as B are simply typedef'ed to B and the functions call the B equivalents. B is also used for some B types which consist entirely of primitive string types such as B and B