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 属性影响以下方法的行为:
如果同时设置了 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 |