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。 如果 CSP 不支援 SHA1,則會嘗試 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