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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline SkyWalker44  
#1 Оставлено : 25 января 2019 г. 18:28:05(UTC)
SkyWalker44

Статус: Новичок

Группы: Участники
Зарегистрирован: 25.01.2019(UTC)
Сообщений: 4

Добрый день!

Не удается обновить фреймворк и не совсем понятно, как это необходимо правильно делать.
Задача следующая: есть проект, работающий с использованием CPROCSP v3.9, необходимо обновить фреймворк до версии 4.0. Я брала с сайта дистрибутив CSP 4.0 R4 и меняла в папке проекта один фреймворк на другой. В результате проект виснет на вызове метода CertAddEncodedCertificateToStore, который выглядит вот так:
Код:
if (!CertAddEncodedCertificateToStore(hSystemStore, X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, (BYTE*)[certData bytes], [certData length], CERT_STORE_ADD_REPLACE_EXISTING, NULL)) { ... }

Пробовала ликовать заново в Build Phases и в т.ч. напрямую прописывать Search Paths, но ничего не помогло
Если поверх фреймворка записать его старую версию, то все снова работает как раньше
Собирается все без ошибок, и некоторые другие вызовы до этого отрабатываются как нужно (например CertOpenStore)


Возможно необходимо провести еще какие-то шаги при обновлении, или я изначально что-то не так делаю?

PS: абсолютно та же история с 5.0 версией
Offline Максим Коллегин  
#2 Оставлено : 25 января 2019 г. 21:20:51(UTC)
Максим Коллегин

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

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,375
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 32 раз
Поблагодарили: 704 раз в 613 постах
Попробуйте пересоздать хранилище сертификатов в новом CSP.
Знания в базе знаний, поддержка в техподдержке
Offline SkyWalker44  
#3 Оставлено : 11 февраля 2019 г. 13:39:30(UTC)
SkyWalker44

Статус: Новичок

Группы: Участники
Зарегистрирован: 25.01.2019(UTC)
Сообщений: 4

А не подскажете, пожалуйста, как это лучше сделать?
Offline SkyWalker44  
#4 Оставлено : 18 февраля 2019 г. 14:30:07(UTC)
SkyWalker44

Статус: Новичок

Группы: Участники
Зарегистрирован: 25.01.2019(UTC)
Сообщений: 4

Приложение потыкал тестировщик и обнаружил следующую занятную вещь: не экране недавно открытых приложений (double-Home) на мордочке нашего видно наличие алерта от КриптоПро с примерно следующим текстом:
"Внимание, установка корневого сертификата с неподтверждённым отпечатком представляет риск для безопасности. Вы хотите установить этот сертификат? Отпечаток: тут что-то шестнадцатеричное, разобрать на мини-экране сложно. И окошко: отмена и ок."
Видно, приложение не "виснет", а ждет ответа от пользователя, но алерт по каким-то причинам не отображается.

Вопросы следующие: что означает сообщение о неподтвержденном отпечатке? Почему в предыдущей версии (3.9) подверженность отпечатка вопросов не вызывала? И как его можно "подтвердить"? :)
Offline Александр Лавник  
#5 Оставлено : 18 февраля 2019 г. 14:38:20(UTC)
Александр Лавник

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

Группы: Участники
Зарегистрирован: 30.06.2016(UTC)
Сообщений: 3,376
Мужчина
Российская Федерация

Сказал «Спасибо»: 53 раз
Поблагодарили: 773 раз в 715 постах
Автор: SkyWalker44 Перейти к цитате
Приложение потыкал тестировщик и обнаружил следующую занятную вещь: не экране недавно открытых приложений (double-Home) на мордочке нашего видно наличие алерта от КриптоПро с примерно следующим текстом:
"Внимание, установка корневого сертификата с неподтверждённым отпечатком представляет риск для безопасности. Вы хотите установить этот сертификат? Отпечаток: тут что-то шестнадцатеричное, разобрать на мини-экране сложно. И окошко: отмена и ок."
Видно, приложение не "виснет", а ждет ответа от пользователя, но алерт по каким-то причинам не отображается.

Вопросы следующие: что означает сообщение о неподтвержденном отпечатке? Почему в предыдущей версии (3.9) подверженность отпечатка вопросов не вызывала? И как его можно "подтвердить"? :)

Здравствуйте.

См. тему.
Техническую поддержку оказываем тут
Наша база знаний
Offline SkyWalker44  
#6 Оставлено : 21 февраля 2019 г. 15:03:54(UTC)
SkyWalker44

Статус: Новичок

Группы: Участники
Зарегистрирован: 25.01.2019(UTC)
Сообщений: 4

Спасибо! Помогло в CertOpenStore заменить CERT_SYSTEM_STORE_CURRENT_USER на CERT_SYSTEM_STORE_LOCAL_MACHINE

Теперь вроде обновление прошло, но не совсем ясно правильно ли
Основная задача обновления была в том, чтобы добавить поддержку сертификатов нового образца (ГОСТ Р 34.10-2012). По идее переход на КриптоПро 4.0 должен был решить проблему.
Сейчас сертификаты, созданные по ГОСТ Р 34.11-2012/34.10-2012, со смарткарты не читаются, кидается ошибка на попытке получить дескриптор контейнера, из которого осуществляется копирование со следующей ошибкой:

Код:
 WLICryptoProvider raises exception. Reason: Failed to CryptAcquireContext., Last error code: 2148073501


Вот код, последний if не проходит:
Код:

        //--------------------------------------------------------------------
        //  Объявление и инициализация переменных.
        DWORD dwProvType = PROV_GOST_2012_256;   // Тип провайдера по умолчанию
        DWORD data_len = 0;                     // Длина буфера
        BYTE *oid = NULL;                       // Буфер для хранения параметров
        DWORD dwBlobLen = 0;                    // Длина ключевого BLOBа
        DWORD cAlg = CALG_PRO_EXPORT;
        
        //--------------------------------------------------------------------
        // Получение дескриптора контейнера, в который осуществляется копирование
        // ключа (получатель).
        
        if (!CryptAcquireContext(&hProvResponder, [toContainer cStringUsingEncoding:NSUTF8StringEncoding], NULL, dwProvType, CRYPT_NEWKEYSET | CRYPT_SILENT)) {
            CleanUp();
            [self handleException:WLI_CRYPTO_ACQUIRE_CONTEXT_EXCEPTION_REASON];
            return [NSNumber numberWithBool:false];
        } else {
            NSLog(@"[%@] The responder key container has been acquired.", NSStringFromSelector(_cmd));
        }
        
        //--------------------------------------------------------------------
        // Получение дескриптора контейнера, из которого осуществляется копирование
        // ключа (отправитель).
        
        if (!CryptAcquireContext(&hProvSender, [containerName cStringUsingEncoding:NSUTF8StringEncoding], NULL, dwProvType, (pin) ? CRYPT_SILENT : 0)) {
            CleanUp();
            [self handleException:WLI_CRYPTO_ACQUIRE_CONTEXT_EXCEPTION_REASON];
            return [NSNumber numberWithBool:false];
        } else {
            NSLog(@"[%@] The sender key container has been acquired.", NSStringFromSelector(_cmd));
        }
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.