| ||||
| ||||
Извиняюсь если это оффтопик, т.к. вопрос не по продуктам КриптоПро, но вдруг кто ответит. Пытаюсь написать свой Smart Card Module для микросовтового MS Base Smart Card Crypto Provider. Во время получения сертификата содается ключевой контейнер, после чего криптопровайдер спрашивает у карточки ContainerInfo, где ему возвращается публичный ключ, затем провайдер обращается в функцию CardSignData(PCARD_DATA pCardData, PCARD_SIGNING_INFO pInfo), где в pInfo среди прочего содержится буффер, который надо подписать закрытым ключом. Подписываю, тут же для себя проверяю под отладчиком - все верно, подпись сходится отдаю ее в pInfo, криптопровайдер ругается, говорит NTE_BAD_SIGNATURE. Ну думаю, может надо сперва захешировать буффер по SHA1, хеширую, подписываю, возвращаю, то же самое. Скорее всего в эту функцию уже передается результат хеша, т.к. уж больно длина подозрительная - 20 байт, как раз размер SHA1. Может кто знает в чем может быть проблема, может какие тонкости есть или еще чего... В мсдн-е по смарткартмодулям примеров ноль. А простого описания их АПИ не достаточно, уж больно оно скудно. Приходится эксперементировать. Спасибо Алексей. |