Ces unités exposent les injecteurs au niveau des flux, les validateurs, les opérations de signature et les enregistrements de support utilisés par les méthodes de commodité TPdf correspondantes
Utilisez-les lorsqu’un flux de travail possède déjà les flux sources et de destination ou a besoin d’options de validation et de détails de résultats indépendants d’une instance TPdf
FPdfPdfCommon| Fonction | Rôle |
|---|---|
AnsiCountDictKeyTokens | Compte une clé de nom décodée au niveau supérieur d’un dictionnaire PDF brut en sautant les valeurs imbriquées, les chaînes et les commentaires |
TPdfParserResourceBudget | Définit les limites à l’échelle du processus de récursion, de jetons, d’objets, d’octets décodés, de ratio d’expansion, d’allocation et d’échéance ; Default renvoie les valeurs par défaut de la bibliothèque |
ConfigurePdfParserResourceBudget | Valide et remplace atomiquement la stratégie de processus utilisée par les opérations d’analyse personnalisées ultérieures |
GetPdfParserResourceBudget | Renvoie un instantané thread-safe des valeurs de la stratégie de processus courante |
ResetPdfParserResourceBudget | Restaure la stratégie de processus par défaut |
PdfParserStartTick, PdfParserDeadlineReached | Fournissent des points de contrôle d’échéance à l’épreuve du débordement pour les implémentations d’analyse personnalisées |
FPdfAssocFilesprocedure InjectAssociateFiles(Source: TStream; Dest: TStream; const Options: TAssocFilesOptions);
| Type public | Rôle |
|---|---|
TPdfAFRelationship | Valeurs AFRelationship d’ISO 32000-2 afSource, afData, afAlternative, afSupplement, afUnspecified, afEncryptedPayload, afFormData et afTemplate, y compris les ajouts de PDF 2.0 |
TAssociateFile | Un fichier associé avec FileName, Description, le Content de la charge utile, Relationship et le MIMEType facultatif |
TAssocFilesOptions | Liste Files de fichiers associés et TargetPage catalogue ou page, avec les valeurs par défaut de TAssocFilesOptions.Default |
EPdfAssocFilesError | Levée par InjectAssociateFiles quand la source n’a pas de trailer ou de catalogue lisible, ou quand TargetPage est négatif ou ne désigne aucune page dans l’ordre de l’arbre des pages ; le flux de destination reste inchangé |
FPdfPades| Fonction | Rôle |
|---|---|
InjectPadesDssMarkers | Ajoute le matériel DSS de certificats, OCSP, CRL et VRI via une mise à jour incrémentale |
RenewPadesArchiveTimestamp | Ajoute un horodatage de document et rapporte le niveau d’archive résultant et les métadonnées d’horodatage |
ValidatePadesCompliance, ValidatePadesTrust | Valident la cardinalité des entrées de signature de premier niveau, l’exclusion exacte du ByteRange et du jeton Contents, l’intégrité cryptographique, la confiance, la révocation et les preuves d’horodatage |
AnalyzePadesSignatureRevisions | Classe les révisions ultérieures, les changements d’objets, les effets FieldMDP et les risques de modification |
BuildPadesEvidenceReport, BuildPadesEvidenceReportBytes | Construisent des preuves multi-signatures bornées à partir d’un flux ou d’une capture immuable existante des octets sources |
EvaluatePadesSignatureAlgorithm, InspectPadesSignatureAlgorithm | Inspectent les paramètres d’algorithmes CMS et de certificats et évaluent leur état de sécurité pris en charge, en appliquant le profil à courbes elliptiques de PDF 2.0 et les suites de signature RSA ETSI TS 119 312 |
VerifyCmsAlgorithmProtection | Vérifie l’attribut signé de protection d’algorithme CMS par rapport aux algorithmes d’empreinte et de signature du signataire |
SignPadesBytes | Ajoute une signature PAdES locale avec horodatage RFC 3161 facultatif |
PreparePadesRemoteSignature, CompletePadesRemoteSignature | Préparent et achèvent un flux de travail d’emplacement réservé de signature à distance lié à largeur fixe |
SavePadesRemoteSigningRequest, LoadPadesRemoteSigningRequest | Conservent ou restaurent les métadonnées de requête requises pour achever la signature à distance |
| Domaine | Types |
|---|---|
| Niveaux et validation | TPadesLevel (plUnknown, plNone, plB_B, plB_T, plB_LT, plB_LTA), TPadesValidationIssue, TPadesValidationIssues, TPadesValidationSourceStatus (pvssUnavailable, pvssOriginalBytes, pvssIncomplete), TPadesValidationResult |
| Cryptographie | TPadesCryptoStatus (pcsNotChecked, pcsValid, pcsInvalid, pcsUnsupported, pcsIndeterminate), TPadesSignatureAlgorithmFamily (psafUnknown, psafRsa, psafEcdsa, psafEd25519, psafEd448), TPadesSignatureAlgorithmInfo, TPadesSignatureValidation, TPadesSignatureValidations |
| Validation de confiance | TPadesTrustNetworkPolicy (ptnpOffline, ptnpOnline), TPadesTrustValidationStage, TPadesTrustValidationProgress, TPadesTrustValidationProgressEvent, TPadesTrustValidationOptions, TPadesTrustValidationAsyncStatus, TPadesTrustValidationCompletion, TPadesTrustValidationReply |
| Analyse des révisions | 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 |
| Rapports de preuves | TPadesHashStrings, TPadesObjectNumbers, TPadesEvidenceReportOptions, TPadesEvidenceMaterialKind, TPadesValidationMaterialEvidence, TPadesValidationMaterialEvidences, TPadesVriEvidence, TPadesVriEvidences, TPadesSignatureEvidence, TPadesSignatureEvidences, TPadesEvidenceReport |
| DSS et horodatages d’archive | TPadesDssMaterial, TPadesDssMaterials, TPadesDssIndexes, TPadesDssVri, TPadesDssVris, TPadesDssOptions, TPadesArchiveTimestampOptions, TPadesArchiveTimestampReport |
| Signature | TPadesSeedValueConstraint, TPadesSeedValueConstraints, TPadesSignatureFieldOptions, TPadesSignOptions, TPadesRemoteSignOptions, TPadesRemoteByteRange, TPadesRemoteSigningRequest |
TPadesValidationResult fournit le Level d’archive, l’ensemble Issues, SourceStatus, IntegrityStatus et le tableau Signatures par signature, avec IsCompliant, IsCompliantAt, IsCryptographicallyValid et DocTimeStampCount comptant les dictionnaires Document Time-stamp ; les enregistrements d’options fournissent un initialiseur statique Default
TPadesSignatureAlgorithmInfo rapporte Family, DigestAlgorithmOid, SignatureAlgorithmOid, PublicKeyAlgorithmOid, CurveOid, DigestParametersPresent, DigestParameterBits, SignatureParametersPresent, PublicKeyParametersPresent, PublicKeyParametersAreNamedCurve et PolicyStatus ; TPadesSignatureValidation ajoute les verdicts IsDocumentTimeStamp, CoveredRevisionLength, ByteRangeStatus, CmsSignatureStatus, AlgorithmPolicyStatus, SigningCertificateStatus, CertificateTrustStatus, QualifiedTrustStatus, RevocationStatus, TimeStampStatus, TimeStampSignatureStatus, TimeStampTrustStatus et TimeStampRevocationStatus, NativeSignatureError, NativeTrustError, SignerCertificateSha256, CertificateChainSha256 et les preuves imbriquées AlgorithmInfo et QualifiedTrust
TPadesTrustValidationStage parcourt ptvsStarting, ptvsReadingSource, ptvsParsingSignatures, ptvsCryptographicIntegrity, ptvsCertificateChain, ptvsAiaRetrieval, ptvsOcspRetrieval, ptvsCrlRetrieval, ptvsTimestampToken et ptvsCompleted ; TPadesTrustValidationProgress porte Stage, SignatureIndex, SignatureCount et Percent ; TPadesTrustValidationOptions sélectionne le NetworkPolicy, CheckRevocation, CheckTimeStamps, UrlRetrievalTimeoutMs, QualifiedTrustEvaluator, CancellationToken et OnProgress ; TPadesTrustValidationAsyncStatus vaut ptvasSuccess, ptvasCancelled ou ptvasFailure, et TPadesTrustValidationCompletion renvoie le Status asynchrone, la Validation, l’ErrorMessage, l’ErrorClassName et la CancellationReason
TPadesRevisionChangeKind classe prckCrossReference, prckSignature, prckValidationMaterial, prckFormField, prckAnnotation, prckPageContent, prckDocumentStructure, prckMetadata, prckActiveContent, prckDeletedObject, prckCompressedObject et prckUnknown ; TPadesRevisionRisk couvre prrMalformedRevisionChain, prrDuplicateObjectDefinition, prrUnreferencedObjectDefinition, prrSignatureObjectRedefined, prrPageContentChanged, prrDocumentStructureChanged, prrActiveContentAdded, prrFieldMdpUnresolved, prrCompressedObjectUnresolved, prrCoveredRevisionNotFound et prrResourceLimitExceeded
TPadesRevisionObjectChange rapporte RevisionIndex, ObjectNumber, Generation, Offset, ObjectStreamNumber, ObjectStreamIndex, Kind, Decision, IsAuthoritative et IsRedefinition ; TPadesSignatureRevisionAnalysis ajoute SignatureIndex, SignatureObjectNumber, CoveredRevisionLength, CoveredRevisionIndex, DocMdpPermission, FieldMdpAction, FieldNames, LaterRevisionCount, Status, Risks et Changes ; TPadesRevisionAnalysisReport agrège SourceStatus, RevisionCount, SignatureCount, Status, Risks, Signatures et ErrorMessage
TPadesEvidenceMaterialKind sélectionne pemkCertificate, pemkOcsp ou pemkCrl ; TPadesValidationMaterialEvidence rapporte Kind, ObjectNumber, StoredLength et Sha256 pour chaque flux stocké ; TPadesVriEvidence est indexé par Key et ObjectNumber et liste CertificateObjectNumbers, OcspObjectNumbers et CrlObjectNumbers
TPadesSignatureEvidence capture SignatureIndex, SignatureObjectNumber, IsDocumentTimeStamp, SubFilter, ByteRangeA, ByteRangeB, ByteRangeC, ByteRangeD, ContentsSha256, VriKey, SignaturePolicyOid, CommitmentTypeOid, HasMatchingVri, VriEvidenceIndex, TimeStampTokenSha256, TimeStampPolicyOid, TimeStampGenTime, TimeStampNonce, NativeFactsAvailable, NativeReason, NativeTime, NativeDocMdpPermission et les Validation et Revision imbriquées
TPadesEvidenceReport agrège SourceLength, PdfiumSignatureCount, DssCertificateCount, DssOcspCount, DssCrlCount, DssVriCount, StoredValidationBytes, IsTruncated, Validation, RevisionAnalysis, Signatures, ValidationMaterials et VriEntries, borné par TPadesEvidenceReportOptions avec TrustOptions, MaxSourceBytes, MaxSignatures, MaxRevisionChangesPerSignature, MaxValidationMaterials, MaxStoredValidationBytes et MaxVriEntries
TPadesDssMaterial stocke une charge utile DerBytes de certificat, OCSP ou CRL ; TPadesDssVri sélectionne le matériel au niveau du document via SignatureContents, CertIndexes, OcspIndexes et CrlIndexes ; TPadesDssOptions accepte Certs, Ocsps, Crls, Vris, EsicExtensionLevel et IncludeVri ; TPadesArchiveTimestampOptions transporte TsaUrl, Nonce, ContentsSize, UpdateDss et le DssOptions imbriqué ; TPadesArchiveTimestampReport rapporte SourceLevel, ResultLevel, PreviousDocTimeStampCount, ResultDocTimeStampCount, SourceLength, ResultLength, DssUpdated, GenTime, PolicyOid et Nonce
TPadesSeedValueConstraint contraint psvcFilter, psvcSubFilter, psvcVersion, psvcReasons, psvcLegalAttestation, psvcAddRevocationInfo ou psvcDigestMethod ; TPadesSignatureFieldOptions contraint FieldName, RequiredSeedValues, Reasons, LegalAttestations, AcceptableCertificates, CertificateRequired, LockAction, LockFields et CertificationPermission ; TPadesSignOptions transporte CertificateThumbprint, PaddingScheme, Reason, LegalAttestation, Location, ContactInfo, Name, SigningTimeUtc, CommitmentTypeOid, ContentsSize, Level, TsaUrl, Nonce, le groupe SignaturePolicyOid, SignaturePolicyHash, SignaturePolicyUri et SignaturePolicyDocument, et le FieldOptions imbriqué ; TPadesRemoteSignOptions reflète le sous-ensemble adapté à la signature à distance Reason, LegalAttestation, Location, ContactInfo, Name, SigningTimeUtc, CommitmentTypeOid, ContentsSize et FieldOptions ; TPadesRemoteSigningRequest lie FormatVersion, PreparedFingerprint, DocumentDigest, ByteRange, ContentsHexOffset et ContentsSize
TPadesTrustValidationOptions.QualifiedValidationTime sélectionne l’heure d’évaluation de l’historique de service de la liste de confiance, zéro sélectionnant l’heure courante
TPadesSignatureValidation transporte aussi RevocationReason: TPdfCmsRevocationReason, NativeRevocationError: Cardinal, TimeStampRevocationReason: TPdfCmsRevocationReason et NativeTimeStampRevocationError: Cardinal. Les diagnostics de signature proviennent de sa vérification CMS détachée ; les diagnostics d’horodatage proviennent de la vérification du token attaché, Document Time-stamps compris, et ne remplacent jamais ceux de la signature
Par défaut, les raisons valent pcrrNone et les erreurs natives zéro quand la révocation est désactivée ou que la vérification CMS correspondante n’est pas atteinte. Ces valeurs par défaut ne valent pas verdict de succès ; inspectez RevocationStatus et TimeStampRevocationStatus. ValidatePadesTrustAsync conserve ces champs dans son résultat de complétion, et TPadesSignatureEvidence.Validation les conserve pour TPadesEvidenceReport.ToJson et ToCsv
Les champs de diagnostic sont ajoutés en fin de l’enregistrement public TPadesSignatureValidation, dont la taille augmente en conséquence. Recompilez contre les unités mises à jour les applications et paquets qui échangent cet enregistrement ou des enregistrements le contenant ; les binaires compilés auparavant ne partagent pas la nouvelle disposition de l’enregistrement
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;
| Type public | Rôle |
|---|---|
TPdfAConformance | Partie PDF/A et niveau de conformité détectés ou demandés |
TPdfAValidationIssue, TPdfAValidationIssues | Constats de préflight individuels et leur représentation en ensemble |
TPdfANameArray | Liste de chaînes utilisée par les constats de validation par noms |
TPdfAMetadataField, TPdfAMetadataFields | Les huit correspondances Info-vers-XMP de la Table 1 d’ISO 19005-1 (pamfTitle, pamfAuthor, pamfSubject, pamfKeywords, pamfCreator, pamfProducer, pamfCreationDate, pamfModDate) et leur représentation en ensemble |
TPdfAMetadataValues | Valeurs Info Unicode Title, Author, Subject, Keywords, Creator, Producer, CreationDate et ModDate avec la présence des clés suivie par Present indépendamment du texte vide |
TPdfAMetadataState, TPdfAMetadataComparison, TPdfAMetadataComparisons, TPdfAMetadataReport | Preuves d’équivalence typées par champ avec les états pamsNotRequired, pamsEquivalent, pamsXmpMissing, pamsXmpTypeMismatch, pamsValueMismatch, pamsInvalidInfoDate, pamsInvalidXmpDate, par champ Field, State, InfoValue et XmpValue, au niveau du rapport HasXmpPacket, XmpParseError, MismatchFields et le tableau Comparisons, et le statut agrégé |
TPdfAValidationResult | Conformité, l’ensemble Issues et le résultat IsCompliant |
TPdfASaveOptions | Métadonnées, identifiants, octets de profil ICC dans IccProfileData, OutputIntent et réglages de conformité avec valeurs Default |
InjectPdfAMarkers utilise une recherche de dernière révision partielle et une copie bornée de la source pour les mises en page classiques, xref-stream, hybrides et object-stream valides, tout en conservant l’analyseur de compatibilité pour les données de références croisées non prises en charge ou mal formées
La révision incrémentale préserve les générations racine et Info, le style xref source, les identifiants de trailer, le comportement de refus de chiffrement et la sémantique de rétrogradation de niveau A
FPdfPdfeprocedure InjectPdfEMarkers(Source: TStream; Dest: TStream; const Options: TPdfESaveOptions);
function ValidatePdfECompliance(Source: TStream): TPdfEValidationResult;
| Type public | Rôle |
|---|---|
TPdfEConformance | Conformité PDF/E détectée ou demandée |
TPdfEValidationIssue, TPdfEValidationIssues | Constats structurels et de contenu PDF/E, y compris le /XFA AcroForm de premier niveau et le /NeedAppearances true indirect ; les champs AcroForm ordinaires et les actifs d’ingénierie incorporés restent permis |
TPdfEValidationResult | Conformité, l’ensemble Issues et le résultat IsCompliant |
TPdfESaveOptions | Version PDF/E, métadonnées, identifiants de document et valeurs par défaut |
FPdfPdfr| Fonction | Rôle |
|---|---|
InjectPdfRMarkers | Écrit l’identification PDF/R et les structures catalog et Info restreintes |
ValidatePdfRCompliance | Valide un flux avec les limites de document raster par défaut |
ValidatePdfRComplianceWithOptions | Valide un flux avec les exigences de résolution, de géométrie, de bande et de chiffrement choisies par l’appelant |
ValidatePdfRPageFacts | Valide une géométrie de pages, des comptages d’objets, des caractéristiques d’images et des filtres déjà collectés |
Les types publics sont TPdfRConformance, TPdfRValidationIssue, TPdfRValidationIssues, TPdfRValidationResult avec son ensemble Issues et son résultat IsCompliant, TPdfRStringArray, TPdfRValidationOptions, TPdfRPageFacts et TPdfRSaveOptions
TPdfRValidationOptions règle MinimumResolutionDpi, MaximumResolutionDpi, GeometryTolerancePoints, RequireFullPageStrip et RequireEncryptedPdf20Profile ; TPdfRSaveOptions porte StripInfoOptionalEntries et StripCatalogOptionalEntries pour effacer les entrées Info ou catalogue source que §6.4.3 ou la liste blanche §6.3 rejetteraient sinon ; TPdfRPageFacts enregistre PageNumber, MediaWidth, MediaHeight, les bornes ImageLeft, ImageBottom, ImageRight et ImageTop, ImageCount, TextObjectCount, PathObjectCount, FormObjectCount et ShadingObjectCount, la géométrie raster PixelWidth, PixelHeight, HorizontalDpi, VerticalDpi et BitsPerPixel, plus ColorSpace et la chaîne Filters pour chaque page
FPdfPdfua| Fonction | Rôle |
|---|---|
InjectPdfUaMarkers | Ajoute les marqueurs d’identification PDF/UA, de langue, de titre, MarkInfo, de préférences de visionneuse et XMP |
ValidatePdfUaCompliance | Valide les marqueurs et la structure PDF/UA-1 ou PDF/UA-2, en utilisant facultativement les octets d’origine pour les vérifications XMP |
PdfUaIsStandardStructType | Teste un nom de type de structure par rapport à l’ensemble standard ISO, y compris les titres numérotés |
PdfReadRoleMapPairs | Extrait les clés et valeurs RoleMap directes ou indirectes dans des tableaux parallèles |
Les types publics sont TPdfUaConformance, TPdfUaValidationIssue, TPdfUaValidationIssues, TPdfUaValidationResult avec son ensemble Issues et son résultat IsCompliant, TPdfUaSaveOptions et TPdfUaNameArray
L’unité PDFium expose également TPdfUaLanguageSource, TPdfUaLanguageContentKind, TPdfUaLanguageResolution, TPdfUaLanguageSpan, TPdfUaLanguageSpans, TPdfUaLanguageCoverageOptions et TPdfUaLanguageCoverageReport pour des preuves bornées de langues effectives
TPdfUaUnicodeObjectCoverage, TPdfUaUnicodeObjectCoverages, TPdfUaUnicodeCoverageOptions et TPdfUaUnicodeCoverageReport fournissent des preuves bornées d’extraction Unicode directe et d’ActualText par objet
ValidatePdfUaPageContentTagging recoupe les marques natives d’objets de page avec les MCIDs de structure par page et signale à la fois le contenu réel non étiqueté et le contenu Artifact exposé dans l’arbre de structure
TPdfUaSaveOptions.Default sélectionne les valeurs par défaut PDF/UA-1, tandis que TPdfUaSaveOptions.PdfUa2 sélectionne le profil PDF/UA-2
TPdfUaSaveOptions transporte DocumentTitle, Language, les métadonnées Author, Subject, Keywords, Creator et Producer, CreationDate et ModDate, les UUID DocumentId et InstanceId, les identifiants Part, Revision, Amd et Corr, et les commutateurs EnsureMarkInfo et EnsureDisplayDocTitle pour injecter les entrées de catalogue requises lorsque la source en est dépourvue
FPdfPdfvtprocedure InjectPdfVTMarkers(Source: TStream; Dest: TStream; const Options: TPdfVTSaveOptions);
function ValidatePdfVTCompliance(Source: TStream): TPdfVTValidationResult;
function ReadPdfVTDPartEvidence(Source: TStream): TPdfVTDPartEvidence;
| Type public | Rôle |
|---|---|
TPdfVTConformance, TPdfVTTrappedState | Conformité PDF/VT et sélection d’état trapped PDF/X hérité parmi ptvUnspecified, ptvTrue et ptvFalse, avec ptvUnspecified normalisé en ptvFalse à l’écriture |
TPdfVTValidationIssue, TPdfVTValidationIssues, TPdfVTValidationResult | Constats de validation, l’ensemble Issues, la conformité et le résultat IsCompliant |
TPdfDpmEntry, TPdfDpmEntries, TDpmTarget | Entrées Document Part Metadata avec Name, Value et IsNestedDict, placées à la cible dptRoot ou dptLeaf |
TPdfVTDPartEvidence | Hiérarchie bornée de parties de document et preuves de condition d’impression avec PageCount, RecordLevel et RecipientRecordCount |
TPdfVTSaveOptions | Base PDF/X, octets de profil ICC dans IccProfileData, OutputIntent via OutputCondition, OutputConditionIdentifier, RegistryName et OutputIntentInfo, état Trapped, métadonnées, identifiants, DPart, DPM via DpmEntries placées par DpmTarget et réglages par défaut |
FPdfPdfxprocedure InjectPdfXMarkers(Source: TStream; Dest: TStream; const Options: TPdfXSaveOptions);
function ValidatePdfXCompliance(Source: TStream): TPdfXValidationResult;
| Type public | Rôle |
|---|---|
TPdfXConformance, TPdfXTrappedState | Variante PDF/X et sélection d’état trapped du dictionnaire Info parmi ptUnspecified, ptTrue, ptFalse et ptUnknown, avec ptUnspecified omettant l’entrée |
TPdfXValidationIssue, TPdfXValidationIssues, TPdfXValidationResult | Constats de validation, l’ensemble Issues, la conformité et le résultat IsCompliant |
TPdfXSaveOptions | Conformité, octets de profil ICC dans IccProfileData, OutputIntent via OutputCondition, OutputConditionIdentifier, RegistryName et OutputIntentInfo, état Trapped, métadonnées, identifiants et valeurs par défaut |
TPadesRsaPssParameters expose Valid, HashAlgorithmOid, MaskGenAlgorithmOid, MaskGenHashAlgorithmOid, SaltLength et TrailerField ; TPadesSignatureAlgorithmInfo.SignaturePss et PublicKeyPss rapportent séparément les contraintes CMS et SPKI
InspectPadesSignatureAlgorithm exige les paramètres PSS CMS, accepte une SEQUENCE vide avec les valeurs RFC par défaut et refuse le DER malformé, champs explicites répétés ou désordonnés, encodages d’entier non pris en charge et blocs trop grands
EvaluatePadesSignatureAlgorithm exige que le condensat CMS corresponde au hash PSS ; une clé réservée à PSS refuse PKCS #1 v1.5 ; les clés restreintes exigent des hash, hash MGF et trailer correspondants, avec un sel de signature au moins égal au minimum de la clé
Un autre hash MGF1 pris en charge peut être valide ; les algorithmes inconnus sont Unsupported, les hash MGF faibles Indeterminate et les hash cassés Invalid
Les blocs sont limités à 16 KiB et les valeurs sel/trailer sont des entiers de 32 bits non négatifs ; cette politique structurelle complète le backend crypto sans prouver la solidité de la clé RSA ni la validité EMSA-PSS
Pour construire manuellement une preuve d’algorithme, renseignez SignaturePss et SignatureParametersPresent plutôt que le seul OID PSS
Les méthodes TPdf.SaveAsPdfA, SaveAsPdfE, SaveAsPdfR, SaveAsPdfUa, SaveAsPdfVT, SaveAsPdfX et PAdES fournissent des enveloppes d’instance de document autour de ces unités