BLOB 會與 Diffie-Hellman 提供者搭配使用,以便從 密碼編譯服務提供者 (CSP) 導出密鑰併匯入密鑰。
公鑰 BLOB
Diffie-Hellman 公鑰 BLOB,輸入 PUBLICKEYBLOB,可用來在 Diffie-Hellman 密鑰交換中交換 (G^X) mod P 值。 這些索引鍵會以下列格式匯出和匯入為位元組序列。
PUBLICKEYSTRUC publickeystruc;
DHPUBKEY dhpubkey;
BYTE y[dhpubkey.bitlen/8]; // Where y = (G^X) mod P
下表描述 金鑰 BLOB的每個元件。
田 | 描述 |
---|---|
dhpubkey | DHPUBKEY 結構。 magic 成員應設定為 0x31484400。 這個十六進位值是 「DH1」 ASCII 編碼。 |
publickeystruc | PUBLICKEYSTRUC 結構。 |
y | BYTE 序列。 Y 值 (G^X) mod P 位於 DHPUBKEY 結構之後,且應該一律是 DHPUBKEY bitlen 字段 (位長度 P) 除以 8 的長度。 如果計算產生的數據長度(G^X) mod P 比 P 短一或多個字節除以 8,則數據必須以必要的位元組(零值)填補,讓數據成為所需的長度(小端 格式)。 |
私鑰 BLOB
Diffie-Hellman 私鑰 BLOB,輸入 PRIVATEKEYBLOB,可用來儲存 Diffie-Hellman 密鑰的公開/私鑰資訊。 這些索引鍵會以下列格式匯出和匯入為位元組序列。
PUBLICKEYSTRUC publickeystruc;
DHPUBKEY dhpubkey;
BYTE prime[dhpubkey.bitlen/8];
BYTE generator[dhpubkey.bitlen/8];
BYTE secret[dhpubkey.bitlen/8];
下表描述金鑰 BLOB 的每個元件。
田 | 描述 |
---|---|
dhpubkey | DHPUBKEY 結構。 magic 成員必須設定為 0x32484400。 這個十六進位值是 「DH2」 ASCII 編碼。 |
發電機 | BYTE 序列。 產生器 G. |
publickeystruc | PUBLICKEYSTRUC 結構。 |
主要 | BYTE 序列。 質數,P。此數據必須一律將最顯著的位元設為其中一個。 |
秘密 | BYTE 序列。 秘密指數 X。 |
注意
產生器和秘密必須一律具有相同的長度,以位元組為單位。 如果其中一個字節或比另一個字節短,則必須以必要的零值位元組數目填補,使其相同。 產生器與秘密都 小端 格式。