Share via


ICEnroll::p ut_HashAlgorithm 메서드(xenroll.h)

[이 속성은 Windows Server 2008 및 Windows Vista를 기준으로 더 이상 사용할 수 없습니다.]

HashAlgorithm 속성은 PKCS #10 인증 요청에 서명하는 데 사용되는 서명 해시 알고리즘만 설정하거나 검색합니다.

이 속성은 ICEnroll 인터페이스에서 처음 정의되었습니다.

이 속성은 읽기/쓰기가 가능합니다.

구문

HRESULT put_HashAlgorithm(
  BSTR bstr
);

매개 변수

bstr

반환 값

없음

설명

이 서명 해시 알고리즘 은 인증서에 서명하는 데 사용되는 해시 알고리즘 과 혼동해서는 안 됩니다. 등록 컨트롤은 현재 해시 알고리즘에 대한 OID와 SHA1(기본값), MD2 및 MD5 표시 이름 값을 지원합니다. 이 속성을 검색할 때 검색된 값은 OID 형식입니다(즉, SHA1은 1.3.14.3.2.29로 표시됨). 이 속성을 설정할 때 해당 OID 형식을 정의된 친숙한 값에 대해 표시된 텍스트 대신 사용할 수 있습니다.

인증서 등록 컨트롤은 HashAlgorithm 속성의 값을 PKCS #10 인증 요청에 서명하는 데 사용할 해시 알고리즘 에 대한 힌트로 간주합니다. CSP( 암호화 서비스 공급자 )가 HashAlgorithm 속성에 지정된 알고리즘을 지원하는 경우 알고리즘이 사용됩니다. 그렇지 않으면 인증서 등록 제어에서 SHA1을 사용하려고 합니다. SHA1이 CSP에서 지원되지 않는 경우 MD5가 시도됩니다. SHA1과 MD5가 모두 지원되지 않는 경우 인증서 등록 제어는 CSP에서 반환된 첫 번째 해시 알고리즘을 사용하려고 시도합니다.

HashAlgorithm 속성은 다음 메서드의 동작에 영향을 줍니다.

HashAlgIDHashAlgorithm 속성이 모두 설정된 경우 마지막으로 업데이트된 속성 중에서 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
헤더 xenroll.h
라이브러리 Uuid.lib
DLL Xenroll.dll