Требования

Для каждого пользователя может быть создано несколько защищенных хранилищ с доступом по паролю. Идентификаторы хранилищ должны быть уникальными для уникальных пользователей и формироваться на стороне МП (требования к идентификатору хранилища СКЗИ и идентификатору пользователя МП см. в пунктах 3.2.3.2 и 3.3.2).

1. Если идентификатор пользователя не передан, то перейти к шагу 6 и выполнить инициализацию контекста для корневого хранилища.

2. Проверить, был ли ранее сохранен идентификатор пользователя МП во внутреннем хранилище ПМ.

3. Если идентификатор пользователя найден, то перейти к шагу 6.

4. Если идентификатор пользователя не найден, то вызвать метод удаления найденных сегментов хранилища СКЗИ и всей ключевой информации - deleteStore (storeId).

5. Сохранить идентификатор пользователя и идентификатор хранилища СКЗИ во внутреннем хранилище ПМ, если они не были ранее сохранены во внутреннем хранилище ПМ.

6. Вызвать метод инициализации контекста криптографического провайдера в СКЗИ в соответствии с уникальным идентификатором хранилища:

a) если защищенный ключевой контейнер не был создан ранее, необходимо его создать и установить пароль;

b) в ответ СКЗИ должно возвращать объект cryptContext, содержащий структуру данных с информацией о криптопровайдере, для выполнения последующих криптографических операций и управления криптографическими ресурсами.

7. Вернуть полученный объект cryptContext.

8. В случае неуспешного выполнения какого-либо из перечисленных выше действий или получения ошибок при вызове функций СКЗИ прервать выполнение метода и вернуть код ошибки в соответствии с описанием в разделе 3.2.6.