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 |
Library | Uuid.lib |
DLL | Xenroll.dll |