ICEnroll4::GetKeyLenEx 方法 (xenroll.h)

[此方法在 Windows Server 2008 和 Windows Vista 中不再可用。]

GetKeyLenEx 方法检索签名交换密钥的大小信息。 此方法首先在 ICEnroll4 接口中定义。

此方法检索的值取决于当前 加密服务提供程序 (CSP) 。

语法

HRESULT GetKeyLenEx(
  [in]  LONG lSizeSpec,
  [in]  LONG lKeySpec,
  [out] LONG *pdwKeySize
);

参数

[in] lSizeSpec

一个 值,该值指示要检索的大小信息的类型。 此参数的取值可为下列值之一:

含义
XEKL_KEYSIZE_MIN
最小密钥大小。
XEKL_KEYSIZE_MAX
最大密钥大小。
XEKL_KEYSIZE_INC
键增量的大小。 有关详细信息,请参阅“备注”。

[in] lKeySpec

指定为其返回大小信息的键。 此参数的取值可为下列值之一:

含义
XEKL_KEYSPEC_KEYX
Exchange 密钥
XEKL_KEYSPEC_SIG
签名密钥

[out] pdwKeySize

指向接收密钥大小的变量(以位为单位)的指针。

返回值

C++

如果方法成功,该方法将返回S_OK。

如果方法失败,它将返回一个 指示错误的 HRESULT 值。 有关常见错误代码的列表,请参阅 通用 HRESULT 值

VB

一个 值,该值表示密钥大小(以位为单位)。

注解

如果 CSP 不支持此方法,则返回错误。

有关XEKL_KEYSIZE_INC值的详细信息,请参阅 CryptGetProvParam 参考页中的PP_SIG_KEYSIZE_INC用法。

示例

DWORD dwExchMin, dwExchMax, dwSignDef, dwSignInc;

// Determine the minimum and maximum key length values.
// hr is HRESULT variable.
hr = pEnroll4->GetKeyLenEx( XEKL_KEYSIZE_MIN,
                            XEKL_KEYSPEC_KEYX,
                            &dwExchMin );
if ( FAILED( hr ) )    
    printf("Failed GetKeyLenEx for Exchange Minimum [%x]\n", hr);
else
    printf("Exchange key Min: %d\n", dwExchMin);

hr = pEnroll4->GetKeyLenEx( XEKL_KEYSIZE_MAX,
                            XEKL_KEYSPEC_KEYX,
                            &dwExchMax );
if ( FAILED( hr ) )
    printf("Failed GetKeyLenEx for Exchange Maximum [%x]\n", hr);
else
    printf("Exchange key Max: %d\n", dwExchMax );

hr = pEnroll4->GetKeyLenEx( XEKL_KEYSIZE_DEFAULT,
                            XEKL_KEYSPEC_SIG,
                            &dwSignDef );
if ( FAILED( hr ) )
    printf("Failed GetKeyLenEx for Signature Default "
   "Key size [%x]\n", hr);
else
    printf("Signature key default size: %d\n", dwSignDef );

hr = pEnroll4->GetKeyLenEx( XEKL_KEYSIZE_INC,
                            XEKL_KEYSPEC_SIG,
                            &dwSignInc );
if ( FAILED( hr ) )    
    printf("Failed GetKeyLenEx for Signature "
   "Key Size Increment [%x]\n", hr);
else
    printf("Signature key increment size: %d\n", dwSignInc );

要求

要求
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 xenroll.h
Library Uuid.lib
DLL Xenroll.dll