Статус: Активный участник
Группы: Участники
Зарегистрирован: 26.10.2011(UTC) Сообщений: 61
Сказал(а) «Спасибо»: 2 раз
|
Здравствуйте! Мучает вопрос соподписи документов. Нашел пример Соподписи на мсдн, но там все это хозяйство проходит для прикрепленной подписи. Мне же нужно для отделенной, поэтому подойдет ли тот же механизм? И в том же примере не совсем понятен момент соподписи: там с помощью CryptMsgControl(..CMSG_CTRL_ADD_SIGNER..) добавляется еще один пользователь, его сертификат, но не вызывается функция CryptSignMessage. Я так думаю CryptMsgControl сама это все делает. Ввиду отсутствия описания высокоуровневых функций туман в голове. Поясните, если несложно пожалуйста. PS Еще нашел функции CryptMsgCountersign и CryptMsgCountersignEncoded - тоже, как я понял для соподписи. Отредактировано пользователем 12 апреля 2012 г. 20:28:53(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)
| Причина: Не указана |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 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 не вызывается, поэтому собственно и вопрос был задан.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 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)
| Причина: Не указана |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 26.10.2011(UTC) Сообщений: 61
Сказал(а) «Спасибо»: 2 раз
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 26.10.2011(UTC) Сообщений: 61
Сказал(а) «Спасибо»: 2 раз
|
Сделал соподпись для отделенной подписи, но на notary.cryptopro.ru добавленная ЭЦП даже математически не верна. Я из этого сделал вывод, что для добавления подписи CryptMsgControl нужно, чтобы в HCRYPTMSG содержались данные вместе с подписью. Но в таком случае, как сделать соподпись для отделенной?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,691 Сказал «Спасибо»: 500 раз Поблагодарили: 2044 раз в 1585 постах
|
forik написал:Сделал соподпись для отделенной подписи, но на notary.cryptopro.ru добавленная ЭЦП даже математически не верна. Я из этого сделал вывод, что для добавления подписи CryptMsgControl нужно, чтобы в HCRYPTMSG содержались данные вместе с подписью. Но в таком случае, как сделать соподпись для отделенной? все есть в примерах sdk\msdn |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 26.10.2011(UTC) Сообщений: 61
Сказал(а) «Спасибо»: 2 раз
|
Посыпаю голову пеплом, но не могу найти ссылку на sdk с примерами, о которых Вы говорите. Будьте добры дайте ссылку :)
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 26.10.2011(UTC) Сообщений: 61
Сказал(а) «Спасибо»: 2 раз
|
Разобрался. первым вызовом CryptMsgUpdate() добавляем содержимое подписи, вторым вызовом содержимое исходного файла.
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 26.08.2010(UTC) Сообщений: 259 Откуда: Moscow
Сказал(а) «Спасибо»: 4 раз Поблагодарили: 11 раз в 10 постах
|
Полпись, СоПодпись - штепсель надо ставить, фифалетаго цвету! Для подписи высокоуровневая функция, для соподписи набор низкоуровневых. Мне кажется это бардак немного... Если есть список сертификатов, то хочется в цикле вызывать одну функцию Добавить_Подпись(болб,сертификат) и не разбираться первая подпись добавляется или седьмая. Тем более RSA не добавляет аттрибут времени и после первой подписи все равно надо спускаться вниз, проверять наличие атрибута и добавлять его. Уж больно неказистая реализация вырисовывается. Хочется красоты и стройности. Вот такой крик души. При попытке реализации споткнулся на первом вызове, в блоб-е чистый текст. Как определить? Все равно получается надо опускаться ниже. Считать хэш, оборачивать все в ASN1 И там та же песня - первый вызов или? Мда, чем дальше в лес, тем толще партизаны... У народа есть идеи как достичь недостижимой стройности? Или у меня блажь, весенняя? Борис
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close