Статус: Новичок
Группы: Участники
Зарегистрирован: 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 версией
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,375 Откуда: КРИПТО-ПРО Сказал «Спасибо»: 32 раз Поблагодарили: 704 раз в 613 постах
|
Попробуйте пересоздать хранилище сертификатов в новом CSP. |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 25.01.2019(UTC) Сообщений: 4
|
А не подскажете, пожалуйста, как это лучше сделать?
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 25.01.2019(UTC) Сообщений: 4
|
Приложение потыкал тестировщик и обнаружил следующую занятную вещь: не экране недавно открытых приложений (double-Home) на мордочке нашего видно наличие алерта от КриптоПро с примерно следующим текстом: "Внимание, установка корневого сертификата с неподтверждённым отпечатком представляет риск для безопасности. Вы хотите установить этот сертификат? Отпечаток: тут что-то шестнадцатеричное, разобрать на мини-экране сложно. И окошко: отмена и ок." Видно, приложение не "виснет", а ждет ответа от пользователя, но алерт по каким-то причинам не отображается.
Вопросы следующие: что означает сообщение о неподтвержденном отпечатке? Почему в предыдущей версии (3.9) подверженность отпечатка вопросов не вызывала? И как его можно "подтвердить"? :)
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 30.06.2016(UTC) Сообщений: 3,376 Сказал «Спасибо»: 53 раз Поблагодарили: 773 раз в 715 постах
|
Автор: SkyWalker44 Приложение потыкал тестировщик и обнаружил следующую занятную вещь: не экране недавно открытых приложений (double-Home) на мордочке нашего видно наличие алерта от КриптоПро с примерно следующим текстом: "Внимание, установка корневого сертификата с неподтверждённым отпечатком представляет риск для безопасности. Вы хотите установить этот сертификат? Отпечаток: тут что-то шестнадцатеричное, разобрать на мини-экране сложно. И окошко: отмена и ок." Видно, приложение не "виснет", а ждет ответа от пользователя, но алерт по каким-то причинам не отображается.
Вопросы следующие: что означает сообщение о неподтвержденном отпечатке? Почему в предыдущей версии (3.9) подверженность отпечатка вопросов не вызывала? И как его можно "подтвердить"? :) Здравствуйте. См. тему. |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 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));
}
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close