Статус: Новичок
Группы: Участники
Зарегистрирован: 12.02.2018(UTC) Сообщений: 7 Откуда: Ivanovo
Сказал(а) «Спасибо»: 5 раз Поблагодарили: 2 раз в 1 постах
|
Добрый день!
Подскажите, пожалуйста, возможно ли определить ALG_ID и OID по short name алгоритма, или наоборот, по OID определить ALG_ID и имя алгоритма, кроме как через вызовы CryptGetProvParam() c параметром PP_ENUMALGS и CertAlgIdToOID()/CertOIDToAlgId()?
Если использовать CryptGetProvParam(), то выдается какой-то короткий список алгоритмов, так для криптопровайдера: "Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider": "GOST 28147-89" "GR 34.10-2012 256" "DH 34.10-2012 256" "GR34.11-12 256 HMAC" но в нем нет, например, "GR 34.11-2012 256" или CALG_DH_GR3410_12_256_SF
Получить OID через CertAlgIdToOID() можно лишь для "GOST 28147-89" и "GR 34.10-2012 256", но не для алгоритмов хэша и обмена ("GR34.11-12 256 HMAC", "DH 34.10-2012 256")
Есть какой-то иной способ получения этих параметров алгоритмов или необходимо самому определять соответсвие между ALG_ID, OID и short name ?
|
|
|
|
Статус: Эксперт
Группы: Участники
Зарегистрирован: 05.03.2015(UTC) Сообщений: 1,602 Откуда: Иркутская область Сказал(а) «Спасибо»: 110 раз Поблагодарили: 394 раз в 366 постах
|
|
1 пользователь поблагодарил two_oceans за этот пост.
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,691 Сказал «Спасибо»: 500 раз Поблагодарили: 2046 раз в 1586 постах
|
Здравствуйте. Автор: yvatest Если использовать CryptGetProvParam(), то выдается какой-то короткий список алгоритмов, так для криптопровайдера: "Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider": "GOST 28147-89" "GR 34.10-2012 256" "DH 34.10-2012 256" "GR34.11-12 256 HMAC" но в нем нет, например, "GR 34.11-2012 256" или CALG_DH_GR3410_12_256_SF
Получить OID через CertAlgIdToOID() можно лишь для "GOST 28147-89" и "GR 34.10-2012 256", но не для алгоритмов хэша и обмена ("GR34.11-12 256 HMAC", "DH 34.10-2012 256")
А как используете вызов? Snimok ehkrana ot 2020-01-09 15-23-59.png (35kb) загружен 27 раз(а).Такой вариант ожидается получить? |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 12.02.2018(UTC) Сообщений: 7 Откуда: Ivanovo
Сказал(а) «Спасибо»: 5 раз Поблагодарили: 2 раз в 1 постах
|
Цитата: А как используете вызов?
Вызываю примерно так: CryptAcquireContext(&prov, NULL, "Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider", PROV_GOST_2012_256, CRYPT_VERIFYCONTEXT) ... DWORD dwFlags = CRYPT_FIRST; CryptGetProvParam(prov, PP_ENUMALGS, (BYTE*)pbData.Begin(), &cbData, dwFlags) ...
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,691 Сказал «Спасибо»: 500 раз Поблагодарили: 2046 раз в 1586 постах
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,691 Сказал «Спасибо»: 500 раз Поблагодарили: 2046 раз в 1586 постах
|
Автор: yvatest Цитата: А как используете вызов?
Вызываю примерно так: CryptAcquireContext(&prov, NULL, "Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider", PROV_GOST_2012_256, CRYPT_VERIFYCONTEXT) ... DWORD dwFlags = CRYPT_FIRST; CryptGetProvParam(prov, PP_ENUMALGS, (BYTE*)pbData.Begin(), &cbData, dwFlags) ... 1 раз? А как же цикл c CRYPT_NEXT? |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 12.02.2018(UTC) Сообщений: 7 Откуда: Ivanovo
Сказал(а) «Спасибо»: 5 раз Поблагодарили: 2 раз в 1 постах
|
Автор: Андрей Писарев
1 раз? А как же цикл c CRYPT_NEXT?
Спасибо, нашел ошибку. Цикл был, только я в нем сначала лишний раз вызывал CryptGetProvParam что-бы определить размер cbData, и получается, что просто пропускал через одного
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close