CryptGetKeyParam-Funktion (wincrypt.h)
Syntax
BOOL CryptGetKeyParam(
[in] HCRYPTKEY hKey,
[in] DWORD dwParam,
[out] BYTE *pbData,
[in, out] DWORD *pdwDataLen,
[in] DWORD dwFlags
);
Parameter
[in] hKey
Das Handle des abgefragten Schlüssels.
[in] dwParam
Gibt den Typ der Abfrage an, die erstellt wird.
Für alle Schlüsseltypen kann dieser Parameter einen der folgenden Werte enthalten.
Wert | Bedeutung |
---|---|
|
Rufen Sie den Schlüsselalgorithmus ab. Der pbData--Parameter ist ein Zeiger auf einen ALG_ID Wert, der den Bezeichner des Algorithmus empfängt, der beim Erstellen des Schlüssels angegeben wurde.
Wenn AT_KEYEXCHANGE oder AT_SIGNATURE für den Algid Parameter der CryptGenKey--Funktion angegeben wird, sind die Algorithmusbezeichner, die zum Generieren des Schlüssels verwendet werden, vom verwendeten Anbieter abhängig. Weitere Informationen finden Sie unter ALG_ID. |
|
Wenn ein Sitzungsschlüssel durch den hKey--Parameter angegeben wird, rufen Sie die Blocklänge der Schlüsselchiffre ab. Der pbData--Parameter ist ein Zeiger auf einen DWORD- Wert, der die Blocklänge in Bits empfängt. Bei Datenstromchiffreist dieser Wert immer null.
Wenn ein öffentliches/privates Schlüsselpaar durch hKey-angegeben wird, rufen Sie die Verschlüsselungs granularität des Schlüsselpaars ab. Der pbData--Parameter ist ein Zeiger auf einen DWORD- Wert, der die Verschlüsselungs granularität in Bits empfängt. Beispielsweise generiert der Microsoft Base Cryptographic Provider 512-Bit-RSA-Schlüsselpaare, sodass für diese Schlüssel ein Wert von 512 zurückgegeben wird. Wenn der Algorithmus für öffentliche SchlüsselVerschlüsselungnicht unterstützt, ist der abgerufene Wert nicht definiert. |
|
pbData- ist die Adresse eines Puffers, der das X.509-Zertifikat empfängt, das mithilfe Distinguished Encoding Rules (DER) codiert wurde. Der |
|
Dieser Wert wird nicht verwendet. |
|
Ruft die tatsächliche Länge des Schlüssels ab. Der pbData--Parameter ist ein Zeiger auf einen DWORD- Wert, der die Schlüssellänge in Bits empfängt.
KP_KEYLEN können verwendet werden, um die Länge eines beliebigen Schlüsseltyps abzurufen. Microsoft kryptografische Dienstanbieter (CSPs) geben eine Schlüssellänge von 64 Bit für CALG_DES, 128 Bit für CALG_3DES_112und 192 Bit für CALG_3DESzurück. Diese Längen unterscheiden sich von den Längen, die zurückgegeben werden, wenn Sie Algorithmen mit dem dwParam- Wert der CryptGetProvParam--Funktion auf PP_ENUMALGSfestlegen. Die von diesem Aufruf zurückgegebene Länge ist die tatsächliche Größe des Schlüssels, einschließlich der im Schlüssel enthaltenen Paritätsbits.
Microsoft-CSPs, die die CALG_CYLINK_MEKALG_ID unterstützen, geben 64 Bit für diesen Algorithmus zurück. CALG_CYLINK_MEK ist ein 40-Bit-Schlüssel, hat jedoch Parität und nullige Schlüsselbits, um die Schlüssellänge 64 Bit zu machen. |
|
Rufen Sie den Salzwert des Schlüssels ab. Der pbData--Parameter ist ein Zeiger auf ein BYTE- Array, das den Salzwert in form little-endian empfängt. Die Größe des Salzwerts variiert je nach verwendetem CSP und Algorithmus. Salzwerte gelten nicht für öffentlichen/privaten Schlüsselpaare. |
|
Rufen Sie die Schlüsselberechtigungen ab. Der pbData--Parameter ist ein Zeiger auf einen DWORD- Wert, der die Berechtigungskennzeichnungen für den Schlüssel empfängt.
Die folgenden Berechtigungsbezeichner sind derzeit definiert. Die Schlüsselberechtigungen können null oder eine Kombination aus einem oder mehreren der folgenden Werte sein.
|
Wenn ein Digital Signature Standard (DSS)-Schlüssel durch den hKey--Parameter angegeben wird, kann der dwParam- Wert auch auf einen der folgenden Werte festgelegt werden.
Wenn ein BlockchiffreSitzungsschlüssel durch den hKey--Parameter angegeben wird, kann der dwParam- Wert auch auf einen der folgenden Werte festgelegt werden.
Wert | Bedeutung |
---|---|
|
Rufen Sie die effektive Schlüssellänge eines RC2-Schlüssels ab. Der pbData--Parameter ist ein Zeiger auf einen DWORD- Wert, der die effektive Schlüssellänge erhält. |
|
Rufen Sie den Initialisierungsvektor des Schlüssels ab. Der pbData--Parameter ist ein Zeiger auf ein BYTE- Array, das den Initialisierungsvektor empfängt. Die Größe dieses Arrays ist die Blockgröße in Byte. Wenn die Blocklänge beispielsweise 64 Bit beträgt, besteht der Initialisierungsvektor aus 8 Bytes. |
|
Rufen Sie den Abstandsmodus ab. Der pbData--Parameter ist ein Zeiger auf einen DWORD- Wert, der einen numerischen Bezeichner empfängt, der die Abstand Methode identifiziert, die von der Chiffreverwendet wird. Dies kann einer der folgenden Werte sein:
|
|
Rufen Sie den Chiffremodusab. Der pbData--Parameter ist ein Zeiger auf einen DWORD- Wert, der einen Chiffremodusbezeichner empfängt. Weitere Informationen zu Verschlüsselungsmodi finden Sie unter Datenverschlüsselung und Entschlüsselung.
Die folgenden Chiffremodusbezeichner sind derzeit definiert.
|
|
Rufen Sie die Anzahl der Bits ab, die zurückgeführt werden sollen. Der pbData--Parameter ist ein Zeiger auf einen DWORD- Wert, der die Anzahl der Bits empfängt, die pro Zyklus verarbeitet werden, wenn die OFB- oder CFB-Verschlüsselungsmodi verwendet werden. |
Wenn ein Diffie-Hellman Algorithmus oder Digital Signature Algorithm (DSA)-Schlüssel durch hKey-angegeben wird, kann der dwParam- Wert auch auf den folgenden Wert festgelegt werden.
Wert | Bedeutung |
---|---|
|
Überprüft die Parameter eines Diffie-Hellman Algorithmus oder DSA-Schlüssels. Der pbData--Parameter wird nicht verwendet, und der wert, auf den pdwDataLen verweist, empfängt Null.
Diese Funktion gibt einen Wert ungleich Null zurück, wenn die Schlüsselparameter gültig oder null sind. |
|
Dieser Wert wird nicht verwendet.
Windows Vista, Windows Server 2003 und Windows XP: Abrufen des Werts des geheimen Vertrags aus einem importierten Diffie-Hellman Algorithmus Schlüssel vom Typ CALG_AGREEDKEY_ANY. Der pbData--Parameter ist die Adresse eines Puffers, der den Geheimvertragswert im little-endian-Format empfängt. Dieser Puffer muss dieselbe Länge wie der Schlüssel aufweisen. Der parameter dwFlags muss auf 0xF42A19B6 festgelegt werden. Diese Eigenschaft kann nur von einem Thread abgerufen werden, der unter dem lokalen Systemkonto ausgeführt wird. Diese Eigenschaft steht für die Verwendung in den oben aufgeführten Betriebssystemen zur Verfügung. Sie kann in nachfolgenden Versionen geändert oder nicht verfügbar sein. |
Wenn ein Zertifikat durch hKey-angegeben wird, kann der dwParam- Wert auch auf den folgenden Wert festgelegt werden.
[out] pbData
Ein Zeiger auf einen Puffer, der die Daten empfängt. Die Form dieser Daten hängt vom Wert dwParamab.
Wenn die Größe dieses Puffers nicht bekannt ist, kann die erforderliche Größe zur Laufzeit abgerufen werden, indem NULL- für diesen Parameter übergeben und der Wert festgelegt wird, auf den pdwDataLen- auf Null verweist. Diese Funktion platziert die erforderliche Größe des Puffers in Byte im Wert, auf den pdwDataLenverweist. Weitere Informationen finden Sie unter Abrufen von Daten unbekannter Länge.
[in, out] pdwDataLen
Ein Zeiger auf einen DWORD- Wert, der beim Eintrag die Größe des Puffers in Bytes enthält, auf den der pbData--Parameter verweist. Wenn die Funktion zurückgegeben wird, enthält der DWORD- Wert die Anzahl der im Puffer gespeicherten Bytes.
[in] dwFlags
Dieser Parameter ist für die zukünftige Verwendung reserviert und muss auf Null festgelegt werden.
Rückgabewert
Wenn die Funktion erfolgreich ist, gibt die Funktion "nonzero" zurück.
Wenn die Funktion fehlschlägt, wird null zurückgegeben. Rufen Sie für erweiterte Fehlerinformationen GetLastError-auf.
Die von "NTE" vorangestellten Fehlercodes werden vom verwendeten CSP generiert. Einige mögliche Fehlercodes umfassen Folgendes.
Rückgabecode | Beschreibung |
---|---|
|
Einer der Parameter gibt ein ungültiges Handle an. |
|
Einer der Parameter enthält einen ungültigen Wert. Dies ist am häufigsten ein ungültiger Zeiger. |
|
Wenn der durch den parameter pbData angegebene Puffer nicht groß genug ist, um die zurückgegebenen Daten aufzunehmen, legt die Funktion den ERROR_MORE_DATA Code fest und speichert die erforderliche Puffergröße in Byte in der Variablen, auf die von pdwDataLenverwiesen wird. |
|
Der dwFlags Parameter ist nonzero. |
|
Der vom hKey Parameter angegebene Schlüssel ist ungültig. |
|
Der dwParam--Parameter gibt eine unbekannte Wertnummer an. |
|
Der CSP-Kontext, der beim Erstellen des Schlüssels angegeben wurde, kann nicht gefunden werden. |
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows XP [nur Desktop-Apps] |
mindestens unterstützte Server- | Windows Server 2003 [Nur Desktop-Apps] |
Zielplattform- | Fenster |
Header- | wincrypt.h |
Library | Advapi32.lib |
DLL- | Advapi32.dll |