Робота з цифровою печаткою
🌐 Цей документ доступний українською та англійською мовами. Використовуйте перемикач у правому верхньому куті, щоб змінити версію. |
1. Основні сценарії
1.1. Підписання даних системним цифровим підписом (цифровою печаткою)
Діаграма послідовності накладання системного підпису:
Обраховує значення хеша для даних що передані в сервіс з допомогою відповідної хеш функції та накладає цифрову печатку організації з міткою часу на отриманий хеш. Також добавляє до підпису цифровий сертифікат підпису.
Запит:
POST /api/eseal/sign --header 'X-Access-Token: token'
Тіло запиту:
{
"data": "string"
}
Відповіді:
-
200 OK Документ підписано
Тіло відповіді:
{
"signature": "string"
}
-
400 Bad request Невалідний запит
Тіло відповіді:
{
"code": "string",
"message": "string",
"localizedMessage": "string"
}
1.2. Перевірка системної цифрової печатки та даних
Діаграма послідовності перевірки системного підпису:
Ланцюг валідаційних перевірок реалізовано в наступних классах:
Сервісом здійснюються наступні перевірки:
-
ЕЦП дійсний
-
ЕЦП містить мітку часу.
-
цілісність даних непорушена (Значення хеша з підпису відповідає хешу порахованому сервісом на основі отриманих даних)
-
документ був підписаний системним ключем (issuer та serial атрибути з ЕЦП містяться в списку дозволених системних цифрових печаток)
Запит:
POST /api/eseal/verify --header 'X-Access-Token: token'
Тіло запиту:
{
"signature": "string",
"data": "string"
}
Відповіді:
-
200 OK Печатка валідна
Тіло відповіді:
{
"isValid": true,
"error": null
}
-
200 OK Помилка перевірки печатки
Тіло відповіді:
{
"isValid": false,
"error": {
"code": "ERROR_UNKNOWN_ESEAL",
"message": "Signature key is not allowed",
"localizedMessage": "Печатка не авторизована для накладання підпису"
}
}
-
400 Bad request Невалідний запит
Тіло відповіді:
{
"code": "string",
"message": "string",
"localizedMessage": "string"
}