1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/chinasoft_ohos-TrustKit-ohos

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

TrustKit-ohos

Проект

  • Название проекта: TrustKit-ohos.
  • Серия: openharmony, сторонние компоненты, адаптация и перенос.
  • Функция: предоставление библиотеки для лёгкого развёртывания функций блокировки и отчётности по SSL-ключам в любом приложении Ohos.
  • Состояние переноса проекта: основная функциональность завершена.
  • Вызовы: отсутствуют.
  • Версия разработки: SDK6, DevEco Studio2.2 beta1.
  • Базовая версия: Release 1.1.3.

Демонстрация эффекта

TrustKit-ohos

Инструкция по установке

  1. В файле build.gradle в корневом каталоге проекта:
allprojects {
   repositories {
       maven {
           url 'https://s01.oss.sonatype.org/content/repositories/releases/'
       }
   }
}
  1. В файле entry модуля build.gradle:
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 )

Вы можете оставить комментарий после Вход в систему

Введение

Предоставить библиотеку, которая позволит легко развернуть функции блокировки по SSL-сертификату и формирования отчётов в любом приложении на базе операционной системы реального времени (RTOS). Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/chinasoft_ohos-TrustKit-ohos.git
git@api.gitlife.ru:oschina-mirror/chinasoft_ohos-TrustKit-ohos.git
oschina-mirror
chinasoft_ohos-TrustKit-ohos
chinasoft_ohos-TrustKit-ohos
master