Инструкция по использованию сервиса Крипто-Про API

Понятия сущностей сервиса

1 Установка сертификата и ключевого контейнера

Для установки сертификата и ключевого контейнера необходимо иметь:

      1.1 Заархивированый в zip архив ключевой контейнер.

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

      1.2 Наличие самого файла сертификата в формате .cer

      (сертификат в формате base64 или der)

    Дополнительная информация

    Если сертификат и контейнер находятся на внешнем токене, то необходимо установить сертификат и импортировать ключевой контейнер на клиентскую машину. Далее найти на клиентской машине каталог с ключевым контейнером и выполнить пункт 1.1 После этого импортировать сертификат из ключевого котейнера на клиентской машине в соответствии с пунктом 1.2

Установка сертификата и ключевого контейнера на текущем сервисе:

Для установки сертификата и ключевого контейнера необходимо отправить POST запрос multipart/form-data по адресу https://crypto.rucred-dev.ru/ set/container
Тело запроса должно иметь 2 поля формы container и certificate

В поле container должен находится архив ключевого контейнера удовлетворяющий требованиям пункта 1.1
В поле certificate должен находится сертификат удовлетворяющий требованиям пункта 1.2

В случае успеха в ответе вернется json объект с информацией о новом пользователе
Пример :
{

"id": "1",
"uid": "dd4b5f0d-b493-0d30-d5a9-7464fe924e4c",
"data": "C=RU, S=77 Московская ОБЛ., L=Г. Москва, STREET=\"ул Новая, Д. 157/1, ОФИС 215\", O=\"ООО УК \"\"Ромашка\"\"\", CN=\"ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ УПРАВЛЯЮЩАЯ КОМПАНИЯ \"\"Ромашка\"\"\", G=Иван Иванович, SN=Иванов, T=ГЕНЕРАЛЬНЫЙ ДИРЕКТОР, СНИЛС=11061945520, ОГРН=1175476116420, ИНН ЮЛ=5410071220, ИНН=540411037983",
"country": "RU",
"region": "77 Московская ОБЛ.",
"city": "Г. Москва",
"street": "ул Новая",
"name_company": "\"ООО УК \"\"Ромашка\"\"\"",
"full_name_company": "\"ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ УПРАВЛЯЮЩАЯ КОМПАНИЯ \"\"Ромашка\"\"\"",
"name": "Иван Иванович",
"last_name": "Иванов",
"official": "ГЕНЕРАЛЬНЫЙ ДИРЕКТОР",
"snils": "11061365520",
"ogrn": "1175477616420",
"inn": "540411987983",
"thumbprint": "18d26b0890b0c9a11e026f3442e08d8b251c4edf",
"email": null,
"container": "\\\\.\\HDIMAGE\\67ea0ff7-b8e2-a07d-b63c-ed072f64af6c",
"date_create": "2022-09-29 09:22:54",
"date_update": "2022-09-29 09:22:54"

}

На клиентской стороне необходимо сохранить id (далее $id) нового пользователя для возможности дальнейшей работы с текущим сервисом

2 Подпись файла

Для подписания файлов и сообщений необходимо знать id ($id) пользователя в текущем сервисе
Подпись файла или сообщения занимает значительное время в зависимости от объёма данных.

Для подписи файла необходимо отправить POST запрос multipart/form-data по адресу https://crypto.rucred-dev.ru/ sign/file?user_id=$id
Тело запроса должно иметь 1 поле формы file

В поле file должен находится файл который необходимо подписать

В случае успеха в ответе вернется json объект с сылками для скачивания необходимых данных
Пример :
{

"hash": "https://crypto.rucred-dev.ru/load/RxjYpWIMLxOrg4E71Ghzi05B95sGj3Jgij",
"crypt": "https://crypto.rucred-dev.ru/load/R9uokctauLBQMjLuRt48xbDZs9jfoDz8Gfsm",
"file": "https://crypto.rucred-dev.ru/load/8NKXHvWWYysTEOwId8YIGu7ikeTIjiR",
"sgn": "https://crypto.rucred-dev.ru/load/5w4bChtQ5883BAlxdCqEkg9e7sDXQfwWlE9gXpr",
"msg": "https://crypto.rucred-dev.ru/load/CXprCdD6P7T1ZjiRiz124LelYbOCVgfXk8z",
"sig": "https://crypto.rucred-dev.ru/load/uquFQl7UcSSgY4idWscE265fEIPPoeFa8X"

}

в свойстве объекта hash содержится ссылка на файл hsh сгенерированый в результате подписи файла. Представляет собой бинарный файл который необходим для проверки целостности подписываемого файла

в свойстве объекта crypt содержится ссылка на файл crypt сгенерированый в результате подписи файла. Представляет собой зашифрованый с помощью сертификата исходный файл. В дальнейшем этот файл можно расшифровать только этим же сертификатом

