PDFium Delphi Component Docs

Вспомогательные модули стандартов PDF

Эти модули открывают вставки на уровне потоков, валидаторы, операции подписи и вспомогательные записи, используемые соответствующими удобными методами TPdf

Используйте их, когда рабочий процесс уже владеет исходными и целевыми потоками либо нужны опции проверки и детали результата, независимые от экземпляра TPdf

FPdfPdfCommon

FunctionPurpose
AnsiCountDictKeyTokensСчитывает одно декодированное имя-ключ на верхнем уровне исходного словаря PDF, пропуская вложенные значения, строки и комментарии
TPdfParserResourceBudgetЗадаёт общие для процесса лимиты рекурсии, токенов, объектов, декодированных байтов, коэффициента расширения, выделений памяти и дедлайна; Default возвращает значения библиотеки по умолчанию
ConfigurePdfParserResourceBudgetПроверяет и атомарно заменяет политику процесса, используемую последующими пользовательскими операциями парсера
GetPdfParserResourceBudgetВозвращает потокобезопасный снимок значений текущей политики процесса
ResetPdfParserResourceBudgetВосстанавливает политику процесса по умолчанию
PdfParserStartTick, PdfParserDeadlineReachedДают устойчивые к переполнению контрольные точки дедлайна для пользовательских реализаций парсера

FPdfAssocFiles

procedure InjectAssociateFiles(Source: TStream; Dest: TStream; const Options: TAssocFilesOptions);

Public typePurpose
TPdfAFRelationshipЗначения AFRelationship из ISO 32000-2: afSource, afData, afAlternative, afSupplement, afUnspecified, afEncryptedPayload, afFormData и afTemplate, включая дополнения PDF 2.0
TAssociateFileОдин связанный файл с FileName, Description, полезной нагрузкой Content, Relationship и необязательным MIMEType
TAssocFilesOptionsСписок связанных файлов Files и цель — каталог или страница — задаваемая TargetPage, со значениями по умолчанию из TAssocFilesOptions.Default
EPdfAssocFilesErrorВозбуждается InjectAssociateFiles, когда в источнике нет читаемого trailer или каталога либо когда TargetPage отрицателен или не указывает на страницу в порядке дерева страниц; целевой поток остаётся неизменным

FPdfPades

FunctionPurpose
InjectPadesDssMarkersДобавляет материал DSS — сертификаты, OCSP, CRL и VRI — через инкрементное обновление
RenewPadesArchiveTimestampДописывает метку времени документа и сообщает итоговый архивный уровень и метаданные метки времени
ValidatePadesCompliance, ValidatePadesTrustПроверяют кратность записей подписей верхнего уровня, точное исключение ByteRange и токена Contents, криптографическую целостность, доверие, отзыв и свидетельства меток времени
AnalyzePadesSignatureRevisionsКлассифицирует последующие ревизии, изменения объектов, эффекты FieldMDP и риски модификации
BuildPadesEvidenceReport, BuildPadesEvidenceReportBytesСтроят ограниченные свидетельства по нескольким подписям из потока или существующего неизменяемого снимка исходных байтов
EvaluatePadesSignatureAlgorithm, InspectPadesSignatureAlgorithmИзучают параметры алгоритмов CMS и сертификата и оценивают их поддерживаемый статус безопасности, применяя эллиптический профиль PDF 2.0 и наборы подписей RSA из ETSI TS 119 312
VerifyCmsAlgorithmProtectionСверяет подписанный атрибут защиты алгоритмов CMS с алгоритмами дайджеста и подписи подписанта
SignPadesBytesДописывает локальную подпись PAdES с необязательной простановкой метки времени RFC 3161
PreparePadesRemoteSignature, CompletePadesRemoteSignatureГотовят и завершают связанный рабочий процесс удалённой подписи с заполнителем фиксированной ширины
SavePadesRemoteSigningRequest, LoadPadesRemoteSigningRequestСохраняют или восстанавливают метаданные запроса, необходимые для завершения удалённой подписи

Public PAdES types

