inline size_t extension::write_der(void* buf) const { unsigned char* out = static_cast<unsigned char*>(buf); unsigned char** pout = out != NULL ? &out : NULL; int result = i2d_X509_EXTENSION(ptr().get(), pout); error::throw_error_if(result < 0); return result; }
static int openssl_xext_export(lua_State* L) { X509_EXTENSION *x = CHECK_OBJECT(1, X509_EXTENSION, "openssl.x509_extension"); unsigned char* p = NULL; int len = i2d_X509_EXTENSION(x, &p); if (len > 0) { lua_pushlstring(L, (const char *) p, len); } else lua_pushnil(L); return 1; };