static int openssl_xname_get_entry(lua_State*L) { X509_NAME* xn = CHECK_OBJECT(1, X509_NAME, "openssl.x509_name"); int lastpos = luaL_checkint(L, 2); X509_NAME_ENTRY *e = X509_NAME_get_entry(xn, lastpos); if (e) { return openssl_push_xname_entry(L, e); } return 0; };
static int openssl_xname_get_entry(lua_State*L) { X509_NAME* xn = CHECK_OBJECT(1, X509_NAME, "openssl.x509_name"); int lastpos = luaL_checkint(L, 2); int utf8 = lua_isnoneornil(L, 3) ? 1 : lua_toboolean(L, 3); X509_NAME_ENTRY *e = X509_NAME_get_entry(xn, lastpos); if (e) { return openssl_push_xname_entry(L, e, utf8); } return 0; };
static int openssl_xname_info(lua_State*L) { X509_NAME* name = CHECK_OBJECT(1, X509_NAME, "openssl.x509_name"); int i; int n_entries = X509_NAME_entry_count(name); lua_newtable(L); for (i = 0; i < n_entries; i++) { X509_NAME_ENTRY* entry = X509_NAME_get_entry(name, i); openssl_push_xname_entry(L, entry); lua_rawseti(L, -2, i + 1); } return 1; };
/*** return x509_name as table @function info @tparam[opt=false] boolean asobject table key will use asn1_object or short name of asn1_object @treturn table names @see new */ static int openssl_xname_info(lua_State*L) { X509_NAME* name = CHECK_OBJECT(1, X509_NAME, "openssl.x509_name"); int obj = lua_isnoneornil(L, 2) ? 0 : lua_toboolean(L, 2); int i, n; lua_newtable(L); for (i = 0, n = X509_NAME_entry_count(name); i < n; i++) { X509_NAME_ENTRY* entry = X509_NAME_get_entry(name, i); openssl_push_xname_entry(L, entry, obj); lua_rawseti(L, -2, i + 1); } return 1; };