ICEnroll::get_HashAlgorithm 方法 (xenroll.h)
[自 Windows Server 2008 和 Windows Vista 起,這個屬性不再可供使用。
HashAlgorithm 屬性只會設定或擷取用來簽署 PKCS #10 認證要求的簽章哈希演算法。
此屬性最初是在 ICEnroll 介面中定義。
這是可讀寫的屬性。
語法
HRESULT get_HashAlgorithm(
BSTR *pbstr
);
參數
pbstr
傳回值
無
備註
此簽章 哈希演算法 不會與用來簽署憑證的 哈希演算法 混淆。 註冊控件目前支援任何 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 屬性會影響下列方法的行為:
如果已設定 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 |
標頭 | xenroll.h |
程式庫 | Uuid.lib |
Dll | Xenroll.dll |