xmldsigEInvoice

Mock Jutsu HOW-TO | RU

В современной разработке систем электронного документооборота и платформ E-Invoicing критически важно иметь под рукой качественные мок-данные, которые точно имитируют поведение реальных криптографических модулей. Библиотека mock-jutsu предлагает мощный инструмент для решения этой задачи — специализированную функцию xmldsig. Эта функция предназначена для генерации реалистичных структур цифровой подписи XML, полностью соответствующих международным стандартам безопасности. Использование подобных заглушек позволяет разработчикам и инженерам по автоматизации тестирования имитировать сложные процессы подписания документов, не прибегая к ресурсоемким вызовам реальных криптографических сервисов или инфраструктуры открытых ключей (PKI).

Техническая реализация функции xmldsig в рамках mock-jutsu строго следует спецификации W3C XML Digital Signature (XMLDSig) в формате enveloped. Генерируемые тестовые данные включают в себя все необходимые компоненты: алгоритм RSA-SHA256 для создания подписи, SHA-256 для вычисления хэш-суммы (DigestValue) и канонизацию по стандарту C14N. На выходе функция выдает структурированный XML-блок, где DigestValue составляет 44 символа (32 байта в кодировке Base64), а SignatureValue — 344 символа (256 байт). Такая точность позволяет использовать эти данные в системах, где валидация длины полей и формата кодирования является обязательным этапом обработки входящих инвойсов.

Сценарии применения xmldsig охватывают широкий спектр задач. Эти мок-данные незаменимы при отладке парсеров XML-документов, проверке логики маршрутизации электронных счетов на основе метаданных подписи и тестировании фронтенд-компонентов, отвечающих за визуализацию статуса безопасности документа. Благодаря mock-jutsu, команда может проводить интеграционное тестирование, проверяя, как система реагирует на наличие или отсутствие корректно сформированного блока ds:Signature, не заботясь о сложности математических вычислений. Кроме того, функция идеально подходит для нагрузочного тестирования, позволяя быстро генерировать огромные массивы данных с валидной структурой для имитации реального трафика в системах B2B-взаимодействия.

Интеграция функции в рабочий процесс максимально упрощена для удобства инженеров. Вызывать xmldsig можно напрямую из Python-скриптов с помощью команды jutsu.generate('xmldsig'), что удобно для модульного тестирования. Для системных администраторов и DevOps-инженеров предусмотрен доступ через интерфейс командной строки (CLI) — mockjutsu generate xmldsig. А для специалистов по производительности реализована поддержка в JMeter через кастомные функции. Такой универсальный подход делает библиотеку mock-jutsu незаменимым помощником в создании надежных и масштабируемых систем электронного документооборота, обеспечивая разработчиков качественными данными на каждом этапе жизненного цикла программного обеспечения.

Использование CLI
mockjutsu generate xmldsigmockjutsu bulk xmldsig --count 10mockjutsu export xmldsig --count 10 --format jsonmockjutsu export xmldsig --count 10 --format csvmockjutsu export xmldsig --count 10 --format sql
Python API
from mockjutsu import jutsujutsu.generate('xmldsig')jutsu.bulk('xmldsig', count=10)jutsu.template(['xmldsig'], count=5)
JMeter
${__mockjutsu_ubl(xmldsig)}# JMeter Function: __mockjutsu_ubl# Parameter 1: xmldsig# Parameter 2: (not required for this function)
REST API
GET /generate/xmldsig# → {"type":"xmldsig","result":"...","status":"ok"}GET /bulk/xmldsig?count=10POST /template {"types":["xmldsig"],"count":1}

Примеры вывода

