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

Уведомление

Icon
Error

6 Страницы123>»
Опции
К последнему сообщению К первому непрочитанному
Offline forik  
#1 Оставлено : 12 апреля 2012 г. 19:58:13(UTC)
forik

Статус: Активный участник

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

Сказал(а) «Спасибо»: 2 раз
Здравствуйте! Мучает вопрос соподписи документов. Нашел пример Соподписи на мсдн, но там все это хозяйство проходит для прикрепленной подписи. Мне же нужно для отделенной, поэтому подойдет ли тот же механизм?
И в том же примере не совсем понятен момент соподписи: там с помощью CryptMsgControl(..CMSG_CTRL_ADD_SIGNER..) добавляется еще один пользователь, его сертификат, но не вызывается функция CryptSignMessage. Я так думаю CryptMsgControl сама это все делает. Ввиду отсутствия описания высокоуровневых функций туман в голове. Поясните, если несложно пожалуйста.

PS Еще нашел функции CryptMsgCountersign и CryptMsgCountersignEncoded - тоже, как я понял для соподписи.

Отредактировано пользователем 12 апреля 2012 г. 20:28:53(UTC)  | Причина: Не указана

Offline Георгий Садофьев  
#2 Оставлено : 12 апреля 2012 г. 21:22:19(UTC)
Георгий Садофьев

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

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

Поблагодарили: 26 раз в 25 постах
BOOL WINAPI CryptSignMessage(
__in PCRYPT_SIGN_MESSAGE_PARA pSignPara,
__in BOOL fDetachedSignature,
__in DWORD cToBeSigned,
__in const BYTE *rgpbToBeSigned[],
__in DWORD rgcbToBeSigned[],
__out BYTE *pbSignedBlob,
__inout DWORD *pcbSignedBlob
);

Второй параметр определяет тип подписи.

Также советую почитать http://www.cryptopro.ru/docs/cpdn/default.asp
Там описываются некоторые особенности функций CryptMsgControl и др.

CounterSign - это заверяющая подпись (пример её использования http://msdn.microsoft.co...82050%28v=vs.85%29.aspx)
CoSign - это соподпись (то есть просто очередная подпись сообщения).

Отредактировано пользователем 13 апреля 2012 г. 3:33:54(UTC)  | Причина: Не указана

Техническую поддержку оказываем тут
Наша база знаний
Offline forik  
#3 Оставлено : 13 апреля 2012 г. 11:37:53(UTC)
forik

Статус: Активный участник

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

Сказал(а) «Спасибо»: 2 раз
Yoda написал:
BOOL WINAPI CryptSignMessage(
__in PCRYPT_SIGN_MESSAGE_PARA pSignPara,
__in BOOL fDetachedSignature,
__in DWORD cToBeSigned,
__in const BYTE *rgpbToBeSigned[],
__in DWORD rgcbToBeSigned[],
__out BYTE *pbSignedBlob,
__inout DWORD *pcbSignedBlob
);

Второй параметр определяет тип подписи.

На счет подписи сообщений все понятно, непонятен механизм соподписи. В примере, который я указал, для соподписи явно CryptSignMessage не вызывается, поэтому собственно и вопрос был задан.
Offline Андрей Писарев  
#4 Оставлено : 13 апреля 2012 г. 12:53:41(UTC)
Андрей *

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

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

Сказал «Спасибо»: 500 раз
Поблагодарили: 2044 раз в 1585 постах
forik написал:
Yoda написал:
BOOL WINAPI CryptSignMessage(
__in PCRYPT_SIGN_MESSAGE_PARA pSignPara,
__in BOOL fDetachedSignature,
__in DWORD cToBeSigned,
__in const BYTE *rgpbToBeSigned[],
__in DWORD rgcbToBeSigned[],
__out BYTE *pbSignedBlob,
__inout DWORD *pcbSignedBlob
);

Второй параметр определяет тип подписи.

На счет подписи сообщений все понятно, непонятен механизм соподписи. В примере, который я указал, для соподписи явно CryptSignMessage не вызывается, поэтому собственно и вопрос был задан.



CryptMsgControl - низкоуровневая функция обработки криптографических сообщений
CryptSignMessage - высокоуровневая функция обработки криптографических сообщений

http://www.cryptopro.ru/...ticles/2005/07/cryptoapi

Отредактировано пользователем 13 апреля 2012 г. 13:00:26(UTC)  | Причина: Не указана

Техническую поддержку оказываем тут
Наша база знаний
Offline forik  
#5 Оставлено : 13 апреля 2012 г. 13:20:03(UTC)
forik

Статус: Активный участник

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

Сказал(а) «Спасибо»: 2 раз
Спасибо, все напутал я )
Offline forik  
#6 Оставлено : 13 апреля 2012 г. 14:06:55(UTC)
forik

