Для использования в качестве ключевого контейнера сессии загружается:
- файловый контейнер в кодировке base64 в формате PKCS#12, проприетарных форматах ИИТ ("Key-6.dat", "Приватбанк jks", "Украина ZS2"). В случае успешной загрузки при выполнении операций создания ЭП, зашифрования и расшифрования будет использоваться личный ключ и, в случае наличия, сертификат (цепочка сертификатов) из загруженного файлового контейнера.
- путь в специальном формате к файловому контейнеру или аппаратному носителю с поддержкой PKCS#11 в активном (пассивном) режиме.
Путь к аппаратному носителю с поддержкой PKCS#11, который подключен к компьютеру, на котором выполняется сервис, необходимо получить посредством запроса.
Если в запросе одновременно присутствуют данные файлового ключевого контейнера и путь к ключевому контейнеру, то будет использован только путь.
Если отдельными запросами для сессии были загружены и данные файлового контейнера, и путь к ключевому контейнеру, то будет использован только путь.
Данные ключевого контейнера сессии находятся в оперативной памяти с момента загрузки до момента удаления сессии и выполнения виртуальной машиной Java последующей процедуры сборки мусора. Данные ключевого контейнера НИКОГДА не сохраняются сервисом в файл, базу данных или другие объекты для долгосрочного хранения информации.
URL-адрес запроса
https://local.cipher.kiev.ua:9090/api/v1/ticket/{uuid}/keyStore
Метод
PUT
Параметры запроса
uuid | String | Идентификатор сессии |
Настраиваемые заголовки запроса
Content-Type | application/json |
Параметры JSON объекта запроса
Имя | Тип | Описание | Допустимые значения |
---|---|---|---|
base64Data | String | Файловый контейнер в кодировке Base64 | Правильно закодированная Base64 строка |
keyStorePath | String | Путь в специальном формате к файловому контейнеру или аппаратному носителю с поддержкой PKCS#11 | Для получения списка подключенных аппаратных носителей необходимо использовать запрос |
Ответ
Код ответа | Content-type | Допустимые параметры | Пример содержимого |
---|---|---|---|
200 | application/json | message | { |
503 | application/json | message | { |
400 | application/json | message | { "message" : "Сессия отсутствует." } |
500 | application/json | message failureCause | { |
Параметры JSON объекта ответа
Параметр | Тип данных | Описание |
---|---|---|
message | String | Описание результата проведения операции |
failureCause | String | Описание причины возникновения ошибки |
Пример кода на JavaScript + jQuery 2.2.4 в случае использования аппаратного носителя в активном режиме
var data = { keyStorePath: "@. Avtor SecureToken 0" } $.ajax({ url: "https://local.cipher.kiev.ua:9090/api/v1/ticket/79343564-147f-4a2a-ac2a-182d7a55f802/keyStore", type: "PUT", dataType: "json", contentType: "application/json", data: JSON.stringify(data) }).done(function (jsonResponse, textStatus, xhr) { message = jsonResponse.message; }).fail(function (xhr) { try { var jsonResponse = JSON.parse(xhr.responseText); message = jsonResponse.message; failureCause = jsonResponse.failureCause; } catch (e) { message = (xhr.responseText == undefined) ? "Ошибка при загрузке данных ключевого контейнера." : xhr.responseText; } })
Пример кода на JavaScript + jQuery 2.2.4 в случае использования файлового контейнера с указанием пути
var data = { keyStorePath: "z:\\sharedFiles\\temp\\7\\Molyakov_overdue-DS+Arg.pfx" } $.ajax({ url: "https://local.cipher.kiev.ua:9090/api/v1/ticket/79343564-147f-4a2a-ac2a-182d7a55f802/keyStore", type: "PUT", dataType: "json", contentType: "application/json", data: JSON.stringify(data) }).done(function (jsonResponse, textStatus, xhr) { message = jsonResponse.message; }).fail(function (xhr) { try { var jsonResponse = JSON.parse(xhr.responseText); message = jsonResponse.message; failureCause = jsonResponse.failureCause; } catch (e) { message = (xhr.responseText == undefined) ? "Ошибка при загрузке данных ключевого контейнера." : xhr.responseText; } })
Пример кода на JavaScript + jQuery 2.2.4 в случае использования данных файлового контейнера
var data = { base64Data: "данные файлового контейнера в кодировке base64" } $.ajax({ url: "https://local.cipher.kiev.ua:9090/api/v1/ticket/79343564-147f-4a2a-ac2a-182d7a55f802/keyStore", type: "PUT", dataType: "json", contentType: "application/json", data: JSON.stringify(data) }).done(function (jsonResponse, textStatus, xhr) { message = jsonResponse.message; }).fail(function (xhr) { try { var jsonResponse = JSON.parse(xhr.responseText); message = jsonResponse.message; failureCause = jsonResponse.failureCause; } catch (e) { message = (xhr.responseText == undefined) ? "Ошибка при загрузке данных ключевого контейнера." : xhr.responseText; } })