Go to main content

man pages section 3: Library Interfaces and Headers

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

CURLOPT_PROXY_CAINFO_BLOB (3)

Name

CURLOPT_PROXY_CAINFO_BLOB - proxy Certificate Authority (CA) bundle in PEM format

Synopsis

#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PROXY_CAINFO_BLOB,
struct curl_blob *stblob);

Description

curl_easy_setopt options                          CURLOPT_PROXY_CAINFO_BLOB(3)



NAME
       CURLOPT_PROXY_CAINFO_BLOB  - proxy Certificate Authority (CA) bundle in
       PEM format

SYNOPSIS
       #include <curl/curl.h>

       CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PROXY_CAINFO_BLOB,
                                 struct curl_blob *stblob);

DESCRIPTION
       This option is for connecting to an HTTPS proxy, not an HTTPS server.

       Pass a pointer to a curl_blob  structure,  which  contains  information
       (pointer and size) about a memory block with binary data of PEM encoded
       content holding one or more certificates  to  verify  the  HTTPS  proxy
       with.

       If  CURLOPT_PROXY_SSL_VERIFYPEER(3) is zero and you avoid verifying the
       server's certificate, CURLOPT_PROXY_CAINFO_BLOB(3) is not needed.

       This option overrides CURLOPT_PROXY_CAINFO(3).

DEFAULT
       NULL

PROTOCOLS
       Used with HTTPS proxy

EXAMPLE
       char *strpem; /* strpem must point to a PEM string */
       CURL *curl = curl_easy_init();
       if(curl) {
         struct curl_blob blob;
         curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/");
         /* using an HTTPS proxy */
         curl_easy_setopt(curl, CURLOPT_PROXY, "https://localhost:443");
         blob.data = strpem;
         blob.len = strlen(strpem);
         blob.flags = CURL_BLOB_COPY;
         curl_easy_setopt(curl, CURLOPT_PROXY_CAINFO_BLOB, &blob);
         ret = curl_easy_perform(curl);
         curl_easy_cleanup(curl);
       }

AVAILABILITY
       Added in 7.77.0.

       This option is supported by the rustls (since 7.82.0), OpenSSL,  Secure
       Transport and Schannel backends.

RETURN VALUE
       Returns  CURLE_OK  if  the option is supported, CURLE_UNKNOWN_OPTION if
       not, or CURLE_OUT_OF_MEMORY if there was insufficient heap space.


ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:


       +---------------+------------------+
       |ATTRIBUTE TYPE | ATTRIBUTE VALUE  |
       +---------------+------------------+
       |Availability   | web/curl         |
       +---------------+------------------+
       |Stability      | Uncommitted      |
       +---------------+------------------+

SEE ALSO
       CURLOPT_PROXY_CAINFO(3),         CURLOPT_PROXY_CAPATH(3),          CUR-
       LOPT_PROXY_SSL_VERIFYPEER(3),   CURLOPT_PROXY_SSL_VERIFYHOST(3),   CUR-
       LOPT_CAINFO(3),   CURLOPT_CAINFO_BLOB(3),    CURLOPT_CAPATH(3),    CUR-
       LOPT_SSL_VERIFYPEER(3), CURLOPT_SSL_VERIFYHOST(3),



NOTES
       Source  code  for open source software components in Oracle Solaris can
       be found at https://www.oracle.com/downloads/opensource/solaris-source-
       code-downloads.html.

       This     software     was    built    from    source    available    at
       https://github.com/oracle/solaris-userland.   The  original   community
       source       was       downloaded      from       https://curl.se/down-
       load/curl-7.83.1.tar.bz2.

       Further information about this software can be found on the open source
       community website at http://curl.haxx.se/.



libcurl 7.83.1                 January 09, 2022
                                                  CURLOPT_PROXY_CAINFO_BLOB(3)