/
MonchenkoID
/
random
Обзор
Документация
Войти
/
MonchenkoID
/
random
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
android/src/main/java/com/RNFetchBlob/RNFetchBlobUtils.java
95 строк
3 KB
Etienne Moulin
Use non deprecated version of the method sslSocketFactory
22 окт 2019, 23:31
22 окт 2019, 23:31
61af1c7
Код
Авторство
О чём код?
package com.RNFetchBlob; import com.facebook.react.bridge.Arguments; import com.facebook.react.bridge.WritableMap; import com.facebook.react.modules.core.DeviceEventManagerModule; import java.security.MessageDigest; import java.security.cert.CertificateException; import javax.net.ssl.HostnameVerifier; import javax.net.ssl.SSLContext; import javax.net.ssl.SSLSession; import javax.net.ssl.SSLSocketFactory; import javax.net.ssl.TrustManager; import javax.net.ssl.X509TrustManager; import okhttp3.OkHttpClient; public class RNFetchBlobUtils { public static String getMD5(String input) { String result = null; try { MessageDigest md = MessageDigest.getInstance("MD5"); md.update(input.getBytes()); byte[] digest = md.digest(); StringBuilder sb = new StringBuilder(); for (byte b : digest) { sb.append(String.format("%02x", b & 0xff)); } result = sb.toString(); } catch (Exception ex) { ex.printStackTrace(); } finally { // TODO: Is discarding errors the intent? (https://www.owasp.org/index.php/Return_Inside_Finally_Block) return result; } } public static void emitWarningEvent(String data) { WritableMap args = Arguments.createMap(); args.putString("event", "warn"); args.putString("detail", data); // emit event to js context RNFetchBlob.RCTContext.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class) .emit(RNFetchBlobConst.EVENT_MESSAGE, args); } public static OkHttpClient.Builder getUnsafeOkHttpClient(OkHttpClient client) { try { // Create a trust manager that does not validate certificate chains final X509TrustManager x509TrustManager = new X509TrustManager() { @Override public void checkClientTrusted(java.security.cert.X509Certificate[] chain, String authType) throws CertificateException { } @Override public void checkServerTrusted(java.security.cert.X509Certificate[] chain, String authType) throws CertificateException { } @Override public java.security.cert.X509Certificate[] getAcceptedIssuers() { return new java.security.cert.X509Certificate[]{}; } }; final TrustManager[] trustAllCerts = new TrustManager[]{ x509TrustManager }; // Install the all-trusting trust manager final SSLContext sslContext = SSLContext.getInstance("SSL"); sslContext.init(null, trustAllCerts, new java.security.SecureRandom()); // Create an ssl socket factory with our all-trusting manager final SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory(); OkHttpClient.Builder builder = client.newBuilder(); builder.sslSocketFactory(sslSocketFactory, x509TrustManager); builder.hostnameVerifier(new HostnameVerifier() { @Override public boolean verify(String hostname, SSLSession session) { return true; } }); return builder; } catch (Exception e) { throw new RuntimeException(e); } } }