OSSL_CMP_MSG_http_perform3ssl
Client-side http(s) transfer of a cmp request-response pair
Usage
#include <openssl/cmp.h>OSSL_CMP_MSG *OSSL_CMP_MSG_http_perform(OSSL_CMP_CTX *ctx,const OSSL_CMP_MSG *req);
Overview
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).
Notes
CMP is defined in RFC 9810. HTTP transfer for CMP is defined in RFC 9811.
Return values
OSSL_CMP_MSG_http_perform() returns the received CMP response message on success, else NULL.
Releases
3 releases since Debian 12 (Bookworm); the text changed 2 times.