OBJ_obj2txt(objbuf, 80, fld, 1);
OBJ_obj2txt(objbuf, sizeof objbuf, fld, 1);
static int asn1_primitive_print(BIO *out, void *fld, long utype, int indent, const char *name){	ASN1_STRING *str = fld;	if(fld) {		if(utype == V_ASN1_BOOLEAN) {			int *bool = fld;if(*bool == -1) printf("BOOL MISSING\n");			BIO_printf(out, "%*s%s:%s", indent, "", "BOOLEAN", *bool ? "TRUE" : "FALSE");		} else if((utype == V_ASN1_INTEGER) 			  || (utype == V_ASN1_ENUMERATED)) {			char *s, *nm;			s = i2s_ASN1_INTEGER(NULL, fld);			if(utype == V_ASN1_INTEGER) nm = "INTEGER";			else nm = "ENUMERATED";			BIO_printf(out, "%*s%s:%s", indent, "", nm, s);			OPENSSL_free(s);		} else if(utype == V_ASN1_NULL) {			BIO_printf(out, "%*s%s", indent, "", "NULL");		} else if(utype == V_ASN1_UTCTIME) {			BIO_printf(out, "%*s%s:%s:", indent, "", name, "UTCTIME");			ASN1_UTCTIME_print(out, str);		} else if(utype == V_ASN1_GENERALIZEDTIME) {			BIO_printf(out, "%*s%s:%s:", indent, "", name, "GENERALIZEDTIME");			ASN1_GENERALIZEDTIME_print(out, str);		} else if(utype == V_ASN1_OBJECT) {			char objbuf[80], *ln;			ln = OBJ_nid2ln(OBJ_obj2nid(fld));			if(!ln) ln = "";			OBJ_obj2txt(objbuf, 80, fld, 1);			BIO_printf(out, "%*s%s:%s (%s)", indent, "", "OBJECT", ln, objbuf);		} else {			BIO_printf(out, "%*s%s:", indent, "", name);			ASN1_STRING_print_ex(out, str, ASN1_STRFLGS_DUMP_UNKNOWN|ASN1_STRFLGS_SHOW_TYPE);		}		BIO_printf(out, "\n");	} else BIO_printf(out, "%*s%s [ABSENT]\n", indent, "", name);	return 1;}