共用方式為


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

索引鍵的 magic 值。

這個成員必須是下列值。

BCRYPT_DH_PARAMETERS_MAGIC (0x4d504844)

cbKeyLength

這個結構所套用之索引鍵的大小,以位元組為單位。

備註

此結構會當做較大緩衝區的標頭使用。 單一記憶體區塊包含此結構,後面接著包含 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 [僅限傳統型應用程式]
標頭 bcrypt.h

另請參閱

BCryptSetProperty

Cryptography Primitive 屬性標識符