Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Guitarboy23  
#1 Оставлено : 27 апреля 2017 г. 17:51:03(UTC)
Guitarboy23

Статус: Участник

Группы: Участники
Зарегистрирован: 23.11.2016(UTC)
Сообщений: 28
Российская Федерация
Откуда: Российская Федерация

Сказал(а) «Спасибо»: 2 раз
Коллеги, снова привет)

Недавно заметил интересную штуку с приложением (встроено ПО Крипто Про CSP 4.0 R2 9842).
Всегда есть фоновый поток, который работает на 100%, что отжирает CPU, планшет, как следствие, греется и быстрее разряжается.

Фоновый поток поднимается после выполнения данной части кода:
Код:

- (NSString *)getInternalContainerName {
    CleanUp();
    
    if (!CryptAcquireContext(&hCryptProv, INTERNAL_CONTAINER_NAME, DEFAULT_PROVIDER_NAME, PROV_GOST_2001_DH, 0)) {
        //CleanUp();
        //[self handleException:WLI_CRYPTO_ACQUIRE_CONTEXT_EXCEPTION_REASON];
        return nil;
    } else {
        CleanUp();
        return [NSString stringWithFormat:@"%s", INTERNAL_CONTAINER_NAME];
    }
}


На фоновом потоке трудится EADSessionController.
fonovyi potok.png (65kb) загружен 22 раз(а).
EADSessionController является частью фреймворка ExternalAccessory.

Пробовал отключать фреймворк ExternalAccessory, вообще говоря он в readers.txt используется только вместе с bluetooth токеном. Я использую ридер Аладдин.
Но как только убираю фреймворк из сборки, приложение сразу не компилится. Выкидывает такую ошибку:

Код:

Undefined symbols for architecture arm64:
  "_EAAccessoryDidConnectNotification", referenced from:
      -[EADSessionController RegisterAccessoryConnectNotification] in libiRockey301_ccid.a(EADSessionController.o)
      -[EADSessionController UnRegisterAccessoryConnectNotification] in libiRockey301_ccid.a(EADSessionController.o)
  "_EAAccessoryDidDisconnectNotification", referenced from:
      -[EADSessionController RegisterAccessoryConnectNotification] in libiRockey301_ccid.a(EADSessionController.o)
      -[EADSessionController UnRegisterAccessoryConnectNotification] in libiRockey301_ccid.a(EADSessionController.o)
  "_EAAccessoryKey", referenced from:
      -[EADSessionController _accessoryDidConnectNsthread:] in libiRockey301_ccid.a(EADSessionController.o)
      -[EADSessionController _accessoryDidDisconnectNsthread:] in libiRockey301_ccid.a(EADSessionController.o)
  "_OBJC_CLASS_$_EAAccessoryManager", referenced from:
      objc-class-ref in libiRockey301_ccid.a(EADSessionController.o)
  "_OBJC_CLASS_$_EASession", referenced from:
      objc-class-ref in libiRockey301_ccid.a(EADSessionController.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation) 


При этом с Крипто Про 3.6.1 в фоне приложения подобного не происходит.

С чем это связано и можно ли отключить как-то данную активность?
Offline Dmitry_Bokovikov  
#2 Оставлено : 3 мая 2017 г. 13:03:43(UTC)
Dmitry_Bokovikov

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 29.01.2014(UTC)
Сообщений: 172
Откуда: Москва

Поблагодарили: 18 раз в 17 постах
Добрый день!

Если в библиотеке есть символы EADSessionController, значит он там используется)
То, что в readers.txt нет слов про ExternalAccessory.framework - это похоже на ошибку.

3.6 собирается без ExternalAccessory.framework ?
Offline Guitarboy23  
#3 Оставлено : 3 мая 2017 г. 16:35:16(UTC)
Guitarboy23

Статус: Участник

Группы: Участники
Зарегистрирован: 23.11.2016(UTC)
Сообщений: 28
Российская Федерация
Откуда: Российская Федерация

Сказал(а) «Спасибо»: 2 раз
Автор: Dmitry_Bokovikov Перейти к цитате
Добрый день!

Если в библиотеке есть символы EADSessionController, значит он там используется)
То, что в readers.txt нет слов про ExternalAccessory.framework - это похоже на ошибку.

3.6 собирается без ExternalAccessory.framework ?


3.6 собирается также с ExternalAccessory.framework.

Без него ошибки:

Код:

Undefined symbols for architecture armv7:
  "_EAAccessoryDidConnectNotification", referenced from:
      -[EADSessionController RegisterAccessoryConnectNotification] in libAladdinReader.a(EADSessionController.o)
      -[EADSessionController UnRegisterAccessoryConnectNotification] in libAladdinReader.a(EADSessionController.o)
  "_EAAccessoryDidDisconnectNotification", referenced from:
      -[EADSessionController RegisterAccessoryConnectNotification] in libAladdinReader.a(EADSessionController.o)
      -[EADSessionController UnRegisterAccessoryConnectNotification] in libAladdinReader.a(EADSessionController.o)
  "_OBJC_CLASS_$_EAAccessoryManager", referenced from:
      objc-class-ref in libAladdinReader.a(EADSessionController.o)
  "_OBJC_CLASS_$_EASession", referenced from:
      objc-class-ref in libAladdinReader.a(EADSessionController.o)
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Offline Dmitry_Bokovikov  
#4 Оставлено : 4 мая 2017 г. 14:21:48(UTC)
Dmitry_Bokovikov

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 29.01.2014(UTC)
Сообщений: 172
Откуда: Москва

Поблагодарили: 18 раз в 17 постах
В Крипто Про 3.6.1 используется другая (более старая) версия библиотеки для работы с ридером Аладдин, вероятно, дело в этом.
Затрудняюсь ответить, с чем это связано и как это предотвратить в новой версии библиотеки, так как библиотеку собираем не мы - попробуйте связаться с техподдержкой или разработчиками Aladdin'a.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.