我有基於C的應用程序,它們使用openssl smime簽名。使用C代碼驗證OpenSSL s/mime簽名
我正在尋找使用OpenSSL以編程方式使用C來驗證這些s/mime簽名。我花了很多時間搜索類似的場景,但沒有得到相關頁面。
我已經下載了(openssl-1.0.2a)並在linux環境下編譯。我已將編譯的靜態庫集成到我的項目中。
請讓我知道如何現在進行簽名驗證或請指導我需要調用哪些API來驗證s/mime簽名。
我有基於C的應用程序,它們使用openssl smime簽名。使用C代碼驗證OpenSSL s/mime簽名
我正在尋找使用OpenSSL以編程方式使用C來驗證這些s/mime簽名。我花了很多時間搜索類似的場景,但沒有得到相關頁面。
我已經下載了(openssl-1.0.2a)並在linux環境下編譯。我已將編譯的靜態庫集成到我的項目中。
請讓我知道如何現在進行簽名驗證或請指導我需要調用哪些API來驗證s/mime簽名。
如果您已經從源代碼編譯的OpenSSL就意味着你可以看看:<your-openssl-source-dir>/demos/smime
這表明你如何使用PKCS7_*
家庭的功能,但我認爲更加有用將看看CMS_*
家人見: <your-openssl-source-dir>/demos/cms
。這些例子可能比你需要的要多得多。
現在我能夠使用openssl PKCS7_verify API驗證smime簽名。
int PKCS7_verify(PKCS7 *p7, STACK_OF(X509) *certs, X509_STORE *store, BIO *indata, BIO *out, int flags);
更多細節可以在這裏找到:https://www.openssl.org/docs/crypto/PKCS7_verify.html
Thanks.I我現在能夠取得進展。我在這裏有一個後續問題: 在openssl-1.0.2a/demos/smime/smver.c tbio = BIO_new_file(「cacert.pem」,「r」); 它試圖讀取包含證書和私鑰的cacert.pem文件,並創建BIO對象,而在我的情況下,兩個單獨的文件有一個用於.key和第二個.crt文件。 如何讀取這兩個文件並創建BIO對象? – Anand