28.05.2003 15:15:28Флаги функции CPAcquireContext Ответов: 1
Куликов Иван
1.В полной ли мере поведение CPAcquireContext с флагом CRYPT_MACHINE_KEYSET в вашем провайдере соответствует поведению аналогичной функции в провайдерах Microsoft?
В частности, так же ли не может быть использован пользовательский интерфейс и user account?
Если это так, то означает ли это, что ключи хранятся в контейнере в системном реестре в незашифрованном виде?
Или, во всяком случае, там же хранится ключ, на котором они зашифрованы?
Или же при использовании этого флага все-таки требуется загружать ключи пользователя с каког-либо носителя?
Запрещен ли диалог с пользователем при исполльзовании этого флага?
Если да, то чем этот флаг отличается от CRYPT_SILENT?
Если нет, то что означает, что флаг CRYPT_MACHINE_KEYSET используется для ключей, которые могут быть автоматически использованы серверами?
Что происходит в Вашем провайдере при вызове функции с данным флагом?
Каким образом системные приложения используют ключевые контейнеры, созданные с данным флагом?
 
Ответы:
28.05.2003 16:56:00Василий
> ... так же ли не может быть использован пользовательский интерфейс

UI доступен.

> и user account?

Нет.

> означает ли это, что ключи хранятся в контейнере в системном реестре в незашифрованном виде?

Ключи в контейнере никогда не хранятся в открытом виде. Контейнер может быть зашифрован на текстовом пароле либо на ключе другого контейнера (расположенного в том числе на съёмном носителе). Кроме того, контейнер не обязан храниться в реестре. Носитель может быть любой, в реестре хранится ссылка.

> Или, во всяком случае, там же хранится ключ, на котором они зашифрованы?

Смотря как сделан контейнер. Может быть и так, и не так.

> Или же при использовании этого флага все-таки требуется загружать ключи пользователя с каког-либо носителя?

Нет, пользовательские ключи не годятся - только из LOCAL_MACHINE.

> Запрещен ли диалог с пользователем при исполльзовании этого флага?
Если да, то чем этот флаг отличается от CRYPT_SILENT?

Нет, если вызывающее приложение может взаимодействовать с рабочим столом.

> Если нет, то что означает, что флаг CRYPT_MACHINE_KEYSET используется для ключей, которые могут быть автоматически использованы серверами?

Да, с учётом вышесказанного

> Что происходит в Вашем провайдере при вызове функции с данным флагом?

Это наша забота :-)

> Каким образом системные приложения используют ключевые контейнеры, созданные с данным флагом?

Как обычно. Особенности - если надо обеспечить работу без участия оператора. Для этого - 1) обязательное использование аппаратного датчика при генерации ключей 2) использование программных вызовов функций установки пароля или ключа шифрования CPSetProvParam(...).

Подробности см. http://www.cryptopro.ru/CryptoPro/test/csp_2_0.chm