| ||||
| ||||
Здравствуйте! Подскажите, каким образом "вытащить" алгоритм хеширования (надеюсь, что возможно) из сертификата? То есть, не зная алгоритм хеширования, и имея сертификат, нужно им осуществить подпись(при вызове CryptCreateHash() нужно указывать ALG_ID). И что значит поле SignatureAlgorithm в структуре CERT_INFO (выдержка из документации) ... SignatureAlgorithm A CRYPT_ALGORITHM_IDENTIFIER structure that contains the signature algorithm type and encoded additional encryption parameters. ... и случайно ли оно(значение CertOIDToAlgId() для этого поля совпадает с ALG_ID(32798) алгоритма хеширования)? Большое спасибо. | ||||
Ответы: | ||||
| ||||
Нет, не возможно. SignatureAlgorithm - это алгоритм подписи сертификата. Алгоритм хэширования можно подобрать вручную из всех доступных, исходя из провайдера. Можно эту работу доверить CrypoAPI (функции CryptMsg*, CryptSignMessage). | ||||