java - 尝试生成证书时出现 NPE

标签 java android x509certificate

尝试在 android 上生成 X509 证书时出现以下错误

java.lang.NullPointerException: Attempt to invoke virtual method 'java.security.PublicKey java.security.cert.X509Certificate.getPublicKey()' on a null object reference

下面是我用来实现这个的代码:

            AssetFileDescriptor assetFileDescriptor = this.getAssets().openFd("cert.cer");
        FileDescriptor securityCertificate = assetFileDescriptor.getFileDescriptor();

        FileInputStream fin = new FileInputStream(securityCertificate);
        CertificateFactory cf = CertificateFactory.getInstance("X.509", "BC");
        X509Certificate certificate = (X509Certificate) cf.generateCertificate(fin);

错误似乎发生在 cf.generateCertificate(fin)

最佳答案

设法通过使用 InputStream 而不是 FileInputStream 来解决这个问题,下面的代码对我来说工作正常:

        InputStream inputStream = assetManager.open("cert.cer");
        CertificateFactory cf = CertificateFactory.getInstance("X.509", "BC");
        X509Certificate certificate = (X509Certificate) cf.generateCertificate(inputStream);

关于java - 尝试生成证书时出现 NPE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47253120/

相关文章:

android - 动画 Android ListView 标题高度导致动画结束时闪烁

Gitlab-Runner | x509 : certificate signed by unknown authority

java - JPA 在异常/回滚情况下处理分离实体状态的正确方法

java - 什么时候应该使用 Instance<T> 和 Provider<T> 在 CDI 中注入(inject) bean?

java - MappingException : Repeated column in mapping for entity: . .. 列: dept_id (应使用 insert ="false"update ="false"进行映射)

android - java.lang.NoSuchMethodError : android. 应用程序.PendingIntent.getActivity

java - 如何从 Android 中的 Parse Server 获取字符串

android - 文本可组合项在 jetpack 撰写中更改为焦点文本字段

c# - 忽略 JWT 中的签名

c# - X509Certificate.CreateFromCertFile - 指定的网络密码不正确