Эти модули открывают вставки на уровне потоков, валидаторы, операции подписи и вспомогательные записи, используемые соответствующими удобными методами TPdf
Используйте их, когда рабочий процесс уже владеет исходными и целевыми потоками либо нужны опции проверки и детали результата, независимые от экземпляра TPdf
FPdfPdfCommon| Function | Purpose |
|---|---|
AnsiCountDictKeyTokens | Считывает одно декодированное имя-ключ на верхнем уровне исходного словаря PDF, пропуская вложенные значения, строки и комментарии |
TPdfParserResourceBudget | Задаёт общие для процесса лимиты рекурсии, токенов, объектов, декодированных байтов, коэффициента расширения, выделений памяти и дедлайна; Default возвращает значения библиотеки по умолчанию |
ConfigurePdfParserResourceBudget | Проверяет и атомарно заменяет политику процесса, используемую последующими пользовательскими операциями парсера |
GetPdfParserResourceBudget | Возвращает потокобезопасный снимок значений текущей политики процесса |
ResetPdfParserResourceBudget | Восстанавливает политику процесса по умолчанию |
PdfParserStartTick, PdfParserDeadlineReached | Дают устойчивые к переполнению контрольные точки дедлайна для пользовательских реализаций парсера |
FPdfAssocFilesprocedure InjectAssociateFiles(Source: TStream; Dest: TStream; const Options: TAssocFilesOptions);
| Public type | Purpose |
|---|---|
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| Function | Purpose |
|---|---|
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 | Сохраняют или восстанавливают метаданные запроса, необходимые для завершения удалённой подписи |
| Area | Types |
|---|---|
| Уровни и проверка | 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, увеличив её размер. Пересоберите приложения и пакеты, которые передают эту запись или содержащие её записи, против обновлённых модулей; ранее скомпилированные бинарники не совпадают по раскладке записи
FPdfPdfaprocedure 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 type | Purpose |
|---|---|
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
FPdfPdfeprocedure InjectPdfEMarkers(Source: TStream; Dest: TStream; const Options: TPdfESaveOptions);
function ValidatePdfECompliance(Source: TStream): TPdfEValidationResult;
| Public type | Purpose |
|---|---|
TPdfEConformance | Обнаруженное или запрошенное соответствие PDF/E |
TPdfEValidationIssue, TPdfEValidationIssues | Структурные и содержательные находки PDF/E, включая AcroForm верхнего уровня /XFA и косвенный /NeedAppearances true; обычные поля AcroForm и встроенные инженерные данные остаются разрешёнными |
TPdfEValidationResult | Соответствие, множество Issues и результат IsCompliant |
TPdfESaveOptions | Версия PDF/E Version, метаданные, идентификаторы документа и значения по умолчанию |
FPdfPdfr| Function | Purpose |
|---|---|
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| Function | Purpose |
|---|---|
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 для вставки требуемых записей каталога, когда их нет в источнике
FPdfPdfvtprocedure InjectPdfVTMarkers(Source: TStream; Dest: TStream; const Options: TPdfVTSaveOptions);
function ValidatePdfVTCompliance(Source: TStream): TPdfVTValidationResult;
function ReadPdfVTDPartEvidence(Source: TStream): TPdfVTDPartEvidence;
| Public type | Purpose |
|---|---|
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, и настройки по умолчанию |
FPdfPdfxprocedure InjectPdfXMarkers(Source: TStream; Dest: TStream; const Options: TPdfXSaveOptions);
function ValidatePdfXCompliance(Source: TStream): TPdfXValidationResult;
| Public type | Purpose |
|---|---|
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, метаданные, идентификаторы и значения по умолчанию |
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
Методы TPdf.SaveAsPdfA, SaveAsPdfE, SaveAsPdfR, SaveAsPdfUa, SaveAsPdfVT, SaveAsPdfX и PAdES предоставляют обёртки над экземпляром документа вокруг этих модулей