logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

OSSL_CMP_MSG_http_perform - client-side HTTP(S) transfer of a CMP request-response pair

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.

       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).

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.

Name

       OSSL_CMP_MSG_http_perform - client-side HTTP(S) transfer of a CMP request-response pair

Notes

       CMP is defined in RFC 4210.  HTTP transfer for CMP is defined in RFC 6712.

Return Values

OSSL_CMP_MSG_http_perform() returns the received CMP response message on success, else NULL.

See Also

OSSL_CMP_CTX_new(3), OSSL_HTTP_open(3), and OSSL_HTTP_proxy_connect(3).

Synopsis

        #include <openssl/cmp.h>

        OSSL_CMP_MSG *OSSL_CMP_MSG_http_perform(OSSL_CMP_CTX *ctx,
                                                const OSSL_CMP_MSG *req);

See Also