AreaTypes
Уровни и проверкаTPadesLevel (plUnknown, plNone, plB_B, plB_T, plB_LT, plB_LTA), TPadesValidationIssue, TPadesValidationIssues, TPadesValidationSourceStatus (pvssUnavailable, pvssOriginalBytes, pvssIncomplete), TPadesValidationResult
КриптографияTPadesCryptoStatus (pcsNotChecked, pcsValid, pcsInvalid, pcsUnsupported, pcsIndeterminate), TPadesSignatureAlgorithmFamily (psafUnknown, psafRsa, psafEcdsa, psafEd25519, psafEd448), TPadesSignatureAlgorithmInfo, TPadesSignatureValidation, TPadesSignatureValidations
Проверка доверияTPadesTrustNetworkPolicy (ptnpOffline, ptnpOnline), TPadesTrustValidationStage, TPadesTrustValidationProgress, TPadesTrustValidationProgressEvent, TPadesTrustValidationOptions, TPadesTrustValidationAsyncStatus, TPadesTrustValidationCompletion, TPadesTrustValidationReply
Анализ ревизийTPadesRevisionAnalysisStatus (prasNotChecked, prasNoLaterChanges, prasAllowed, prasDisallowed, prasSuspicious, prasIndeterminate), TPadesRevisionDecision (prdAllowed, prdDisallowed, prdSuspicious, prdIndeterminate), TPadesFieldMdpAction (pfmaNone, pfmaAll, pfmaInclude, pfmaExclude, pfmaUnknown), TPadesRevisionChangeKind, TPadesRevisionRisk, TPadesRevisionRisks, TPadesFieldNames, TPadesRevisionObjectChange, TPadesRevisionObjectChanges, TPadesSignatureRevisionAnalysis, TPadesSignatureRevisionAnalyses, TPadesRevisionAnalysisReport
Отчёты-свидетельстваTPadesHashStrings, TPadesObjectNumbers, TPadesEvidenceReportOptions, TPadesEvidenceMaterialKind, TPadesValidationMaterialEvidence, TPadesValidationMaterialEvidences, TPadesVriEvidence, TPadesVriEvidences, TPadesSignatureEvidence, TPadesSignatureEvidences, TPadesEvidenceReport
DSS и архивные метки времениTPadesDssMaterial, TPadesDssMaterials, TPadesDssIndexes, TPadesDssVri, TPadesDssVris, TPadesDssOptions, TPadesArchiveTimestampOptions, TPadesArchiveTimestampReport
ПодписьTPadesSeedValueConstraint, TPadesSeedValueConstraints, TPadesSignatureFieldOptions, TPadesSignOptions, TPadesRemoteSignOptions, TPadesRemoteByteRange, TPadesRemoteSigningRequest

TPadesValidationResult даёт архивный Level, множество Issues, SourceStatus, IntegrityStatus и массив Signatures по каждой подписи, с IsCompliant, IsCompliantAt, IsCryptographicallyValid и DocTimeStampCount, считающим словари Document Time-stamp; записи опций предоставляют статический инициализатор Default

TPadesSignatureAlgorithmInfo сообщает Family, DigestAlgorithmOid, SignatureAlgorithmOid, PublicKeyAlgorithmOid, CurveOid, DigestParametersPresent, DigestParameterBits, SignatureParametersPresent, PublicKeyParametersPresent, PublicKeyParametersAreNamedCurve и PolicyStatus; TPadesSignatureValidation добавляет вердикты IsDocumentTimeStamp, CoveredRevisionLength, ByteRangeStatus, CmsSignatureStatus, AlgorithmPolicyStatus, SigningCertificateStatus, CertificateTrustStatus, QualifiedTrustStatus, RevocationStatus, TimeStampStatus, TimeStampSignatureStatus, TimeStampTrustStatus и TimeStampRevocationStatus, NativeSignatureError, NativeTrustError, SignerCertificateSha256, CertificateChainSha256 и вложенные свидетельства AlgorithmInfo и QualifiedTrust

TPadesTrustValidationStage проходит по ptvsStarting, ptvsReadingSource, ptvsParsingSignatures, ptvsCryptographicIntegrity, ptvsCertificateChain, ptvsAiaRetrieval, ptvsOcspRetrieval, ptvsCrlRetrieval, ptvsTimestampToken и ptvsCompleted; TPadesTrustValidationProgress несёт Stage, SignatureIndex, SignatureCount и Percent; TPadesTrustValidationOptions выбирает NetworkPolicy, CheckRevocation, CheckTimeStamps, UrlRetrievalTimeoutMs, QualifiedTrustEvaluator, CancellationToken и OnProgress; TPadesTrustValidationAsyncStatus — это ptvasSuccess, ptvasCancelled или ptvasFailure, а TPadesTrustValidationCompletion возвращает асинхронные Status, Validation, ErrorMessage, ErrorClassName и CancellationReason

