DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

CURLINFO_CERTINFO(3)




CURLINFO_CERTINFO(3)curl_easy_getinfo optionsCURLINFO_CERTINFO(3)


NAME

     CURLINFO_CERTINFO - get the TLS certificate chain


SYNOPSIS

     #include <curl/curl.h>

     CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_CERTINFO,
                                struct curl_certinfo *chainp);


DESCRIPTION

     Pass a pointer to a 'struct curl_certinfo *' and you'll  get
     it  set  to  point  to  struct that holds a number of linked
     lists with info about the certificate  chain,  assuming  you
     had  CURLOPT_CERTINFO(3)  enabled when the request was made.
     The struct reports how many certs it found and then you  can
     extract info for each of those certs by following the linked
     lists. The info chain is provided in a series of data in the
     format  "name:content" where the content is for the specific
     named data. See also the certinfo.c example.


PROTOCOLS

     All TLS-based


EXAMPLE

     curl = curl_easy_init();
     if(curl) {
       curl_easy_setopt(curl, CURLOPT_URL, "https://www.example.com/");

       /* connect to any HTTPS site, trusted or not */
       curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);
       curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);

       curl_easy_setopt(curl, CURLOPT_CERTINFO, 1L);

       res = curl_easy_perform(curl);

       if (!res) {
         struct curl_certinfo *ci;
         res = curl_easy_getinfo(curl, CURLINFO_CERTINFO, &ci);

         if (!res) {
           printf("%d certs!\n", ci->num_of_certs);

           for(i = 0; i < ci->num_of_certs; i++) {
             struct curl_slist *slist;

             for(slist = ci->certinfo[i]; slist; slist = slist->next)
               printf("%s\n", slist->data);
           }
         }
       }
       curl_easy_cleanup(curl);

libcurl 7.58.0      Last change: May 06, 2017                   1

CURLINFO_CERTINFO(3)curl_easy_getinfo optionsCURLINFO_CERTINFO(3)

     }


AVAILABILITY

     This option is only working in libcurl built  with  OpenSSL,
     NSS,  schannel  or  GSKit support. schannel support added in
     7.50.0

     Added in 7.19.1


RETURN VALUE

     Returns  CURLE_OK  if   the   option   is   supported,   and
     CURLE_UNKNOWN_OPTION if not.


SEE ALSO

     curl_easy_getinfo(3), curl_easy_setopt(3),

libcurl 7.58.0      Last change: May 06, 2017                   2


Man(1) output converted with man2html