我試圖實現OpenSSL的OCSP功能爲described here,它需要X509對象作爲參數。我所有的是.cer格式的x.509證書文件。 如何在OpenSSL中使用.cer證書來初始化X509對象? (如果它很重要,我在XCode中使用OpenSSL 1.0.0g)。如何使用.cer文件初始化OpenSSL庫中的X509對象?
1
A
回答
5
有兩種主要情況。我會在這裏介紹。
請注意,我假定您使用的是C++。你選擇的平臺,如果它是理智的,應該有這些功能的綁定。
在第一種情況下,您的證書文件是所謂的PEM格式。如果你在文本編輯器中打開一個證書,並看到一些Base64編碼的數據和可讀的頭文件,那就是一個PEM文件。在這種情況下,你想要的功能有簽名
X509 *PEM_read_X509(FILE *fp, X509 **x, pem_password_cb *cb, void *u);
的第一個參數是指向由fopen()
返回一個文件對象。您可以將最後三個參數保留爲NULL
。該函數返回一個指向創建的X509
對象的指針,或者返回一個指向NULL
的指針。
在第二種情況下,您的證書文件是所謂的DER格式。如果你在文本編輯器中打開一個證書並看到一些垃圾,那可能是一個DER文件。在這種情況下,你想要的功能有簽名
X509 *d2i_X509_fp(FILE *fp, X509 **x);
你應該能夠離開第二個參數NULL
。該函數返回一個指向創建的對象X509
的指針,或者返回NULL
錯誤。
正式的OpenSSL文檔是不完整的。如果您正在尋找一本很好的參考手冊,我可以推薦O'Reilly的「OpenSSL網絡安全」(ISBN 978-0-596-00270-1)。它是爲OpenSSL 0.9.6/0.9.7編寫的,並且沒有完整覆蓋某些主題(例如CRL),但涵蓋了所有重要的要點並提供了示例代碼。如果有的話,它會幫助你減少丟失:)
相關問題
- 1. 如何初始化OpenSSL BIO對象?
- 2. 在ASP.NET Core中使用DI初始化初始化對象的對象
- 3. 如何初始化nsmutablearray中的對象?
- 4. 如何用NSMutableArray初始化NSData對象?
- 5. 如何使用Microsoft.Office.Interop對象初始化NetOffice.WordApi對象?
- 6. 用文本文件中的數據初始化對象數組
- 7. 初始化父對象後初始化相關的對象
- 8. 如何使用文件路徑創建/初始化文件對象html5
- 9. 對象初始化
- 10. 對象初始化
- 11. 初始化對象
- 12. 初始化對象
- 13. 使用初始化塊初始化對象
- 14. 如何映射Castor庫中的惰性初始化對象?
- 15. 使用對象初始化程序初始化對象時添加DataCollection屬性
- 16. 如何使用Java中的Document對象初始化SQLXML
- 17. 如何在Ruby中使用不同的object_id初始化對象?
- 18. 如何使用visual basic.net中的Label對象初始化數組
- 19. 初始化對象,如果條件
- 20. 在初始化列表中初始化引用對象成員
- 21. 用於初始化flash中對象的外部文件as3
- 22. 使用NSArray初始化對象數組
- 23. 動態使用對象初始化器
- 24. 使用嘲笑對象在初始化
- 25. 使用值初始化屬性對象
- 26. 使用變量初始化對象
- 27. 使用application.properties初始化一個對象
- 28. 的Java初始化對象
- 29. LINQ的初始化對象
- 30. C++:如何初始化一個使用兩個頭文件的對象?
謝謝!非常好的答案,正是我需要的。 – 2012-07-26 23:48:21