2011-10-13 103 views
1

我一直在嘗試從X509Certificate獲得主題替代名稱,但似乎cert.getSubjectAlternativeNames()在Android中不起作用,它返回null。 但是,當我使用cert.getExtensionValue("2.5.29.17")來提取主題替代名稱時,名稱DO存在,我可以逐字節地解析它。Android API無法獲得X509Certificate

順便說一下,我確定我的PKCS12證書是有效的,因爲我可以使用getSubjectAlternativeNames()並在Java程序中獲得正確的結果。

是否有任何機構知道如何在Android中正確使用getSubjectAlternativeNames()或者我錯過了Android中的某些配置?

感謝 奧汀

回答

0

看來,證書不包含SubjectAltName擴展。你也試過這個版本的Android? Google已經向Google報告了一個issue,這已經在Froyo解決了。

+0

我正在使用2.2。我確定有一個SubAltName,對於Java程序可以得到它 – xat

+0

我正在使用2.3。你說得對,4.0有更多的支持。尼古拉·埃倫科夫也在他們的博客中提到過它。 – Siddharth

1

嘗試使用org.bouncycastle.x509.extension.X509ExtensionUtil.getSubjectAlternativeNames(X509Certificate cert)作爲解決方法。如果擴展名存在,並且假設該錯誤不在X509ExtensionUtil本身中,但是在X509Certificate中,它應該起作用。

+0

似乎bouncycastle對於android來說太重 – xat

+0

你是什麼意思?它包含在Android中(它是JRE提供者之一)。 –