X509_ATTRIBUTE *X509_ATTRIBUTE_create(int nid, int atrtype, char *value)
X509_ATTRIBUTE *X509_ATTRIBUTE_create(int nid, int atrtype, void *value)
X509_ATTRIBUTE *X509_ATTRIBUTE_create(int nid, int atrtype, char *value)	{	X509_ATTRIBUTE *ret=NULL;	ASN1_TYPE *val=NULL;	if ((ret=X509_ATTRIBUTE_new()) == NULL)		return(NULL);	ret->object=OBJ_nid2obj(nid);	ret->set=1;	if ((ret->value.set=sk_ASN1_TYPE_new_null()) == NULL) goto err;	if ((val=ASN1_TYPE_new()) == NULL) goto err;	if (!sk_ASN1_TYPE_push(ret->value.set,val)) goto err;	ASN1_TYPE_set(val,atrtype,value);	return(ret);err:	if (ret != NULL) X509_ATTRIBUTE_free(ret);	if (val != NULL) ASN1_TYPE_free(val);	return(NULL);	}