BCRYPT_DH_PARAMETER_HEADER 構造体 (bcrypt.h)

BCRYPT_DH_PARAMETER_HEADER構造体は、Diffie-Hellman キーのパラメーター ヘッダー情報を格納するために使用されます。 この構造体は、BCryptSetProperty 関数の BCRYPT_DH_PARAMETERS プロパティと共に使用されます。

構文

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

メンバー

cbLength

この構造体の合計サイズ (バイト単位) と、メモリ内のこの構造体の直後にあるバッファー。

dwMagic

キーのマジック値。

このメンバーは、次の値である必要があります。

BCRYPT_DH_PARAMETERS_MAGIC (0x4d504844)

cbKeyLength

この構造体が適用されるキーのサイズ (バイト単位)。

注釈

この構造体は、より大きなバッファーのヘッダーとして使用されます。 1 つのメモリ ブロックは、この構造体の後に、Diffie-Hellman 素数を含む cbKeyLength サイズのバッファーと、Diffie-Hellman ジェネレーター番号を含む cbKeyLength サイズの別のバッファーで構成されます。 これらの数値はどちらもビッグ エンディアン形式です。

次の例は、このバッファーに必要なサイズを計算する方法と、この構造体のメンバーを入力する方法を示しています。

// 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);


要件

要件
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
Header bcrypt.h

こちらもご覧ください

BCryptSetProperty

Cryptography Primitive プロパティ識別子