Partager via


Spécification d’une valeur de sel

Le fournisseur de base et le fournisseur étendu peuvent spécifier la valeur et la longueur de la valeur de sel à utiliser. Le fournisseur de base définit une valeur salt à l’aide de la valeur de paramètre KP_SALT. Le fournisseur de base définit toujours onze octets de valeur de sel.

Le fournisseur amélioré définit la valeur salt en appelant CryptSetKeyParam avec la valeur de paramètre KP_SALT_EX spécifiée et avec le paramètre pbData pointant vers une structure CRYPT_INTEGER_BLOB qui contient le sel.

Notes

La longueur totale d’une clé symétrique de fournisseur amélioré et sa valeur salt ne peuvent pas être supérieures à 128 bits.

 

KP_SALT continue d’être fourni à des fins de compatibilité descendante avec le fournisseur de base. Les applications plus récentes doivent utiliser la valeur de paramètre KP_SALT_EX.

L’exemple suivant définit une valeur de sel.

// Specify 4 bytes of salt.
BYTE rgbSalt[] = {0x01, 0x02, 0x03, 0x04};
CRYPT_DATA_BLOB sSaltData;
sSaltData.pbData = rgbSalt;
sSaltData.cbData = sizeof(rgbSalt);

// Set the 4 bytes of salt required.
// hKey is an HCRYPTPROV handle previously
// assigned, such as by CryptImportKey.
if (CryptSetKeyParam(
        hKey,    
        KP_SALT_EX,    
        (BYTE*)&sSaltData,    
        0))
{
     printf("The salt value is set.\n");
}
else
{
     printf("Setting the salt value failed.\n");
}