Автор: maxdm 3. Вы хотите сделать что-то лунное - получаете расширение контейнера без контейнера.
Я хочу не астрологии, а более вменяемого кода ошибки. Потому что с флагами-то тут точно все в порядке. Хотя не вижу принципиальных проблем для возврата пустого списка расширений без физического контейнера.
Но тут у каждого своя логика.
Microsoft CSP в аналогичной ситуации возвращает NTE_BAD_TYPE, например.
Цитата:
Срок действия без контейнера не определен, но в будущих версиях будем возвращать -1 в таких случаях.
А вы не могли бы это внести в эксплуатационную документацию? А то в документации "срок действия закрытых ключей не должен превышать..." без конкретизации,
а у испытательной лаборатории перед сертификацией потом вопросы по эфемеральным ключам.
Кстати, я по этому вопросу в поддержку Крипто-Про еще в 2011 году писал, но внятного ответа так и не получил
Цитата:
Мне все равно не понятна задача электронной подписи без ключа.
Ключ здесь есть. "Предназначен для ЭЦП" и "эквивалентна AT_SIGNATURE". Блоб экспортируется с алгоритмом, соответствующим долговременному ключу.
Спецификации RFC/TK26, да и самого ГОСТ, вроде тоже не указывают, что подпись можно делать только с помощью данных, предварительно записанных в долговременную память.
Теперь посмотрим, что у нас подразумевает генерация AT_SIGNATURE:
- Генерация с алгоритмом, определяемым типом CSP
- Запись в контейнер
- Доступность для функций, принимающих на вход спецификатор (СryptGetUserKey, CryptSignHash и т.д)
Что документировано здесь:
- Алгоритм задается явно
- Записи в контейнер нет
В чем тогда еще "эквивалентность"? Поясните, пожалуйста.
Для справки, Microsoft CSP вполне себе позволяет генерацию AT_SIGNATURE/AT_KEYEXCHANGE в контестах, открытых с флагом CRYPT_VERIFYCONTEXT
Задача простая: иметь единоообразный код (работа произвольным контекстом в терминах CryptGetUserKey и подобных),
экспорт ключа ЭП в свое собственное хранилище.
А то разные воркэраунды под разные версии КриптоПро плодятся и множатся.
Помнится, были сборки Крипто-Про, которые при явном задании алгоритма (а не AT_SIGNATURE) тоже в контейнер ключи писали.
Отредактировано пользователем 16 ноября 2017 г. 15:23:10(UTC)
| Причина: Не указана