如何在android app

时间:2016-08-19 10:19:15

标签: android web-services x509certificate2

我使用spongycastle。我从android app中的webservice下载了字节数组证书(我认为是base64字节数组)并想在屏幕上显示它。我写下面的代码,但它不起作用,c变量为null。 另外我不知道如何在屏幕上显示它。

  SoapObject result = (SoapObject)envelope.bodyIn;           

                   if(result != null)
                    {
                        Object cert= result.getProperty(0);   
                        InputStream is = new ByteArrayInputStream(cert.toString().getBytes());
                        CertificateFactory cf = CertificateFactory.getInstance("X.509","BC");
                        java.security.cert.Certificate c = cf.generateCertificate(is);
                        X509Certificate t = (X509Certificate) c;
                        System.out.println("ca=" + t.getSubjectDN());


                   }

1 个答案:

答案 0 :(得分:0)

可能cert.toString().getBytes()是问题所在。证书以二进制格式编码。要构建它,您需要一个字节数组,而不是转换为字节的字符串。

确保您收到证书的格式,以便将其转换为二进制文件。如果您认为证书是在base64中编码的,请以这种方式对其进行解码

 byte[] data = Base64.decode(base64, Base64.DEFAULT);

另请注意,SpongyCastle的Java安全API提供程序名称为SC而不是BC

要显示您需要的文本,例如在Activity或Fragment中设置TextView的contento。我建议你先得到一个教程