Aracılığıyla paylaş


Desteklenen Protokolleri Numaralandırma

Desteklenen protokoller ve şifreleme paketleri, PP_ENUMALGS veya PP_ENUMALGS_EX ile CryptGetProvParam çağrıları tarafından listelenebilir. PP_ENUMALGS_EX değeri PP_ENUMALGS gibi çalışır ancak sağlayıcı tarafından desteklenen algoritmalar hakkında daha kapsamlı bilgi içeren bir PROV_ENUMALGS_EX yapısı döndürür.

Tanımlı protokol bayrakları ve değerleri hakkında daha fazla bilgi için bkz. Protokol Bayrakları.

hCryptProv üyesinin PROV_RSA_SCHANNEL olarak ayarlanmış dwProvType parametresiyle CryptAcquireContext kullanılarak alınan açık bir şifreleme bağlam bağlamıtanıtıcısı olduğu göz önünde bulundurulduğunda, aşağıdaki örnekte CSP'de kullanılabilen tüm algoritmaların adları listelenir.

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.

Aşağıdaki tabloda tipik bir yerel PROV_RSA_SCHANNEL CSP tarafından döndürülen bazı algoritmalar listelemektedir. Bu örnekte CSP tarafından SSL2 SHA MAC'lerinin veya SSL2 DES şifrelemesinin desteklenmediğini fark edin.

Algoritma tanımlayıcısı En düşük anahtar uzunluğu Maksimum anahtar uzunluğu Protokol Algoritma adı
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"

 

Schannel protokol altyapısı, ClientHello veya ServerHello iletileri göndermeye hazırlanmak için CSP tarafından desteklenen algoritmaları ve anahtar boyutlarını numaralandırır ve desteklenen şifreleme paketlerinin dahili listesini oluşturur.