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

Уведомление

Icon
Error

2 Страницы12>
Опции
К последнему сообщению К первому непрочитанному
Offline rfigurin  
#1 Оставлено : 26 сентября 2013 г. 16:35:09(UTC)
rfigurin

Статус: Активный участник

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

Сказал(а) «Спасибо»: 2 раз
Здравствуйте,

В iOS 7 я столкнулся с проблемой связанной с alert сообщением, которое вызывает КриптоПРО фрэймворк. Фреймворк показывает всплывающее сообщение, в котором просит ввести пароль для вновь созданного контейнера. У этого сообщения отсутствуют 2 поля для ввода пароля на контейнер, при нажатии на "ОК" или "Отмена" ничего не происходит (кнопки остаются нажатыми). В iOS 6.1 данная проблема не воспроизводится.
Пользователь rfigurin прикрепил следующие файлы:
IMG_0214.PNG (42kb) загружен 16 раз(а).

У Вас нет прав для просмотра или загрузки вложений. Попробуйте зарегистрироваться.
Offline Татьяна  
#2 Оставлено : 26 сентября 2013 г. 17:28:55(UTC)
Татьяна

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

Группы: Участники
Зарегистрирован: 06.02.2008(UTC)
Сообщений: 1,491
Откуда: Крипто-Про

Поблагодарили: 40 раз в 37 постах
Здравствуйте, эта проблема связана с изменениями в iOS 7, она исправлена в новой версии фреймворка. Попробуйте скачать с нашего сайта из раздела загрузки сборку, которая называется "КриптоПро CSP 3.6 R4 FrameWork для iOS 5.x/6.x/7 с исправленной работой диалогов на iOS 7 (сборка 3.6.7777)".
Татьяна
ООО Крипто-Про
Offline rfigurin  
#3 Оставлено : 27 сентября 2013 г. 9:55:15(UTC)
rfigurin

Статус: Активный участник

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

Сказал(а) «Спасибо»: 2 раз
Попробовал запустить приложение с последней версией фреймворка (сборка 3.6.7777) - появились 2 поля для ввода пароля, но сообщение не пропадает при нажатии "OK" или "Отмена".

www.dropbox.com/s/btabcmlx4lap4vr/IMG_0216.PNG
Offline Татьяна  
#4 Оставлено : 27 сентября 2013 г. 13:28:52(UTC)
Татьяна

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

Группы: Участники
Зарегистрирован: 06.02.2008(UTC)
Сообщений: 1,491
Откуда: Крипто-Про

Поблагодарили: 40 раз в 37 постах
У других наших партнёров и у меня работает.
А может выложить проект в dropbox? Я посмотрю в чём может быть дело.
Татьяна
ООО Крипто-Про
Offline rfigurin  
#5 Оставлено : 27 сентября 2013 г. 17:11:09(UTC)
rfigurin

Статус: Активный участник

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

Сказал(а) «Спасибо»: 2 раз
Отправил ссылку на проект в дропбоксе электронной почтой.
Offline Татьяна  
#6 Оставлено : 27 сентября 2013 г. 17:32:23(UTC)
Татьяна

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

Группы: Участники
Зарегистрирован: 06.02.2008(UTC)
Сообщений: 1,491
Откуда: Крипто-Про

Поблагодарили: 40 раз в 37 постах
Проблема следующая:

Для работы нашего провайдера нужны модальные диалоги (по крайней мере диалоги запроса пароля, датчика случайных чисел и некоторые сообщения, которые выплёвывает провайдер должны быть модальными, остальное можно поменять на не модальные).
Код, который используется чтобы организовать модальные диалоги выглядит так:
Код:

@implementation ModalAlertDelegate
@synthesize index;

-(id) initWithRunLoop: (CFRunLoopRef)runLoop
{
        if ((self = [super init]) != 0)
            currentLoop = runLoop;
        return self;
}

// User pressed button. Retrieve results
-(void) alertView: (UIAlertView*)aView clickedButtonAtIndex: (NSInteger)anIndex
{
        index = anIndex;
        CFRunLoopStop(currentLoop);
}

@end

