OpenBSD manual page server

Manual Page Search Parameters

ASN1_STRING_NEW(3) Library Functions Manual ASN1_STRING_NEW(3)

ASN1_STRING_new, ASN1_STRING_type_new, ASN1_STRING_free, ASN1_OCTET_STRING_new, ASN1_OCTET_STRING_free, ASN1_BIT_STRING_new, ASN1_BIT_STRING_free, ASN1_INTEGER_new, ASN1_INTEGER_free, ASN1_ENUMERATED_new, ASN1_ENUMERATED_free, ASN1_UTF8STRING_new, ASN1_UTF8STRING_free, ASN1_IA5STRING_new, ASN1_IA5STRING_free, ASN1_UNIVERSALSTRING_new, ASN1_UNIVERSALSTRING_free, ASN1_BMPSTRING_new, ASN1_BMPSTRING_free, ASN1_GENERALSTRING_new, ASN1_GENERALSTRING_free, ASN1_T61STRING_new, ASN1_T61STRING_free, ASN1_VISIBLESTRING_new, ASN1_VISIBLESTRING_free, ASN1_PRINTABLESTRING_new, ASN1_PRINTABLESTRING_free, ASN1_PRINTABLE_new, ASN1_PRINTABLE_free, DIRECTORYSTRING_new, DIRECTORYSTRING_free, DISPLAYTEXT_new, DISPLAYTEXT_free, ASN1_GENERALIZEDTIME_new, ASN1_GENERALIZEDTIME_free, ASN1_UTCTIME_new, ASN1_UTCTIME_free, ASN1_TIME_new, ASN1_TIME_freeallocate and free ASN1_STRING objects

#include <openssl/asn1.h>

ASN1_STRING *
ASN1_STRING_new(void);

ASN1_STRING *
ASN1_STRING_type_new(int type);

void
ASN1_STRING_free(ASN1_STRING *a);

ASN1_OCTET_STRING *
ASN1_OCTET_STRING_new(void);

void
ASN1_OCTET_STRING_free(ASN1_OCTET_STRING *a);

ASN1_BIT_STRING *
ASN1_BIT_STRING_new(void);

void
ASN1_BIT_STRING_free(ASN1_BIT_STRING *a);

ASN1_INTEGER *
ASN1_INTEGER_new(void);

void
ASN1_INTEGER_free(ASN1_INTEGER *a);

ASN1_ENUMERATED *
ASN1_ENUMERATED_new(void);

void
ASN1_ENUMERATED_free(ASN1_ENUMERATED *a);

ASN1_UTF8STRING *
ASN1_UTF8STRING_new(void);

void
ASN1_UTF8STRING_free(ASN1_UTF8STRING *a);

ASN1_IA5STRING *
ASN1_IA5STRING_new(void);

void
ASN1_IA5STRING_free(ASN1_IA5STRING *a);

ASN1_UNIVERSALSTRING *
ASN1_UNIVERSALSTRING_new(void);

void
ASN1_UNIVERSALSTRING_free(ASN1_UNIVERSALSTRING *a);

ASN1_BMPSTRING *
ASN1_BMPSTRING_new(void);

void
ASN1_BMPSTRING_free(ASN1_BMPSTRING *a);

ASN1_GENERALSTRING *
ASN1_GENERALSTRING_new(void);

void
ASN1_GENERALSTRING_free(ASN1_GENERALSTRING *a);

ASN1_T61STRING *
ASN1_T61STRING_new(void);

void
ASN1_T61STRING_free(ASN1_T61STRING *a);

ASN1_VISIBLESTRING *
ASN1_VISIBLESTRING_new(void);

void
ASN1_VISIBLESTRING_free(ASN1_VISIBLESTRING *a);

ASN1_PRINTABLESTRING *
ASN1_PRINTABLESTRING_new(void);

void
ASN1_PRINTABLESTRING_free(ASN1_PRINTABLESTRING *a);

ASN1_STRING *
ASN1_PRINTABLE_new(void);

void
ASN1_PRINTABLE_free(ASN1_STRING *a);

ASN1_STRING *
DIRECTORYSTRING_new(void);

void
DIRECTORYSTRING_free(ASN1_STRING *a);

ASN1_STRING *
DISPLAYTEXT_new(void);

void
DISPLAYTEXT_free(ASN1_STRING *a);

ASN1_GENERALIZEDTIME *
ASN1_GENERALIZEDTIME_new(void);

