2011-04-05 21 views
4

我想使用OpenSSL API(不在命令中)讀取certifi.crt文件。我不知道該怎麼做。如果有人知道,請幫助我。謝謝。openssl:如何讀取.crt文件..?

如果您給出的示例代碼將非常有幫助。

+0

如果你能弄清楚如何使用命令行工具做到這一點,那麼你有所有您需要的示例代碼,畢竟它是「打開」SSL。 – 2011-04-05 13:18:44

回答

4

如果「.crt」擴展名引用了PEM文本文件(以----- BEGIN CERTIFICATE -----後跟base64開頭),那麼在OpenSSL文檔here中開始。

這裏是讓你開始一些代碼(使用SSL連接,如G ++ AC -lssl):

#include <stdio.h> 
#include <openssl/x509.h> 
#include <openssl/pem.h> 

int main(int argc, char** argv) 
{ 
    FILE* f = fopen("certifi.crt", "r"); 
    if (f != NULL) 
    { 
     X509* x509 = PEM_read_X509(f, NULL, NULL, NULL); 
     if (x509 != NULL) 
     { 
      char* p = X509_NAME_oneline(X509_get_issuer_name(x509), 0, 0); 
      if (p) 
      { 
       printf("NAME: %s\n", p); 
       OPENSSL_free(p); 
      } 
      X509_free(x509); 
     } 
    } 
    return 0; 
}