TPadesRevisionChangeKind классифицирует prckCrossReference, prckSignature, prckValidationMaterial, prckFormField, prckAnnotation, prckPageContent, prckDocumentStructure, prckMetadata, prckActiveContent, prckDeletedObject, prckCompressedObject и prckUnknown; TPadesRevisionRisk охватывает prrMalformedRevisionChain, prrDuplicateObjectDefinition, prrUnreferencedObjectDefinition, prrSignatureObjectRedefined, prrPageContentChanged, prrDocumentStructureChanged, prrActiveContentAdded, prrFieldMdpUnresolved, prrCompressedObjectUnresolved, prrCoveredRevisionNotFound и prrResourceLimitExceeded

TPadesRevisionObjectChange сообщает RevisionIndex, ObjectNumber, Generation, Offset, ObjectStreamNumber, ObjectStreamIndex, Kind, Decision, IsAuthoritative и IsRedefinition; TPadesSignatureRevisionAnalysis добавляет SignatureIndex, SignatureObjectNumber, CoveredRevisionLength, CoveredRevisionIndex, DocMdpPermission, FieldMdpAction, FieldNames, LaterRevisionCount, Status, Risks и Changes; TPadesRevisionAnalysisReport агрегирует SourceStatus, RevisionCount, SignatureCount, Status, Risks, Signatures и ErrorMessage

TPadesEvidenceMaterialKind выбирает pemkCertificate, pemkOcsp или pemkCrl; TPadesValidationMaterialEvidence сообщает Kind, ObjectNumber, StoredLength и Sha256 для каждого сохранённого потока; TPadesVriEvidence ключуется по Key и ObjectNumber и перечисляет CertificateObjectNumbers, OcspObjectNumbers и CrlObjectNumbers

TPadesSignatureEvidence фиксирует SignatureIndex, SignatureObjectNumber, IsDocumentTimeStamp, SubFilter, ByteRangeA, ByteRangeB, ByteRangeC, ByteRangeD, ContentsSha256, VriKey, SignaturePolicyOid, CommitmentTypeOid, HasMatchingVri, VriEvidenceIndex, TimeStampTokenSha256, TimeStampPolicyOid, TimeStampGenTime, TimeStampNonce, NativeFactsAvailable, NativeReason, NativeTime, NativeDocMdpPermission и вложенные Validation и Revision

TPadesEvidenceReport агрегирует SourceLength, PdfiumSignatureCount, DssCertificateCount, DssOcspCount, DssCrlCount, DssVriCount, StoredValidationBytes, IsTruncated, Validation, RevisionAnalysis, Signatures, ValidationMaterials и VriEntries, ограниченный TPadesEvidenceReportOptions с TrustOptions, MaxSourceBytes, MaxSignatures, MaxRevisionChangesPerSignature, MaxValidationMaterials, MaxStoredValidationBytes и MaxVriEntries

TPadesDssMaterial хранит одну полезную нагрузку сертификата, OCSP или CRL в DerBytes; TPadesDssVri выбирает материал уровня документа через SignatureContents, CertIndexes, OcspIndexes и CrlIndexes; TPadesDssOptions принимает Certs, Ocsps, Crls, Vris, EsicExtensionLevel и IncludeVri; TPadesArchiveTimestampOptions несёт TsaUrl, Nonce, ContentsSize, UpdateDss и вложенный DssOptions; TPadesArchiveTimestampReport сообщает SourceLevel, ResultLevel, PreviousDocTimeStampCount, ResultDocTimeStampCount, SourceLength, ResultLength, DssUpdated, GenTime, PolicyOid и Nonce

TPadesSeedValueConstraint ограничивает psvcFilter, psvcSubFilter, psvcVersion, psvcReasons, psvcLegalAttestation, psvcAddRevocationInfo или psvcDigestMethod; TPadesSignatureFieldOptions ограничивает FieldName, RequiredSeedValues, Reasons, LegalAttestations, AcceptableCertificates, CertificateRequired, LockAction, LockFields и CertificationPermission; TPadesSignOptions несёт CertificateThumbprint, PaddingScheme, Reason, LegalAttestation, Location, ContactInfo, Name, SigningTimeUtc, CommitmentTypeOid, ContentsSize, Level, TsaUrl, Nonce, группу SignaturePolicyOid, SignaturePolicyHash, SignaturePolicyUri и SignaturePolicyDocument и вложенные FieldOptions; TPadesRemoteSignOptions повторяет безопасный для удалённой подписи набор Reason, LegalAttestation, Location, ContactInfo, Name, SigningTimeUtc, CommitmentTypeOid, ContentsSize и FieldOptions; TPadesRemoteSigningRequest связывает FormatVersion, PreparedFingerprint, DocumentDigest, ByteRange, ContentsHexOffset и ContentsSize

