ASN1_PRINTABLE_TYPE(3) | Library Functions Manual | ASN1_PRINTABLE_TYPE(3)

# NAME

`ASN1_PRINTABLE_type` — classify a single-byte character string

# SYNOPSIS

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

int
`ASN1_PRINTABLE_type`(const unsigned char *string, int len);

# DESCRIPTION

`ASN1_PRINTABLE_type`() assumes that the given string consists of single-byte characters and classifies it according to which kinds characters occur. If len is greater than 0, at most len characters are inspected. Otherwise, the string needs to be NUL-terminated.

# RETURN VALUES

If the given string contains a character outside the ascii(7) range, `ASN1_PRINTABLE_type`() returns `V_ASN1_T61STRING`.

Otherwise, if it contains a character that is neither a letter nor a digit nor the space character (‘`` ’, ASCII 0x20) nor the apostrophe quote (‘`'`’, ASCII 0x27) nor contained in the set "()+,-./:=?", it returns `V_ASN1_IA5STRING`.

Otherwise, including if string is a `NULL` pointer or points to an empty string, it returns `V_ASN1_PRINTABLESTRING`.

# SEE ALSO

ASN1_mbstring_copy(3), ASN1_STRING_new(3), ASN1_STRING_to_UTF8(3), isascii(3), ascii(7)

# HISTORY

`ASN1_PRINTABLE_type`() first appeared in SSLeay 0.4.5d, has been part of the public API since SSLeay 0.5.1, and has been available since OpenBSD 2.4.

# CAVEATS

The ASN.1 notion of what constitutes a PrintableString is more restrictive than what the C library function isprint(3) considers printable.

June 8, 2025 | Debian