Метод 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

Значение типа , представляющее размер ключа в битах.

Комментарии

Если поставщик служб конфигурации не поддерживает этот метод, возвращается ошибка.

Дополнительные сведения о значении XEKL_KEYSIZE_INC см. в разделе использование PP_SIG_KEYSIZE_INC на справочной странице CryptGetProvParam .

Примеры

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
Header xenroll.h
Библиотека Uuid.lib
DLL Xenroll.dll