Статус: Активный участник

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

Сказал(а) «Спасибо»: 2 раз
Сделал соподпись для отделенной подписи, но на notary.cryptopro.ru добавленная ЭЦП даже математически не верна. Я из этого сделал вывод, что для добавления подписи CryptMsgControl нужно, чтобы в HCRYPTMSG содержались данные вместе с подписью. Но в таком случае, как сделать соподпись для отделенной?
Offline Андрей Писарев  
#7 Оставлено : 13 апреля 2012 г. 15:24:29(UTC)
Андрей *

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

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

Сказал «Спасибо»: 500 раз
Поблагодарили: 2044 раз в 1585 постах
forik написал:
Сделал соподпись для отделенной подписи, но на notary.cryptopro.ru добавленная ЭЦП даже математически не верна. Я из этого сделал вывод, что для добавления подписи CryptMsgControl нужно, чтобы в HCRYPTMSG содержались данные вместе с подписью. Но в таком случае, как сделать соподпись для отделенной?


все есть в примерах sdk\msdn
Техническую поддержку оказываем тут
Наша база знаний
Offline forik  
#8 Оставлено : 13 апреля 2012 г. 16:56:01(UTC)
forik

Статус: Активный участник

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

Сказал(а) «Спасибо»: 2 раз
Посыпаю голову пеплом, но не могу найти ссылку на sdk с примерами, о которых Вы говорите. Будьте добры дайте ссылку :)
Offline forik  
#9 Оставлено : 17 апреля 2012 г. 12:11:25(UTC)
forik

Статус: Активный участник

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

Сказал(а) «Спасибо»: 2 раз
Разобрался. первым вызовом CryptMsgUpdate() добавляем содержимое подписи, вторым вызовом содержимое исходного файла.
Offline Boris@Serezhkin.com  
#10 Оставлено : 28 марта 2013 г. 11:41:47(UTC)
Boris@Serezhkin.com

Статус: Активный участник

Группы: Участники
Зарегистрирован: 26.08.2010(UTC)
Сообщений: 259
Откуда: Moscow

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 11 раз в 10 постах
Полпись, СоПодпись - штепсель надо ставить, фифалетаго цвету! Angel

Для подписи высокоуровневая функция, для соподписи набор низкоуровневых.
Мне кажется это бардак немного...

Если есть список сертификатов, то хочется в цикле
вызывать одну функцию Добавить_Подпись(болб,сертификат)
и не разбираться первая подпись добавляется или седьмая.
Тем более RSA не добавляет аттрибут времени и после первой подписи все
равно надо спускаться вниз, проверять наличие атрибута и добавлять его.
Уж больно неказистая реализация вырисовывается.
Хочется красоты и стройности. Вот такой крик души.
Boo hoo!
При попытке реализации споткнулся на первом вызове, в блоб-е чистый текст.
Как определить?
Все равно получается надо опускаться ниже. Считать хэш, оборачивать все в ASN1
И там та же песня - первый вызов или?
Мда, чем дальше в лес, тем толще партизаны... Think

У народа есть идеи как достичь недостижимой стройности?
Или у меня блажь, весенняя?

Борис
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
6 Страницы123>»
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.