03.11.2005 11:26:28Как можно по выбренному сертификату определить поддерживаемые алгоритмы. Ответов: 3
Кирилл
Здравствуйте. Ситуация такая: выбираем сертификат, необходимо получить список поддерживаемых алгоритмов подписи, шифрования и т.д. Насколько я понимаю, надо по сертификату определить криптопровайдер, его поддерживающий и потом уже определить алгоритмы, предоставляемые криптопровайдером. Получение алгоритмов из криптопровайдера делается с помощью CryptGetProvParam, но остается вопрос, как получить ссылку из сертификата на криптопровайдер.
ps Или есть более простые способы?
 
Ответы:
03.11.2005 13:19:44Kirill Sobolev
Если ссылка на секретный ключ есть то можно воспользоваться CryptAcquireCertificatePrivateKey - она вернет хендл провайдера. Если же нет - то придется перебирать все провайдеры в системе и проверять поддерживается ли алгортим открытого ключа, чтобы найти подходящий.
10.11.2005 10:20:00Кирилл
Насчет секретного ключа понятно.
По поводу перебора криптопровайдеров - можно ли поподробней? Попробую описать, как мне это видится.
Вызываем CryptImportPublicKeyInfo для передачи открытого ключа сертификата в криптопровайдер и смотрим на возвращаемое значение? Если true, то криптопровайдер подходит?
10.11.2005 11:55:29Kirill Sobolev
Например так