| ||||
| ||||
Скачал с вашего сайта и установил тестовую версию CSP. Попытался написать с его помощью пару тестовых программ и обнаружил, что ваш CSP позволяет создавать хэш SHA-1 и т.д.(все виды, которые поддерживает и rsabase.dll) Но при перечислении алгоритмов, поддерживаемых вашим CSP, эти алгоритмы не упоминаются. Сначала это меня обрадовало. Но потом я обнаружил, что при вызове ф-ции CryptGenKey с ALG_IDом RC2 и т.д. ошибки тоже не происходит. Т.е. ключ якобы генерируется. И это тоже не могло не радовать. Но вот если после вызова выше упомянутой ф-ции CryptGenKey с RC2, вызвать CryptGetKeyParam, то оказывается, что сгенерированный ключ был сгенерирован не по алгоритму RC2. В связи с этим у меня возникли следующие вопросы: 1) Почему не возникает ошибки при генерации ключа и создании хэша (ну например NTE_BAD_ALGID)? 2) Если вы эти алгоритмы поддерживаете, то почему при перечислении ф-цией CryptGetProvParam они не упомянуты? 3) Может быть, я плохо читал документацию по вашему продукту. Где можно узнать, какую реакцию я должен получить при вызове той или иной ф-ции ( т.к.похоже, что поведение ф-ций из вашего CSP не всегда совпадает с поведением описанным в MSDN)? | ||||
Ответы: | ||||
| ||||
Здравствуйте, > 1) Почему не возникает ошибки при генерации ключа Строго говоря это наша ошибка (хотя в документации MS написано, что AlgID на входе должен быть из поддерживаемых CSP). > и создании хэша (ну например NTE_BAD_ALGID)? Из-за особенностей архитектуры CryptoAPI 2.0 и стандартов X.509, мы вынуждены частично поддерживать алгоритмы MD5 и SHA-1. > 2) Если вы эти алгоритмы поддерживаете, то почему при перечислении ф-цией CryptGetProvParam они не упомянуты? Мы поддерживаем алгоритмы MD5 и SHA-1 лишь частично, как алгоритмы расчета контрольной суммы для keyIdentifier, но не поддерживаем их как алгоритмы хэш-функций для ЭЦП. > 3) Может быть, я плохо читал документацию по вашему продукту. Где можно узнать, какую реакцию я должен получить при вызове той или иной ф-ции ( т.к.похоже, что поведение ф-ций из вашего CSP не всегда совпадает с поведением описанным в MSDN)? На нашем дистрибутиве есть файлы csp*.chm и tls*.chm | ||||