다음을 통해 공유


지원되는 프로토콜 열거

지원되는 프로토콜 및 암호 그룹은 PP_ENUMALGS 또는 PP_ENUMALGS_EX CryptGetProvParam 호출하여 나열할 수 있습니다. PP_ENUMALGS_EX 값은 PP_ENUMALGS 같이 작동하지만 공급자가 지원하는 알고리즘에 대한 보다 광범위한 정보를 포함하는 PROV_ENUMALGS_EX 구조를 반환합니다.

정의된 프로토콜 플래그 및 해당 값에 대한 자세한 내용은 프로토콜 플래그참조하세요.

hCryptProv 멤버가 dwProvType 매개 변수가 PROV_RSA_SCHANNEL 설정된 CryptAcquireContext 사용하여 획득한 개방형 암호화 컨텍스트핸들 경우 다음 예제에서는 CSP에서 사용할 수 있는 모든 알고리즘의 이름을 나열합니다.

PROV_ENUMALGS_EX EnumAlgs;     //   Structure to hold information on 
                               //   a supported algorithm
DWORD dFlag = CRYPT_FIRST;     //   Flag indicating that the first
                               //   supported algorithm is to be
                               //   enumerated. Changed to 0 after the
                               //   first call to the function.
cbData = sizeof(PROV_ENUMALGS_EX);

while( CryptGetProvParam(
    hCryptProv,          // handle to an open cryptographic provider
    PP_ENUMALGS_EX, 
    (BYTE *)&EnumAlgs,  // information on the next algorithm
    &cbData,            // number of bytes in the PROV_ENUMALGS_EX
    dFlag))             // flag to indicate whether this is a first or
                        // subsequent algorithm supported by the
                        // CSP.
{
    printf("Supported Algorithm name %s\n", EnumAlgs.szName);
    dFlag = CRYPT_NEXT;          // Set to CRYPT_NEXT after the first call,
} //  end of while loop. When all of the supported algorithms have
  //  been enumerated, the function returns FALSE.

다음 표에서는 일반적인 국내 PROV_RSA_SCHANNEL CSP에서 반환되는 일부 알고리즘을 나열합니다. 이 예제에서는 CSP에서 SSL2 SHA MAC 및 SSL2 DES 암호화를 지원하지 않습니다.

알고리즘 식별자 최소 키 길이 최대 키 길이 프로토콜 알고리즘 이름
CALG_RSA_KEYX 512 2048 0x0007 "RSA_KEYX"
CALG_MD5 128 128 0x0007 MD5
CALG_SHA 160 160 0x0005 SHA (보안 해시 알고리즘)
CALG_RC4 40 128 0x0007 "RC4"
CALG_DES 56 56 0x0005 "DES"

 

ClientHello 또는 ServerHello 메시지 보내기를 준비하기 위해 Schannel 프로토콜 엔진은 CSP에서 지원하는 알고리즘 및 키 크기를 열거하고 지원되는 암호 그룹 내부적으로 목록을 작성합니다.