static int openssl_xattr_object(lua_State*L) { X509_ATTRIBUTE* attr = CHECK_OBJECT(1,X509_ATTRIBUTE, "openssl.x509_attribute"); int attrtype = luaL_checkint(L, 2); if(lua_isnone(L,3)){ ASN1_OBJECT* obj = X509_ATTRIBUTE_get0_object(attr); PUSH_OBJECT(OBJ_nid2obj(obj->nid),"openssl.asn1_object"); return 1; }else { ASN1_OBJECT* obj = CHECK_OBJECT(2,ASN1_OBJECT,"openssl.asn1_object"); int ret = X509_ATTRIBUTE_set1_object(attr,obj); return openssl_pushresult(L, ret); } }
static int openssl_xattr_object(lua_State*L) { X509_ATTRIBUTE* attr = CHECK_OBJECT(1, X509_ATTRIBUTE, "openssl.x509_attribute"); if (lua_isnone(L, 2)) { ASN1_OBJECT* obj = X509_ATTRIBUTE_get0_object(attr); openssl_push_asn1object(L, obj); return 1; } else { int nid = openssl_get_nid(L, 2); ASN1_OBJECT* obj; int ret; luaL_argcheck(L, nid != NID_undef, 2, "invalid asn1_object identity"); obj = OBJ_nid2obj(nid); ret = X509_ATTRIBUTE_set1_object(attr, obj); return openssl_pushresult(L, ret); } }