【发布时间】:2016-10-12 07:21:29
【问题描述】:
我使用java.security.cert.CertificateFactory 生成(来自InputStream),然后验证公共证书文件。当我使用正确的证书文件时,例如cert.cert,我获得了正确的证书并可以生成指纹,将其用于与服务器通信等。
但是,当我选择绝对不是证书的文件时,例如settings.txt,我有时会得到CertificateException,有时实际上是null。我找不到对 CertificateFactory 的这种行为的描述,也找不到为什么某些文件会导致 generateCertificate 引发异常而不是返回 null 的任何原因。
我的代码有问题:
CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509");
InputStream stream = new ByteArrayInputStream(parameters.getCertificate());
X509Certificate cert = (X509Certificate)certificateFactory.generateCertificate(stream);
最后一行要么返回异常,要么 cert 为空。我的问题是:
当输入非证书文件时,为什么 certificateFactory.generateCertificate(stream) 返回 null?它不应该抛出 CertificateException 吗?
【问题讨论】:
标签: java x509certificate