Я пытаюсь создать подпись PaDES, используя следующий рабочий процесс:
- PDF подготовлен для подписания, и в браузере вычисляется хэш
- хэш отправляется на серверную часть
- отдельная подпись CaDES формируется на бэкэнде
- отдельная CaDES отправляется обратно в браузер, где собирается подпись PaDES
У нас есть рабочий пример подписи PDF, которыйработает следующим образом:
- PDF подготовлен и хеш вычисляется в браузере
- хэш отправляется на сервер
- отсоединенная подпись PKCS7 выполняется на сервере (с помощью BouncyCastle lib)
- отсоединенный PKCS7 отправляется обратно в браузер, где собирается подпись PDF
Это работает нормально.
Однако теперь вместо BouncyCastleмы используем библиотеку DSS на сервере, потому что мы пытаемся создать подпись PaDES.Таким образом, библиотека DSS создает отсоединенные CaDES (которые должны быть такими же, как отсоединенные PaDES) вместо PKCS7.Однако, когда подпись собирается в браузере, подпись недействительна (даже информация о сертификате не видна).
Насколько я понимаю, CaDES является расширением PKCS7, поэтому этот подход должен работать.
Сначала я пытаюсь понять, если что-то не так с нашим подходом, и если нет, я попытаюсь поделиться кодом, который мы используем для создания отдельной подписи CaDES, чтобы увидеть, если что-то там не так.