OSSL_CMP_MSG_HTTP_PERFORM(3ossl)
π OSSL_CMP_MSG_HTTP_PERFORM π
okay bestie, so this one is from the 3ossl manual family β it's the OpenSSL page about client-side HTTP(S) transfer of a CMP request-response pair. Think of it as the little function that shoots your CMP request off to a server and brings the answer back. π
β¨ SYNOPSIS β¨
#include <openssl/cmp.h>
OSSL_CMP_MSG *OSSL_CMP_MSG_http_perform(OSSL_CMP_CTX *ctx,
const OSSL_CMP_MSG *req);
πΈ DESCRIPTION πΈ
OSSL_CMP_MSG_http_perform() is literally the messenger girlie of CMP π β it sends the given PKIMessage req to the CMP server specified in ctx and returns the result it got back from it. no cap.
π¦ the transfer-callback route
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 β exactly 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. iykyk π
π the "just go find the server" route
Otherwise, the server specified via OSSL_CMP_CTX_set1_server(3) and optionally OSSL_CMP_CTX_set_serverPort(3) gets contacted, where the default port is 80 for HTTP and 443 for HTTPS. the way that port number just knows what it's doing.
The HTTP path (aka "CMP alias" in this context) to use is by default "/", otherwise it's the string specified via OSSL_CMP_CTX_set1_serverPath(3). On success the function returns the server's response PKIMessage. slay π
β the extra little behaviours
- 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 anOSSL_CMP_OPT_MSG_TIMEOUTargument. β° - It also respects any HTTP(S) proxy options set via
OSSL_CMP_CTX_set1_proxy(3)andOSSL_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). that's the catch, bestie β HTTPS-through-proxy doesn't just happen on its own π
π NOTES π
CMP is defined in RFC 9810. HTTP transfer for CMP is defined in RFC 9811. go read them if you want the full lore πβ¨
π RETURN VALUES π
OSSL_CMP_MSG_http_perform() returns the received CMP response message on success, else NULL. that's it, that's the vibe check π
π«Ά SEE ALSO π«Ά
π± HISTORY π±
- The OpenSSL CMP support was added in OpenSSL 3.0.
- The
OSSL_CMP_MSG_http_perform()use oftransfer_cb_argwas added in OpenSSL 3.5. π
π COPYRIGHT π
Copyright 2007-2025 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the Apache License 2.0 (the "License"). You may not use this file except in compliance with the License. You can obtain a copy in the file LICENSE in the source distribution or at <https://www.openssl.org/source/license.html>.
and that's the whole page, bestie πβ¨ this one's3.5.6, dated2026-04-07, and it lives under the nameOSSL_CMP_MSG_HTTP_PERFORM(3ossl)β mwah, go forth and transfer π§ββοΈπ
π¦ where this page comes from
- freebsd 15.1: base 15.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms