Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
ASN1_ITEM_NEW(3)       FreeBSD Library Functions Manual	      ASN1_ITEM_NEW(3)

NAME
     ASN1_item_new, ASN1_item_free -- generic ASN.1 value constructor and de-
     structor

SYNOPSIS
     #include <openssl/asn1.h>

     ASN1_VALUE	*
     ASN1_item_new(const ASN1_ITEM *it);

     void
     ASN1_item_free(ASN1_VALUE *val_in,	const ASN1_ITEM	*it);

DESCRIPTION
     ASN1_item_new() allocates and initializes an empty	ASN.1 value of the
     type described by the global static object	it.

     If	the item type described	by it is reference counted, ASN1_item_free()
     decrements	the reference count of val_in.	Otherwise, or if the reference
     count reaches 0, ASN1_item_free() frees val_in, assuming that it is of
     the type described	by it.	If the true type of val_in fails to match the
     specified it, buffer overflows and	segmentation faults are	likely to oc-
     cur.  It is not possible to recover the type of an	ASN1_VALUE object by
     inspecting	it; the	type always needs to be	remembered separately.

     ASN1_VALUE	is an incomplete type, and pointers to it always require cast-
     ing to the	correct	complete type before they can be dereferenced.	For
     all practical purposes, a pointer to ASN1_VALUE is	equivalent to a	void
     pointer.

     Depending on it, there are	more than 150 different	types that
     ASN1_item_new() may return.  Most of them are pointers to structures or
     pointers to arrays	of structures, but there are a few exceptions, for ex-
     ample: If it is ASN1_NULL_it, ASN1_item_new() returns a specific invalid
     pointer representing the unique ASN1_NULL object.	If it is
     ASN1_BOOLEAN_it or	LONG_it, ASN1_item_new() does not return a pointer at
     all, but a	long value cast	to ASN1_VALUE *.

RETURN VALUES
     The ASN1_item_new() function returns the new ASN1_VALUE object if suc-
     cessful; otherwise	NULL is	returned and an	error code can be retrieved
     with ERR_get_error(3).

SEE ALSO
     ASN1_item_d2i(3), ASN1_TYPE_new(3), d2i_ASN1_NULL(3), OBJ_nid2obj(3)

HISTORY
     ASN1_item_new() and ASN1_item_free() first	appeared in OpenSSL 0.9.7 and
     have been available since OpenBSD 3.2.

BUGS
     The ASN1_VALUE type compromises type safety and invites programming mis-
     takes that	will typically have severe consequences.

FreeBSD	13.0			 June 14, 2019			  FreeBSD 13.0

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | SEE ALSO | HISTORY | BUGS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=ASN1_item_new&sektion=3&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help