ASN1_UNIVERSALSTRING_TO_STRING(3) | Library Functions Manual | ASN1_UNIVERSALSTRING_TO_STRING(3)

# NAME

`ASN1_UNIVERSALSTRING_to_string` — recode UTF-32 to ISO Latin-1

# SYNOPSIS

library “libcrypto”
`#include <openssl/asn1.h>`

int
`ASN1_UNIVERSALSTRING_to_string`(ASN1_UNIVERSALSTRING *string);

# DESCRIPTION

`ASN1_UNIVERSALSTRING_to_string`() assumes that the given string is encoded in UTF-32, recodes it in place to ISO Latin-1, and changes the type according to ASN1_PRINTABLE_type(3).

`ASN1_UNIVERSALSTRING_to_string`() fails and leaves the string unchanged if its ASN1_STRING_type(3) is not `V_ASN1_UNIVERSALSTRING`, if its ASN1_STRING_length(3) is not a multiple of four bytes, or if any of its characters cannot be represented in ISO Latin-1.

In case of success, the ASN1_STRING_length(3) of the string is reduced by a factor of four.

# RETURN VALUES

`ASN1_UNIVERSALSTRING_to_string`() returns 1 on success or 0 on failure.

# SEE ALSO

ASN1_mbstring_copy(3), ASN1_STRING_new(3), ASN1_STRING_to_UTF8(3)

# HISTORY

`ASN1_UNIVERSALSTRING_to_string`() first appeared in SSLeay 0.8.0 and has been available since OpenBSD 2.4.

June 8, 2025 | Debian