else if (tag == V_ASN1_NUMERICSTRING) p="NUMERICSTRING"; else if (tag == V_ASN1_VIDEOTEXSTRING) p="VIDEOTEXSTRING"; else if (tag == V_ASN1_GENERALIZEDTIME) p="GENERALIZEDTIME"; else if (tag == V_ASN1_GRAPHICSTRING) p="GRAPHICSTRING"; else if (tag == V_ASN1_VISIBLESTRING) p="VISIBLESTRING"; else if (tag == V_ASN1_GENERALSTRING) p="GENERALSTRING"; else if (tag == V_ASN1_UNIVERSALSTRING) p="UNIVERSALSTRING"; else if (tag == V_ASN1_BMPSTRING) p="BMPSTRING"; else p2="(unknown)";
static int asn1_print_info(BIO *bp, int tag, int xclass, int constructed,	     int indent)	{	static const char fmt[]="%-18s";	static const char fmt2[]="%2d %-15s";	char str[128];	const char *p,*p2=NULL;	if (constructed & V_ASN1_CONSTRUCTED)		p="cons: ";	else		p="prim: ";	if (BIO_write(bp,p,6) < 6) goto err;	if (indent)		{		if (indent > 128) indent=128;		memset(str,' ',indent);		if (BIO_write(bp,str,indent) < indent) goto err;		}	p=str;	if ((xclass & V_ASN1_PRIVATE) == V_ASN1_PRIVATE)		sprintf(str,"priv [ %d ] ",tag);	else if ((xclass & V_ASN1_CONTEXT_SPECIFIC) == V_ASN1_CONTEXT_SPECIFIC)		sprintf(str,"cont [ %d ]",tag);	else if ((xclass & V_ASN1_APPLICATION) == V_ASN1_APPLICATION)		sprintf(str,"appl [ %d ]",tag);	else if ((tag == V_ASN1_EOC) /* && (xclass == V_ASN1_UNIVERSAL) */)		p="EOC";	else if (tag == V_ASN1_BOOLEAN)		p="BOOLEAN";	else if (tag == V_ASN1_INTEGER)		p="INTEGER";	else if (tag == V_ASN1_ENUMERATED)		p="ENUMERATED";	else if (tag == V_ASN1_BIT_STRING)		p="BIT STRING";	else if (tag == V_ASN1_OCTET_STRING)		p="OCTET STRING";	else if (tag == V_ASN1_NULL)		p="NULL";	else if (tag == V_ASN1_OBJECT)		p="OBJECT";	else if (tag == V_ASN1_SEQUENCE)		p="SEQUENCE";	else if (tag == V_ASN1_SET)		p="SET";	else if (tag == V_ASN1_PRINTABLESTRING)		p="PRINTABLESTRING";	else if (tag == V_ASN1_T61STRING)		p="T61STRING";	else if (tag == V_ASN1_IA5STRING)		p="IA5STRING";	else if (tag == V_ASN1_UTCTIME)		p="UTCTIME";	/* extras */	else if (tag == V_ASN1_NUMERICSTRING)		p="NUMERICSTRING";	else if (tag == V_ASN1_VIDEOTEXSTRING)		p="VIDEOTEXSTRING";	else if (tag == V_ASN1_GENERALIZEDTIME)		p="GENERALIZEDTIME";	else if (tag == V_ASN1_GRAPHICSTRING)		p="GRAPHICSTRING";	else if (tag == V_ASN1_VISIBLESTRING)		p="VISIBLESTRING";	else if (tag == V_ASN1_GENERALSTRING)		p="GENERALSTRING";	else if (tag == V_ASN1_UNIVERSALSTRING)		p="UNIVERSALSTRING";	else if (tag == V_ASN1_BMPSTRING)		p="BMPSTRING";	else		p2="(unknown)";			if (p2 != NULL)		{		if (BIO_printf(bp,fmt2,tag,p2) <= 0) goto err;		}	else		{		if (BIO_printf(bp,fmt,p) <= 0) goto err;		}	return(1);err:	return(0);	}