Go to main content

man pages section 3: Library Interfaces and Headers

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

CURLOPT_PROXY_SSLCERT_BLOB (3)

Name

CURLOPT_PROXY_SSLCERT_BLOB - SSL proxy client certificate from memory blob

Synopsis

#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PROXY_SSLCERT_BLOB,
struct curl_blob *blob);

Description

curl_easy_setopt options                         CURLOPT_PROXY_SSLCERT_BLOB(3)



NAME
       CURLOPT_PROXY_SSLCERT_BLOB  -  SSL proxy client certificate from memory
       blob

SYNOPSIS
       #include <curl/curl.h>

       CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PROXY_SSLCERT_BLOB,
                                 struct curl_blob *blob);

DESCRIPTION
       Pass a pointer to a curl_blob  structure,  which  contains  information
       (pointer  and  size)  about a memory block with binary data of the cer-
       tificate used to connect to the HTTPS proxy. The format must  be  "P12"
       on  Secure  Transport or Schannel. The format must be "P12" or "PEM" on
       OpenSSL.  The string  "P12"  or  "PEM"  must  be  specified  with  CUR-
       LOPT_PROXY_SSLCERTTYPE(3).

       If  the  blob  is initialized with the flags member of struct curl_blob
       set to CURL_BLOB_COPY, the application does not have to keep the buffer
       around after setting this.

       This option is an alternative to CURLOPT_PROXY_SSLCERT(3) which instead
       expects a file name as input.

DEFAULT
       NULL

PROTOCOLS
       All TLS based protocols: HTTPS, FTPS, IMAPS, POP3S, SMTPS etc.

EXAMPLE
       CURL *curl = curl_easy_init();
       if(curl) {
         struct curl_blob blob;
         blob.data = certificateData;
         blob.len = filesize;
         blob.flags = CURL_BLOB_COPY;
         curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/");
         curl_easy_setopt(curl, CURLOPT_PROXY, "https://proxy");
         curl_easy_setopt(curl, CURLOPT_PROXY_SSLKEY, "key.pem");
         curl_easy_setopt(curl, CURLOPT_PROXY_KEYPASSWD, "s3cret");
         curl_easy_setopt(curl, CURLOPT_PROXY_SSLCERT_BLOB, &blob);
         ret = curl_easy_perform(curl);
         curl_easy_cleanup(curl);
       }

AVAILABILITY
       Added in 7.71.0. This option is supported by the OpenSSL, Secure Trans-
       port and Schannel backends.

RETURN VALUE
       Returns  CURLE_OK  if  TLS  enabled,  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_SSLCERTTYPE(3),       CURLOPT_PROXY_SSLKEY(3),       CUR-
       LOPT_PROXY_SSLCERT(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                 November 26, 2021
                                                 CURLOPT_PROXY_SSLCERT_BLOB(3)