02.12.2002 12:28:16self - maded Signature (Key) Algorithm OID <--> self - maded CSP Ответов: 0
Alexey
Подскажите, что происходит при открытии сертификата (вызов из OS_root\system32\cryptext.dll): а именно, когда встречается незнакомый системе OID алгоритма подписи (ключа), каким образом выбирается криптопровайдер. Немного подробнее: для того, что бы корректно отобразить сертификат на ключ с "левым" OID&rsquo;ом должен произойти в частности вызов VerifySignature того криптопровайдера, который поддерживает алгоритм, соответствующий заданному OID&rsquo;у. Я написал своего криптопровайдера реализующего самодельный несимметричный алгоритм. Придумал (просто произвольный, такого больше ни у кого нет) для него OID. Прописал его имя (CryptRegisterOIDInfo). Но ни одного вызова из моего CSP система при открытии сертификата не делает. Хотя если сделать enum и провайдеров и их алгоритмов - все работает и выдает абсолютную истину. В сертификате отображается корректно только имя алгоритма (то что я прописал при CryptRegisterOIDInfo), и написано что ключ нулевой длины и подпись представляется загадочной - что неверно. Может где-то перехватить какой-то вызов нужно? Расскажите пожалуйста что же система (например W2k если это принципиально) делает когда открывается сертификат. Как выбирает нужный CSP? Вы наверняка с этим боролись.

Заранее спасибо
--------------
С уважением
Алексей