OSSL_CMP_MSG_http_perform(3ssl)

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.

  1. 12
  2. 13
  3. Arch

History

The OpenSSL CMP support was added in OpenSSL 3.0.

The OSSL_CMP_MSG_http_perform() use of transfer_cb_arg was added in OpenSSL 3.5.

From openssl 3.6.5-1 in Arch Linux 2026-11-01. Parsed by carta from the page's man source.