带https的lib cCURL抛出错误

带https的lib cCURL抛出错误,curl,https,libcurl,Curl,Https,Libcurl,我已经编写了C curl应用程序代码,使用我自己的证书和AES-ECC-CCM芯片套件的服务器设置来测试我的服务器TLS连接。但是我在客户端遇到了错误,因为curl无法加载给定的chiper套件。因此,在这里我把我的代码。。我是否按照正确的方式选择客户端的芯片套件?代码是否正确 CURL *curl; CURLcode res; FILE *headerfile; const char *pPassphrase = NULL; static const char *pCertFile = "/

我已经编写了C curl应用程序代码,使用我自己的证书和AES-ECC-CCM芯片套件的服务器设置来测试我的服务器TLS连接。但是我在客户端遇到了错误,因为curl无法加载给定的chiper套件。因此,在这里我把我的代码。。我是否按照正确的方式选择客户端的芯片套件?代码是否正确

CURL *curl;
CURLcode res;
FILE *headerfile;
const char *pPassphrase = NULL;

static const char *pCertFile = "/root/rev/mysert.der";
static const char *pCACertFile="/root/rev/cacert.der";

const char *pKeyName;
const char *pKeyType;

const char *pEngine;


pKeyName  = "/root/rev/testkey.der";
pKeyType  = "DER";



headerfile = fopen("dumpit", "w");

curl_global_init(CURL_GLOBAL_DEFAULT);

curl = curl_easy_init();
if(curl) {
 /* what call to write: */ 
curl_easy_setopt(curl, CURLOPT_URL, "https://192.168.1.121/test");
curl_easy_setopt(curl, CURLOPT_WRITEHEADER, headerfile);

while(1)                    /* do some ugly short cut... */ 
{

   /*SET THE CIPHER TO ECC-CCM */
   **curl_easy_setopt(curl,CURLOPT_SSL_CIPHER_LIST,"TLS_ECDHE_ECDSA_WITH_AES_128_CCM");**
  curl_easy_setopt(curl,CURLOPT_SSLCERTTYPE,"DER");

  /* set the cert for client authentication */ 
  curl_easy_setopt(curl,CURLOPT_SSLCERT,pCertFile);

  /* sorry, for engine we must set the passphrase
     (if the key has one...) */ 
  if (pPassphrase)
    curl_easy_setopt(curl,CURLOPT_KEYPASSWD,pPassphrase);

  /* if we use a key stored in a crypto engine,
     we must set the key type to "ENG" */ 
  curl_easy_setopt(curl,CURLOPT_SSLKEYTYPE,pKeyType);

  /* set the private key (file or ID in engine) */ 
  curl_easy_setopt(curl,CURLOPT_SSLKEY,pKeyName);

  /* set the file with the certs vaildating the server */ 
  curl_easy_setopt(curl,CURLOPT_CAINFO,pCACertFile);

  /* disconnect if we can't validate server's cert */ 
  curl_easy_setopt(curl,CURLOPT_SSL_VERIFYPEER,1L);

  /* Perform the request, res will get the return code */ 
  res = curl_easy_perform(curl);
  /* Check for errors */ 
  if(res != CURLE_OK)
    fprintf(stderr, "curl_easy_perform() failed: %s\n",
            curl_easy_strerror(res));

    break;                   /* we are done... */ 
  }
  /* always cleanup */ 
  curl_easy_cleanup(curl);
 }

 curl_global_cleanup();

您的CURL版本是用OpenSSL构建的吗?如果是这样,请参阅-只要没有正式的密码套件编号,OpenSSL仍然无法支持带有CCM的TLS_ECDHE_ECDSA_。\u AES_128_。

您的CURL版本是用OpenSSL构建的吗?如果是这样,请参阅-只要没有正式的密码套件编号,OpenSSL仍然无法支持TLS_ECDHE_ECDSA_和_AES_128_CCM