TPadesTrustValidationOptions.QualifiedValidationTime выбирает время оценки истории обслуживания из списка доверия, а ноль выбирает текущее время

TPadesSignatureValidation также несёт RevocationReason: TPdfCmsRevocationReason, NativeRevocationError: Cardinal, TimeStampRevocationReason: TPdfCmsRevocationReason и NativeTimeStampRevocationError: Cardinal. Диагностика подписи приходит из его отсоединённой проверки CMS; диагностика метки времени — из проверки присоединённого токена, включая Document Time-stamp, и никогда не подменяет диагностику подписи

Причины по умолчанию равны pcrrNone, а нативные ошибки — нулю, когда отзыв выключен или до соответствующей проверки CMS дело не дошло. Эти значения по умолчанию не означают успех; смотрите RevocationStatus и TimeStampRevocationStatus. ValidatePadesTrustAsync сохраняет эти поля в своём итоговом результате, а TPadesSignatureEvidence.Validation удерживает их для TPadesEvidenceReport.ToJson и ToCsv

Диагностические поля дописаны в конец публичной записи TPadesSignatureValidation, увеличив её размер. Пересоберите приложения и пакеты, которые передают эту запись или содержащие её записи, против обновлённых модулей; ранее скомпилированные бинарники не совпадают по раскладке записи

FPdfPdfa

procedure InjectPdfAMarkers(Source: TStream; Dest: TStream; const Options: TPdfASaveOptions);
function ValidatePdfACompliance(Source: TStream): TPdfAValidationResult;
function ReadPdfAInfoFieldPresence(const PdfData: TBytes): TPdfAMetadataFields;
function ComparePdfAInfoAndXmp(const Info: TPdfAMetadataValues; Packet: TPdfXmpPacket): TPdfAMetadataReport;
function SynchronizePdfAInfoToXmp(const Info: TPdfAMetadataValues; Packet: TPdfXmpPacket): TPdfAMetadataFields;

Public typePurpose
TPdfAConformanceОбнаруженные или запрошенные часть и уровень соответствия PDF/A
TPdfAValidationIssue, TPdfAValidationIssuesОтдельные находки preflight и их представление множеством
TPdfANameArrayСписок строк, используемый находками проверки по именам
TPdfAMetadataField, TPdfAMetadataFieldsВосемь сопоставлений Info–XMP из таблицы 1 ISO 19005-1 (pamfTitle, pamfAuthor, pamfSubject, pamfKeywords, pamfCreator, pamfProducer, pamfCreationDate, pamfModDate) и их представление множеством
TPdfAMetadataValuesЗначения Info в Unicode: Title, Author, Subject, Keywords, Creator, Producer, CreationDate и ModDate, где наличие ключа отслеживается Present независимо от пустого текста
TPdfAMetadataState, TPdfAMetadataComparison, TPdfAMetadataComparisons, TPdfAMetadataReportТипизированные свидетельства эквивалентности по полям с состояниями pamsNotRequired, pamsEquivalent, pamsXmpMissing, pamsXmpTypeMismatch, pamsValueMismatch, pamsInvalidInfoDate, pamsInvalidXmpDate, по-полевыми Field, State, InfoValue и XmpValue, уровнем отчёта HasXmpPacket, XmpParseError, MismatchFields и массивом Comparisons, а также агрегированным статусом
TPdfAValidationResultСоответствие, множество Issues и результат IsCompliant
TPdfASaveOptionsМетаданные, идентификаторы, байты профиля ICC в IccProfileData, OutputIntent и настройки соответствия со значениями Default

InjectPdfAMarkers использует разреженный поиск последней ревизии и ограниченное копирование источника для корректных классических, xref-stream, гибридных и object-stream раскладок, сохраняя парсер совместимости для неподдерживаемых или некорректных данных перекрёстных ссылок

Инкрементная ревизия сохраняет поколения корня и Info, стиль исходного xref, идентификаторы trailer, поведение отказа при шифровании и семантику понижения до Level A

