Отчёты валидации подписей CMS

Автономные CMS API открывают каждую основную SignerInfo и рекурсивно вложенные counterSignature в детерминированном порядке документа

Граф подписантов

HPDFParseCMSSignatures возвращает все записи основных подписантов, а HPDFVerifyCMSSignaturesEx проверяет их против переданного content stream

HPDFVerifyCMSSignerReport добавляет рекурсивные контрподписи и идентифицирует каждую запись по Kind, SignerIndex, ParentSignerIndex, NestingDepth и стабильному пути вроде SignerInfo[0].CounterSignature[1]

THPDFCMSVerifyOptions.MaxSignerCount и MaxCounterSignatureDepth ограничивают работу на враждебных контейнерах, сохраняя детерминированный вывод

Отчёт по сертификатам и уликам

HPDFBuildCMSValidationReport совмещает верификацию подписантов с управляемой вызывающим кодом офлайн-валидацией сертификатов для каждого подписанта графа

Возвращаемый THPDFSignatureValidationReport содержит агрегированные результаты подписи и цепочки, счётчики подписантов, состояние успеха, машиночитаемый THPDFValidationFailureCode и полные THPDFSignatureInfo по каждому подписанту

Детали сертификатов по каждому подписанту включают выбранную цепочку, результат доверия, источник и timestamp отзывов, решения по OCSP nonce, использование delta и indirect CRL, действующие политики сертификатов, минимальные наблюдённые стойкости ключей и диагностику политики алгоритмов

Экспорт JSON

HPDFSignatureValidationReportToJSON экспортирует отчёт в JSON схемы версии 1 с экранированными текстовыми значениями и стабильными именами полей — пригодно для audit log, policy engine и тестовой автоматизации

Экспортёр не ходит в сеть и не изменяет отчёт или исходный stream

Практические рекомендации

См. также: VerifyLoadedSignatureWithTrust, GetLoadedSignatureInfo