{"xml": "\n \n \n \n \n \n \n \n \n WMQMMEygLwUGs8DZ4fE2rIqlqIhljbUycijShiG73CY=\n \n \n cZ7fAeOci4mr08VUe85eL+xm+yAEdyhWs5b5a+828w3UFn6m6y8kg+WckbgxkQDHgVgHnsKkYrXAC2HlkJH74BNq38jhwqoJdw8x+M868YC1KzvqA/ATFVNqxo/D10pDfaR8uoJIbi3TYKH6iO57ZjlrufCEbxXU8FbJrYMHHGsLFdSbh6gwM2wHnYo1KRmZZIBzdHEeiEJuvwQoFfWEI0F6E/G3/B3Ew/Q5fWm+K4JJ8po8O/eZw41TbZMHzWSfVyJJeexzj4ijiBcKSmENHbVrbP+x9QhtIWZBTOouHt45JOx10MzpSpxSw51cxI9dqgGKWluZ0TkFUswiJFzLxQ==\n \n \n MIIEWTCCA0SgAwIBAgIQMDwOq1RgyKCcXUdZSP4g6AYJKoZIhvcNAQELBQBBbDozRVbndi63O+JaatHryHifavhyLFW8K/GGOOGZBLHN9mZm2jh2+qzHWy+eJJ28eGqM5d4nQTBeag/NtDRsMGktQ+cnkjO52uGfkuUqC8nkTWIEEHMc8CLidRGWjGTjat77HKKb5W7CMd8yi239p7rlvglN60Q8JEw2FtSbh+mrgEKrTjpNlxqE97rqoFkXmpbZp4NvfbdBSzoX/Ie/mkIQtQ3+pGam5M6eg1TfN+OGf4wuI3aZGeZSXwG6M85KeSQxSvil8pimhv3906znosXDNnEh4QIBQZ1Y63PwOk6YuGWEZZiIcCjiG6S0Ky4fngMCDfV7tDSfuhyHkV1AtqifNt8/9/H2KqkBXd8ytT3BwuJD4JhXNPKqC/2oSLGKob7hOOEGlXKjc2oyz0h585tyAfpojz35JMJv7utZWhC63xNdG2M2WZvQrp51knjXZeqGKOPeb7jEi9cXuHgcrifIVRf98IBgY6iwB+cuchiNCLzJcvUjd4wY/pzad4LtQD+akAU8wsTbN1Gvpz9KdrshqqhKrf9sIo0p6ZrTlHeTGJM0KlaF/A1X7VIX5YpBCSXctcuqzNWtel7eJVP2PoUqDP6cP0FLK93RcJWAP5dSCmanTlCgBSiioTeeqopE1xqMdji4lzJE1keP/+db8xGl7pZUOrDKfbjHAlnDikXpnvKVQhCwsDHOFhTSTXKRpA6d8ctmWlV5o3pbk8MQlpXK08+hyJEDxjnSahBSc2qmaIFg9QGtftBc0pyeBuQl8/NpxTPy4/4eRvSKZzvBGzVahiu6ghj7lGiqDUrYpRMnbtr7iFK3sARZiQTJvHVV5XFj3b8Esgln9UTY6615VJVmazbqZ/pfacx12UbozfeiRq/Ixpi3WQamTFhH/8dnJZIVkkxbf8P+/vtRpALkq6Du3ofKRrkTlMYursPoAdVkOE5JtcuKwNed6usdqz9JE555BoH0iVSCX7rBMIPQXt5uhwl10OuvJ9K2cPAyQ3jHApMOww3z/n1sqjhyjfg4evJOKS9CTGmp51I+6jrQH5GMQhpVc52AGODC+B40UwYJKoZIhvcNAQELBQADggEAfB7H0PRiLYZJMzkMIih7dnlM9U3FLuTLp7ByaIYIjXD2i7/PC9C53tIQawn+xkD/uqGUDRKP6wKHvsC+blaod1HkJh9e47QaOFh1cKOC19GSWvsD2QQ56K2KxzM+n4KHMJLsnuwGL7Sh2Fdn9szR/EHzS3jvoq2TRWmg26lKALDnxxgLwfTJ9ugyUqW6EBi60ZRIF+LDyPtLh18Ccd1wT6i2KFjhiISLfBAE1mVf09sdIWK779tVL08SdyJtc35DCBnDzHHsSahYAeyTUep8yhDqzJPhsZZw6wpisk/1XWapWcMcNNUOn9i1pxSrjK7MHsQi+RMrGpU6bH6P9jhb9w==\n \n \n", "signature_id": "Signature-1A3B898B", "reference_id": "Reference-17B858B7", "algorithm": "http://www.w3.org/2001/04/xmldsig-more#rsa-sha256", "digest_method": "http://www.w3.org/2001/04/xmlenc#sha256", "c14n_method": "http://www.w3.org/TR/2001/REC-xml-c14n-20010315", "digest_value": "WMQMMEygLwUGs8DZ4fE2rIqlqIhljbUycijShiG73CY=", "signature_value": "cZ7fAeOci4mr08VUe85eL+xm+yAEdyhWs5b5a+828w3UFn6m6y8kg+WckbgxkQDHgVgHnsKkYrXAC2HlkJH74BNq38jhwqoJdw8x+M868YC1KzvqA/ATFVNqxo/D10pDfaR8uoJIbi3TYKH6iO57ZjlrufCEbxXU8FbJrYMHHGsLFdSbh6gwM2wHnYo1KRmZZIBzdHEeiEJuvwQoFfWEI0F6E/G3/B3Ew/Q5fWm+K4JJ8po8O/eZw41TbZMHzWSfVyJJeexzj4ijiBcKSmENHbVrbP+x9QhtIWZBTOouHt45JOx10MzpSpxSw51cxI9dqgGKWluZ0TkFUswiJFzLxQ=="}

Правила валидации

Другие языки