09.03.2004 2:48:57Есть ли подробное описание поведения ф-ций CSP "Крипто-Про" Ответов: 1
Юра
Скачал с вашего сайта и установил тестовую версию CSP. Попытался написать с его помощью пару тестовых программ и обнаружил, что ваш CSP позволяет создавать хэш SHA-1 и т.д.(все виды, которые поддерживает и rsabase.dll) Но при перечислении алгоритмов, поддерживаемых вашим CSP, эти алгоритмы не упоминаются. Сначала это меня обрадовало. Но потом я обнаружил, что при вызове ф-ции CryptGenKey с ALG_IDом RC2 и т.д. ошибки тоже не происходит. Т.е. ключ якобы генерируется. И это тоже не могло не радовать. Но вот если после вызова выше упомянутой ф-ции CryptGenKey с RC2, вызвать CryptGetKeyParam, то оказывается, что сгенерированный ключ был сгенерирован не по алгоритму RC2.
В связи с этим у меня возникли следующие вопросы:
1) Почему не возникает ошибки при генерации ключа и создании хэша (ну например NTE_BAD_ALGID)?
2) Если вы эти алгоритмы поддерживаете, то почему при перечислении ф-цией CryptGetProvParam они не упомянуты?
3) Может быть, я плохо читал документацию по вашему продукту. Где можно узнать, какую реакцию я должен получить при вызове той или иной ф-ции ( т.к.похоже, что поведение ф-ций из вашего CSP не всегда совпадает с поведением описанным в MSDN)?
 
Ответы:
10.03.2004 19:01:54Serge3leo
Здравствуйте,

> 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