Статус: Участник
Группы: Участники
Зарегистрирован: 25.10.2013(UTC) Сообщений: 12 Сказал(а) «Спасибо»: 4 раз
|
Доброго времени суток. Пытаюсь создать контейнер с 512-битным ключом под новый алгоритм. Создаются короткие ключи и под старые алгоритмы. Код:
...
CryptAcquireContext(&hProv, szContainerName, CP_GR3410_2012_PROV, PROV_GOST_2001_DH, CRYPT_NEWKEYSET);
CryptSetProvParam(hProv, PP_SIGNATUREOID_512 , (BYTE*)szOID_tc26_gost_3410_12_512_paramSetA, 0);
CryptGenKey(hProv, AT_SIGNATURE, 0, &hKey);
...
Код:
Проверка завершена успешно ошибок не обнаружено
Контейнер закрытого ключа
имя SIGN_TEST_64_0
уникальное имя SIGN_TEST_64_0
FQCN \\.\REGISTRY\SIGN_TEST_64_0
проверка целостности контейнера успешно
Ключ обмена отсутствует
Ключ подписи доступен
длина ключа 512 бит
экспорт открытого ключа успешно
импорт открытого ключа успешно
подпись успешно
проверка успешно
экспорт ключа запрещен
алгоритм ГОСТ Р 34.10-2001
ГОСТ Р 34.10-2001, параметры по умолчанию
ГОСТ Р 34.11-94, параметры по умолчанию
сертификат в контейнере отсутствует
загрузка ключей успешно
При попытке получить блоб с открытым ключом - размер блоба 100 байт, что не может соответствовать публичному ключу к закрытому 512-битному. ожидаемый размер - 128+36 = 164 байта? Также в качестве параметра dwFlags к CryptGenKey пытался передавать 512<<16 и 1024<<16, как сказано в MSDN для указания длины RSA-ключей Цитата: dwFlags: Specifies the type of key generated. The sizes of a session key, RSA signature key, and RSA key exchange keys can be set when the key is generated. The key size, representing the length of the key modulus in bits, is set with the upper 16 bits of this parameter. Thus, if a 2,048-bit RSA signature key is to be generated, the value 0x08000000 is combined with any other dwFlags predefined value with a bitwise-OR operation. The upper 16 bits of 0x08000000 is 0x0800, or decimal 2,048. The RSA1024BIT_KEY value can be used to specify a 1024-bit RSA key
Не помогло.. Подскажите, что я делаю не так?
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 16.04.2008(UTC) Сообщений: 1,411
Сказал(а) «Спасибо»: 34 раз Поблагодарили: 561 раз в 390 постах
|
Правильный код такой: Код:
AcquireContext(&hProv, szContainerName, CP_GR3410_2012_PROV, PROV_GOST_2001_DH, CRYPT_NEWKEYSET);
GenKey(hProv, AT_SIGNATURE, 1024<<16, &hKey);
Ещё можно воспользоваться csptest-ом: Код:
csptest -keyset -newkeyset -cont cont_name -length 1024 -keytype exchange
Отмечу, что в следующих релизах мы разделили провайдеры на три типа: PROV_GOST_2001_DH - для создания ключей ГОСТ Р 34.10-2001:
- закрытый ключ 256 бит, открытый - 512 бит
- подписывает хэш по ГОСТ Р 34.11-94 (256 бит)
- VKO (получение симметричного ключа из ключа согласования по алгоритму Диффи-Хелмана) по ГОСТ Р 34.11-94 (256 бит)
PROV_GOST_2012_256 - для создания ключей ГОСТ Р 34.10-2012:
- закрытый ключ 256 бит, открытый - 512 бит
- подписывает хэш по ГОСТ Р 34.11-2012 (256 бит)
- VKO по ГОСТ Р 34.11-2012 (256 бит)
PROV_GOST_2012_512 - для создания ключей ГОСТ Р 34.10-2012:
- закрытый ключ 512 бит, открытый - 1024 бит
- подписывает хэш по ГОСТ Р 34.11-2012 (512 бит)
- VKO по ГОСТ Р 34.11-2012 (256 бит)
Отредактировано пользователем 29 октября 2013 г. 12:42:36(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 25.10.2013(UTC) Сообщений: 12 Сказал(а) «Спасибо»: 4 раз
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 08.11.2013(UTC) Сообщений: 2 Откуда: Moscow
|
Автор: olin Отмечу, что в следующих релизах мы разделили провайдеры на три типа: А нет прогноза по дате выпуска следующего релиза?
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close