OSSL_CMP_MSG_http_perform() sends the given PKIMessage req to the CMP server specified in ctx and returns
the result obtained from it.
If OSSL_CMP_CTX_set_transfer_cb_arg(3) has been used to set the transfer callback argument then the
provided pointer bios is taken as a two-element BIO array to use for the exchange with the server as
described for the bio and rbio parameters of OSSL_HTTP_open(3). For instance, the two BIO pointers may
be equal and refer to a TLS connection, such as in BRSKI-AE where a pre-established TLS channel is reused
for CMP.
Otherwise the server specified via OSSL_CMP_CTX_set1_server(3) and optionally
OSSL_CMP_CTX_set_serverPort(3) is contacted, where the default port is 80 for HTTP and 443 for HTTPS.
The HTTP path (aka "CMP alias" in this context) to use is by default "/", otherwise the string specified
via OSSL_CMP_CTX_set1_serverPath(3). On success the function returns the server's response PKIMessage.
The function makes use of any HTTP callback function set via OSSL_CMP_CTX_set_http_cb(3). It respects
any timeout value set via OSSL_CMP_CTX_set_option(3) with an OSSL_CMP_OPT_MSG_TIMEOUT argument. It also
respects any HTTP(S) proxy options set via OSSL_CMP_CTX_set1_proxy(3) and OSSL_CMP_CTX_set1_no_proxy(3)
and the respective environment variables. Proxying plain HTTP is supported directly, while using a proxy
for HTTPS connections requires a suitable callback function such as OSSL_HTTP_proxy_connect(3).