Формулировка проблемы: необходима возможность проверки действительности сертификата.
Решение: реализовать API метод, который проверяет статус ключа и в случае действительности сохраняет его в базе данных.
URL метода: /rest/sign/verificationkey
.
Тип запроса: POST
.
Метод принимает следующие входные параметры:
uuid
- идентификатор пользователя, от
которого происходит проверка ключа (обяз.);
oid
- устаревший параметр, не используется
(необяз.);
pemCer
- сериализированный сертификат в
кодировке Base64 (обяз.);
endTime
- дата завершения сертификата
(обяз.);
caID
- идентификатор корневого сертификата
(необяз., по умолч. 0);
edsInfo
- информация о сертификате,
отображается при проверке
сертификата KeyInf.KEY_CN, KeyInf.KEY_O для Synergy агента (необяз.);
Метод возвращает строку следующего вида
<entryID>::::<algorithm>
, состояющую
из параметров:
entryID
- идентификатор сертификата,
публичная часть ключа;
algorithm
- алгоритм подписи, используемый
для сертификата.
Пример возвращаемой строки: 4::::Sha1WithRSA
Если переданный сертификат был просрочен, метод возвращает ошибку в виде строки с текстом "CERT END".
Если переданный сертификат был отозван, метод возвращает ошибку в виде строки с текстом "CERT REVOKED".
Если не найден сертификационный центр переданного сертификата, метод возвращает ошибку в виде строки с текстом "DISTRIBUTION_CENTER_NOT_FOUND".
Примечание. Отсутствие
"::::"
в возвращаемой строке указывает на наличие прочих ошибок.