TrustKit-ohos
allprojects {
repositories {
maven {
url 'https://s01.oss.sonatype.org/content/repositories/releases/'
}
}
}
dependencies {
implementation('com.gitee.chinasoft_ohos:trustkit:1.0.1')
......
}
В версии SDK6 и DevEco Studio 2.2 beta1 проект можно запустить напрямую. Если запуск не удаётся, удалите файлы проекта .gradle, .idea, build, gradle, build.gradle и создайте новый проект на основе вашей версии. Скопируйте соответствующие файлы нового проекта в корневой каталог.
TrustKit-ohos — это открытая библиотека, которая позволяет легко внедрять блокировку и отчётность по SSL-ключам в любое приложение Ohos.
TrustKit должен быть инициализирован с использованием одного и того же пути:
@Override
public void onStart(Intent intent) {
super.onStart(intent);
// Using the default path - res/xml/network_security_config.xml
TrustKit.initializeWithNetworkSecurityConfiguration(this);
// OR using a custom resource (TrustKit can't be initialized twice)
TrustKit.initializeWithNetworkSecurityConfiguration(this, R.xml.my_custom_network_security_config);
URL url = new URL("https://www.datatheorem.com");
String serverHostname = url.getHost();
//Optionally add a local broadcast receiver to receive PinningFailureReports
PinningValidationReportTestBroadcastReceiver receiver = new PinningValidationReportTestBroadcastReceiver();
LocalBroadcastManager.getInstance(context)
.registerReceiver(receiver, new IntentFilter(BackgroundReporter.REPORT_VALIDATION_EVENT));
// HttpsUrlConnection
HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
connection.setSSLSocketFactory(TrustKit.getInstance().getSSLSocketFactory(serverHostname));
// OkHttp 2.x
OkHttpClient client =
new OkHttpClient()
.setSslSocketFactory(OkHttp2Helper.getSSLSocketFactory());
client.interceptors().add(OkHttp2Helper.getPinningInterceptor());
client.setFollowRedirects(false);
// OkHttp 3.0.x, 3.1.x and 3.2.x
OkHttpClient client =
new OkHttpClient.Builder()
.sslSocketFactory(OkHttp3Helper.getSSLSocketFactory())
.addInterceptor(OkHttp3Helper.getPinningInterceptor())
.followRedirects(false)
.followSslRedirects(false)
// OkHttp 3.3.x and higher
OkHttpClient client =
new OkHttpClient.Builder()
.sslSocketFactory(OkHttp3Helper.getSSLSocketFactory(), OkHttp3Helper.getTrustManager())
.addInterceptor(OkHttp3Helper.getPinningInterceptor())
.followRedirects(false)
.followSslRedirects(false)
.build();
}
public class PinningFailureReportCommonEventSubscriber extends CommonEventSubscriber {
public PinningFailureReportCommonEventSubscriber(CommonEventSubscribeInfo info) {
super(info);
}
@Override
public void onReceiveEvent(CommonEventData commonEventData) {
HiLog.info(DEBUG_TAG, commonEventData.getData());
}
}
После инициализации TrustKit и установки SSLSocketFactory для клиента или соединения, каждый раз при запуске HTTPS-соединения, оно будет проверять цепочку сертификатов сервера в соответствии с настроенной стратегией. Если URI отчёта уже настроен, то приложение также отправит отчёт на указанный URI при неудачной проверке pin.
Вы также можете создать и зарегистрировать локальный широковещательный приёмник для получения отчётов о неудачных проверках pin, которые будут отправлены на report_uri.
CodeCheck: код протестирован, исключений нет. CloudTest: код протестирован, исключений нет. Безопасность вирусов: проверка безопасности прошла успешно. Текущая версия demo: основные функции соответствуют исходному компоненту.
1.0.1
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )