Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
BLOB-объекты используются с поставщиком Diffie-Hellman для экспорта ключей и импорта ключей в поставщика служб шифрования (CSP).
BLOB-объекты открытого ключа
Diffie-Hellman BLOB-объекты открытого ключа, тип PUBLICKEYBLOB, используются для обмена значением мода P (G^X) в обмене ключами Diffie-Hellman. Эти ключи экспортируются и импортируются в виде последовательности байтов со следующим форматом.
PUBLICKEYSTRUC publickeystruc;
DHPUBKEY dhpubkey;
BYTE y[dhpubkey.bitlen/8]; // Where y = (G^X) mod P
В следующей таблице описывается каждый компонент ключевого BLOB-объекта.
| Поле | Описание |
|---|---|
| dhpubkey | СтруктураDHPUBKEY. Для 0x31484400 нужно задать 0x31484400 магическое. Это шестнадцатеричное значение является кодировкой ASCII "DH1". |
| publickeystruc | Структура PUBLICKEYSTRUC. |
| y | Последовательность BYTE. Значение Y (G^X) mod P находится непосредственно после структуры DHPUBKEY и всегда должно быть длиной в байтах битлен DHPUBKEY (битовая длина P), разделенной на восемь. Если длина данных, полученных от вычисления мода G^X, составляет один или несколько байтов, чем P, разделенных на восемь, данные должны быть заполнены необходимыми байтами (нулевого значения), чтобы сделать данные требуемой длиной (маленький формат). |
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. Элемент магического должен быть установлен на 0x32484400. Это шестнадцатеричное значение является ASCII кодировке DH2. |
| генератор | Последовательность BYTE. Генератор, G. |
| publickeystruc | Структура PUBLICKEYSTRUC. |
| первичный | Последовательность BYTE. Основной модулу, P. Эти данные всегда должны иметь самый значительный бит из наиболее значимых байтов, установленных на один. |
| секрет | Последовательность BYTE. Экспонент секрета, X. |
Заметка
Генератор и секрет должны всегда иметь одинаковую длину в байтах. Если одно байтовое или более короткое, чем другое, оно должно быть заполнено необходимым числом байтов нулевого значения, чтобы сделать их одинаковыми. Генератор и секрет находятся в маленьком формате.