xref: /freebsd/secure/lib/libcrypto/man/man3/OSSL_CMP_MSG_http_perform.3 (revision d4033e6d37747f5213bb245c8e605406703a8766)
-*- mode: troff; coding: utf-8 -*-
Automatically generated by Pod::Man 5.0102 (Pod::Simple 3.45)

Standard preamble:
========================================================================
..
..
.. \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>.
. ds C` "" . ds C' "" 'br\} . ds C` . ds C' 'br\}
Escape single quotes in literal strings from groff's Unicode transform.

If the F register is >0, we'll generate index entries on stderr for
titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
entries marked with X<> in POD. Of course, you'll have to process the
output yourself in some meaningful fashion.

Avoid warning from groff about undefined register 'F'.
.. .nr rF 0 . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF ========================================================================

Title "OSSL_CMP_MSG_HTTP_PERFORM 3ossl"
OSSL_CMP_MSG_HTTP_PERFORM 3ossl 2025-09-30 3.5.4 OpenSSL
For nroff, turn off justification. Always turn off hyphenation; it makes
way too many mistakes in technical documents.
NAME
OSSL_CMP_MSG_http_perform \- client-side HTTP(S) transfer of a CMP request-response pair
SYNOPSIS
Header "SYNOPSIS" .Vb 1 #include <openssl/cmp.h> \& OSSL_CMP_MSG *OSSL_CMP_MSG_http_perform(OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req); .Ve
DESCRIPTION
Header "DESCRIPTION" \fBOSSL_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 \*(C`/\*(C', 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
Header "NOTES" CMP is defined in RFC 4210. HTTP transfer for CMP is defined in RFC 6712.
"RETURN VALUES"
Header "RETURN VALUES" \fBOSSL_CMP_MSG_http_perform() returns the received CMP response message on success, else NULL.
"SEE ALSO"
Header "SEE ALSO" \fBOSSL_CMP_CTX_new\|(3), OSSL_HTTP_open\|(3), and OSSL_HTTP_proxy_connect\|(3).
HISTORY
Header "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.

COPYRIGHT
Header "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>.