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 |