Приложение А
Проверки Приложения А соответствуют десяти функциям Требований к функциям Заявки и трём типам задач: проверки А.1–А.3 — типу задач «взаимодействие с внешними информационными системами в части получения и передачи сведений посредством прикладного программного интерфейса (API)» (функции 1–3, требования — пп. 4.2.1–4.2.3 ЧТЗ); проверки А.4–А.7 — типу задач «регистрация в распределённых реестрах сведений» (функции 4–7, требования — пп. 4.2.4–4.2.7 ЧТЗ); проверки А.8–А.10 — типу задач «формирование представления данных на основании записей в распределённых реестрах» (функции 8–10, требования — пп. 4.2.8–4.2.10 ЧТЗ). Проверки Приложения Б — проверки обработки некорректных запросов прикладного программного интерфейса, дополняющие проверки Приложения А. Проверки выполняются последовательно: сначала проверки Приложения А, затем Приложения Б; внутри приложения — в порядке возрастания номеров.
Проверка | Наименование проверки | Использует |
А.1 | Взаимодействие с внешними информационными системами в части получения и передачи сведений о сертификатах УКЭП и о событиях жизненного цикла сертификатов УКЭП | — |
А.2 | Взаимодействие с внешними информационными системами в части получения и передачи сведений о сертификатах УНЭП и о событиях жизненного цикла сертификатов УНЭП | — |
А.3 | Взаимодействие с внешними информационными системами в части получения и передачи сведений об аккредитации удостоверяющих центров | — |
А.4 | Регистрация в распределённых реестрах сведений о сертификатах УКЭП и о событиях жизненного цикла сертификатов УКЭП | А.1 |
А.5 | Регистрация в распределённых реестрах сведений о сертификатах УНЭП и о событиях жизненного цикла сертификатов УНЭП | А.2 |
А.6 | Регистрация в распределённых реестрах сведений об аккредитации удостоверяющих центров | А.3 |
А.7 | Маршрутизация запросов в распределённых реестрах | — |
А.8 | Формирование представления данных о сертификатах УКЭП и о событиях жизненного цикла сертификатов УКЭП | А.1, А.4 |
А.9 | Формирование представления данных о сертификатах УНЭП и о событиях жизненного цикла сертификатов УНЭП | А.2, А.5 |
А.10 | Формирование представления данных об аккредитации удостоверяющих центров | А.3, А.6 |
Б.1–Б.4 | Обработка некорректных запросов прикладного программного интерфейса | А.1, А.2, А.3 |
А.1 Проверка взаимодействия с внешними информационными системами в части получения и передачи сведений о сертификатах УКЭП и о событиях жизненного цикла сертификатов УКЭП посредством прикладного программного интерфейса (API) для использования в высоконагруженном сервисе.
Проверка обеспечивает проверку реализации пункта 1 Требований к функциям Заявки: сведения о сертификатах УКЭП и о событиях их жизненного цикла принимаются и передаются через прикладной программный интерфейс (API). Подтверждается приём корректного сертификата УКЭП в приватный канал реестра с возвратом идентификатора записи вида «дата начала действия;hashTBS», поиск сертификата по заданному фильтру, изменение статуса сертификата и логическая отмена сертификата. Созданная запись о сертификате и сформированные события истории используются далее при проверках А.4 и А.8.
Предварительные условия: развёрнут тестовый стенд с каналами сертификатов УКЭП; демонстрирующему предоставлены тестовые сертификаты УКЭП и ключ доступа к REST API (заголовок x-api-key).
№ | Шаг | Ожидаемый результат |
1 | Выполнить запрос «Создать запись о сертификате в приватном канале» ( | HTTP 200; возвращён идентификатор записи вида |
2 | Выполнить запрос «Изменить статус сертификата в приватном канале» ( | HTTP 200 по каждому запросу; возвращены сведения о новом событии истории, номер версии события увеличен на 1: |
3 | Выполнить запрос «Получить данные сертификатов по заданному фильтру» ( | HTTP 200 по каждому запросу; сертификат найден по заданному фильтру; в ответе на запрос логической отмены |
А.2 Проверка взаимодействия с внешними информационными системами в части получения и передачи сведений о сертификатах УНЭП и о событиях жизненного цикла сертификатов УНЭП посредством прикладного программного интерфейса (API) для использования в высоконагруженном сервисе.
Проверка обеспечивает проверку реализации пункта 2 Требований к функциям Заявки: сведения о сертификатах УНЭП и о событиях их жизненного цикла принимаются и передаются через прикладной программный интерфейс (API). Подтверждается приём корректных сертификатов в каналы неквалифицированных сертификатов (канал сертификатов издателей Госключ и приватный канал неквалифицированных сертификатов) с возвратом идентификатора записи вида «дата начала действия;hashTBS», изменение статуса сертификата и логическая отмена сертификата. Отличие от проверки А.1 — используемые методы каналов неквалифицированных сертификатов. Созданные записи о сертификатах и сформированные события истории используются далее при проверках А.5 и А.9.
Предварительные условия: развёрнут тестовый стенд с каналами неквалифицированных сертификатов (Госключ) и публичным каналом сертификатов УЦ; демонстрирующему предоставлены тестовые сертификаты УНЭП и ключ доступа к REST API (заголовок x-api-key).
№ | Шаг | Ожидаемый результат |
1 | Выполнить запрос «Создать запись о сертификате в канале сертификатов издателей Госключ» ( | HTTP 200 по каждому запросу; возвращены идентификаторы записей вида |
2 | Выполнить запрос «Изменить статус сертификата в приватном канале» ( | HTTP 200; возвращены сведения о новом событии истории, номер версии события увеличен на 1: |
3 | Выполнить запрос «Логическая отмена» ( | HTTP 200; в ответе |
А.3 Проверка взаимодействия с внешними информационными системами в части получения и передачи сведений об аккредитации удостоверяющих центров посредством прикладного программного интерфейса (API) для использования в высоконагруженном сервисе.
Проверка обеспечивает проверку реализации пункта 3 Требований к функциям Заявки: сведения об аккредитации удостоверяющих центров принимаются и передаются через прикладной программный интерфейс (API). Подтверждаются регистрация удостоверяющего центра, изменение и дополнение сведений о нём, а также получение актуальных сведений о зарегистрированном удостоверяющем центре. Созданная запись удостоверяющего центра используется далее при проверках А.6 и А.10.
Предварительные условия: развёрнут тестовый стенд; запущено приложение для тестирования API; демонстрирующему предоставлен ключ доступа к REST API (заголовок x-api-key); используется тестовый УЦ с ОГРН 1027700067340, не занятым другими записями реестра.
№ | Шаг | Ожидаемый результат |
1 | Выполнить запрос «Регистрация УЦ» ( | HTTP 200; создана запись «Удостоверяющий центр»; возвращён идентификатор записи; служебные поля времени заполнены: |
2 | Выполнить запрос «Изменение сведений об УЦ» ( | HTTP 200 по каждому запросу; номер версии записи увеличен последовательно до 2 и 3; заполнены идентификаторы изменения и дополнения записи; изменённый адрес и контактные сведения сохранены: |
3 | Выполнить запрос «Получить УЦ по ОГРН» ( | HTTP 200; возвращены актуальные сведения о зарегистрированном удостоверяющем центре с учётом изменения и дополнения: |
А.4 Проверка регистрации в распределённых реестрах сведений о сертификатах УКЭП и о событиях жизненного цикла сертификатов УКЭП для использования в высоконагруженном сервисе.
Проверка подтверждает реализацию требований пункта 4 Требований к функциям Заявки: сведения о сертификатах УКЭП и о событиях их жизненного цикла зарегистрированы в распределённом реестре, а не ограничиваются ответом метода. Регистрация подтверждается непосредственным обращением к прикладному чейнкоду: получением полной записи из канала ГУЦ, публичной копии усечённого состава и истории изменения статуса из публичного канала. Проверка опирается на запись о сертификате, созданную проверкой А.1, и предваряет проверку А.8.
Предварительные условия: развёрнут тестовый стенд; в канале ГУЦ зарегистрирован тестовый сертификат ГУЦ (глобальный идентификатор записи 2e4000b7-7106-72d1-962c-bddab4605cb7); демонстрирующему предоставлен доступ к командной оболочке узла admin0.esiapeer.ru и средства вызова прикладного чейнкода (peer chaincode query); в окружении вызова доступен интерпретатор jq.
№ | Шаг | Ожидаемый результат |
1 | Вызвать метод «Получение сведений о сертификате» ( | Возвращены сведения о сертификате ГУЦ из приватного канала: составной идентификатор записи и глобальный идентификатор записи, совпадающий с переданным при вызове, наименование издателя, а также сведения о владельце и значение сертификата — в отличие от публичной копии усечённого состава (шаг 2): |
2 | Вызвать метод «Получение сведений о публичной копии сертификата» ( | Возвращены сведения о публичной копии сертификата: составной идентификатор записи и глобальный идентификатор записи, совпадающий с переданным при вызове: |
3 | Вызвать метод «Получение истории изменения статуса сертификата» ( | Возвращён перечень событий жизненного цикла сертификата: по одному событию на строку (версия записи истории, дата и время вступления в силу, событие, причина, признак отмены события). В перечне присутствует событие начала действия сертификата (код 1) с датой вступления в силу, равной дате начала действия сертификата; признак отмены события isCanceled = false: |
А.5 Проверка регистрации в распределённых реестрах сведений о сертификатах УНЭП и о событиях жизненного цикла сертификатов УНЭП для использования в высоконагруженном сервисе.
Проверка подтверждает реализацию требований пункта 5 Требований к функциям Заявки: сведения о сертификатах УНЭП и о событиях их жизненного цикла зарегистрированы в распределённом реестре. Регистрация подтверждается непосредственным обращением к прикладному чейнкоду каналов неквалифицированных сертификатов: получением записи из приватного канала неквалифицированных сертификатов и истории изменения статуса из публичного канала. Проверка опирается на записи, созданные проверкой А.2, и предваряет проверку А.9.
Предварительные условия: развёрнут тестовый стенд с каналами неквалифицированных сертификатов; зарегистрирован тестовый сертификат УНЭП (идентификатор {cert} — результат проверки А.2); демонстрирующему предоставлен доступ к командной оболочке узла admin0.esiapeer.ru и средства вызова прикладного чейнкода (peer chaincode query); в окружении вызова доступен интерпретатор jq.
№ | Шаг | Ожидаемый результат |
1 | Вызвать метод «Получение сведений о сертификате» прикладного чейнкода приватного канала неквалифицированных сертификатов, передав глобальный идентификатор записи | Возвращены сведения о сертификате УНЭП из приватного канала: составной идентификатор записи и глобальный идентификатор записи, совпадающий с переданным при вызове; в составе записи — тип сертификата, определённый при внесении (END_ENTITY), сведения о владельце и значение сертификата: |
2 | Вызвать метод «Получение истории изменения статуса сертификата» прикладного чейнкода публичного канала, передав в transient-данных составной идентификатор сертификата | Возвращён перечень событий жизненного цикла сертификата: по одному событию на строку (версия записи истории, дата и время вступления в силу, событие, причина, признак отмены события). В перечне присутствует событие начала действия сертификата (код 1) с датой вступления в силу, равной дате начала действия сертификата; признак отмены события isCanceled = false |
А.6 Проверка регистрации в распределённых реестрах сведений об аккредитации удостоверяющих центров для использования в высоконагруженном сервисе.
Проверка подтверждает реализацию требований пункта 6 Требований к функциям Заявки: сведения об аккредитации удостоверяющих центров зарегистрированы в распределённом реестре. Регистрация подтверждается непосредственным обращением к прикладному чейнкоду канала аккредитации и сертификатов УЦ: получением записи удостоверяющего центра и истории аккредитаций. Проверка опирается на запись об удостоверяющем центре, созданную проверкой А.3, и предваряет проверку А.10.
Предварительные условия: развёрнут тестовый стенд; зарегистрирован тестовый УЦ с ОГРН 1027700067340 (результат проверки А.3); демонстрирующему предоставлен доступ к командной оболочке узла admin0.esiapeer.ru и средства вызова прикладного чейнкода (peer chaincode query); в окружении вызова доступен интерпретатор jq.
№ | Шаг | Ожидаемый результат |
1 | Вызвать метод получения сведений об удостоверяющем центре прикладного чейнкода канала аккредитации и сертификатов УЦ, передав ОГРН удостоверяющего центра (1027700067340), с отбором целевых строк: | Возвращены сведения об удостоверяющем центре из канала аккредитации и сертификатов УЦ: ОГРН, полное наименование, номер версии записи (3 — после изменения и дополнения сведений в проверке А.3): |
2 | Вызвать метод получения истории аккредитаций прикладного чейнкода канала аккредитации и сертификатов УЦ, передав ОГРН удостоверяющего центра, с отбором по одному событию на строку: | Возвращён перечень событий жизненного цикла аккредитации: по одному событию на строку (версия записи, статус, дата и время вступления в силу, признак отмены события). События соответствуют проверке А.3; событие аннулирования (статус «5») сохранено с признаком isCanceled = true |
А.7 Проверка маршрутизации запросов в распределённых реестрах для использования в высоконагруженном сервисе.
Проверка подтверждает реализацию требований пункта 7 Требований к функциям Заявки: маршрутизация запросов в распределённых реестрах выполняется по идентификатору объекта. Подтверждаются перечень зарегистрированных реестров (сервисный чейнкод) и определение пары значений «наименование канала + наименование чейнкода», соответствующей реестру актива. Проверка не зависит от результатов других проверок.
Предварительные условия: развёрнут тестовый стенд; сервисный чейнкод развёрнут в канале ГУЦ; демонстрирующему предоставлены доступ к командной оболочке узла admin0.esiapeer.ru и средства вызова методов сервисного чейнкода; в окружении вызова доступен интерпретатор jq.
№ | Шаг | Ожидаемый результат |
1 | Вызвать метод «Перечень реестров» ( | Возвращён перечень зарегистрированных реестров: по одному реестру на строку (идентификатор реестра, публичный канал, чейнкод, приватный канал). В перечне присутствуют реестр со значением идентификатора 0 (до ротации) и реестр со значением идентификатора 1 (после ротации): |
2 | Вызвать метод «Определение реестра по идентификатору объекта» ( | Возвращена пара значений: |
Проверки А.8–А.10 подтверждают, что представления данных формируются на основании записей распределённых реестров. Проверки выполняются по БД Глобального состояния (world state) средствами DBeaver либо по составу передаваемых сообщений (protobuf). Имена коллекций БД Глобального состояния уточняются на стенде; в шагах используются условные обозначения: КОЛЛЕКЦИЯ_1.1 — коллекция сертификатов УКЭП (приватный канал), КОЛЛЕКЦИЯ_1.2 — коллекция истории статусов сертификатов УКЭП, КОЛЛЕКЦИЯ_1.3 — коллекция публичных сведений о сертификатах УКЭП; КОЛЛЕКЦИЯ_2.1, КОЛЛЕКЦИЯ_2.2, КОЛЛЕКЦИЯ_2.3 — соответствующие коллекции сертификатов УНЭП; КОЛЛЕКЦИЯ_3.1 — коллекция удостоверяющих центров, КОЛЛЕКЦИЯ_3.2 — коллекция истории аккредитаций удостоверяющих центров.
А.8 Проверка формирования представления данных о сертификатах УКЭП и о событиях жизненного цикла сертификатов УКЭП на основании записей в распределённых реестрах для использования в высоконагруженном сервисе.
Проверка подтверждает реализацию требований пункта 8 Требований к функциям Заявки: представление данных о сертификатах УКЭП и о событиях их жизненного цикла формируется на основании записей распределённого реестра. Проверяется непосредственно БД Глобального состояния: запись о сертификате в приватном канале, история изменения статуса и публичная копия усечённого состава. Проверка опирается на записи, сформированные проверками А.1 и А.4.
Предварительные условия: сформированы запись о тестовом сертификате УКЭП и события его истории (результаты проверок А.1 и А.4); демонстрирующему предоставлены учётные данные для подключения к БД Глобального состояния (DBeaver).
№ | Шаг | Ожидаемый результат |
1 | Открыть источник данных | Найдена запись о сертификате в приватном канале; запись содержит: |
2 | Открыть источник данных | Найдены события истории изменения статуса сертификата: событие начала действия (код 1) и события, сформированные в проверке А.1; каждое событие содержит: |
3 | Открыть источник данных | Найдена публичная копия сведений о сертификате усечённого состава: |
А.9 Проверка формирования представления данных о сертификатах УНЭП и о событиях жизненного цикла сертификатов УНЭП на основании записей в распределённых реестрах для использования в высоконагруженном сервисе.
Проверка подтверждает реализацию требований пункта 9 Требований к функциям Заявки: представление данных о сертификатах УНЭП и о событиях их жизненного цикла формируется на основании записей распределённого реестра. Проверяется непосредственно БД Глобального состояния: запись о сертификате в приватном канале неквалифицированных сертификатов и история изменения статуса. Отличие от проверки А.8 — в записи фиксируется определённый при внесении тип сертификата (END_ENTITY), а поле issuerOGRN может быть не заполнено. Проверка опирается на записи, сформированные проверками А.2 и А.5.
Предварительные условия: сформированы запись о тестовом сертификате УНЭП и события его истории (результаты проверок А.2 и А.5); демонстрирующему предоставлены учётные данные для подключения к БД Глобального состояния (DBeaver).
№ | Шаг | Ожидаемый результат |
1 | Открыть источник данных | Найдена запись о сертификате УНЭП в приватном канале неквалифицированных сертификатов; запись содержит: |
2 | Открыть источник данных | Найдены события истории изменения статуса сертификата: событие начала действия (код 1) и события, сформированные в проверке А.2; каждое событие содержит: |
А.10 Проверка формирования представления данных об аккредитации удостоверяющих центров на основании записей в распределённых реестрах для использования в высоконагруженном сервисе.
Проверка подтверждает реализацию требований пункта 10 Требований к функциям Заявки: представление данных об аккредитации удостоверяющих центров формируется на основании записей распределённого реестра. Проверяется непосредственно БД Глобального состояния: запись удостоверяющего центра и события истории аккредитаций, включая отменённое. Проверка опирается на события, сформированные проверками А.3 и А.6.
Предварительные условия: сформированы события аккредитации тестового УЦ, включая отменённое (результаты проверок А.3 и А.6); демонстрирующему предоставлены учётные данные для подключения к БД Глобального состояния (DBeaver).
№ | Шаг | Ожидаемый результат |
1 | Открыть источник данных | Найдена запись удостоверяющего центра; запись содержит: |
2 | Открыть источник данных | Найдены события жизненного цикла аккредитации (версии 1–5 по проверке А.3): предоставлена (статус «1»), приостановлена («3»), возобновлена («4»), прекращена («2»), аннулирована («5»); событие аннулирования сохранено с признаком отмены |
Приложение Б
Б.1 Проверка обработки запроса с несуществующим ОГРН
Проверка подтверждает, что запросы к методам реестра с указанием ОГРН, не зарегистрированного в реестре удостоверяющих центров, а также с ОГРН, не прошедшим форматно-логический контроль, отклоняются с возвратом кода ошибки. Проверка дополняет проверку А.3: приёму корректных сведений об удостоверяющем центре противопоставляется отказ в обработке недостоверных сведений.
Предварительные условия: развёрнут тестовый стенд; демонстрирующему предоставлен ключ доступа к REST API (заголовок x-api-key).
№ | Шаг | Ожидаемый результат |
1 | Выполнить запрос «История аккредитаций УЦ» ( | HTTP 200; запрос отклонён с возвратом кода ошибки ввиду отсутствия удостоверяющего центра в реестре; перечень событий аккредитации не возвращён |
2 | Выполнить запрос «Регистрация УЦ» ( | HTTP 200; запрос отклонён с возвратом кода ошибки по результатам форматно-логического контроля; запись «Удостоверяющий центр» не создана |
Б.2 Проверка обработки идентификатора сертификата с недопустимыми символами
Проверка подтверждает, что запрос логической отмены сертификата с идентификатором, содержащим недопустимые символы (кириллицу), отклоняется с возвратом кода ошибки разбора идентификатора. Проверка дополняет проверку А.1: корректному идентификатору записи вида «дата начала действия;hashTBS» противопоставляется идентификатор с недопустимыми символами в части значения хэш-функции.
Предварительные условия: развёрнут тестовый стенд с каналами сертификатов УКЭП; демонстрирующему предоставлен ключ доступа к REST API (заголовок x-api-key).
№ | Шаг | Ожидаемый результат |
1 | Выполнить запрос «Логическая отмена» ( | HTTP 200; возвращён код ошибки ERR-0731 «Ошибка разбора идентификатора cert»; логическая отмена сертификата не выполнена, запись о сертификате не изменена |
Б.3 Проверка обработки даты изменения статуса с неверным форматом
Проверка подтверждает, что запросы изменения статуса сертификата с датой и временем вступления изменения в силу, заданными в неверном формате, отклоняются с возвратом кода ошибки. Проверка дополняет проверку А.1: корректному значению updatedAt противопоставляется значение, не соответствующее установленному формату.
Предварительные условия: развёрнут тестовый стенд с каналами сертификатов УКЭП и УНЭП; имеются идентификаторы зарегистрированных сертификатов {cert} (результаты проверок А.1 и А.2); демонстрирующему предоставлен ключ доступа к REST API (заголовок x-api-key).
№ | Шаг | Ожидаемый результат |
1 | Выполнить запрос «Изменить статус сертификата в приватном канале» ( | HTTP 200; возвращён код ошибки ERR-0802 «У поля updatedAt некорректный формат»; статус сертификата не изменён, новое событие истории не сформировано |
2 | Выполнить запрос «Изменить статус сертификата в приватном канале» ( | HTTP 200; возвращён код ошибки ERR-0802 «У поля updatedAt некорректный формат»; статус сертификата не изменён, новое событие истории не сформировано |
Б.4 Проверка обработки идентификатора несуществующего сертификата
Проверка подтверждает, что запросы представлений данных о сертификате с идентификатором, отсутствующим в реестре, отклоняются с возвратом кода ошибки. Проверка дополняет проверки А.8 и А.9: корректному идентификатору зарегистрированного сертификата противопоставляется корректный по формату идентификатор несуществующего сертификата.
Предварительные условия: развёрнут тестовый стенд; демонстрирующему предоставлен ключ доступа к REST API (заголовок x-api-key).
№ | Шаг | Ожидаемый результат |
1 | Выполнить запрос «История статуса сертификата» ( | HTTP 200; возвращён код ошибки ERR-0729 «Отсутствует сертификат»; история изменения статуса не возвращена |
2 | Выполнить запрос «История изменения статуса неквалифицированного сертификата» ( | HTTP 200; возвращён код ошибки ERR-0729 «Отсутствует сертификат»; история изменения статуса не возвращена |