尝试生成证书时出现 NPE
NPE when trying to generate a certificate
我在 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);
我在 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);