ICEnroll3::GetKeyLen 方法 (xenroll.h)

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

GetKeyLen 方法检索签名和交换密钥的最小和最大密钥长度。 此方法首先在 ICEnroll3 接口中定义。 此方法检索的值依赖于当前的 加密服务提供程序

语法

HRESULT GetKeyLen(
  [in]  BOOL fMin,
  [in]  BOOL fExchange,
  [out] LONG *pdwKeySize
);

参数

[in] fMin

指示检索最小或最大) (密钥长度的布尔值。 如果 fMinTRUE,则检索最小密钥长度;如果为 FALSE,则检索最大密钥长度。

[in] fExchange

指示键类型的布尔值。 如果 fExchangeTRUE,则检索交换密钥长度;如果为 FALSE,则检索签名密钥长度。

[out] pdwKeySize

接收密钥的最小或最大长度(以位为单位)的指针。

返回值

C++

如果方法成功,该方法将返回S_OK,*pdwKeySize 将是表示密钥最小或最大长度) 位 (长度的值。

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

VB

一个 值,该值表示键的最小或最大长度的长度(以位为单位)。

注解

调用此方法可确定最小和最大密钥长度。 如果 CSP 不支持此方法,则返回错误。

示例

DWORD dwExchMin, dwExchMax, dwSignMin, dwSignMax;

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

hr = pEnroll->GetKeyLen( FALSE, TRUE, &dwExchMax );
if ( FAILED( hr ) )
    printf("Failed GetKeyLen for Exchange Maximum [%x]\n", hr);
else
    printf("Exchange key Max: %d\n", dwExchMax );

hr = pEnroll->GetKeyLen( TRUE, FALSE, &dwSignMin );
if ( FAILED( hr ) )
    printf("Failed GetKeyLen for Signature Minimum [%x]\n", hr);
else
    printf("Signature key Min: %d\n", dwSignMin );

hr = pEnroll->GetKeyLen( FALSE, FALSE, &dwSignMax );
if ( FAILED( hr ) )    
    printf("Failed GetKeyLen for Signature Maximum [%x]\n", hr);
else
    printf("Signature key Max: %d\n", dwSignMax );

要求

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

另请参阅

CEnroll

ICEnroll3

ICEnroll4