Openssl

2020-08-13 07:02:01

軟體升級,原來軟體使用的openssl的版本是1.0.1,需要升級到1.1.0;

結果編譯出現這個錯誤,這個錯誤的原因是,在x509.h標頭檔案裡定義的X509_EXTENSION, 是一個typedef,typedef struct X509_extension_st X509_EXTENSION; 但是在openssl install的 header 檔案中根本就沒有X509_extension_st 這個型別,這個型別是建立在一個私有的header檔案中:x509_lcl.h, 這個標頭檔案見不會安裝到系統的/include/openssl/目錄下。

**.cpp:711:46: error: invalid use of incomplete type 'X509_EXTENSION {aka struct X509_extension_st}'

openssl/x509.h:81:16: error: forward declaration of 'X509_EXTENSION {aka struct X509_extension_st}'

獲取data的例子:
X509_EXTENSION *ex

data = ASN1_STRING_get0_data(X509_EXTENSION_get_data(ext));

 

 

https://wiki.openssl.org/index.php/OpenSSL_1.1.0_Changes

https://github.com/openssl/openssl/issues/10197

上面這個網頁中有提到,在新的1.1.0中,openssl有意將一些內部數據隱藏起來,對應的新增了很多函數來存取結構體裡的數據。

The overall