X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_OBJ(X509_NAME_ENTRY **ne, ASN1_OBJECT *obj, int type, const unsigned char *bytes, int len) { X509_NAME_ENTRY *ret; if ((ne == NULL) || (*ne == NULL)) { if ((ret=X509_NAME_ENTRY_new()) == NULL) return(NULL); } else ret= *ne; if (!X509_NAME_ENTRY_set_object(ret,obj)) goto err; if (!X509_NAME_ENTRY_set_data(ret,type,bytes,len)) goto err; if ((ne != NULL) && (*ne == NULL)) *ne=ret; return(ret); err: if ((ne == NULL) || (ret != *ne)) X509_NAME_ENTRY_free(ret); return(NULL); }
inline void name_entry::set_data(int type, const void* _data, size_t data_len) { error::throw_error_if_not(X509_NAME_ENTRY_set_data(ptr().get(), type, static_cast<const unsigned char*>(_data), static_cast<int>(data_len)) != 0); }