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

Александр Гаврилов · 01 ноя 2024 · 177 · Поделиться

КриптоАРМ 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&quot;,

                        "id": 1,

                        "urlDetached": ""

                    },

                    {

                        "name": "file2.txt",

                        "url": "https://yourdomain.com/public/files/file2.txt&quot;,

                        "id": 2,

                        "urlDetached": ""

                    },

                    {

                        "name": "file4.pdf",

                        "url": "https://yourdomain.com/public/files/file4.pdf&quot;,

                        "id": 4,

                        "urlDetached": ""

                    }

                ],

                "sign": true,

                "encrypt": true,

                "deliveryReport": false,

                "readReport": false

            }

        }

    },

    "id": "fceff54e-c4a4-4282-80db-2a581fe7161b"

}



Заключение


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

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



Вернуться к списку новостей

Подпишитесь и получайте новые статьи по почте

Заполните поле Подписаться

Подписываясь, вы соглашаетесь на получение информационных сообщений от компании
ООО «Цифровые технологии» на условиях Политики конфиденциальности

Спасибо, что подписались
на нашу рассылку!

Узнавайте новости первыми —
подпишитесь на нашу новостную рассылку

Заполните поле
Подписаться

Подписываясь, вы соглашаетесь на получение информационных сообщений от компании
ООО «Цифровые технологии» на условиях Политики конфиденциальности

Спасибо, что подписались
на нашу рассылку!