05.08.2005 13:29:13Совместимость CAPICOM и CryptoAPI Ответов: 3
Дмитрий
Помогите плиз разобраться.
Имеем: на машине пользователя установлен Crypto-Pro CSP и один сертификат.
Делаем: подписываем один и тот же файлик при помощи CAPICOM и CryptoAPI (файл PDF, CAPICOM используется из VBScript’а написанного Microsoft’ом, CryptoAPI - рукописный) и получаем detached signature
Результат: каждый из методов считает свою подпись валидной, а чужую - нет. Мало того, csptest.exe из примеров CSP также считает валидной подпись, сделанную через CryptoAPI, и невалидной - сделанную через CAPICOM.
Дополнительные симптомы: оба метода дают файлы подписи одного размера, и отличаются они в 64 байтиках.

Имхо такое поведение неправильное (иначе как тогда проверить подпись, сделанную на другой платформе или другим приложением?). Однако, есть подозрение, что это связано с тем, что через CAPICOM файл читается как текстовый, а через CryptoAPI - как бинарный (что более правильно в моем случае).

В общем, ай нид хелп в деле понимания этой ситуации. Заранее благодарен за ответы.
 
Ответы:
05.08.2005 13:42:31Kirill Sobolev
А что тут помогать, Вы все правильно поняли ))) Подозрение абсолютно правильное.
05.08.2005 14:09:36Дмитрий
ок, спасибо.
Тогда выходит дело, что они просто несовместимы, поскольку CAPICOM оперирует юникодными строками (BSTR), а CryptoAPI - массивами байт? И это при том, что обы дают подписи в PKCS#7. Странно это как-то...
05.08.2005 14:10:53Kirill Sobolev
Полностью совместимы. Никто не мешает в BSTR засунуть бинарные данные.