GNURLOPT_SSLCERTTYPE(3)

πŸ“¦ version 7.72.0, in nixos 26.05, nixpkgs unstable

πŸŽ€ GNURLOPT_SSLCERTTYPE(3) πŸŽ€

okay bestie, this page lives in the curl_easy_setopt options manual, and it's here to explain how you tell curl what format your client SSL certificate is in. vibe check: niche but iconic. πŸ’…


🌸 NAME 🌸

CURLOPT_SSLCERTTYPE β€” specify type of the client SSL certificate. literally that's the whole gig. 🫢

✨ SYNOPSIS ✨

#include <gnurl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_SSLCERTTYPE, char
*type);

πŸ’– DESCRIPTION πŸ’–

You pass a pointer to a null-terminated string as the parameter. The string should be the format of your certificate. The supported formats are "PEM" and "DER", except with Secure Transport. OpenSSL (versions 0.9.3 and later) and Secure Transport (on iOS 5 or later, or OS X 10.7 or later) also support "P12" for PKCS#12-encoded files.

The application does not have to keep the string around after setting this option, so no need to clutch it forever β€” set it and go. 😌

πŸŽ€ DEFAULT πŸŽ€

"PEM" β€” that's the default, periodt.

πŸ¦‹ PROTOCOLS πŸ¦‹

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

🌈 EXAMPLE 🌈

CURL *curl = curl_easy_init();
if(curl) {
  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/");
  curl_easy_setopt(curl, CURLOPT_SSLCERT, "client.pem");
  curl_easy_setopt(curl, CURLOPT_SSLCERTTYPE, "PEM");
  curl_easy_setopt(curl, CURLOPT_SSLKEY, "key.pem");
  curl_easy_setopt(curl, CURLOPT_KEYPASSWD, "s3cret");
  ret = curl_easy_perform(curl);
  curl_easy_cleanup(curl);
}

⭐ AVAILABILITY ⭐

If built TLS enabled. Added in 7.9.3.

πŸ”₯ RETURN VALUE πŸ”₯

Returns CURLE_OK if TLS is supported, CURLE_UNKNOWN_OPTION if not, or CURLE_OUT_OF_MEMORY if there was insufficient heap space. so like, check that return value bestie.

πŸ‘‘ SEE ALSO πŸ‘‘


that's the whole page, bestie πŸ’– this gem comes from libcurl 7.37.0, dated 17 Jun 2014, and the page itself is GNURLOPT_SSLCERTTYPE(3). mwah πŸ’‹

πŸ“¦ where this page comes from