我從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. 解碼system.gserviceaccount.com證書提取公鑰
- 2. DER編碼的RSA公鑰(OCTET STRING)
- 3. 將RSA公鑰編碼爲DER格式
- 4. 如何使用C++從特定文件中提取X.509證書(DER編碼)?
- 5. 公鑰證書
- 6. 閱讀ASN.1 DER編碼的RSA公鑰
- 7. c#RSA從私鑰中提取公鑰
- 8. 從私鑰中提取公鑰C#
- 9. 如何使用CryptoAPI從p7b證書中提取公用密鑰
- 10. 從證書中提取公鑰並加密數據
- 11. BouncyCastle:從證書中提取公鑰導致NullPointerException
- 12. 如何從字節[]中提取X.509 DER證書?
- 13. PHP:從證書獲取公鑰ID。
- 14. 從證書獲取Sha256公鑰
- 15. 從認證中提取公用密鑰
- 16. 是DER格式ASN1編碼的X509證書嗎?
- 17. OpenSSL Diffie Hellman DER編碼C
- 18. SSL證書:公鑰或私鑰?
- 19. DER編碼BCECPublicKey
- 20. ANS1 DER編碼
- 21. 讀取PEM格式的RSA私鑰並從證書中讀取公鑰
- 22. 從C++中的RSA私鑰中提取公鑰沒有openssl
- 23. 將RSA公鑰轉換爲RSA DER
- 24. 從BouncyCastle X509證書獲取私鑰? C#
- 25. IdentityServer4簽名證書:使用公共可用的證書+密鑰?
- 26. 格式DER編碼的私鑰到PEM中的node.js
- 27. 如何通過CryptoAPI中的證書公鑰獲取密鑰容器的信息?
- 28. fx509證書錯誤:證書公鑰與存儲的密鑰集不匹配
- 29. iPhone從RSA生成X509證書公鑰
- 30. 提取公鑰從谷歌「的oauth2/V1 /證書」證書PEM格式使用轉到
如果你真的想只是做研磨工作OpenSSL中ASN1庫都可以使用。但是,我強烈建議你在庫中稍微高一些,並使用cert-code,這非常了不起。 – WhozCraig 2013-02-22 20:19:06