16.06.2006 15:36:35Странное поведение CryptVerifyDetachedMessageSignature() Ответов: 0
Владимир
Есть два приложения: клиент и сервер. На сервере присутствует сертификат и соответствующий ему закрытый ключ, с помощью которых сервер подписывает свой ответ. На клиенте проверяется цифровая подпись ответа и таким образом можно определить подлинность сервера. Проблема возникает, когда на сервере и клиенте установлены разные сертификаты. При первой проверке подписи функция CryptVerifyDetachedMessageSignature() возвращает FALSE и код ошибки, полученный GetLastError() — 0x80090006 (NTE_BAD_SIGNATURE), то есть подпись не верна, как и следовало ожидать. Странности начинаются, когда клиент после этого заново шлет запрос к серверу. На этот раз CryptVerifyDetachedMessageSignature() снова возвращает FALSE (то есть отработала некорректно), но код ошибки 0! То есть вроде бы подпись неверна, но функция реагирует как-то странно. Есть объяснения этому явлению?