FPdfPdfe

procedure InjectPdfEMarkers(Source: TStream; Dest: TStream; const Options: TPdfESaveOptions);
function ValidatePdfECompliance(Source: TStream): TPdfEValidationResult;

Public typePurpose
TPdfEConformanceОбнаруженное или запрошенное соответствие PDF/E
TPdfEValidationIssue, TPdfEValidationIssuesСтруктурные и содержательные находки PDF/E, включая AcroForm верхнего уровня /XFA и косвенный /NeedAppearances true; обычные поля AcroForm и встроенные инженерные данные остаются разрешёнными
TPdfEValidationResultСоответствие, множество Issues и результат IsCompliant
TPdfESaveOptionsВерсия PDF/E Version, метаданные, идентификаторы документа и значения по умолчанию

FPdfPdfr

FunctionPurpose
InjectPdfRMarkersЗаписывает идентификацию PDF/R и ограниченные структуры каталога и Info
ValidatePdfRComplianceПроверяет поток с лимитами растрового документа по умолчанию
ValidatePdfRComplianceWithOptionsПроверяет поток с выбранными вызывающим кодом требованиями к разрешению, геометрии, полосе и шифрованию
ValidatePdfRPageFactsПроверяет уже собранные геометрию страниц, счётчики объектов, характеристики изображений и фильтры

Публичные типы: TPdfRConformance, TPdfRValidationIssue, TPdfRValidationIssues, TPdfRValidationResult со своим множеством Issues и результатом IsCompliant, TPdfRStringArray, TPdfRValidationOptions, TPdfRPageFacts и TPdfRSaveOptions

TPdfRValidationOptions настраивает MinimumResolutionDpi, MaximumResolutionDpi, GeometryTolerancePoints, RequireFullPageStrip и RequireEncryptedPdf20Profile; TPdfRSaveOptions несёт StripInfoOptionalEntries и StripCatalogOptionalEntries для очистки записей Info или каталога источника, которые иначе отклонили бы §6.4.3 или белый список §6.3; TPdfRPageFacts записывает PageNumber, MediaWidth, MediaHeight, границы ImageLeft, ImageBottom, ImageRight и ImageTop, ImageCount, TextObjectCount, PathObjectCount, FormObjectCount и ShadingObjectCount, растровую геометрию PixelWidth, PixelHeight, HorizontalDpi, VerticalDpi и BitsPerPixel, плюс ColorSpace и цепочку Filters для каждой страницы

FPdfPdfua

FunctionPurpose
InjectPdfUaMarkersДобавляет маркеры идентификации PDF/UA, языка, заголовка, MarkInfo, предпочтений просмотрщика и XMP
ValidatePdfUaComplianceПроверяет маркеры и структуру PDF/UA-1 или PDF/UA-2, при желании используя исходные байты для проверок XMP
PdfUaIsStandardStructTypeСверяет имя типа структуры со стандартным набором ISO, включая нумерованные заголовки
PdfReadRoleMapPairsИзвлекает ключи и значения RoleMap, прямые или косвенные, в параллельные массивы

Публичные типы: TPdfUaConformance, TPdfUaValidationIssue, TPdfUaValidationIssues, TPdfUaValidationResult со своим множеством Issues и результатом IsCompliant, TPdfUaSaveOptions и TPdfUaNameArray

Модуль PDFium также открывает TPdfUaLanguageSource, TPdfUaLanguageContentKind, TPdfUaLanguageResolution, TPdfUaLanguageSpan, TPdfUaLanguageSpans, TPdfUaLanguageCoverageOptions и TPdfUaLanguageCoverageReport для ограниченных свидетельств действующих языков

TPdfUaUnicodeObjectCoverage, TPdfUaUnicodeObjectCoverages, TPdfUaUnicodeCoverageOptions и TPdfUaUnicodeCoverageReport дают ограниченные свидетельства извлечения прямого Unicode и ActualText в пределах объекта

ValidatePdfUaPageContentTagging сверяет нативные метки объектов страниц с MCIDs структур в пределах страницы и сообщает как неразмеченное реальное содержимое, так и содержимое Artifact, открытое в дереве структуры

TPdfUaSaveOptions.Default выбирает значения по умолчанию PDF/UA-1, а TPdfUaSaveOptions.PdfUa2 — профиль PDF/UA-2

