Ошибка SignWSSE при подписывании объемных XML

Подписываем пакеты для сервиса СОНО на ВШЭП с помощью метода SingWSSE().

Периодически случаются кейсы, когда необходимо подписать довольно объемные XML (~9-10 Мб). При этом абсолютно тот же код, с теми же ключами, который работает для меньших документов, дает ошибку.

Первый подход был к ошибке Segmetation fault без деталей. Ее вылечили путем снятия ограничений на размер стека по типу ulimit -s unlimited (или аналогичная настройка для сервиса systemd). После этого стала проходить подпись документы в 6-8 Мб.

Но для ещё больших документов все равно получаем ошибку разбора XML (0x8f00026) с выводом в поток ошибок:

Entity: line 289590: parser error : internal error: Huge input lookup

Ошибка воспроизводится на всех последних версиях библиотеки для Linux. Мы используем расширение для PHP. Но пытались подключать и отдельную библиотеку, с тем же результатом. Не воспроизводится в версии DLL для Windows, видимо там под капотом иной механизм разбора XML.

Добрый день!

В версии 2024-03-01 ошибка сохранилась.

image

Добрый день! Еще в работе