13.07.2004 16:30:42Создание нового контейнера Ответов: 3
Вадим
Вопрос следующий.
Имеем контейнер по умолчанию с именем пользователя. Нужно создать новый контейнер с тем же именем (например плановая смена ключей). Для этого нужно удалить старый и создать новый. Но!
Если при создании нового контейнера чтото не заладится (ключевой носитель сломался, отказ при вводе и т.д.), то мы остаемся вообще без ключа и откат не возможен (восстановить старый ключ).
Как сделать так, чтобы можно было удалить старый контейнер только тогда, когда новый создался корректно.
Видится решение - создать контейнер с другим именем, затем удалить старый, а новый переименовать. Или наоборот, старый переименовать и т.д.
Но я не нашел таких функций.
Не подскажете как это сделать?
 
Ответы:
14.07.2004 10:34:18Василий
Можно проще.
При использовании CSP 2.0 есть кнопочка "Удалить запомненные пароли" на вкладке Сервис нашей панели. Она удаляет из реестра ссылки на контейнеры (каждая из которых содержит имя контейнера и имя носителя).
В реестре эти ссылки лежат в разделе HKEY_LOCAL_MACHINE\SOFTWARE\Crypto Pro\Settings\USERS\<SID пользователя>\KeyDevices\passwords
Можно удалить вручную.
14.07.2004 12:21:07Вадим
Кнопочки нажимать нельзя - все должно быть програмно...
Т.е., как я понял, ищем в реестре запись по старому контейнеру, запоминаем, стираем, создаем новый контейнер и, если облом, восстанавливаем в реестре запись по старому контейнеру?
Только такой способ не универсален для любого CSP, а подходит только для КриптоПро, что не очень красиво.
14.07.2004 16:18:16Василий
1. Эту запись в реестре о контейнере можно не запоминать и не восстанавливать. Она вспомогательная, для ускорения процедуры поиска контейнера по его имени.
2. Универсальности для разных CSP по-любому будет мало. Например, если поломается содержимое контейнера MS CSP или GemPlus CSP, то может случиться, что Вы не сможете его удалить средствами CryptoAPI.