Android P移除BC相关的算法,可以使用AndroidOpenSSL : X.509 not found Caused by: : The BC provider no longer provides an implementation for .509. Please see /2018/03/ for more details. CertificateFactory certificateFactory; if (.SDK_INT >= Build.VERSION_CODES.P) { //适配Android P及以后版本,否则报错NoSuchAlgorithmException certificateFactory = ("X.509", "AndroidOpenSSL");// } else { certificateFactory = ("X.509", "BC"); } //CertificateFactory certificateFactory = ("X.509","BC");//, "BC" ("TAG", " : " + ); //CertificateFactory cf = ("X.509"); Certificate ca = (certificates[0]); pinningPublicKey = new BigInteger(1, ().getEncoded()).toString(16); KeyStore keyStore = (()); (null, null); ("certificateAlias", ca); for (InputStream certificate : certificates) { try { if (certificate != null) (); } catch (IOException e) { } } TrustManagerFactory trustManagerFactory = null; trustManagerFactory = (()); (keyStore); TrustManager[] trustManagers = ();
: .OpenSSLX509CertificateFactory$ParsingException: .OpenSSLX509CertificateFactory$ParsingException: inStream is empty
如果用Certificate ca = (certificates[0]);的时候
再次("certificateAlias", (certificates[0]));就会出现上面错误
("certificateAlias", ca); 就没有问题
顺带记录下问题