DragonFly On-Line Manual Pages
    
    
	
ASN1_ITEM_NEW(3)      DragonFly Library Functions Manual      ASN1_ITEM_NEW(3)
NAME
     ASN1_item_new, ASN1_item_free -- generic ASN.1 value constructor and
     destructor
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
     occur.  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
     example: 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
     ASN1_item_new() returns the new ASN1_VALUE object or NULL if an error
     occurs.
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.
DragonFly 5.5			March 22, 2018			 DragonFly 5.5