从 android 中的 X509Certificate 中提取组织名称
extracting organization name from X509Certificate in android
您好,我想从 X509Certificate 中提取组织名称。对于大多数应用程序,我正在获取此组织名称,但对于亚马逊应用程序,我无法提取此名称,因为对于亚马逊应用程序 x509Cert.getIssuerDN().toString();
returns 结果在 OU O 和 L 值之间没有“,”。
我正在使用以下代码:
CertificateFactory certFactory = CertificateFactory.getInstance("X509");
X509Certificate x509Cert = (X509Certificate) certFactory.generateCertificate(certStream);
String temp = x509Cert.getIssuerDN().toString();
对于其他应用程序,温度如下:
CN=MAP4 Platform 466-1, OU=MDb, O=Motorola, L=Libertyville, ST=Illinois, C=US
CN=Android, OU=Android, O=Google Inc., L=Mountain View, ST=California, C=US
CN=Microsoft Corporation Third Party Marketplace (Do Not Trust), OU=Android Marketplace Signing for Microsoft Office, O=Microsoft Corporation, L=Redmond, ST=Washington, C=US
上面 OU,O,L 之间有分隔符 (,) 但对于亚马逊应用程序没有分隔符以下是 2 个亚马逊应用程序的结果:
CN=Amazon Self-Sign CA, OU="Java Object Signing O=Amazon Services LLC L=Las Vegas", ST="Nevada C=US"
CN=Amazon Self-Sign CA, OU="Java Object Signing O=Amazon Services LLC L=Las Vegas", ST="Nevada C=US"
现在从上面的结果中我将如何获得 O 的值?任何建议将不胜感激。谢谢
如评论中所示,证书不包含 O
属性。似乎证书的创建者犯了一个错误,并将 O
和 L
属性的内容作为 OU
的一部分包含在内
您可以使用OpenSSL 进行检查。从 apk 中提取 META-INF/ANDROID.RSA
并执行
openssl pkcs7 -inform DER -in ANDROIDS.RSA -noout -print_certs -text
因此,要提取此证书的 O
属性,请解析 OU
属性的字符串值并查找 "O=[the value]"
您好,我想从 X509Certificate 中提取组织名称。对于大多数应用程序,我正在获取此组织名称,但对于亚马逊应用程序,我无法提取此名称,因为对于亚马逊应用程序 x509Cert.getIssuerDN().toString();
returns 结果在 OU O 和 L 值之间没有“,”。
我正在使用以下代码:
CertificateFactory certFactory = CertificateFactory.getInstance("X509");
X509Certificate x509Cert = (X509Certificate) certFactory.generateCertificate(certStream);
String temp = x509Cert.getIssuerDN().toString();
对于其他应用程序,温度如下:
CN=MAP4 Platform 466-1, OU=MDb, O=Motorola, L=Libertyville, ST=Illinois, C=US
CN=Android, OU=Android, O=Google Inc., L=Mountain View, ST=California, C=US
CN=Microsoft Corporation Third Party Marketplace (Do Not Trust), OU=Android Marketplace Signing for Microsoft Office, O=Microsoft Corporation, L=Redmond, ST=Washington, C=US
上面 OU,O,L 之间有分隔符 (,) 但对于亚马逊应用程序没有分隔符以下是 2 个亚马逊应用程序的结果:
CN=Amazon Self-Sign CA, OU="Java Object Signing O=Amazon Services LLC L=Las Vegas", ST="Nevada C=US"
CN=Amazon Self-Sign CA, OU="Java Object Signing O=Amazon Services LLC L=Las Vegas", ST="Nevada C=US"
现在从上面的结果中我将如何获得 O 的值?任何建议将不胜感激。谢谢
如评论中所示,证书不包含 O
属性。似乎证书的创建者犯了一个错误,并将 O
和 L
属性的内容作为 OU
您可以使用OpenSSL 进行检查。从 apk 中提取 META-INF/ANDROID.RSA
并执行
openssl pkcs7 -inform DER -in ANDROIDS.RSA -noout -print_certs -text
因此,要提取此证书的 O
属性,请解析 OU
属性的字符串值并查找 "O=[the value]"