{
    "openapi": "3.0.0",
    "paths": {
      "/cms/verify": {
        "post": {
          "operationId": "CmsController_cmsVerify",
          "summary": "Проверяет подписанный CMS",
          "parameters": [],
          "requestBody": {
            "required": true,
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CmsVerifyReqDto"
                }
              }
            }
          },
          "responses": {
            "default": {
              "description": "",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/CmsVerifyResDto"
                  }
                }
              }
            }
          },
          "security": [
            {
              "bearer": []
            }
          ],
          "tags": [
            "CMS"
          ]
        }
      },
      "/cms/verify-file": {
        "post": {
          "operationId": "CmsController_cmsVerifyFile",
          "summary": "Проверяет подписанный CMS (загрузка файла)",
          "parameters": [],
          "requestBody": {
            "required": true,
            "content": {
              "multipart/form-data": {
                "schema": {
                  "$ref": "#/components/schemas/CmsVerifyFileDto"
                }
              }
            }
          },
          "responses": {
            "default": {
              "description": "",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/CmsVerifyResDto"
                  }
                }
              }
            }
          },
          "security": [
            {
              "bearer": []
            }
          ],
          "tags": [
            "CMS"
          ]
        }
      },
      "/cms/sign": {
        "post": {
          "operationId": "CmsController_cmsSign",
          "summary": "Создает подпись данных в формате CMS",
          "parameters": [],
          "requestBody": {
            "required": true,
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CmsSignReqDto"
                }
              }
            }
          },
          "responses": {
            "default": {
              "description": "",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/CmsSignResDto"
                  }
                }
              }
            }
          },
          "security": [
            {
              "bearer": []
            }
          ],
          "tags": [
            "CMS"
          ]
        }
      },
      "/cms/sign-file": {
        "post": {
          "operationId": "CmsController_cmsSignFile",
          "summary": "Создает подпись файла в формате CMS (загрузка файла)",
          "parameters": [],
          "requestBody": {
            "required": true,
            "content": {
              "multipart/form-data": {
                "schema": {
                  "$ref": "#/components/schemas/CmsSignFileDto"
                }
              }
            }
          },
          "responses": {
            "default": {
              "description": "Подписанный CMS файл",
              "content": {
                "application/octet-stream": {
                  "schema": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              }
            }
          },
          "security": [
            {
              "bearer": []
            }
          ],
          "tags": [
            "CMS"
          ]
        }
      },
      "/cms/stamp": {
        "post": {
          "operationId": "CmsController_cmsStamp",
          "summary": "Создает печатную форму со штампом подписанного pdf документа",
          "parameters": [],
          "requestBody": {
            "required": true,
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CmsStampReqDto"
                }
              }
            }
          },
          "responses": {
            "default": {
              "description": "",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/CmsStampResDto"
                  }
                }
              }
            }
          },
          "security": [
            {
              "bearer": []
            }
          ],
          "tags": [
            "CMS"
          ]
        }
      },
      "/cms/stamp-file": {
        "post": {
          "operationId": "CmsController_cmsStampFile",
          "summary": "Создает печатную форму со штампом подписанного pdf документа (загрузка файла)",
          "parameters": [],
          "requestBody": {
            "required": true,
            "content": {
              "multipart/form-data": {
                "schema": {
                  "$ref": "#/components/schemas/CmsStampFileReqDto"
                }
              }
            }
          },
          "responses": {
            "default": {
              "description": "PDF документ с визуализацией штампов подписей",
              "content": {
                "application/pdf": {
                  "schema": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              }
            }
          },
          "security": [
            {
              "bearer": []
            }
          ],
          "tags": [
            "CMS"
          ]
        }
      },
      "/cms/enhance": {
        "post": {
          "operationId": "CmsController_cmsEnhance",
          "summary": "Улучшает подпись CMS до указанного типа (CAdES-T, CAdES-X Long Type 1, CAdES-A)",
          "parameters": [],
          "requestBody": {
            "required": true,
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CmsEnhanceReqDto"
                }
              }
            }
          },
          "responses": {
            "default": {
              "description": "",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/CmsEnhanceResDto"
                  }
                }
              }
            }
          },
          "security": [
            {
              "bearer": []
            }
          ],
          "tags": [
            "CMS"
          ]
        }
      },
      "/cms/enhance-file": {
        "post": {
          "operationId": "CmsController_cmsEnhanceFile",
          "summary": "Улучшает подпись CMS до указанного типа (загрузка файлов)",
          "parameters": [],
          "requestBody": {
            "required": true,
            "content": {
              "multipart/form-data": {
                "schema": {
                  "$ref": "#/components/schemas/CmsEnhanceFileDto"
                }
              }
            }
          },
          "responses": {
            "default": {
              "description": "Улучшенный CMS файл",
              "content": {
                "application/octet-stream": {
                  "schema": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              }
            }
          },
          "security": [
            {
              "bearer": []
            }
          ],
          "tags": [
            "CMS"
          ]
        }
      },
      "/pades/verify": {
        "post": {
          "operationId": "CmsController_padesVerify",
          "summary": "Проверяет подпись PDF документа в формате PAdES",
          "parameters": [],
          "requestBody": {
            "required": true,
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PadesVerifyReqDto"
                }
              }
            }
          },
          "responses": {
            "default": {
              "description": "",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/PadesVerifyResDto"
                  }
                }
              }
            }
          },
          "security": [
            {
              "bearer": []
            }
          ],
          "tags": [
            "PAdES"
          ]
        }
      },
      "/pades/verify-file": {
        "post": {
          "operationId": "CmsController_padesVerifyFile",
          "summary": "Проверяет подпись PDF документа в формате PAdES (загрузка файла)",
          "parameters": [],
          "requestBody": {
            "required": true,
            "content": {
              "multipart/form-data": {
                "schema": {
                  "$ref": "#/components/schemas/PadesVerifyFileDto"
                }
              }
            }
          },
          "responses": {
            "default": {
              "description": "",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/PadesVerifyResDto"
                  }
                }
              }
            }
          },
          "security": [
            {
              "bearer": []
            }
          ],
          "tags": [
            "PAdES"
          ]
        }
      },
      "/pades/sign": {
        "post": {
          "operationId": "CmsController_padesSign",
          "summary": "Создает подпись PDF документа в формате PAdES с визуализацией",
          "parameters": [],
          "requestBody": {
            "required": true,
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PadesSignReqDto"
                }
              }
            }
          },
          "responses": {
            "default": {
              "description": "",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/PadesSignResDto"
                  }
                }
              }
            }
          },
          "security": [
            {
              "bearer": []
            }
          ],
          "tags": [
            "PAdES"
          ]
        }
      },
      "/pades/sign-file": {
        "post": {
          "operationId": "CmsController_padesSignFile",
          "summary": "Создает подпись PDF документа в формате PAdES с визуализацией (загрузка файла)",
          "parameters": [],
          "requestBody": {
            "required": true,
            "content": {
              "multipart/form-data": {
                "schema": {
                  "$ref": "#/components/schemas/PadesSignFileDto"
                }
              }
            }
          },
          "responses": {
            "default": {
              "description": "Подписанный PDF файл",
              "content": {
                "application/pdf": {
                  "schema": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              }
            }
          },
          "security": [
            {
              "bearer": []
            }
          ],
          "tags": [
            "PAdES"
          ]
        }
      }
    },
    "info": {
      "title": "КриптоАРМ Server",
      "description": "Электронная подпись и проверка документов",
      "version": "1.2.34",
      "contact": {}
    },
    "tags": [
      {
        "name": "CMS",
        "description": "Методы для работы с CMS (Cryptogrphic Message Syntax)"
      },
      {
        "name": "PAdES",
        "description": "Методы для работы с PAdES (PDF Advanced Electronic Signatures)"
      }
    ],
    "servers": [],
    "components": {
      "schemas": {
        "CmsVerifyReqDto": {
          "type": "object",
          "properties": {
            "cms": {
              "type": "string",
              "description": "CMS данные в формате Base64 (может быть указано несколько через разделитель ',')",
              "example": "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"
            },
            "data": {
              "type": "string",
              "description": "Если необходимо проверить открепленную подпись CMS, то также необходимо передать сами подписанные данные в формате Base64",
              "example": "dGVzdA=="
            },
            "enhancedType": {
              "type": "string",
              "description": "Тип улучшения подписи",
              "example": "CAdES-T"
            },
            "meta": {
              "type": "object",
              "description": "Описание документа",
              "example": {
                "fileName": "document.pdf",
                "fileLastModified": 1745935260219,
                "fileSize": 108595,
                "stampMargin": 20,
                "stampColor": "#9e9e9e",
                "stampScale": 0.6
              }
            }
          },
          "required": [
            "cms",
            "data",
            "enhancedType",
            "meta"
          ]
        },
        "CmsVerifyResDto": {
          "type": "object",
          "properties": {
            "status": {
              "type": "number",
              "example": 200
            },
            "message": {
              "type": "string",
              "example": ""
            },
            "isValid": {
              "type": "boolean",
              "example": true
            },
            "isValidSign": {
              "type": "boolean",
              "example": true
            },
            "signs": {
              "example": [
                {
                  "cadesTypeName": "CAdES-BES",
                  "certificate": {
                    "version": 3,
                    "status": true,
                    "subjectFriendlyName": "esia test3",
                    "issuerFriendlyName": "CRYPTO-PRO Test Center 2",
                    "subjectName": "CN=esia test3",
                    "issuerName": "E=support@cryptopro.ru\r\nC=RU\r\nL=Moscow\r\nO=CRYPTO-PRO LLC\r\nCN=CRYPTO-PRO Test Center 2",
                    "notAfter": "2024-10-26T16:25:37.000Z",
                    "notBefore": "2024-08-26T16:15:37.000Z",
                    "serialNumber": "120064ECE1352507757C00A08B00020064ECE1",
                    "thumbprint": "29063cd83537dbbd0a221705859b8f6e5bec5ad0",
                    "signatureAlgorithm": "1.2.643.7.1.1.3.2",
                    "signatureDigestAlgorithm": "1.2.643.7.1.1.2.2",
                    "publicKeyAlgorithm": "1.2.643.7.1.1.1.1"
                  },
                  "certificateData": "MIIDEz...",
                  "issuerName": "E=support@cryptopro.ru, C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2",
                  "serialNumber": "120064ECE1352507757C00A08B00020064ECE1",
                  "signatureAlgorithm": "1.2.643.7.1.1.3.2",
                  "signatureDigestAlgorithm": "1.2.643.7.1.1.2.2",
                  "certs": [
                    {
                      "status": true,
                      "subjectFriendlyName": "esia test3",
                      "issuerFriendlyName": "CRYPTO-PRO Test Center 2",
                      "subjectName": "CN=esia test3",
                      "issuerName": "E=support@cryptopro.ru\r\nC=RU\r\nL=Moscow\r\nO=CRYPTO-PRO LLC\r\nCN=CRYPTO-PRO Test Center 2",
                      "notAfter": "2024-10-26T16:25:37.000Z",
                      "notBefore": "2024-08-26T16:15:37.000Z",
                      "serialNumber": "120064ECE1352507757C00A08B00020064ECE1",
                      "thumbprint": "29063cd83537dbbd0a221705859b8f6e5bec5ad0",
                      "signatureAlgorithm": "1.2.643.7.1.1.3.2",
                      "signatureDigestAlgorithm": "1.2.643.7.1.1.2.2",
                      "publicKeyAlgorithm": "1.2.643.7.1.1.1.1"
                    }
                  ],
                  "isCertChainValid": true
                }
              ],
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "required": [
            "status",
            "message",
            "isValid",
            "isValidSign",
            "signs"
          ]
        },
        "CmsVerifyFileDto": {
          "type": "object",
          "properties": {
            "cms": {
              "type": "string",
              "format": "binary",
              "description": "CMS файл для проверки подписи"
            },
            "data": {
              "type": "string",
              "format": "binary",
              "description": "Файл с данными для проверки открепленной подписи (опционально)"
            },
            "enhancedType": {
              "type": "string",
              "description": "Тип улучшения подписи",
              "example": "CAdES-T"
            },
            "meta": {
              "type": "string",
              "description": "Параметры подписи (JSON строка)",
              "example": "{\"stampMargin\": 20, \"stampColor\":\"#9e9e9e\", \"stampScale\": 0.6}"
            }
          },
          "required": [
            "cms"
          ]
        },
        "CmsSignReqDto": {
          "type": "object",
          "properties": {
            "cert": {
              "type": "string",
              "description": "Сертификат в формате Base64",
              "example": "MIIDEjCCAr+gAwIBAgITEgBn07BJ5IW55Hp+pgACAGfTsDAKBggqhQMHAQEDAjB/MSMwIQYJKoZIhvcNAQkBFhRzdXBwb3J0QGNyeXB0b3Byby5ydTELMAkGA1UEBhMCUlUxDzANBgNVBAcTBk1vc2NvdzEXMBUGA1UEChMOQ1JZUFRPLVBSTyBMTEMxITAfBgNVBAMTGENSWVBUTy1QUk8gVGVzdCBDZW50ZXIgMjAeFw0yNTAyMDUxNTQ2NTFaFw0yNTA0MDUxNTU2NTFaMBQxEjAQBgNVBAMMCUVTSUEgVEVTVDBmMB8GCCqFAwcBAQEBMBMGByqFAwICJAAGCCqFAwcBAQICA0MABEDFOevG2eeXF0uPQcmGQ9u95RKOKvOxC3d/i1oGcSqF2TRZiDDm7HxbDNFHXlp82SqDndlZvQgZ2+tR6hwRFanho4IBdjCCAXIwDgYDVR0PAQH/BAQDAgTwMBMGA1UdJQQMMAoGCCsGAQUFBwMCMB0GA1UdDgQWBBT9bUjMYSoPX55mzngQVYGKm0UApzAfBgNVHSMEGDAWgBQT7g6a8eCLSq4ZFu/LxMUtqRk3HTBcBgNVHR8EVTBTMFGgT6BNhktodHRwOi8vdGVzdGNhLmNyeXB0b3Byby5ydS9DZXJ0RW5yb2xsL0NSWVBUTy1QUk8lMjBUZXN0JTIwQ2VudGVyJTIwMigyKS5jcmwwgawGCCsGAQUFBwEBBIGfMIGcMGQGCCsGAQUFBzAChlhodHRwOi8vdGVzdGNhLmNyeXB0b3Byby5ydS9DZXJ0RW5yb2xsL3Rlc3QtY2EtMjAxNF9DUllQVE8tUFJPJTIwVGVzdCUyMENlbnRlciUyMDIoMikuY3J0MDQGCCsGAQUFBzABhihodHRwOi8vdGVzdGNhLmNyeXB0b3Byby5ydS9vY3NwL29jc3Auc3JmMAoGCCqFAwcBAQMCA0EACUCRRoLu1airiUr6cuvHQfUZCX8QPhcuFw0DacvtrFDay+kBoWLCkgCXCRwKwy+osz4XF6SezQ8aIV38+X33Xg=="
            },
            "data": {
              "type": "string",
              "description": "Подписываемые данные в формате Base64",
              "example": "dGVzdA=="
            },
            "password": {
              "type": "string",
              "description": "Пароль от ключевого контейнера",
              "example": "password"
            }
          },
          "required": [
            "cert",
            "data",
            "password"
          ]
        },
        "CmsSignResDto": {
          "type": "object",
          "properties": {
            "status": {
              "type": "number",
              "example": 200
            },
            "cms": {
              "type": "string",
              "example": "MIAGCSqGSIb3DQEHAqCAMIACAQExDjAMBggqhQMHAQECAgUAMIAGCSqGSIb3DQEHAaCAJIAEBHRlc3QAAAAAAACgggMXMIIDEzCCAsCgAwIBAgITEgBk7OE1JQd1fACgiwACAGTs4TAKBggqhQMHAQEDAjB/MSMwIQYJKoZIhvcNAQkBFhRzdXBwb3J0QGNyeXB0b3Byby5ydTELMAkGA1UEBhMCUlUxDzANBgNVBAcTBk1vc2NvdzEXMBUGA1UEChMOQ1JZUFRPLVBSTyBMTEMxITAfBgNVBAMTGENSWVBUTy1QUk8gVGVzdCBDZW50ZXIgMjAeFw0yNDA4MjYxNjE1MzdaFw0yNDEwMjYxNjI1MzdaMBUxEzARBgNVBAMMCmVzaWEgdGVzdDMwZjAfBggqhQMHAQEBATATBgcqhQMCAiQABggqhQMHAQECAgNDAARA+jQoN9lyFP5eyatLqZUhWxC89IoTtNsZx5uhusZgxB+slc+K/POoBz/LcjICp+uRc6FB7QVS+2/pdVW3FnpEiKOCAXYwggFyMA4GA1UdDwEB/wQEAwIE8DATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUvL/nmr9eqcyUf9kje5yIK103OawwHwYDVR0jBBgwFoAUE+4OmvHgi0quGRbvy8TFLakZNx0wXAYDVR0fBFUwUzBRoE+gTYZLaHR0cDovL3Rlc3RjYS5jcnlwdG9wcm8ucnUvQ2VydEVucm9sbC9DUllQVE8tUFJPJTIwVGVzdCUyMENlbnRlciUyMDIoMikuY3JsMIGsBggrBgEFBQcBAQSBnzCBnDBkBggrBgEFBQcwAoZYaHR0cDovL3Rlc3RjYS5jcnlwdG9wcm8ucnUvQ2VydEVucm9sbC90ZXN0LWNhLTIwMTRfQ1JZUFRPLVBSTyUyMFRlc3QlMjBDZW50ZXIlMjAyKDIpLmNydDA0BggrBgEFBQcwAYYoaHR0cDovL3Rlc3RjYS5jcnlwdG9wcm8ucnUvb2NzcC9vY3NwLnNyZjAKBggqhQMHAQEDAgNBABNo1b4fDyCZ+5Xv9IIJTuT6asXtrqK9vcFEi+TUYR1ZHrmYwYpMcoOXquGtNT8ue1jJfLw65mcErC9TFRXN1GsxgfswgfgCAQEwgZYwfzEjMCEGCSqGSIb3DQEJARYUc3VwcG9ydEBjcnlwdG9wcm8ucnUxCzAJBgNVBAYTAlJVMQ8wDQYDVQQHEwZNb3Njb3cxFzAVBgNVBAoTDkNSWVBUTy1QUk8gTExDMSEwHwYDVQQDExhDUllQVE8tUFJPIFRlc3QgQ2VudGVyIDICExIAZOzhNSUHdXwAoIsAAgBk7OEwDAYIKoUDBwEBAgIFADAKBggqhQMHAQEBAQRA4ObyQitdMa6u4yq/Te4jyEu71zOR9T8kimrHjcwTznMojnfRmhK4+vsUYjDzr7r2Ozbz04eqoJ5YScdnM18EMQAAAAAAAA=="
            }
          },
          "required": [
            "status",
            "cms"
          ]
        },
        "CmsSignFileDto": {
          "type": "object",
          "properties": {
            "data": {
              "type": "string",
              "format": "binary",
              "description": "Файл для подписания"
            },
            "cert": {
              "type": "string",
              "format": "binary",
              "description": "Сертификат (файл .cer, .p7b, .pfx)"
            },
            "password": {
              "type": "string",
              "description": "Пароль от ключевого контейнера",
              "example": "password"
            }
          },
          "required": [
            "data"
          ]
        },
        "CmsStampReqDto": {
          "type": "object",
          "properties": {
            "cms": {
              "type": "string",
              "description": "CMS данные в формате Base64",
              "example": "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"
            },
            "data": {
              "type": "string",
              "description": "Подписанные данные (pdf документ) в формате Base64",
              "example": "dGVzdA=="
            },
            "params": {
              "type": "object",
              "description": "Параметры штампа подписи (JSON строка)",
              "example": "{\"stampMargin\": 20, \"stampColor\":\"#9e9e9e\", \"stampScale\": 0.6}"
            }
          },
          "required": [
            "cms",
            "data"
          ]
        },
        "CmsStampResDto": {
          "type": "object",
          "properties": {
            "status": {
              "type": "number",
              "example": 200
            },
            "dataStamp": {
              "type": "string",
              "example": "JVBERi0xLjcKJ...=",
              "description": "PDF документ с визуализацией штампов подписей в формате Base64"
            }
          },
          "required": [
            "status",
            "dataStamp"
          ]
        },
        "CmsStampFileReqDto": {
          "type": "object",
          "properties": {
            "cms": {
              "type": "string",
              "format": "binary",
              "description": "Файл открепленной подписи PDF документа"
            },
            "data": {
              "type": "string",
              "format": "binary",
              "description": "PDF документ"
            },
            "params": {
              "type": "object",
              "description": "Параметры штампа подписи (JSON строка)",
              "example": "{\"stampMargin\": 20, \"stampColor\":\"#9e9e9e\", \"stampScale\": 0.6}"
            }
          },
          "required": [
            "cms",
            "data"
          ]
        },
        "CmsEnhanceReqDto": {
          "type": "object",
          "properties": {
            "cms": {
              "type": "string",
              "description": "CMS данные в формате Base64 для улучшения",
              "example": "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"
            },
            "data": {
              "type": "string",
              "description": "Подписанные данные в формате Base64",
              "example": "dGVzdA=="
            },
            "enhancedType": {
              "type": "string",
              "description": "Тип улучшения подписи (обязательный)",
              "example": "CAdES-T",
              "enum": [
                "CAdES-T",
                "CAdES-X Long Type 1",
                "CAdES-A"
              ]
            }
          },
          "required": [
            "cms",
            "data",
            "enhancedType"
          ]
        },
        "CmsEnhanceResDto": {
          "type": "object",
          "properties": {
            "status": {
              "type": "number",
              "example": 200
            },
            "message": {
              "type": "string",
              "example": "Подпись успешно улучшена"
            },
            "enhancedCms": {
              "type": "string",
              "example": "MIAGCSqGSIb3DQEHAqCAMIACAQExDjAMBggqhQMHAQECAgUAMIAGCSqGSIb3DQEHAaCAJIAEBHRlc3QAAAAAAACgggMXMIIDEzCCAsCgAwIBAgITEgBk7OE1JQd1fACgiwACAGTs4TAKBggqhQMHAQEDAjB/MSMwIQYJKoZIhvcNAQkBFhRzdXBwb3J0QGNyeXB0b3Byby5ydTELMAkGA1UEBhMCUlUxDzANBgNVBAcTBk1vc2NvdzEXMBUGA1UEChMOQ1JZUFRPLVBSTyBMTEMxITAfBgNVBAMTGENSWVBUTy1QUk8gVGVzdCBDZW50ZXIgMjAeFw0yNDA4MjYxNjE1MzdaFw0yNDEwMjYxNjI1MzdaMBUxEzARBgNVBAMMCmVzaWEgdGVzdDMwZjAfBggqhQMHAQEBATATBgcqhQMCAiQABggqhQMHAQECAgNDAARA+jQoN9lyFP5eyatLqZUhWxC89IoTtNsZx5uhusZgxB+slc+K/POoBz/LcjICp+uRc6FB7QVS+2/pdVW3FnpEiKOCAXYwggFyMA4GA1UdDwEB/wQEAwIE8DATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUvL/nmr9eqcyUf9kje5yIK103OawwHwYDVR0jBBgwFoAUE+4OmvHgi0quGRbvy8TFLakZNx0wXAYDVR0fBFUwUzBRoE+gTYZLaHR0cDovL3Rlc3RjYS5jcnlwdG9wcm8ucnUvQ2VydEVucm9sbC9DUllQVE8tUFJPJTIwVGVzdCUyMENlbnRlciUyMDIoMikuY3JsMIGsBggrBgEFBQcBAQSBnzCBnDBkBggrBgEFBQcwAoZYaHR0cDovL3Rlc3RjYS5jcnlwdG9wcm8ucnUvQ2VydEVucm9sbC90ZXN0LWNhLTIwMTRfQ1JZUFRPLVBSTyUyMFRlc3QlMjBDZW50ZXIlMjAyKDIpLmNydDA0BggrBgEFBQcwAYYoaHR0cDovL3Rlc3RjYS5jcnlwdG9wcm8ucnUvb2NzcC9vY3NwLnNyZjAKBggqhQMHAQEDAgNBABNo1b4fDyCZ+5Xv9IIJTuT6asXtrqK9vcFEi+TUYR1ZHrmYwYpMcoOXquGtNT8ue1jJfLw65mcErC9TFRXN1GsxgfswgfgCAQEwgZYwfzEjMCEGCSqGSIb3DQEJARYUc3VwcG9ydEBjcnlwdG9wcm8ucnUxCzAJBgNVBAYTAlJVMQ8wDQYDVQQHEwZNb3Njb3cxFzAVBgNVBAoTDkNSWVBUTy1QUk8gTExDMSEwHwYDVQQDExhDUllQVE8tUFJPIFRlc3QgQ2VudGVyIDICExIAZOzhNSUHdXwAoIsAAgBk7OEwDAYIKoUDBwEBAgIFADAKBggqhQMHAQEBAQRA4ObyQitdMa6u4yq/Te4jyEu71zOR9T8kimrHjcwTznMojnfRmhK4+vsUYjDzr7r2Ozbz04eqoJ5YScdnM18EMQAAAAAAAA=="
            }
          },
          "required": [
            "status",
            "message",
            "enhancedCms"
          ]
        },
        "CmsEnhanceFileDto": {
          "type": "object",
          "properties": {
            "cms": {
              "type": "string",
              "format": "binary",
              "description": "CMS файл для улучшения подписи"
            },
            "data": {
              "type": "string",
              "format": "binary",
              "description": "Файл с данными для улучшения подписи"
            },
            "enhancedType": {
              "type": "string",
              "description": "Тип улучшения подписи (обязательный)",
              "example": "CAdES-T",
              "enum": [
                "CAdES-T",
                "CAdES-X Long Type 1",
                "CAdES-A"
              ]
            }
          },
          "required": [
            "cms",
            "data",
            "enhancedType"
          ]
        },
        "PadesVerifyReqDto": {
          "type": "object",
          "properties": {
            "pdf": {
              "type": "string",
              "description": "PDF документ в формате Base64 для проверки подписи",
              "example": "JVBERi0xLjQKJcOkw7zDtsO8CjIgMCBvYmoKPDwKL0xlbmd0aCAzIDAgUgo+PgpzdHJlYW0K..."
            },
            "meta": {
              "type": "string",
              "description": "Описание документа (JSON строка)",
              "example": "{\"fileName\": \"document.pdf\", \"fileLastModified\": 1745935260219, \"fileSize\": 108595, \"stampMargin\": 20, \"stampColor\":\"#9e9e9e\", \"stampScale\": 0.6}"
            }
          },
          "required": [
            "pdf"
          ]
        },
        "PadesVerifyResDto": {
          "type": "object",
          "properties": {
            "status": {
              "type": "number",
              "example": 200
            },
            "message": {
              "type": "string",
              "example": ""
            },
            "isValid": {
              "type": "boolean",
              "example": true
            },
            "isValidSign": {
              "type": "boolean",
              "example": true
            },
            "signs": {
              "example": [
                {
                  "cadesTypeName": "CAdES-BES",
                  "certificate": {
                    "version": 3,
                    "status": true,
                    "subjectFriendlyName": "esia test3",
                    "issuerFriendlyName": "CRYPTO-PRO Test Center 2",
                    "subjectName": "CN=esia test3",
                    "issuerName": "E=support@cryptopro.ru\r\nC=RU\r\nL=Moscow\r\nO=CRYPTO-PRO LLC\r\nCN=CRYPTO-PRO Test Center 2",
                    "notAfter": "2024-10-26T16:25:37.000Z",
                    "notBefore": "2024-08-26T16:15:37.000Z",
                    "serialNumber": "120064ECE1352507757C00A08B00020064ECE1",
                    "thumbprint": "29063cd83537dbbd0a221705859b8f6e5bec5ad0",
                    "signatureAlgorithm": "1.2.643.7.1.1.3.2",
                    "signatureDigestAlgorithm": "1.2.643.7.1.1.2.2",
                    "publicKeyAlgorithm": "1.2.643.7.1.1.1.1"
                  },
                  "certificateData": "MIIDEz...",
                  "issuerName": "E=support@cryptopro.ru, C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2",
                  "serialNumber": "120064ECE1352507757C00A08B00020064ECE1",
                  "signatureAlgorithm": "1.2.643.7.1.1.3.2",
                  "signatureDigestAlgorithm": "1.2.643.7.1.1.2.2",
                  "certs": [
                    {
                      "status": true,
                      "subjectFriendlyName": "esia test3",
                      "issuerFriendlyName": "CRYPTO-PRO Test Center 2",
                      "subjectName": "CN=esia test3",
                      "issuerName": "E=support@cryptopro.ru\r\nC=RU\r\nL=Moscow\r\nO=CRYPTO-PRO LLC\r\nCN=CRYPTO-PRO Test Center 2",
                      "notAfter": "2024-10-26T16:25:37.000Z",
                      "notBefore": "2024-08-26T16:15:37.000Z",
                      "serialNumber": "120064ECE1352507757C00A08B00020064ECE1",
                      "thumbprint": "29063cd83537dbbd0a221705859b8f6e5bec5ad0",
                      "signatureAlgorithm": "1.2.643.7.1.1.3.2",
                      "signatureDigestAlgorithm": "1.2.643.7.1.1.2.2",
                      "publicKeyAlgorithm": "1.2.643.7.1.1.1.1"
                    }
                  ],
                  "isCertChainValid": true
                }
              ],
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "required": [
            "status",
            "message",
            "isValid",
            "isValidSign",
            "signs"
          ]
        },
        "PadesVerifyFileDto": {
          "type": "object",
          "properties": {
            "pdf": {
              "type": "string",
              "format": "binary",
              "description": "PDF файл для проверки подписи"
            },
            "params": {
              "type": "string",
              "description": "Параметры штампа подписи (JSON строка)",
              "example": "{\"stampMargin\": 20, \"stampColor\":\"#9e9e9e\", \"stampScale\": 0.6}"
            }
          },
          "required": [
            "pdf"
          ]
        },
        "PadesSignReqDto": {
          "type": "object",
          "properties": {
            "pdf": {
              "type": "string",
              "description": "PDF документ в формате Base64",
              "example": "JVBERi0xLjQKJcOkw7zDtsO8CjIgMCBvYmoKPDwKL0xlbmd0aCAzIDAgUgo+PgpzdHJlYW0K..."
            },
            "cert": {
              "type": "string",
              "description": "Сертификат в формате Base64",
              "example": "MIIDEjCCAr+gAwIBAgITEgBn07BJ5IW55Hp+pgACAGfTsDAKBggqhQMHAQEDAjB/MSMwIQYJKoZIhvcNAQkBFhRzdXBwb3J0QGNyeXB0b3Byby5ydTELMAkGA1UEBhMCUlUxDzANBgNVBAcTBk1vc2NvdzEXMBUGA1UEChMOQ1JZUFRPLVBSTyBMTEMxITAfBgNVBAMTGENSWVBUTy1QUk8gVGVzdCBDZW50ZXIgMjAeFw0yNTAyMDUxNTQ2NTFaFw0yNTA0MDUxNTU2NTFaMBQxEjAQBgNVBAMMCUVTSUEgVEVTVDBmMB8GCCqFAwcBAQEBMBMGByqFAwICJAAGCCqFAwcBAQICA0MABEDFOevG2eeXF0uPQcmGQ9u95RKOKvOxC3d/i1oGcSqF2TRZiDDm7HxbDNFHXlp82SqDndlZvQgZ2+tR6hwRFanho4IBdjCCAXIwDgYDVR0PAQH/BAQDAgTwMBMGA1UdJQQMMAoGCCsGAQUFBwMCMB0GA1UdDgQWBBT9bUjMYSoPX55mzngQVYGKm0UApzAfBgNVHSMEGDAWgBQT7g6a8eCLSq4ZFu/LxMUtqRk3HTBcBgNVHR8EVTBTMFGgT6BNhktodHRwOi8vdGVzdGNhLmNyeXB0b3Byby5ydS9DZXJ0RW5yb2xsL0NSWVBUTy1QUk8lMjBUZXN0JTIwQ2VudGVyJTIwMigyKS5jcmwwgawGCCsGAQUFBwEBBIGfMIGcMGQGCCsGAQUFBzAChlhodHRwOi8vdGVzdGNhLmNyeXB0b3Byby5ydS9DZXJ0RW5yb2xsL3Rlc3QtY2EtMjAxNF9DUllQVE8tUFJPJTIwVGVzdCUyMENlbnRlciUyMDIoMikuY3J0MDQGCCsGAQUFBzABhihodHRwOi8vdGVzdGNhLmNyeXB0b3Byby5ydS9vY3NwL29jc3Auc3JmMAoGCCqFAwcBAQMCA0EACUCRRoLu1airiUr6cuvHQfUZCX8QPhcuFw0DacvtrFDay+kBoWLCkgCXCRwKwy+osz4XF6SezQ8aIV38+X33Xg=="
            },
            "password": {
              "type": "string",
              "description": "Пароль от ключевого контейнера",
              "example": "password"
            },
            "params": {
              "type": "object",
              "description": "Параметры подписи",
              "example": {
                "stampMargin": 20,
                "stampColor": "#9e9e9e",
                "stampScale": 0.6
              }
            }
          },
          "required": [
            "pdf",
            "cert",
            "password"
          ]
        },
        "PadesSignResDto": {
          "type": "object",
          "properties": {
            "status": {
              "type": "number",
              "example": 200
            },
            "message": {
              "type": "string",
              "example": "PDF успешно подписан"
            },
            "signedPdf": {
              "type": "string",
              "description": "Подписанный PDF документ в формате Base64",
              "example": "JVBERi0xLjQKJcOkw7zDtsO8CjIgMCBvYmoKPDwKL0xlbmd0aCAzIDAgUgo+PgpzdHJlYW0K..."
            }
          },
          "required": [
            "status",
            "message",
            "signedPdf"
          ]
        },
        "PadesSignFileDto": {
          "type": "object",
          "properties": {
            "pdf": {
              "type": "string",
              "format": "binary",
              "description": "PDF файл для подписания"
            },
            "cert": {
              "type": "string",
              "format": "binary",
              "description": "Сертификат (файл .cer, .p7b, .pfx)"
            },
            "password": {
              "type": "string",
              "description": "Пароль от ключевого контейнера",
              "example": "password"
            },
            "params": {
              "type": "string",
              "description": "Параметры подписи (JSON строка)",
              "example": "{\"stampMargin\": 80, \"stampColor\": \"#9e9e9e\", \"stampScale\": 0.6}"
            }
          },
          "required": [
            "pdf"
          ]
        }
      }
    }
  }