void
ASN1_GENERALIZEDTIME_free(ASN1_GENERALIZEDTIME *a);

ASN1_UTCTIME *
ASN1_UTCTIME_new(void);

void
ASN1_UTCTIME_free(ASN1_UTCTIME *a);

ASN1_TIME *
ASN1_TIME_new(void);

void
ASN1_TIME_free(ASN1_TIME *a);

The ASN1_STRING object can represent a variety of ASN.1 built-in types. It can store a type and a value.

All the () functions allocate and initialize an empty ASN1_STRING object. The following table shows the type assigned to the new object, and which ASN.1 type it represents.

()
() type argument
() OCTET STRING
() BIT STRING
() INTEGER
() ENUMERATED
() UTF8String
() IA5String
() UniversalString
() BMPString
() GeneralString
() T61String
() VisibleString
() PrintableString
()
()
()
() GeneralizedTime
() UTCTime
() TIME

All the () functions free a including any data contained in it. If a is a NULL pointer, no action occurs.

All the *_new() functions return the new ASN1_STRING object if successful; otherwise NULL is returned and an error code can be retrieved with ERR_get_error(3).

ASN1_BIT_STRING_num_asc(3), ASN1_BIT_STRING_set(3), ASN1_INTEGER_get(3), ASN1_item_pack(3), ASN1_mbstring_copy(3), ASN1_PRINTABLE_type(3), ASN1_STRING_length(3), ASN1_STRING_print_ex(3), ASN1_time_parse(3), ASN1_TIME_set(3), ASN1_TYPE_get(3), ASN1_UNIVERSALSTRING_to_string(3), d2i_ASN1_OBJECT(3), d2i_ASN1_OCTET_STRING(3), i2a_ASN1_STRING(3), X509_cmp_time(3), X509_EXTENSION_get_object(3), X509_get_ext_by_OBJ(3), X509_NAME_ENTRY_get_object(3)

ASN1_OCTET_STRING_new(), ASN1_OCTET_STRING_free(), ASN1_BIT_STRING_new(), ASN1_BIT_STRING_free(), ASN1_INTEGER_new(), ASN1_INTEGER_free(), ASN1_IA5STRING_new(), ASN1_IA5STRING_free(), ASN1_T61STRING_new(), ASN1_T61STRING_free(), ASN1_PRINTABLESTRING_new(), ASN1_PRINTABLESTRING_free(), ASN1_PRINTABLE_new(), ASN1_PRINTABLE_free(), ASN1_UTCTIME_new(), and ASN1_UTCTIME_free() first appeared in SSLeay 0.5.1. ASN1_STRING_new(), ASN1_STRING_type_new(), and ASN1_STRING_free() first appeared in SSLeay 0.6.5. ASN1_UNIVERSALSTRING_new(), ASN1_UNIVERSALSTRING_free(), ASN1_GENERALSTRING_new(), and ASN1_GENERALSTRING_free() first appeared in SSLeay 0.8.0. ASN1_BMPSTRING_new(), ASN1_BMPSTRING_free(), ASN1_GENERALIZEDTIME_new(), and ASN1_GENERALIZEDTIME_free() first appeared in SSLeay 0.9.0. All these functions have been available since OpenBSD 2.4.

ASN1_ENUMERATED_new(), ASN1_ENUMERATED_free(), ASN1_TIME_new(), and ASN1_TIME_free() first appeared in OpenSSL 0.9.2b. ASN1_UTF8STRING_new(), ASN1_UTF8STRING_free(), ASN1_VISIBLESTRING_new(), ASN1_VISIBLESTRING_free(), DIRECTORYSTRING_new(), DIRECTORYSTRING_free(), DISPLAYTEXT_new(), and DISPLAYTEXT_free() first appeared in OpenSSL 0.9.3. These functions have been available since OpenBSD 2.6.

ASN1_OCTET_STRING, ASN1_BIT_STRING, ASN1_INTEGER, ASN1_ENUMERATED, ASN1_UTF8STRING, ASN1_IA5STRING, ASN1_UNIVERSALSTRING, ASN1_BMPSTRING, ASN1_GENERALSTRING, ASN1_T61STRING, ASN1_VISIBLESTRING, ASN1_PRINTABLESTRING, ASN1_GENERALIZEDTIME, ASN1_UTCTIME, and ASN1_TIME are merely typedef aliases of ASN1_STRING and provide no type safety whatsoever.

December 14, 2021 OpenBSD-7.1