ASN1_STRING *ASN1_pack_string (char *obj, int (*i2d)(), ASN1_STRING **oct)
ASN1_STRING *ASN1_pack_string (void *obj, int (*i2d)(), ASN1_STRING **oct)
ASN1_STRING *ASN1_pack_string (char *obj, int (*i2d)(), ASN1_STRING **oct){	unsigned char *p;	ASN1_STRING *octmp;	if (!oct || !*oct) {		if (!(octmp = ASN1_STRING_new ())) {			ASN1err(ASN1_F_ASN1_PACK_STRING,ERR_R_MALLOC_FAILURE);			return NULL;		}		if (oct) *oct = octmp;	} else octmp = *oct;			if (!(octmp->length = i2d(obj, NULL))) {		ASN1err(ASN1_F_ASN1_PACK_STRING,ASN1_R_ENCODE_ERROR);		return NULL;	}	if (!(p = Malloc (octmp->length))) {		ASN1err(ASN1_F_ASN1_PACK_STRING,ERR_R_MALLOC_FAILURE);		return NULL;	}	octmp->data = p;	i2d (obj, &p);	return octmp;}