Форум КриптоПро
»
Общие вопросы
»
Общие вопросы
»
Формирование подписи с атрибутом "Время создания"
Статус: Новичок
Группы: Участники
Зарегистрирован: 17.11.2011(UTC) Сообщений: 4 Откуда: Томск
|
Здравствуйте! Столкнулся с такой проблемой и решить не могу. Нужно пописать файл. И не просто подписать, а подписать так чтобы был задан атрибут подписи "время создания". Для создания самой подписи руководствовался следующим материалом: http://www.rsdn.ru/article/crypto/signature.xml. Но там никакие дополнительные атрибуты при создании подписи не используются. Читая MSDN догадался что мне нужно сформировать дополнительную структуру CRYPT_ATTRIBUTE и там прописать этот самый дополнительный атрибут "Время создания". Но в самом MSDN и в других источниках пока ничего не нашел. Пробую следующим образом: Код: CRYPT_SIGN_MESSAGE_PARA param;
...
param.cAuthAttr = 1;
CRYPT_ATTRIBUTE Attr;
memset(&Attr, 0, sizeof(CRYPT_ATTRIBUTE));
Attr.pszObjId = szOID_RSA_signingTime;
Attr.cValue = 1;
CRYPT_INTEGER_BLOB intblob;
memset(&intblob, 0, sizeof(CRYPT_INTEGER_BLOB));
intblob.cbData = 1;
intblob.pbData = "17.11.2011";
Attr.rgValue = & intblob;
param.rgAuthAttr = &Attr;
...
Вообще должна ставиться просто текущая системная дата/время. Но ничего не выходит. Программа честно отрабатывает, добавляет подпись в файл, но проверить результат, например, КриптоАРМом не получается. Может кто подскажет как сделать правильно? Или инструкцию где можно об этом почитать.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,487 ![Мужчина Мужчина](/forum2/Themes/soclean/male.gif) ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Сказал «Спасибо»: 553 раз Поблагодарили: 2245 раз в 1751 постах
|
Цитата:Программа честно отрабатывает, добавляет подпись в файл. нет, "не честно" т.к. Цитата:но проверить результат, например, КриптоАРМом не получается обсуждалось и не раз, и в MSDN есть пример и здесь, что в старом форуме , что в новом |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 17.11.2011(UTC) Сообщений: 4 Откуда: Томск
|
Спасибо за ответ. Жаль только что ссылочек не дали.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,487 ![Мужчина Мужчина](/forum2/Themes/soclean/male.gif) ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Сказал «Спасибо»: 553 раз Поблагодарили: 2245 раз в 1751 постах
|
PrGeorge написал:Спасибо за ответ. Жаль только что ссылочек не дали. пардон, я уж совсем обленился, исправляюсь: в верхней части Поиск Ввести одно ключевое слово: szOID_RSA_signingTime Нажать кнопку Искать Отредактировано пользователем 17 ноября 2011 г. 15:28:10(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 17.11.2011(UTC) Сообщений: 4 Откуда: Томск
|
Огромное Спасибо за помощь! Действительно, поиск по szOID_RSA_signingTime помог, а поиск по "Время создания" не помог. По поиску нашел пример. Правда он на Delphi, а у меня программа на Builder`е. Попробовал перевести. Вот что получилось: Код: TDateTime fTime = Date();
PBYTE pbAuth;
DWORD cbAuth;
if (! CryptEncodeObject(ENC_TYPE, szOID_RSA_signingTime, &fTime, NULL, &cbAuth))
{ ShowMessage("Cannot encode object");
};
memset(&pbAuth,0,cbAuth);
CryptEncodeObject(ENC_TYPE, szOID_RSA_signingTime, &fTime, pbAuth, &cbAuth);
CRYPT_ATTR_BLOB NowTime;
memset(&NowTime,0,sizeof(CRYPT_ATTR_BLOB));
NowTime.cbData = cbAuth;
NowTime.pbData = pbAuth;
CRYPT_ATTRIBUTE Attr;
memset(&Attr, 0, sizeof(CRYPT_ATTRIBUTE));
Attr.pszObjId = szOID_RSA_signingTime;
Attr.cValue = 1;
Attr.rgValue = &NowTime;
param.cAuthAttr = 1;
param.rgAuthAttr = &Attr;
Может перевел, конечно, не правильно. Но в результате у меня программа всегда завершается сообщением "Cannot encode object". Т.е. она не может подсчитать объем памяти для pbAuth, т.е. для сохранения текущей даты/времени. Посоветуйте что-нибудь, пожалуйста.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,487 ![Мужчина Мужчина](/forum2/Themes/soclean/male.gif) ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Сказал «Спасибо»: 553 раз Поблагодарили: 2245 раз в 1751 постах
|
Цитата:Посоветуйте что-нибудь, пожалуйста.
еще раз поискать... ? а в старый форум не заглядывал? Цитата: По поиску нашел пример. Правда он на Delphi, а у меня программа на Builder`е.
;) |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 17.11.2011(UTC) Сообщений: 4 Откуда: Томск
|
Старый форум помог. Оказывается не правильно память под переменную выделял. Да и формат даты там какой-то хитрый должен быть.
Спасибо!
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,487 ![Мужчина Мужчина](/forum2/Themes/soclean/male.gif) ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Сказал «Спасибо»: 553 раз Поблагодарили: 2245 раз в 1751 постах
|
PrGeorge написал:Старый форум помог. Оказывается не правильно память под переменную выделял. Да и формат даты там какой-то хитрый должен быть.
Спасибо! Всегда пожалуйста... формат не хитрый... уж не сравнить с первым постом ;) Цитата: PrGeorge
intblob.pbData = "17.11.2011";
|
|
|
|
|
Форум КриптоПро
»
Общие вопросы
»
Общие вопросы
»
Формирование подписи с атрибутом "Время создания"
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close