Статус: Новичок
Группы: Участники
Зарегистрирован: 25.06.2012(UTC) Сообщений: 7 Откуда: Санкт-Петербург
|
Добрый день.
В процессе разработки приложения для iOS столкнулись с проблемой приведения даты выпуска полученного пользователем сертификата из формата FILETIME (два сегмента по 32 бита) в какой-либо подходящий для дальнейших преобразований формат (например, timestamp в миллисекундах с 1970 года). Подскажите, включает ли фреймворк для iOS метод для данного преобразования, либо какой-либо другой метод, который можно использовать для извлечения даты выпуска сертификата?
С уважением, Константин
PS: FileTimeToSystemTime(<#const FILETIME *lpFileTime#>, <#LPSYSTEMTIME lpSystemTime#>) входящий в CSP_WinBase.h отсутствует в архитектуре arm7
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 21.02.2012(UTC) Сообщений: 32 Откуда: Пермь
Сказал(а) «Спасибо»: 1 раз
|
Зато есть CSP_FileTimeToSystemTime(<#const FILETIME *lpFileTime#>, <#LPSYSTEMTIME lpSystemTime#>)
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.02.2008(UTC) Сообщений: 1,491 Откуда: Крипто-Про
Поблагодарили: 40 раз в 37 постах
|
Совершенно верно, из-за некоторых особенностей архитектуры (если кому-то важно каких -- расскажу подробнее), мы не можем экспортировать фукнции с именами FileTimeToSystemTime, SystemTimeToFileTime и некоторыми другими. Они доступны с префикском CSP_ . |
Татьяна ООО Крипто-Про |
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 25.06.2012(UTC) Сообщений: 7 Откуда: Санкт-Петербург
|
А с какой версии фреймворка доступны эти функции? В установленной с сайта последней версии я не нашел сигнатуры CSP_FileTimeToSystemTime ни в одном файле. Мы точно говорим о версии фреймворка для iOS?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.02.2008(UTC) Сообщений: 1,491 Откуда: Крипто-Про
Поблагодарили: 40 раз в 37 постах
|
#define GetLastError CSP_GetLastError #define SetLastError CSP_SetLastError #define FileTimeToSystemTime CSP_FileTimeToSystemTime #define SystemTimeToFileTime CSP_SystemTimeToFileTime
пожалуй, включу это в свежие версии CPROCSP.h
Причина примерно такая: На ios всё линкуется статически. В некоторых популярных библиотеках есть функции с такими именами, а символы дублироваться не должны. Поэтому у нас после сборки фреймворка заменяются имена символов, чтобы избежать таких конфликтов. Внутри нашей сборки и соответственно внутри хедеров фукнции имеют обычные имена, подмена имени происходит уже в готовой библиотеке (в противном случае, будет кошмар из ifdef IOS). |
Татьяна ООО Крипто-Про |
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 25.06.2012(UTC) Сообщений: 7 Откуда: Санкт-Петербург
|
Окей. Спасибо, с подключением разобрались. Был бы очень благодарен (и, думаю, не я один :) за пример кода, использующий FileTimeToSystemTime. Желательно с объявлением переменных. Код:
FILETIME *certTime = &(pSignerCertContext->pCertInfo->NotBefore);
LPSYSTEMTIME *systemTime;
if (FileTimeToSystemTime(certTime, *systemTime)){
NSLog(@"Время конвертировано");
}
Валится с EX_BAD_ACCESS на вызове FileTimeToSystemTime
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.02.2008(UTC) Сообщений: 1,491 Откуда: Крипто-Про
Поблагодарили: 40 раз в 37 постах
|
у меня работает: Код:
SYSTEMTIME SysTime1,SysTime2;
if(FileTimeToSystemTime(&pCert->pCertInfo->NotBefore,&SysTime1)&&FileTimeToSystemTime(&pCert->pCertInfo->NotAfter,&SysTime2))
{
бла-бла-бла
}
пришлите проект на kondakova at cryptopro.ru |
Татьяна ООО Крипто-Про |
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 25.06.2012(UTC) Сообщений: 7 Откуда: Санкт-Петербург
|
Сегодня все вызовы удалось сформировать, так что вопрос решен, спасибо! Но за пример спасибо отдельное :)
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close