Android P移除BC相关的算法,可以使用AndroidOpenSSLjava.security.cert.CertificateException: X.509 not foundCaused by: java.security.NoSuchAlgorithmException: The BC provider no longer provides an implementation for CertificateFactory.X.509.  Please see https://android-developers.googleblog.com/2018/03/cryptography-changes-in-android-p.html for more details.CertificateFactory certificateFactory;if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {    //适配Android P及以后版本,否则报错NoSuchAlgorithmException    certificateFactory = CertificateFactory.getInstance("X.509", "AndroidOpenSSL");//} else {    certificateFactory = CertificateFactory.getInstance("X.509", "BC");}//CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509","BC");//, "BC"Logger.e("TAG", " certificates.length: " + certificates.length);//CertificateFactory cf = CertificateFactory.getInstance("X.509");Certificate ca = certificateFactory.generateCertificate(certificates[0]);pinningPublicKey = new BigInteger(1, ca.getPublicKey().getEncoded()).toString(16);KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());keyStore.load(null, null);keyStore.setCertificateEntry("certificateAlias", ca);for (InputStream certificate : certificates) {    try {        if (certificate != null)            certificate.close();    } catch (IOException e) {    }}TrustManagerFactory trustManagerFactory = null;trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());trustManagerFactory.init(keyStore);TrustManager[] trustManagers = trustManagerFactory.getTrustManagers();

 

java.security.cert.CertificateException: com.android.org.conscrypt.OpenSSLX509CertificateFactory$ParsingException: com.android.org.conscrypt.OpenSSLX509CertificateFactory$ParsingException: inStream is empty
如果用Certificate ca = certificateFactory.generateCertificate(certificates[0]);的时候

再次keyStore.setCertificateEntry("certificateAlias", certificateFactory.generateCertificate(certificates[0]));就会出现上面错误

keyStore.setCertificateEntry("certificateAlias", ca); 就没有问题

顺带记录下问题

更多相关文章

  1. mybatisplus的坑 insert标签insert into select无参数问题的解决
  2. android 源码下载及问题
  3. Android的support v4中的Fragment的一个Bug
  4. android调用本地录制程序获取录制文件路径的问题
  5. Android(安卓)WebView 加载网页遇到的问题
  6. 新建项目Android(安卓)Support library not installed问题
  7. The android gradle plugin version 3.0.0-alpha1 is too old
  8. 安卓面试中遇到的问题2017.2
  9. ReactNative开发android,RN版本升级后遇到的 error: Duplicate fi

随机推荐

  1. Android(安卓)布局深度优化(减少布局层次
  2. 你知道android textView文字怎么竖向排列
  3. Android基于TextView实现跑马灯效果
  4. Android中一个Activity调用另一个Activit
  5. Android Studio下ActionBar示例
  6. Android属性动画--基础使用
  7. Android之会员页面及进度条
  8. AIDL跨进程通信和Service调用
  9. Linux上添加udev规则使adb可以操作Androi
  10. 关于android avd目录的设置