Интеграция КриптоАРМ во внешнюю информационную систему - API КриптоАРМ
Перейти к содержанию

Интеграция КриптоАРМ во внешнюю информационную систему

В статье "КриптоАРМ. Возможности по интеграции и автоматизации" мы рассмотрели основные возможности работы КриптоАРМ через API и SDK. В этом материале мы углубимся в использование КриптоАРМ API, предложив примеры и сценарии интеграции в информационные системы.

КриптоАРМ API. Возможности и преимущества

КриптоАРМ API позволяет выполнять такие операции, как: электронная подпись документов, шифрование и расшифрование данных, проверка электронных подписей, а также управление сертификатами. Кроме того, доступны возможности для автоматизации генерации запросов на сертификаты и диагностики рабочего места пользователя. Это делает КриптоАРМ API универсальным решением для обеспечения безопасности и организации юридически значимого документооборота, повышая эффективность рабочих процессов.

Основные преимущества использования API:

  • Быстрая интеграция криптографии. Не требуется разрабатывать сложные криптографические модули, достаточно передать параметры, а результат операции будет готов через несколько кликов.
  • Кроссплатформенная поддержка. API доступен как на настольных системах (Windows, macOS, Linux), так и на мобильных платформах (iOS, Android), что делает его универсальным инструментом для любого приложения.
  • Безопасность данных. Все взаимодействия с API осуществляются по защищенным каналам связи с использованием TLS, что гарантирует сохранность передаваемых данных.
  • Простота использования. Для взаимодействия с КриптоАРМ API используется протокол cryptoarm://, который легко интегрируется в существующие решения.

Примеры использования КриптоАРМ API

Рассмотрим, как API КриптоАРМ может быть применен в реальных сценариях.

1. Электронный документооборот: подпись документов

Представьте, что ваше веб-приложение позволяет пользователям обмениваться юридически значимыми документами. В этом случае можно использовать команду signAndEncrypt, чтобы быстро и безопасно подписывать документы, вызывая операцию из браузера пользователя.

Как это работает:

  1. Пользователь заходит на веб-портал.
  2. Выбирает нужные файлы и действие, например, «Подписать».
  3. Портал генерирует ссылку с протоколом cryptoarm://, которую пользователь кликает для начала операции.
  4. Если КриптоАРМ не запущен, программа автоматически стартует и получает параметры от сервера в виде JSON.
  5. КриптоАРМ выполняет операцию (подписание и шифрование) и возвращает результат на сервер.

Пример ссылки для вызова КриптоАРМ:

cryptoarm://signAndEncrypt/https://yourdomain.com/api/sign?id=12345
{
  "jsonrpc": "2.0",
  "result": {
    "operation": [
      "SIGN"
    ],
    "props": {
      "license": "",
      "files": [
        {
          "name": "file1.txt",
          "url": "https://yourdomain.com/files/file1.txt",
          "id": 1,
          "urlDetached": ""
        }
      ],
      "extra": {
        "token": "9c7101f7-9c47-4481-b4da-a6a497abde08",
        "signType": 1,
        "signStandart": 0,
        "signEncoding": 0,
        "signatureExtension": "sgn"
      },
      "uploader": "https://yourdomain.com/api/upload"
    }
  },
  "id": "12345"
}

Этот запрос откроет мастер подписи и шифрования на основе переданных параметров. После завершения операции результат отправляется обратно на сервер. Пример JSON-ответа после успешной операции:

{

    "jsonrpc":"2.0",
    "method":"signAndEncrypt.outDirectResults",
    "params":{
        "id":"3a2fca10-fb2c-45eb-a61e-2e0da2a92bf0",
        "status":"Completed",
        "directResults":[
            {
                "id":1,
                "signValid":true,
                "signers":[
                    {
                        "isValid":true,
                        "signingTime":1730531671000,
                        "signerCertificate":{
                            "hash":"f9cfecf5e1e986d1aa227538469e2b4c34e51a4b",
                            "issuerFriendlyName":"test",
                            "issuerName":"C=RU\r\nCN=test",
                            "subjectFriendlyName":"test",
                            "subjectName":"C=RU\r\nCN=test",
                            "status":true,
                            "serial":"049042780942464741",
                            "notAfter":2040208687000,
                            "notBefore":1724675887000,
                            "rootCAMinComSvyaz":false
                        }
                    }
                ],
                "out": "MIAGCSqGSIb3DQEHAqCAMIACAQ....."
                "outSignStamp":null
            }
        ]
    }
}

