Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Sowohl der Basisanbieter als auch der erweiterte Anbieter können den Wert und die Länge des zu verwendenden Salzwerts angeben. Der Basisanbieter legt mithilfe des KP_SALT-Parameterwerts einen Salzwert fest. Der Basisanbieter legt immer elf Bytes Salzwert fest.
Der erweiterte Anbieter legt den Salzwert fest, indem er CryptSetKeyParam mit dem angegebenen KP_SALT_EX Parameterwert und dem pbData-Parameter aufruft, der auf eine CRYPT_INTEGER_BLOB Struktur verweist, die das Salz enthält.
Hinweis
Die Gesamtlänge eines symmetrischen Schlüssels des erweiterten Anbieters und dessen Salzwert darf nicht größer als 128 Bit sein.
KP_SALT wird weiterhin für die Abwärtskompatibilität mit dem Basisanbieter bereitgestellt. Neuere Anwendungen sollten den KP_SALT_EX-Parameterwert verwenden.
Im folgenden Beispiel wird ein Salzwert festgelegt.
// 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");
}