| ||||
| ||||
Здравствуйте. При вызове функции CryptSignMessage создается объект функции хеширования и в этой же функции он преобразуется на закрытом ключе отправителя. У меня возник следующий вопрос: при этом преобразовании к нему добавляется описание подписанных данных? Так как после подписи сообщения при просмотре файла через программу dumpASN1 после сертификата отправителя следует вот такая структура: SET { SEQUENCE { INTEGER 1 SEQUENCE { SEQUENCE { SET { SEQUENCE { OBJECT IDENTIFIER '1 2 840 113549 1 9 1' IA5String 'info@cryptopro.ru' } } SET { SEQUENCE { OBJECT IDENTIFIER '2 5 4 6' PrintableString 'RU' } } SET { SEQUENCE { OBJECT IDENTIFIER '2 5 4 10' PrintableString 'CRYPTO-PRO' } } SET { SEQUENCE { OBJECT IDENTIFIER '2 5 4 3' PrintableString 'Test Center CRYPTO-PRO' } } } INTEGER 53 CB 7F E5 00 01 00 00 11 F3 } SEQUENCE { OBJECT IDENTIFIER '1 2 643 2 2 9' NULL } SEQUENCE { OBJECT IDENTIFIER '1 2 643 2 2 19' NULL } OCTET STRING 96 07 3E 7C CC B5 9C 83 60 BE 4E E0 85 B6 78 3E 18 95 7B 7C 10 13 64 76 1C CB 0C CA F4 DE E2 09 B0 2E E3 78 B8 04 DF 3C CD 60 B0 B8 6D B0 1B C6 5E 28 FB 40 2E 09 53 4A 4B 6D 44 02 1B 9A 2E 7A } } } | ||||
Ответы: | ||||
| ||||
Стоит добавить что последовательность 96 07 3E 7C CC B5 9C 83 60 BE 4E E0 85 B6 78 3E 18 95 7B 7C 10 13 64 76 1C CB 0C CA F4 DE E2 09 B0 2E E3 78 B8 04 DF 3C CD 60 B0 B8 6D B0 1B C6 5E 28 FB 40 2E 09 53 4A 4B 6D 44 02 1B 9A 2E 7A является преобразованным хешом. | ||||
| ||||
Вообще то эта структура (кроме последнего octet string) и есть информация о сертификате подписчика - его издатель и серийный номер. Какое описание подписанных данных имеется ввиду? | ||||
| ||||
Ну вот например при использовании функций CPSignHash или CryptSignHash есть такой параметр как LPCWSTR Description значением которого является "Описание подписываемых данных, добавляемых к объекту hash ..." цитата из руководства программиста к Вашему CSP. | ||||
| ||||
С помощью CryptSignMessage его задать нельзя. Его вообще лучше не задавать. | ||||