@implementation ModalAlert
+(NSUInteger) queryWith: (NSString *)question message: (NSString *) text button1: (NSString *)button1 button2: (NSString *)button2
{
        CFRunLoopRef currentLoop = CFRunLoopGetCurrent();

        // Create Alert
        ModalAlertDelegate *madelegate = [[ModalAlertDelegate alloc] initWithRunLoop:currentLoop];
        UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:question message:text delegate:madelegate cancelButtonTitle:button1 otherButtonTitles:button2, nil];
        [alertView show];

        // Wait for response
        madelegate.index = -1;
        while(madelegate.index == -1)
            CFRunLoopRun();

        // Retrieve answer
        NSUInteger answer = madelegate.index;
        [alertView release];
        [madelegate release];
        return answer;
}

//Другие методы
@end


в поздних версиях ios7 (во всех бетах кроме последней всё было ок) CFRunLoopRun() работает не достаточно хорошо -- например если вызывать это из обработчика таблицы (didSelectRowAtIndexPath), то CFRunLoopRun() передаёт управление системе, но как-то не полностью -- окно отрисовывается, нажатие кнопок в окне отрисовывается, но clickedButtonAtIndex из делегата не вызывается.
Видимо при вызове из viewDidAppear та же проблема.
В нашей панели проблема решена переносом вызовов, которые могут рисовать окна в главный thread. Попробуйте в SecureConnectionManager::init заменить вызовы

[self installRootCertificate] и [self installUserCertificate] на [self performSelectorOnMainThread:@selector(installRootCertificate) withObject:nil waitUntilDone:NO] и [self performSelectorOnMainThread:@selector(installUserCertificate) withObject:nil waitUntilDone:NO].

Как это решить более систематически пока не придумала. Надеюсь в новой iOS пофиксят поведение CFRunLoopRun.
Татьяна
ООО Крипто-Про
Offline rfigurin  
#7 Оставлено : 30 сентября 2013 г. 11:44:52(UTC)
rfigurin

Статус: Активный участник

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

Сказал(а) «Спасибо»: 2 раз
Спасибо, проблема пофикшена [self performSelectorOnMainThread...] вызовом.
Offline Татьяна  
#8 Оставлено : 30 сентября 2013 г. 12:51:03(UTC)
Татьяна

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

Группы: Участники
Зарегистрирован: 06.02.2008(UTC)
Сообщений: 1,491
Откуда: Крипто-Про

Поблагодарили: 40 раз в 37 постах
Отлично. Если придумаю какое-то более систематическое решение -- напишу вам.
Татьяна
ООО Крипто-Про
Offline Василий Анисимов  
#9 Оставлено : 24 октября 2013 г. 17:23:29(UTC)
Василий Анисимов

Статус: Активный участник

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

Сказал «Спасибо»: 19 раз
Поблагодарили: 1 раз в 1 постах
Здравствуйте! У меня тоже возникла проблема с алертом запроса пина в iOS 7:
Валится, судя повсему, на показе алерта (в 6 айос всё нормально) на этом методе:

Цитата:
CryptMsgGetParam(
hMsg, // Handle to the message
CMSG_CONTENT_PARAM, // Parameter type
0, // Index
pbEncodedBlob, // Pointer to the blob
&cbEncodedBlob)) // Size of the blob


Версия крипто про 3.6.7777

Крашлог:
ВАСИЛИЙ АНИСИМОВ
Ведущий iOS разработчик в «Digital Design»
www.digdes.ru
Offline Татьяна  
#10 Оставлено : 28 октября 2013 г. 9:51:35(UTC)
Татьяна

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

Группы: Участники
Зарегистрирован: 06.02.2008(UTC)
Сообщений: 1,491
Откуда: Крипто-Про

Поблагодарили: 40 раз в 37 постах
Здравствуйте. У меня эта функция нормально работает, но в ios7 бывают нюансы (например, всё может зависеть от того, откуда конкретно этот код вызывается). Пришлите мне проект на kondakova at cryptopro.ru , я постараюсь разобраться.
Татьяна
ООО Крипто-Про
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
2 Страницы12>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.