Форум КриптоПро
»
Устаревшие продукты
»
КриптоПро CSP 3.6
»
Помогите реализовать RFC 4357 пункт 5.2. VKO GOST R 34.10-2001
Статус: Активный участник
Группы: Участники
Зарегистрирован: 19.11.2010(UTC) Сообщений: 52 Откуда: Спб
Сказал(а) «Спасибо»: 4 раз
|
Здравствуйте. Требуется реализовать генерацию ключа в соответствии с пунктом 5.2 http://www.rfc-editor.org/rfc/rfc4357.txtПросмотрев примеры насколько я понял делается ключ согласования примерно так Код: //Получение ключа согласования
if (CryptImportKey(
hProv,
pbKeyBlob, // открытый ключ получателя
dwBlobLen, // длина открытого ключа получателя
phKey, // мой закрытый ключ
CRYPT_EXPORTABLE,
&hAgreeKey))
{
printf("The agree key created; \n");
}
else
{
HandleError("Error during CryptImportKey public key.");
}
И он создается, но когда я пытаюсь его экспортировать Код: //Определяем длину блоба для сессионного ключа.
if(CryptExportKey(
hAgreeKey,
NULL,
SIMPLEBLOB,
0,
NULL,
&dwBlobLen))
{
printf("Size of the BLOB for the sender session key determined. \n");
}
else
{
DWORD err = GetLastError();
HandleError("Error computing BLOB length.");
}
В зависимости от того какой вариант я ставлю в поле вместо SIMPLEBLOB я получаю либо NTE_BAD_KEY_STATE либо NTE_BAD_KEY либо NTE_BAD_TYPE. Я пробовал проверять права на ключ Код: DWORD r, size = sizeof(DWORD);
BOOL z = CryptGetKeyParam(
hAgreeKey, KP_PERMISSIONS, (BYTE*) &r,
&size,0
);
Как результат 0x0000000ff то есть право экспорта есть. Вопросы: 1 Правильно ли я создаю ключ в соответствии с RFC или я чтото напутал и если напутал то как создать ключ по РФЦ ? 2 Как бы мне получить UMK ( это в терминах рфц ) который использовался при генерации ключа ? 3 И почему все-таки ключ не хочет экспортироваться ?
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,399  Откуда: КРИПТО-ПРО Сказал «Спасибо»: 37 раз Поблагодарили: 719 раз в 623 постах
|
Что-то вы лунное делаете. Симметричный ключ экспортируется на ключе обмена как-раз в Simple blob. |
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,399  Откуда: КРИПТО-ПРО Сказал «Спасибо»: 37 раз Поблагодарили: 719 раз в 623 постах
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 19.11.2010(UTC) Сообщений: 52 Откуда: Спб
Сказал(а) «Спасибо»: 4 раз
|
Спасибо за оперативный ответ, но ссылка не совсем о том. И там столь нужный мне UMK просто нули.
Мне требуется имея закрытый ключ свой и открытый ключ получателя сгенерировать ключ согласования и этот ключ передать в другую программу вместе с UMK. Именно ключ согласования а не сессионный ключ. Соответственно я не понимаю как мне этот ключ хоть в каком-то виде получить и как узнать его UMK.
Помогите пожалуйста
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,399  Откуда: КРИПТО-ПРО Сказал «Спасибо»: 37 раз Поблагодарили: 719 раз в 623 постах
|
Ключ согласования потому так и называется, что согласовывается, а не передается - какую задачу решаете? |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 19.11.2010(UTC) Сообщений: 52 Откуда: Спб
Сказал(а) «Спасибо»: 4 раз
|
Есть достаточно большая схема взаимодействия. В принципе я думаю могу описать кусок связанный с нами, но боюсь что в отрыве от общей схемы будет выглядеть не слишком логично и понятно почему так.
Грубо говоря есть сервер назовем его С и есть компьютеры в сети подключенные к серверу назовем их A1... An. А еще есть ну скажем мобильные телефоны М1...Мn
У С есть пара открытый закрытый ключ и все открытые ключи телефонов. У каждого телефона есть открытый ключ С.
Теперь при соединеннии Mi c Aj Аj запрашивает его передавая к какому именно М подключаемся у С и получает UMK, передает UMK вместе с зашифрованным сессионным ключом к Мj. Mj генерирует тот же ключ согласия и расшифровывает ключ.
Плюс скажем так там особый вид мобильника на котором нельзя использовать криптопро.
И все-таки ответьте пожалуйста на вопросы.
Вопросы: 1 Правильно ли я создаю ключ в соответствии с RFC или я что-то напутал и если напутал то как создать ключ по РФЦ ? 2 Как бы мне получить UMK ( это в терминах рфц ) который использовался при генерации ключа ? 3 И почему все-таки ключ не хочет экспортироваться ?
|
|
|
|
Форум КриптоПро
»
Устаревшие продукты
»
КриптоПро CSP 3.6
»
Помогите реализовать RFC 4357 пункт 5.2. VKO GOST R 34.10-2001
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close