TPdfUaSaveOptions несёт DocumentTitle, Language, метаданные Author, Subject, Keywords, Creator и Producer, CreationDate и ModDate, UUID DocumentId и InstanceId, идентификаторы Part, Revision, Amd и Corr, а также переключатели EnsureMarkInfo и EnsureDisplayDocTitle для вставки требуемых записей каталога, когда их нет в источнике

FPdfPdfvt

procedure InjectPdfVTMarkers(Source: TStream; Dest: TStream; const Options: TPdfVTSaveOptions);
function ValidatePdfVTCompliance(Source: TStream): TPdfVTValidationResult;
function ReadPdfVTDPartEvidence(Source: TStream): TPdfVTDPartEvidence;

Public typePurpose
TPdfVTConformance, TPdfVTTrappedStateСоответствие PDF/VT и выбор унаследованного от PDF/X состояния trapped среди ptvUnspecified, ptvTrue и ptvFalse, где ptvUnspecified нормализуется в ptvFalse при записи
TPdfVTValidationIssue, TPdfVTValidationIssues, TPdfVTValidationResultНаходки проверки, множество Issues, соответствие и результат IsCompliant
TPdfDpmEntry, TPdfDpmEntries, TDpmTargetЗаписи Document Part Metadata с Name, Value и IsNestedDict, размещаемые в цели dptRoot или dptLeaf
TPdfVTDPartEvidenceОграниченная иерархия частей документа и свидетельства условий печати с PageCount, RecordLevel и RecipientRecordCount
TPdfVTSaveOptionsБаза PDF/X, байты профиля ICC в IccProfileData, OutputIntent через OutputCondition, OutputConditionIdentifier, RegistryName и OutputIntentInfo, состояние Trapped, метаданные, идентификаторы, DPart, DPM через DpmEntries, размещаемые по DpmTarget, и настройки по умолчанию

FPdfPdfx

procedure InjectPdfXMarkers(Source: TStream; Dest: TStream; const Options: TPdfXSaveOptions);
function ValidatePdfXCompliance(Source: TStream): TPdfXValidationResult;

Public typePurpose
TPdfXConformance, TPdfXTrappedStateВариант PDF/X и выбор состояния trapped в словаре Info среди ptUnspecified, ptTrue, ptFalse и ptUnknown, где ptUnspecified опускает запись
TPdfXValidationIssue, TPdfXValidationIssues, TPdfXValidationResultНаходки проверки, множество Issues, соответствие и результат IsCompliant
TPdfXSaveOptionsСоответствие, байты профиля ICC в IccProfileData, OutputIntent через OutputCondition, OutputConditionIdentifier, RegistryName и OutputIntentInfo, состояние Trapped, метаданные, идентификаторы и значения по умолчанию

Политика параметров RSA-PSS

TPadesRsaPssParameters открывает Valid, HashAlgorithmOid, MaskGenAlgorithmOid, MaskGenHashAlgorithmOid, SaltLength и TrailerField; TPadesSignatureAlgorithmInfo.SignaturePss и PublicKeyPss сообщают ограничения CMS и SPKI независимо

InspectPadesSignatureAlgorithm требует параметры PSS в CMS, принимает пустой SEQUENCE со значениями по умолчанию из RFC и отклоняет некорректный DER, дублирующиеся или неупорядоченные явные поля, неподдерживаемые целочисленные кодировки и слишком большие блоки параметров

EvaluatePadesSignatureAlgorithm требует совпадения дайджеста CMS с хэшем PSS; ключ только для PSS отклоняет PKCS #1 v1.5, а ограниченные ключи требуют совпадающих хэша, хэша MGF и трейлера при соли подписи не меньше минимума ключа

Другой поддерживаемый хэш MGF1 может быть действителен; неизвестные алгоритмы — Unsupported, слабые хэши MGF — Indeterminate, а сломанные хэши — Invalid

Блоки параметров ограничены 16 КиБ, а значения соли и трейлера — неотрицательные 32-битные целые; эта структурная политика дополняет криптографический бэкенд и не доказывает стойкость ключа RSA или действительность подписи EMSA-PSS

При ручном построении свидетельств алгоритма заполняйте SignaturePss и SignatureParametersPresent, а не передавайте только OID PSS

Related API

Методы TPdf.SaveAsPdfA, SaveAsPdfE, SaveAsPdfR, SaveAsPdfUa, SaveAsPdfVT, SaveAsPdfX и PAdES предоставляют обёртки над экземпляром документа вокруг этих модулей