我從ldap搜索請求中獲取DER編碼證書(base64解碼後),並需要從中解析公鑰。我非常肯定,它可能與openssl庫。不幸的是,API文檔沒有很好地保存。是否有任何示例或其他庫來提取信息?在C中提取DER編碼證書的公鑰
1
A
回答
1
您可以嘗試使用d2i_X509 API來解碼DER編碼證書。它給你一個你應該能夠獲得公鑰的X509結構。
2
使用d2i_X509獲取X509 *結構中的證書。 之後使用X509_get_pubkey獲取公鑰。X509_get_pubkey會爲您提供EVP_PKEY *結構中的公鑰。 我希望這必須解決你的目的。
如果您的證書採用PEM格式(Base64編碼由「----- BEGIN CERTIFICATE -----」包裝) ,那麼您也可以使用PEM_read_X509直接獲取X509 *對象。
例子:
//Get the X509 object.
//Say certificate is encoded in a file
X509 * xcert = PEM_read_X509(fp, NULL, NULL, NULL);
//or assuming DER encoded certificate in buf with length of buffer is buflen.
X509 * xcert = d2i_X509(NULL, buf, buflen);
//Get the public key.
EVP_PKEY * pubkey = X509_get_pubkey(xcert);
//later free this pubkey object when no longer required.
EVP_PKEY_free(pubkey);
相關問題
- 1. DER格式的證書提取公鑰
- 2. 獲取DER編碼的公鑰
- 3. 將DER編碼證書轉換爲ssh-rsa公鑰
- 4. 解碼system.gserviceaccount.com證書提取公鑰
- 5. DER編碼的RSA公鑰(OCTET STRING)
- 6. OpenSSL DER證書和DER密鑰以「組合」證書
- 7. 將RSA公鑰編碼爲DER格式
- 8. 如何使用C++從特定文件中提取X.509證書(DER編碼)?
- 9. 無法提取X509公鑰證書
- 10. 從證書中提取公共證書
- 11. 公鑰證書
- 12. 從證書獲取公鑰/私鑰
- 13. OpenSAML C++簽名驗證:從證書中讀取公共密鑰
- 14. 單個文件中DER編碼格式的多個證書
- 15. 閱讀ASN.1 DER編碼的RSA公鑰
- 16. 從私鑰中提取公鑰C#
- 17. c#RSA從私鑰中提取公鑰
- 18. 從證書中提取公鑰並加密數據
- 19. BouncyCastle:從證書中提取公鑰導致NullPointerException
- 20. 如何使用CryptoAPI從p7b證書中提取公用密鑰
- 21. PHP:從證書獲取公鑰ID。
- 22. 從證書獲取Sha256公鑰
- 23. 如何從字節[]中提取X.509 DER證書?
- 24. X509證書公鑰加密
- 25. 從認證中提取公用密鑰
- 26. 是DER格式ASN1編碼的X509證書嗎?
- 27. OpenSSL Diffie Hellman DER編碼C
- 28. SSL證書:公鑰或私鑰?
- 29. Amazom AWS ELB SSL證書私鑰和公鑰證書不匹配
- 30. DER編碼BCECPublicKey
如果你真的想只是做研磨工作OpenSSL中ASN1庫都可以使用。但是,我強烈建議你在庫中稍微高一些,並使用cert-code,這非常了不起。 – WhozCraig 2013-02-22 20:19:06