Поделиться через


Метод ICEnroll::get_HashAlgorithm (xenroll.h)

[Это свойство больше не доступно для использования в Windows Server 2008 и Windows Vista.]

Свойство HashAlgorithm задает или извлекает только алгоритм хэширования подписей, используемый для подписания запроса на сертификацию PKCS #10.

Это свойство было впервые определено в интерфейсе ICEnroll .

Это свойство доступно для чтения и записи.

Синтаксис

HRESULT get_HashAlgorithm(
  BSTR *pbstr
);

Параметры

pbstr

Возвращаемое значение

None

Remarks

Этот алгоритм хэширования подписей не следует путать с алгоритмом хэширования , используемым для подписи сертификата. Элемент управления регистрацией в настоящее время поддерживает любые OID для алгоритмов хэширования, а также следующие значения отображаемого имени: SHA1 (по умолчанию), MD2 и MD5. При получении этого свойства полученное значение имеет формат OID (то есть SHA1 отображается как 1.3.14.3.2.29). При задании этого свойства соответствующий формат OID можно использовать в качестве альтернативы тексту, отображаемого для определенных понятных значений.

Элемент управления регистрацией сертификатов рассматривает значение свойства HashAlgorithm как подсказку алгоритму хэширования для подписи запроса на сертификацию PKCS #10. Если поставщик служб шифрования (CSP) поддерживает алгоритм, указанный в свойстве HashAlgorithm , будет использоваться алгоритм. В противном случае элемент управления регистрацией сертификатов попытается использовать SHA1. Если sha1 не поддерживается поставщиком служб конфигурации, будет предпринята попытка использовать MD5. Если ни SHA1, ни MD5 не поддерживаются, элемент управления регистрацией сертификатов попытается использовать первый алгоритм хэширования , возвращенный поставщиком служб конфигурации.

Свойство HashAlgorithm влияет на поведение следующих методов:

Если заданы свойства HashAlgID и HashAlgorithm , в зависимости от того, какое из последних обновлений будет указано, какой алгоритм хэширования будет использоваться для подписания запроса на сертификацию PKCS #10.

Примеры

BSTR     bstrHashAlg = NULL;
HRESULT  hr;

// get the hash algorithm
hr = pEnroll->get_HashAlgorithm( &bstrHashAlg );
if ( FAILED ( hr ) )
    printf("Failed get_HashAlgorithm - %x\n", hr );
else
    printf( "HashAlgorithm: %ws\n", bstrHashAlg );
// free BSTR
if ( NULL != bstrHashAlg )
    SysFreeString( bstrHashAlg);

BSTR    bstrMyHashAlg = SysAllocString(TEXT("MD5"));
// alternatively, ... = SysAllocString(TEXT("1.2.840.113549.1.1.4"));

// set the hash algorithm
hr = pEnroll->put_HashAlgorithm( bstrMyHashAlg );
if ( FAILED ( hr ) )
    printf("Failed put_HashAlgorithm - %x\n", hr );
else
    printf( "HashAlgorithm was set to %ws\n", bstrMyHashAlg );
// free BSTR
if ( NULL != bstrMyHashAlg )
    SysFreeString( bstrMyHashAlg);

Требования

Требование Значение
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header xenroll.h
Библиотека Uuid.lib
DLL Xenroll.dll