25.07.2005 19:05:45получение алгоритма подписи из сообщения Ответов: 3
Степан
1. как получить алгоритм хеширования при создании подписи ALG_ID или OID из существующего подписанного сообщения (тот алгоритм с помощью которого оно было подписано изначально функцией CryptSignMessage)

2. правильно ли я понимаю что это тот самый алгоритм который передается в эту функцию в параметр

CRYPT_SIGN_MESSAGE_PARA SigParams.HashAlgorithm.pszObjId
?



 
Ответы:
25.07.2005 19:09:32Степан
я имел в виду что есть подписанное сообщение и нужно достать из него алгоритм подписи ))))
26.07.2005 10:16:14Kirill Sobolev
1. Через lowlevel CryptoAPI функции. CryptMsgGetParam(CMSG_HASH_ALGORITHM_PARAM) возвращает структуру CRYPT_ALGORITHM_IDENTIFIER.
2. Да, правильно.

С алгоритмом подписи сложнее. Его можно получить комбинацией алгоритма хэша и алгоритма открытого ключа.
28.07.2005 18:59:52Юрий
Вот такой вот алгоритм получения параметров подписи:

Получаешь информацию о подписчиках (структура CMSG_SIGNER_INFO). Тут не описываю как получить, думаю можно найти и самому.

PCCRYPT_OID_INFO pHashOIDInfo=CryptFindOIDInfo(CRYPT_OID_INFO_OID_KEY,SignerInfo->HashAlgorithm.pszObjId,0);
if(pHashOIDInfo)
{szSignAlg=pHashOIDInfo->pwszName;}

PCCRYPT_OID_INFO pEncOIDInfo=CryptFindOIDInfo(CRYPT_OID_INFO_OID_KEY,SignerInfo->HashEncryptionAlgorithm.pszObjId,0);
if(pEncOIDInfo)
{szEncAlg=pEncOIDInfo->pwszName;}