Этот сценарий может использоваться для электронной подписи договоров и счетов, обеспечивая юридическую силу документов.

2. Шифрование файла

Для команды signAndEncrypt доступна операция шифрования (может использоваться одновременно с подписью, тогда файл подпишется, а потом будет зашифрован). Вы можете передать для шифрования сертификаты получателей или оставить эти поля незаполненными, тогда клиент сам сможет указать нужных получателей.

{
    "jsonrpc": "2.0",
    "result": {
      "operation": [
        "ENCRYPT"
      ],
      "props": {
        "license": "",
        "files": [
          {
            "name": "file1.txt",
            "url": "https://yourdomain.com/public/files/file1.txt",
            "id": 1,
            "urlDetached": ""
          }
        ],
        "extra": {
          "token": "9c7101f7-9c47-4481-b4da-a6a497abde08",
          "encryptEncoding": 1,
          "encryptAlgorithm": 1,
          "encryptCertificates": [
            "MIICFTCCAcKgAwIBAgIJQCFliUQmiIAQMA…….",
            "MIICZDCCAdCgAwIBAgIIkwgSETAwKEIwCgYIK……"
            ]
        },
        "uploader": "https://yourdomain.com/upload"
      }
    },
    "id": "18d6dc4d-27b5-4558-b6b2-e7a97d0c99d9"
  }

Пример JSON-ответа после успешной операции шифрования:

{
    "jsonrpc":"2.0",
    "method":"signAndEncrypt.outDirectResults",
    "params":{
        "id":"18d6dc4d-27b5-4558-b6b2-e7a97d0c99d9",
        "status":"Completed",
        "directResults":[
            {
                "id":1,
                "out": "MIAGCSqGSIb3DQEHA6CAMIA...."
                "outSignStamp":null
            }
        ]
    }
}

3. Формирование письма с вложениями

Если ваша информационная система предполагает обмен файлами (например с контрагентами), вы можете использовать команды КриптоАРМ API sendMail. ИС может передать все нужные параметры письма (получатели, тело письма, вложения, опции подписи и шифрования), а клиенту останется подтвердить отправку письма в один клик.

Пример параметров формирования письма из API:

{
    "jsonrpc": "2.0",
    "result": {
        "operation": "SEND",
        "props": {
            "mailProps": {
                "to": [
                    "test0@yandex.ru"
                ],
                "cc": [
                    "test1@gmail.com",
                    "test2@icloud.com"
                ],
                "bcc": [
                    "test@yandex.ru"
                ],
                "subject": "Message subject",
                "content": "text message content",
                "htmlContent": "<div>HTML message content</div>",
                "attachments": [
                    {
                        "name": "file1.txt",
                        "url": "https://yourdomain.com/public/files/file1.txt",
                        "id": 1,
                        "urlDetached": ""
                    },
                    {
                        "name": "file2.txt",
                        "url": "https://yourdomain.com/public/files/file2.txt",
                        "id": 2,
                        "urlDetached": ""
                    },
                    {
                        "name": "file4.pdf",
                        "url": "https://yourdomain.com/public/files/file4.pdf",
                        "id": 4,
                        "urlDetached": ""
                    }
                ],
                "sign": true,
                "encrypt": true,
                "deliveryReport": false,
                "readReport": false
            }
        }
    },
    "id": "fceff54e-c4a4-4282-80db-2a581fe7161b"
}

Заключение

Интеграция КриптоАРМ API в информационные системы — это простой и эффективный способ реализовать электронный документооборот, ускорить процессы и упростить работу с электронными подписями. Подробная документация по ссылке, а примеры запросов в нашем публичном репозитории.

Хотите узнать больше о возможностях интеграции КриптоАРМ в ваши информационные системы? Свяжитесь с нами по sales@cryptoarm.ru для бесплатной консультации.