2011-10-13 2 views
1

X509Certificate에서 대체 대체 이름을 얻으려고했지만 null을 반환하는 Android에서는 cert.getSubjectAlternativeNames()이 작동하지 않습니다. 그러나 cert.getExtensionValue("2.5.29.17")을 사용하여 대체 이름을 추출 할 때 이름이 존재하고 바이트 단위로 구문 분석 할 수 있습니다.Android API에서 X509Certificate을 가져올 수 없습니다.

Btw 나는 getSubjectAlternativeNames()을 사용하고 Java 프로그램에서 올바른 결과를 얻을 수 있으므로 PKCS12 인증서가 유효하다고 확신합니다.

어떤 몸이라도 Android에서 getSubjectAlternativeNames()을 올바르게 사용하는 방법을 알고 있습니까? 그렇지 않으면 Android에서 일부 구성을 놓치셨습니까?

감사 Aoting

답변

0

인증서가 subjectaltname에 확장자를 포함하지 않는 것 같다. 또한 어떤 버전의 Android에서 이것을 시도하고 있습니까? Froyo에서 해결 된 것으로 보이는이 문제를 이미 Google에보고 한 issue이 이미 있습니다.

+0

2.2를 사용하고 있습니다. 나는 SubAltName이 있다고 확신한다. Java 프로그램은 그것을 얻을 수있다. – xat

+0

나는 2.3을 사용하고있다. 그리고 당신 말이 맞습니다. 4.0은 더 많은 지원을합니다. Nikolay Elenkov도 블로그에서 언급했습니다. – Siddharth

1

해결 방법으로 org.bouncycastle.x509.extension.X509ExtensionUtil.getSubjectAlternativeNames(X509Certificate cert)을 사용해보세요. 확장 기능이 있고 버그가 X509ExtensionUtil 자체가 아니라 X509Certificate에 있다고 가정하면 작동합니다.

+0

bouncycastle이 안드로이드에게 너무 무거워 보입니다 – xat

+0

무엇을 의미합니까? 그것은 Android에 포함되어 있습니다 (JRE 제공자 중 하나입니다). –