Метод IX509SignatureInformation::GetSignatureAlgorithm (certenroll.h)
Метод GetSignatureAlgorithm извлекает идентификатор объекта (OID) алгоритма подписывания.
Синтаксис
HRESULT GetSignatureAlgorithm(
[in] VARIANT_BOOL Pkcs7Signature,
[in] VARIANT_BOOL SignatureKey,
[out] IObjectId **ppValue
);
Параметры
[in] Pkcs7Signature
Переменная VARIANT_BOOL , указывающая, будет ли алгоритм использоваться для подписания запроса сертификата PKCS #7 или CMC.
[in] SignatureKey
Переменная VARIANT_BOOL , указывающая, является ли алгоритм, используемый только для подписывания, предпочтительнее, если OID алгоритма связан с несколькими целями. Например, XCN_OID_RSA_RSA (1.2.840.113549.1.1) можно использовать как для подписывания, так и для обмена ключами.
[out] ppValue
Адрес переменной, получающей указатель на интерфейс IObjectId , представляющий OID алгоритма.
Возвращаемое значение
Если функция завершается успешно, функция возвращает S_OK.
Если функция завершается сбоем, она возвращает значение HRESULT , указывающее на ошибку. Допустимые значения включают, но не ограничиваются, значения, приведенные в следующей таблице. Список распространенных кодов ошибок см. в разделе Общие значения HRESULT.
Возвращаемый код/значение | Описание |
---|---|
|
OID алгоритма хэширования или свойство NullSigned не задано , но не удается найти OID алгоритма подписи. |
|
Не удалось найти алгоритм объединенной сигнатуры. |
Комментарии
Этот метод выполняет поиск кэшированного алгоритма подписывания, который соответствует входным параметрам. Если ни один из них не найден, метод использует входные параметры, а также значения, присвоенные различным свойствам IX509SignatureInformation , как указано в следующем списке.
-
Pkcs7Signature = true, NullSigned = true
Этот случай представляет собой запрос сертификата PKCS #7 со знаком NULL. Метод возвращает XCN_OID_PKIX_NO_SIGNATURE (1.3.6.1.5.5.7.6.2) OID.
-
Pkcs7Signature = true, NullSigned = false
В этом случае извлекается дискретный алгоритм сигнатуры OID для запроса PKCS #7, который не имеет нулевой подписи. Дискретная сигнатура требует установки свойств HashAlgorithm и PublicKeyAlgorithm . В особом случае, когда алгоритм открытого ключа XCN_OID_X957_DSA, а алгоритм хэширования не XCN_OID_OIWSEC_sha1, полученный идентификатор XCN_OID_X957_SHA1DSA алгоритма сигнатуры (1.2.840.10040.4.3).
-
Pkcs7Signature = false, NullSigned = false, AlternateSignatureAlgorithm = true
В этом случае извлекается дискретный OID алгоритма сигнатуры для запроса PKCS #10 и кодируется идентификатор хэш-алгоритма в свойстве Parameters . Необходимо задать свойства HashAlgorithm и PublicKeyAlgorithm .
-
Pkcs7Signature = false, NullSigned = false, AlternateSignatureAlgorithm = false
В этом случае извлекается дискретный идентификатор алгоритма подписи для запроса PKCS #7. Необходимо задать свойства HashAlgorithm и PublicKeyAlgorithm .
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 [только классические приложения] |
Целевая платформа | Windows |
Header | certenroll.h |
DLL | CertEnroll.dll |