Spécification d’une valeur Salt
Le fournisseur de base et le fournisseur étendu peuvent spécifier la valeur et la longueur de la valeur Salt à utiliser. Le fournisseur de base définit une valeur Salt à l’aide de la _ valeur de paramètre Salt de KP. Le fournisseur de base définit toujours onze octets de valeur salt.
Le fournisseur amélioré définit la valeur Salt en appelant CryptSetKeyParam avec la valeur de paramètre de KP _ Salt _ ex spécifiée et avec le paramètre pbData qui pointe vers une structure _ _ BLOB d’entiers de chiffre qui contient le Salt.
Notes
La longueur totale d’une clé symétrique de fournisseur amélioré et de sa valeur Salt ne peut pas être supérieure à 128 bits.
_Le Salt de KP continue à être fourni pour la compatibilité descendante avec le fournisseur de base. Les applications plus récentes doivent utiliser la valeur de paramètre de KP _ sel _ ex.
L’exemple suivant définit une valeur salt.
// 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");
}