diff --git a/docs/examples/usercertinmem.c b/docs/examples/usercertinmem.c
index 0946360ef8..1b6694abb5 100644
--- a/docs/examples/usercertinmem.c
+++ b/docs/examples/usercertinmem.c
@@ -22,7 +22,7 @@
*
***************************************************************************/
/*
- * Use an in-memory user certificate and RSA key and retrieve an HTTPS page.
+ * Use in-memory user certificate and private key and retrieve an HTTPS page.
*
*/
/* Written by Ishan SinghLevett, based on Theo Borm's cacertinmem.c.
@@ -33,10 +33,6 @@
/* Requires: USE_OPENSSL */
-#ifndef OPENSSL_SUPPRESS_DEPRECATED
-#define OPENSSL_SUPPRESS_DEPRECATED
-#endif
-
#include
#include
@@ -47,7 +43,7 @@
#pragma GCC diagnostic ignored "-Woverlength-strings"
#endif
-static size_t writefunction(void *ptr, size_t size, size_t nmemb, void *stream)
+static size_t write_cb(void *ptr, size_t size, size_t nmemb, void *stream)
{
fwrite(ptr, size, nmemb, (FILE *)stream);
return nmemb * size;
@@ -58,7 +54,7 @@ static CURLcode sslctx_function(CURL *curl, void *sslctx, void *pointer)
X509 *cert = NULL;
BIO *bio = NULL;
BIO *kbio = NULL;
- RSA *rsa = NULL;
+ EVP_PKEY *pkey;
int ret;
const char *mypem =
@@ -74,26 +70,13 @@ static CURLcode sslctx_function(CURL *curl, void *sslctx, void *pointer)
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n"
"-----END CERTIFICATE-----\n";
- /* replace the XXX with the actual RSA key */
+ /* replace the XXX with the actual private key */
const char *mykey =
- "-----BEGIN RSA PRIVATE KEY-----\n"
+ "-----BEGIN PRIVATE KEY-----\n"
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n"
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n"
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n"
- "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n"
- "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n"
- "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n"
- "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n"
- "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n"
- "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n"
- "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n"
- "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n"
- "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n"
- "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n"
- "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n"
- "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n"
- "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n"
- "-----END RSA PRIVATE KEY-----\n";
+ "-----END PRIVATE KEY-----\n";
(void)curl;
(void)pointer;
@@ -119,20 +102,19 @@ static CURLcode sslctx_function(CURL *curl, void *sslctx, void *pointer)
printf("Use certificate failed\n");
}
- /* create a bio for the RSA key */
+ /* create a bio for the private key */
kbio = BIO_new_mem_buf(mykey, -1);
if(!kbio) {
printf("BIO_new_mem_buf failed\n");
}
- /* read the key bio into an RSA object */
- rsa = PEM_read_bio_RSAPrivateKey(kbio, NULL, 0, NULL);
- if(!rsa) {
- printf("Failed to create key bio\n");
+ pkey = PEM_read_bio_PrivateKey(bio, NULL, NULL, NULL);
+ if(!pkey) {
+ printf("Failed EVP_PKEY_new()\n");
}
- /* tell SSL to use the RSA key from memory */
- ret = SSL_CTX_use_RSAPrivateKey((SSL_CTX *)sslctx, rsa);
+ /* tell SSL to use the private key from memory */
+ ret = SSL_CTX_use_PrivateKey((SSL_CTX *)sslctx, pkey);
if(ret != 1) {
printf("Use Key failed\n");
}
@@ -144,8 +126,8 @@ static CURLcode sslctx_function(CURL *curl, void *sslctx, void *pointer)
if(kbio)
BIO_free(kbio);
- if(rsa)
- RSA_free(rsa);
+ if(pkey)
+ EVP_PKEY_free(pkey);
if(cert)
X509_free(cert);
@@ -168,9 +150,9 @@ int main(void)
curl_easy_setopt(curl, CURLOPT_HEADER, 0L);
curl_easy_setopt(curl, CURLOPT_NOPROGRESS, 1L);
curl_easy_setopt(curl, CURLOPT_NOSIGNAL, 1L);
- curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, writefunction);
+ curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_cb);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, stdout);
- curl_easy_setopt(curl, CURLOPT_HEADERFUNCTION, writefunction);
+ curl_easy_setopt(curl, CURLOPT_HEADERFUNCTION, write_cb);
curl_easy_setopt(curl, CURLOPT_HEADERDATA, stderr);
curl_easy_setopt(curl, CURLOPT_SSLCERTTYPE, "PEM");