Статус: Участник
Группы: Участники
Зарегистрирован: 20.09.2012(UTC) Сообщений: 19
|
afev написал:Андрей* вам написал, что проверяется хеш, а не сами данные. В CAdES-BES это хеш подписанных аттрибутов, среди которых - хеш данных; посмотрите, как расчитывается хеш и формируется подпись в примере CMSSign, ф. createhashCMS, сравните с ф. createCMS. То, что проверяется хэш от данных, это понятно. Вы мне сейчас говорите, что этот хэш расчитывается не только от собственно данных которые я подписываю, но и ещё от каких-то дополнительных атрибутов? Другими словами, хэш, который зашифрован в подписи, это не CMStools.digestm("Message".getBytes(), "GOST3411"), а CMStools.digestm(("Message" + чего-то там ещё).getBytes(), "GOST3411"), правильно? Но чтобы верифицировать соответствие подписи данным, я должен на стороне сервера сформировать точно такой же хэш. А как это сделать? Я посмотрел пример CMSSign, ф. createhashCMS, о котором Вы говорите, но там для формирования хэша используется PrivateKey. А на сервере-то его не будет... Я понимаю, что я уже достал этими вопросами, но я действительно не могу понять, как это всё использовать...  Неужели нет какой-то одной простой функции, которая берёт эту CMS-подпись, сертификат, и данные на которых она была сгенерена, и проверяет что всё это друг другу соответствует? Ну допустим, нету. Но как мне сформировать этот "хеш подписанных аттрибутов" на стороне сервера, чтобы сравнить его с тем, который зашифрован в подписи?
|