Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Для использования в качестве ключевого контейнера сессии загружаетсявикористання в якості ключового контейнеру сесії завантажується:

  • файловый файловий контейнер в кодировке у кодуванні base64 в формате форматі PKCS#12, проприетарных форматах ИИТ пропрієтарних форматів ІІТ ("Key-6.dat", "Приватбанк jks", "Украина Україна ZS2"). В случае успешной загрузки при выполнении операций создания ЭП, зашифрования и расшифрования будет использоваться личный ключ и, в случае наличия, сертификат (цепочка сертификатов) из загруженного файлового контейнера.
  • путь в специальном формате к файловому контейнеру или аппаратному носителю с поддержкой PKCS#11 в активном (пассивном) режиме.

Путь к аппаратному носителю с поддержкой PKCS#11, который подключен к компьютеру, на котором выполняется сервис, необходимо получить посредством запроса.

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

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

Данные ключевого контейнера сессии находятся в оперативной памяти с момента загрузки до момента удаления сессии и выполнения виртуальной машиной Java последующей процедуры сборки мусора. Данные ключевого контейнера НИКОГДА не сохраняются сервисом в файл, базу данных или другие объекты для долгосрочного хранения информации.  

...

  • У якості успішного завантаження при виконанні операції створення КЕП, зашифрування та розшифрування буде використовуватися особистий ключ, у випадку наявності, сертифікат (ланцюг сертифікатів) із завантаженого файлового контейнеру.
  • шлях у спеціальному форматі до файлового контейнеру чи захищеного носія з підтримкою PKCS#11 в активному (пасивному) режимі.

Шлях до захищеного носія з підтримкою PKCS#11, який підключено до комп'ютеру, на якому виконується сервіс, необхідно отримати за допомогою запиту.

Якщо в запиті одночасто присутні дані файлового контейнеру та шлях до ключового контейнеру, то буде використано лише шлях.

Якщо окремими запитами для сесії були завантажені та дані файлового контейнеру, то буде використано шлях.

Дані ключового контейнеру сесії в оперативній пам'яті з моменту завантаження до моменту видалення сесії та виконання віртуальною машиною Java подальшої збірки сміття. Дані ключового контейнеру НІКОЛИ не зберігаються сервісом у файлі, базу даних чи інші об'єкти для довгострокового зберігання інформації.  

URL-адреса запиту

https://local.cipher.kiev.ua:9090/api/v1/ticket/{uuid}/keyStore

Метод

PUT

...

Параметри запиту
uuidStringИдентификатор сессииІдентифікатор сесії

...

Налаштовувані заголовки

...

запиту
Content-Typeapplication/json

...

Параметри JSON

...

обʼєкту запиту
ИмяІмʼя
Тип
ОписаниеОпис
Допустимые значенияДопустимі значення
base64Data
StringФайловый

Файловий контейнер

в кодировке

у кодуванні Base64.

Необовʼязковий параметр, який використовується лише при роботі з файловим контейнером. 

Правильно закондаваний Base64 рядокПравильно закодированная Base64 строка
keyStorePathString

Путь в специальном формате к файловому контейнеру или аппаратному носителю с поддержкой PKCS#11

Для получения списка подключенных аппаратных носителей необходимо использовать запрос
Ответ

Шлях у спеціальному форматі до файлового контейнеру чи захищеного носія з підтримкою PKCS#11

Для отримання списку підключених захищених носіїв, необхідно виконати запит
Відповідь
Код відповідіКод ответаContent-typeДопустимые параметрыДопустимі параметриПриклад вмістуПример содержимого
200application/jsonmessage
{
       "message" : "ДанныеДані ключевогоключового контейнераконтейнеру успешноуспішно загружены.завантажено",
}
503application/jsonmessage
{
       "message" : "СервисСервіс хранениязберігання данныхданих не запущензапущено."
}
400application/jsonmessage
{
       "message" : "СессияСесія отсутствуетвідсутня." 
}
500application/jsonmessage
failureCause 
{
       "message" : "ОшибкаПомилка при загрузкезавантаженні данныхданих ключевогоключового контейнераконтейнеру.",
"failureCause" : ""
}

...

Параметри JSON

...

обʼєкта відповіді
ПараметрТип данныхданихОписаниеОпис
messageStringОписание результата проведения операцииОпис результату проведення операції
failureCause StringОписание причины возникновения ошибки

...

Опис причини появи помилки
Приклад коду на JavaScript + jQuery 2.2.4

...

у випадку використання захищеного носія в активному режимі
Code Block
languagejs
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

...

у випадку використання файлового контейнеру зі вказівкою шляху
Code Block
languagejs
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

...

у випадку використання даних файлового контейнеру
Code Block
languagejs
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;
    }
})

...