в свойстве объекта file содержится ссылка на файл отправленый для подписи

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

в свойстве объекта msg содержится ссылка на файл msg сгенерированый в результате подписи. Является подписанным сообщением запроса

в свойстве объекта sig содержится ссылка на файл sig сгенерированый в результате подписи файла. Является электронной подписью

3 Подпись сообщения

Для подписания сообщений и запросов необходимо знать id ($id) пользователя в текущем сервисе
Подпись сообщения или запроса занимает значительное время в зависимости от объёма данных.

Для подписи сообщения необходимо отправить POST запрос по адресу https://crypto.rucred-dev.ru/sign/message?user_id=$id
Тело запроса должно иметь 1 поле формы message

В поле message должен находится текст сообщения который необходимо подписать

В случае успеха в ответе вернется json объект с сылками для скачивания необходимых данных
Пример :
{

"hash": "https://crypto.rucred-dev.ru/load/RxjYpWIMLxOrg4E71Ghzi05B95sGj3Jgij",
"crypt": "https://crypto.rucred-dev.ru/load/R9uokctauLBQMjLuRt48xbDZs9jfoDz8Gfsm",
"file": "https://crypto.rucred-dev.ru/load/8NKXHvWWYysTEOwId8YIGu7ikeTIjiR",
"sgn": "https://crypto.rucred-dev.ru/load/5w4bChtQ5883BAlxdCqEkg9e7sDXQfwWlE9gXpr",
"msg": "https://crypto.rucred-dev.ru/load/CXprCdD6P7T1ZjiRiz124LelYbOCVgfXk8z",
"sig": "https://crypto.rucred-dev.ru/load/uquFQl7UcSSgY4idWscE265fEIPPoeFa8X"

}

в свойстве объекта hash содержится ссылка на файл hsh сгенерированый в результате подписи файла. Представляет собой бинарный файл который необходим для проверки целостности подписываемого файла

в свойстве объекта crypt содержится ссылка на файл crypt сгенерированый в результате подписи файла. Представляет собой зашифрованый с помощью сертификата исходный файл. В дальнейшем этот файл можно расшифровать только этим же сертификатом

в свойстве объекта file содержится ссылка на файл содержащий тело запроса отправленного для подписи

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

в свойстве объекта msg содержится ссылка на файл msg сгенерированый в результате подписи. Является подписанным сообщением запроса

в свойстве объекта sig содержится ссылка на файл sig сгенерированый в результате подписи файла. Является электронной подписью

4 Расшифровка файла

Для расшифровки файлов и сообщений необходимо знать id ($id) пользователя в текущем сервисе
Расшифровка файла или сообщения занимает значительное время в зависимости от объёма данных.

Для расшифровки файла необходимо отправить POST запрос multipart/form-data по адресу https://crypto.rucred-dev.ru/ extract/file?user_id=$id
Тело запроса должно иметь 1 поле формы file

В поле file должен находится файл который необходимо расшифровать

В случае успеха в ответе вернется json объект с сылками для скачивания необходимых данных
Пример :
{

"hash": "https://crypto.rucred-dev.ru/load/RxjYpWIMLxOrg4E71Ghzi05B95sGj3Jgij",
"crypt": "https://crypto.rucred-dev.ru/load/R9uokctauLBQMjLuRt48xbDZs9jfoDz8Gfsm",
"file": "https://crypto.rucred-dev.ru/load/8NKXHvWWYysTEOwId8YIGu7ikeTIjiR",
"sgn": "https://crypto.rucred-dev.ru/load/5w4bChtQ5883BAlxdCqEkg9e7sDXQfwWlE9gXpr",
"msg": "https://crypto.rucred-dev.ru/load/CXprCdD6P7T1ZjiRiz124LelYbOCVgfXk8z",
"sig": "https://crypto.rucred-dev.ru/load/uquFQl7UcSSgY4idWscE265fEIPPoeFa8X"

}

в свойстве объекта hash содержится ссылка на файл hsh сгенерированый в результате подписи файла. Представляет собой бинарный файл который необходим для проверки целостности подписываемого файла

в свойстве объекта crypt содержится ссылка на файл crypt сгенерированый в результате подписи файла. Представляет собой зашифрованый с помощью сертификата исходный файл. В дальнейшем этот файл можно расшифровать только этим же сертификатом

в свойстве объекта file содержится ссылка на файл отправленый для подписи

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

в свойстве объекта msg содержится ссылка на файл msg сгенерированый в результате подписи. Является подписанным сообщением запроса

в свойстве объекта sig содержится ссылка на файл sig сгенерированый в результате подписи файла. Является электронной подписью

5 Расшифровка сообщения

