Статус: Новичок
Группы: Участники
Зарегистрирован: 28.11.2012(UTC) Сообщений: 3 Откуда: Москва
|
Натолкнулся на такую проблему. Есть метод Цитата:- (void) loadRootCertificates{ NSString *basePath = [[NSBundle mainBundle] resourcePath]; NSError * error; NSArray * directoryContents = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:basePath error:&error]; for (NSString *file in directoryContents) { if ([file hasSuffix:@".cer"]){ NSLog(@"Certificate %@", file); NSData *cert = [NSData dataWithContentsOfFile:[basePath stringByAppendingPathComponent:file]]; if (FCSP_SUCCESS == add_encoded_cert_to_store((BYTE*)[cert bytes], [cert length], "ROOT")) NSLog(@"...added."); else NSLog(@"...adding failed."); } } } После вызова add_encoded_cert_to_store ломается NSLog - перестает что-либо выводить Цитата:DWORD add_encoded_cert_to_store(BYTE *pbEncodedCert, DWORD cbCertEncodedSize, char *psStoreName) { PCCERT_CONTEXT certContext = CertCreateCertificateContext(ENCODING_TYPES, pbEncodedCert, cbCertEncodedSize); if (!certContext){ return FCSP_FAILED; } HCRYPTPROV hCryptProv = 0; // Получение дескриптора криптографического провайдера. if(!CryptAcquireContext( &hCryptProv, // Адрес возврашаемого дескриптора. 0, // Используется имя текущего зарегестрированного пользователя. NULL, // Используется провайдер по умолчанию. PROV_GOST_2001_DH, // Необходимо для зашифрования и подписи. CRYPT_VERIFYCONTEXT)) // Никакие флаги не нужны. { printf("Cryptographic context could not be acquired."); } HCERTSTORE hStore = CertOpenSystemStore(hCryptProv, psStoreName); if (!hStore){ return FCSP_FAILED; } if (!CertAddCertificateContextToStore(hStore, certContext, CERT_STORE_ADD_USE_EXISTING, NULL)){ return FCSP_FAILED; } if (!CertCloseStore(hStore, CERT_CLOSE_STORE_FORCE_FLAG)){ return FCSP_FAILED; } return FCSP_SUCCESS; }
Конкретнее, после CertOpenSystemStore
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.02.2008(UTC) Сообщений: 1,491 Откуда: Крипто-Про
Поблагодарили: 40 раз в 37 постах
|
Здравствуйте. Я попробовала воспроизвести на нескольких машинах в различных конфигурациях (mac os 10.6, mac os 10.8, xcode 3.x, xcode 4.2, ios sdk 4.2, ios sdk 5.1, ios sdk 6.0, разные версии нашего фреймворка), у меня после вызова CertOpenSystemStore продолжает работать nslog.
Уточните пожалуйста какую версию xcode, mac os, ios sdk и нашего фреймворка вы используете. Проблема воспроизводится только на устройстве, только на эмуляторе или и там и там? Есть ли что-то подозрительное в логах устройства (xcode - window - органайзер - ваше устройство - консоль)? |
Татьяна ООО Крипто-Про |
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 28.11.2012(UTC) Сообщений: 3 Откуда: Москва
|
Добрый день, mac os 10.8.2 iPad 6.0 Simulator xcode 4.5.2 ваш sdk 121118
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.02.2008(UTC) Сообщений: 1,491 Откуда: Крипто-Про
Поблагодарили: 40 раз в 37 постах
|
А на устройстве проблема воспроизводится? Пришлите пожалуйста проект на kondakova at cryptopro.ru . |
Татьяна ООО Крипто-Про |
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close