Freigeben über


BCRYPT_DH_PARAMETER_HEADER-Struktur (bcrypt.h)

Die BCRYPT_DH_PARAMETER_HEADER-Struktur wird verwendet, um Parameterheaderinformationen für einen Diffie-Hellman Schlüssel zu enthalten. Diese Struktur wird mit der BCRYPT_DH_PARAMETERS-Eigenschaft in der BCryptSetProperty-Funktion verwendet.

Syntax

typedef struct _BCRYPT_DH_PARAMETER_HEADER {
  ULONG cbLength;
  ULONG dwMagic;
  ULONG cbKeyLength;
} BCRYPT_DH_PARAMETER_HEADER;

Member

cbLength

Die Gesamtgröße dieser Struktur in Bytes und der Puffer, der dieser Struktur im Arbeitsspeicher unmittelbar folgt.

dwMagic

Der magische Wert für den Schlüssel.

Dieser Member muss der folgende Wert sein.

BCRYPT_DH_PARAMETERS_MAGIC (0x4d504844)

cbKeyLength

Die Größe des Schlüssels in Bytes, auf den diese Struktur angewendet wird.

Hinweise

Diese Struktur wird als Header für einen größeren Puffer verwendet. Der einzelne Speicherblock besteht aus dieser Struktur, gefolgt von einem Puffer der cbKeyLength-Größe , der die Diffie-Hellman Primzahl enthält, und einem weiteren Puffer der cbKeyLength-Größe , der die Diffie-Hellman Generatornummer enthält. Beide Zahlen sind im Big-End-Format.

Das folgende Beispiel zeigt, wie Sie die für diesen Puffer erforderlichen Größen berechnen und die Member dieser Struktur ausfüllen.

// In this example, the rgbModulus variable is a byte array that contains the modulus in big-endian byte order. 
// The rgbGenerator variable is a byte array that contains the generator in big-endian byte order.

ULONG cbDHParams = sizeof(BCRYPT_DH_PARAMETER_HEADER) +     (cbKeySize * 2);
PBYTE pbDHParams = (PBYTE)malloc(cbDHParams);
if(!pbDHParams)
{
    status = STATUS_NO_MEMORY;
    goto Cleanup;
}

BCRYPT_DH_PARAMETER_HEADER *pDHParamHeader;
pDHParamHeader = (BCRYPT_DH_PARAMETER_HEADER*)pbDHParams;
pDHParamHeader->cbLength = cbDHParams;
pDHParamHeader->cbKeyLength = cbKeySize;
pDHParamHeader->dwMagic = BCRYPT_DH_PARAMETERS_MAGIC;

// Add the modulus to the parameters.
// The rgbModulus argument is a byte array that contains the modulus.
PBYTE pbTemp = (PBYTE)pbDHParams + sizeof(BCRYPT_DH_PARAMETER_HEADER);
CopyMemory(pbTemp, rgbModulus, pDHParamHeader->cbKeyLength);

// Add the generator to the parameters.
// The rgbGenerator argument is a byte array that contains the generator.
pbTemp += pDHParamHeader->cbKeyLength;
CopyMemory(pbTemp, rgbGenerator, pDHParamHeader->cbKeyLength);


Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [nur Desktop-Apps]
Kopfzeile bcrypt.h

Weitere Informationen

BCryptSetProperty

Primitive Eigenschaftsbezeichner für Kryptografie