Для расшифровки файлов и сообщений необходимо знать id ($id) пользователя в текущем сервисе
Расшифровка файла или сообщения занимает значительное время в зависимости от объёма данных.

Для расшифровки файла необходимо отправить POST запрос multipart/form-data по адресу https://crypto.rucred-dev.ru/ extract/message?user_id=$id
Тело запроса должно иметь 1 поле формы message

В поле message должен находится текст который необходимо расшифровать

В случае успеха в ответе вернется json объект с сылками для скачивания необходимых данных
Пример :
{

"hash": "https://crypto.rucred-dev.ru/load/RxjYpWIMLxOrg4E71Ghzi05B95sGj3Jgij",
"crypt": "https://crypto.rucred-dev.ru/load/R9uokctauLBQMjLuRt48xbDZs9jfoDz8Gfsm",
"file": "https://crypto.rucred-dev.ru/load/8NKXHvWWYysTEOwId8YIGu7ikeTIjiR",
"sgn": "https://crypto.rucred-dev.ru/load/5w4bChtQ5883BAlxdCqEkg9e7sDXQfwWlE9gXpr",
"msg": "https://crypto.rucred-dev.ru/load/CXprCdD6P7T1ZjiRiz124LelYbOCVgfXk8z",
"sig": "https://crypto.rucred-dev.ru/load/uquFQl7UcSSgY4idWscE265fEIPPoeFa8X"

}

в свойстве объекта hash содержится ссылка на файл hsh сгенерированый в результате подписи файла. Представляет собой бинарный файл который необходим для проверки целостности подписываемого файла

в свойстве объекта crypt содержится ссылка на файл crypt сгенерированый в результате подписи файла. Представляет собой зашифрованый с помощью сертификата исходный файл. В дальнейшем этот файл можно расшифровать только этим же сертификатом

в свойстве объекта file содержится ссылка на файл содержащий тело сообщения отправленого для подписи

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

в свойстве объекта msg содержится ссылка на файл msg сгенерированый в результате подписи. Является подписанным сообщением запроса

в свойстве объекта sig содержится ссылка на файл sig сгенерированый в результате подписи файла. Является электронной подписью

6 Лицензия

Для просмотра лицензии необходимо отправить GET запрос по адресу https://crypto.rucred-dev.ru/ view/license


В случае успеха в ответе вернется json объект с данными об установленой лицензии
Пример :
{

"license": "5050010037ELQF5H28KM8E6BA",
"expires": "66 day(s)",
"type": "Demo"

}

Для установки новой лицензии необходимо отправить POST запрос по адресу https://crypto.rucred-dev.ru/set/license
Тело запроса должно иметь 1 поле формы license

В поле license должен находится текст лицензионного ключа

В случае успеха в ответе вернется json объект с данными об установленой лицензии
Пример :
{

"license": "5050T80000017A6YGRZUUTVXT",
"expires": "license - permanent",
"type": "Client"

}

7 Создание запроса на выдачу сертификата

Для создание запроса на выдачу сертификата необходимо отправить PUT запрос по адресу https://crypto.rucred-dev.ru/create/request
В теле запроса должен лежать корректный json объект file

{

"country": "RU",
"region": "77 Московская ОБЛ.",
"city": "Г. Москва",
"street": "ул Новая",
"name_company": "\"ООО УК \"\"Ромашка\"\"\"",
"full_name_company": "\"ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ УПРАВЛЯЮЩАЯ КОМПАНИЯ \"\"Ромашка\"\"\"",
"name": "Иван Иванович",
"last_name": "Иванов",
"official": "ГЕНЕРАЛЬНЫЙ ДИРЕКТОР",
"snils": "11061365520",
"ogrn": "1175477616420",
"inn": "540411987983",
"email": "vasy@new.com",

}
В случае успеха в ответе вернется json объект с сылками для скачивания необходимых данных
Пример :
{

"request": "http://51.250.97.26/load/O7mwOfvcV7gTIZhaoNNYg2RVZ9fFN9PCGX",
"container": "http://51.250.97.26/load/C9CJuMKSzZc5VkCiIuijQKie8HSaQt"

}

В свойстве request лежит ссылка на сам запрос для выдачи сертификата
В свойстве container лежит ссылка на архив с ключами будущего сертификата
8 Скоринг клиента

Для получения скоринга по клиенту необходимо отправить PUT запрос по адресу https://crypto.rucred-dev.ru/scoring/user
Тело запроса должен лежать корректный json объект

Пример :
{

"last":"Иванов",
"first":"Иван",
"middle":"Иванович",
"gender":9,
"birthday":"01.01.1987",
"doc":{
"serial":1234,
"number":567890,
"date":"01.01.2000"
}
}
В случае успеха в ответе вернется json объект с результатом скоринга от бюро