1. А зачем Вам 2 параллельные подписи на одном и том же сертификате, если не секрет? Трудно представить, что кому-то еще потребуется писать что-то аналогичное.
Как я понимаю, основу кода Вы брали из примера на работу с типом подписи CAdES BES. В этом примере просто демонстрируются возможности работы с этим типом подписи - он не предполагает практического применения целиком.
В Вашем случае, если просто требуется создать подпись CAdES X Long Type 1 и не хочется писать код выбора сертификата самостоятельно, можно создать подпись CAdES BES (при помощи функции SignCades), а затем усовершенствовать (при помощи функции EnhanceCades). В промежуточной проверке смысла нет, проверка после создания подписи - ну если только для перестраховки... Кстати, не будет двойного вызова окна ввода пароля.
Но все это, разумеется, в том случае, если Вам действительно не нужны 2 параллельные подписи.
2. Ловить исключение см. ms-help://MS.VSCC.v90/MS.MSDNQTR.v90.en/fxref_mscorlib/html/04d60790-b4b2-e4ba-81a2-548247f88560.htm и проверять код ошибки.
3. Тестового сервиса проверки документов, подписанных CAdES, нет.
4. Сертификат (и всю его цепочку) на отозванность функция VerifyCades проверяет.
Если тип подписи CAdES X Long Type 1, то используются вложенные в подпись доказательства. Подробно о проверке подписи можно прочитать в
Стандарте применения усовершенствованной электронной цифровой подписи.
Если тип подписи CAdES BES, то строится цепочка сертификатов и выполняется проверка построенной цепочки. Список отозванных сертификатов должен быть либо установлен в хранилище, либо адрес, по которому его можно скачать, должен присутствовать в расширении CDP проверяемого сертификата.
Если сертификат отозван или проверить его статус не удается (неважно, по какой причине), то функция VerifyCades выдаст исключение с информацией о произошедшей ошибке.
5. Да, возможно.
6. Поясните, пожалуйста, Ваш вопрос.
Отредактировано пользователем 1 декабря 2009 г. 17:24:49(UTC)
| Причина: Не указана