Робота з цифровою печаткою
| 🌐 Цей документ доступний українською та англійською мовами. Використовуйте перемикач у правому верхньому куті, щоб змінити версію. | 
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"
}