OSSL_CMP_MSG_HTTP_PERFORM(3ossl)
π OSSL_CMP_MSG_HTTP_PERFORM π
okay so bestie, welcome to the 3ossl edition of the OpenSSL manual β this one's all about OSSL_CMP_MSG_http_perform, and it's literally the glow-up your CMP client needed. sit down, grab a strawberry drink π, and let's get into it.
β¨ NAME β¨
OSSL_CMP_MSG_http_perform β the client-side HTTP(S) transfer of a CMP request-response pair. yes, it sends the request AND brings you back the answer. main character energy fr fr. π
πΈ SYNOPSIS πΈ
#include <openssl/cmp.h>
OSSL_CMP_MSG *OSSL_CMP_MSG_http_perform(OSSL_CMP_CTX *ctx,
const OSSL_CMP_MSG *req);
like, that's it. two args, one glorious message back. π
π¦ DESCRIPTION π¦
OSSL_CMP_MSG_http_perform() sends the given PKIMessage req to the CMP server specified in ctx and returns the result obtained from it. no cap, it justβ¦ does the thing. π
okay so here's the vibe check on how it does the thing, because there are two whole paths:
- if
OSSL_CMP_CTX_set_transfer_cb_arg(3)has been used to set the transfer callback argument, then the provided pointerbiosis taken as a two-element BIO array to use for the exchange with the server, exactly as described for thebioandrbioparameters ofOSSL_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. iconic behavior honestly. π§ - otherwise, the server specified via
OSSL_CMP_CTX_set1_server(3)and optionallyOSSL_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 viaOSSL_CMP_CTX_set1_serverPath(3). on success, the function returns the server's response PKIMessage. slay. β¨
and it's not just out here freelancing β it's plugged into all your settings:
- it 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.
π important lil caveat: 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). so don't come for this function when your HTTPS proxy needs a callback β that's a you problem, bestie. π«Ά
π NOTES π
that's the receipts, iykyk. π
β RETURN VALUES β
OSSL_CMP_MSG_http_perform() returns the received CMP response message on success, else NULL. that's it. either you ate or you didn't. π₯
π SEE ALSO π
go read those too, bestie, they're all part of the same friend group. π
π¦ 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.
so if you're on something older, that second feature is giving "not invited to the party". π
π 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!! π₯³ written from OpenSSL 3.5.0, dated 2026-09-25, manual page OSSL_CMP_MSG_HTTP_PERFORM(3ossl) β mwah, go forth and CMP responsibly ππΈπ«Ά
π¦ where this page comes from
- opensuse-leap 16.0: openssl-3-doc 3.5.0-160000.11.1 Β· Apache-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms