Beveiligings- en ondertekeningsfouten
In een oogopslag
Sectie met titel “In een oogopslag”Deze pagina documenteert de beveiligingsdomein-uitzonderingen in de namespace-boom
NextPDF\Security. Elke vermelding noemt de klasse, geeft aan wanneer hij wordt opgeworpen, somt de
velden op die zijn getContext() teruggeeft, en geeft een herstelstap.
De meeste van deze klassen breiden SecurityException uit, die NextPdfException uitbreidt
en ContextAwareExceptionInterface implementeert. Dat betekent dat getContext(): array
gestructureerde, secret-vrije diagnostiek teruggeeft die je kunt routeren naar logging- of
application performance monitoring (APM)-pipelines. Vang SecurityException op om
elke beveiligingsdomein-storing in één blok te trappen; vang een specifieke subklasse op wanneer
je de getypeerde payload ervan nodig hebt.
Enkele klassen in deze boom breiden RuntimeException rechtstreeks uit in plaats van
SecurityException. Die zijn hieronder gemarkeerd; ze stellen getContext() niet beschikbaar,
en de meeste zijn gedocumenteerd als interne control-flow-signalen die je niet zou moeten verwachten
op te vangen in applicatiecode.
Context-veld-conventie
Sectie met titel “Context-veld-conventie”| Aspect | Gedrag |
|---|---|
| Basiscontract | NextPdfException::getContext() geeft [] terug; subklassen overschrijven het. |
| Secret-hygiëne | Berichten en context laten ruw sleutelmateriaal, plaintext, PIN’s en initialization vector (IV)-bytes weg. Sleutels worden alleen als een fingerprint-prefix aan de oppervlakte gebracht. |
SecurityException | Abstracte basis; draagt geen eigen velden. Subklassen definiëren de payload. |
Basistype
Sectie met titel “Basistype”SecurityException
Sectie met titel “SecurityException”- Wanneer opgeworpen. Nooit rechtstreeks opgeworpen; het is de abstracte basis voor het
beveiligingsdomein. Hij bestaat zodat één enkel
catch (SecurityException $e)-blok authenticated-encryption-integriteitsstoringen, nonce-reuse-verdedigingen, de PDF/A-versus-versleuteling-binding, sleutelbeheerfouten en PKI-storingen kan trappen. - Contextvelden. Geen eigen. Erft de lege standaard van
NextPdfException; subklassen vullen de payload. - Herstel. Vang de concrete subklasse op voor actiegerichte afhandeling, of
SecurityExceptionvoor grove beveiligingsincident-routering.
Versleutelings- en authenticated-encryption-fouten
Sectie met titel “Versleutelings- en authenticated-encryption-fouten”Deze worden opgeworpen door de AES-GCM (Galois/Counter Mode)-encryptor en de PDF/A- guard. Voor symptoom-eerst-begeleiding, zie Versleuteling en machtigingen.
DecryptionFailedException
Sectie met titel “DecryptionFailedException”- Wanneer opgeworpen. Een authenticated-encryption with associated data (AEAD)- ontsleuteling faalt om een niet-manipulatie-reden: afgekapte ciphertext, een ontbrekende IV, of een verkeerde sleutel geleverd op de API-grens, waar er niet genoeg materiaal was om de integriteitscontrole daadwerkelijk uit te voeren. Dit is een configuratie- of transportfout, geen beveiligingsincident.
- Contextvelden.
algorithm(bijvoorbeeldAES-256-GCM),reason(bijvoorbeeldciphertext shorter than IV+tag). - Herstel. Verifieer dat de ciphertext, IV en sleutel compleet en correct
geframed zijn; behandel dit niet als manipulatie. Vergelijk met
TamperedDataException.
TamperedDataException
Sectie met titel “TamperedDataException”- Wanneer opgeworpen. De AEAD-authenticatie-tag faalt de verificatie. De tag dekt
ciphertext plus associated authenticated data (AAD); als een van beide na de versleuteling werd
gewijzigd, geeft de onderliggende
openssl_decrypt()falseterug. Dit aparte subtype laat je een waarschuwing op beveiligingsincident-niveau aan de oppervlakte brengen in plaats van een framingfout. - Contextvelden.
algorithm,ciphertext_length(lengte van de afgewezen ciphertext, exclusief IV en tag). - Herstel. Behandel als manipulatie of een verkeerde sleutel/IV. Probeer niet blindelings opnieuw; onderzoek de bron van de ciphertext. Per ISO/TS 32003:2023 §5.2 en NIST SP 800-38D §6.5 betekent een gefaalde tagcontrole dat de data niet authentiek is.
NonceReuseException
Sectie met titel “NonceReuseException”- Wanneer opgeworpen. AES-GCM wordt gevraagd tweemaal te versleutelen met hetzelfde sleutel-en-IV- paar. De encryptor verdedigt met een per-instantie monotone teller en, als defense in depth, een runtime hash-set van elk uitgevoerd (key-fingerprint, IV)- paar. Omdat de teller botsingen per constructie uitsluit, is dit afvuren een critical-priority bug-indicator die nooit in productie zou mogen voorkomen. Het hergebruiken van een sleutel/IV-paar compromitteert de gehele keystream (ISO/TS 32003:2023 §5.2 NOTE 2; NIST SP 800-38D §8.3).
- Contextvelden.
key_fingerprint_prefix(eerste 8 hex-tekens van SHA-256(key)),iv_length(altijd 12 voor ISO/TS 32003),reason(hashset-collisionofcounter-rollover, ter onderscheiding van een teller-verslaande refactor-bug van de 2^63-teller-trip-wire), eniv_fixed_field_hex(het IV fixed field, alleen aanwezig indien geleverd, gerapporteerd onder zijn eigen sleutel en nooit verkeerd gelabeld als de key fingerprint). - Herstel. Breek onmiddellijk af en roteer de sleutel. Dien een defect-rapport in; dit duidt op een bug in de encryptor, niet op slechte aanroeperinvoer.
GcmInvocationLimitExceededException
Sectie met titel “GcmInvocationLimitExceededException”- Wanneer opgeworpen. Een opt-in NIST SP 800-38D §8.3 safety-of-use-aanroepaantal
wordt bereikt voor een gegeven AES-GCM-sleutel. Dit is een defense-in-depth-telemetriehaak
voor aanroepers die de spec-aanbevolen grens (rond 2^32
aanroepen per sleutel) eerder willen afdwingen dan de architecturale limieten binnen de
encryptor. Hij vuurt niet standaard af; alleen de helper
assertWithinSafetyBound()werpt hem op. - Contextvelden.
key_fingerprint_prefix,invocation_count(huidigencrypt()-aantal, op of boven de limiet),invocation_limit(de opt-in- grens). - Herstel. Roteer de documentsleutel (construeer een verse encryptor met nieuw sleutel- materiaal) voordat de cumulatieve botsing- en vervalsingswaarschijnlijkheid niet langer verwaarloosbaar is, of breid het aanroeperbeleid uit om voortgezette service te weigeren.
IncompatiblePdfAModeException
Sectie met titel “IncompatiblePdfAModeException”- Wanneer opgeworpen. Een versleutelingsbewerking wordt geprobeerd op een PDF/A-getagd
document. De PDF/A-familie (PDF/A-2, PDF/A-3, PDF/A-4) verbiedt uniform
versleuteling: per ISO 19005 §6.1.3 mag de
Encrypt-sleutel niet aanwezig zijn in de trailer, en ISO 19005-4:2020 Annexes A en B erven dit zonder wijziging. Er is geen toegestane combinatie van PDF/A en versleuteling. - Contextvelden.
pdfa_mode(bijvoorbeeldpdfa4,pdfa3),encryption_operation(de afgewezen aanroep, bijvoorbeelduseAesGcm). - Herstel. Om een versleuteld document te produceren, laat de
enablePdfA()-aanroep weg; om een archiveringsdocument te produceren, laat de versleutelingsaanroep weg. Zie PDF/A- en PDF/UA-validatie.
Crypto-policy-handhaving
Sectie met titel “Crypto-policy-handhaving”CryptoPolicyViolationException
Sectie met titel “CryptoPolicyViolationException”- Wanneer opgeworpen. Een geconfigureerd crypto-beleid wijst een algoritme, sleutelsterkte
of cipher af die is geselecteerd door een core-ondertekenings-, versleutelings- of hashing-bewerking. Het is
de fail-closed-grens voor compliance-handhaving (bijvoorbeeld FIPS 140-2/3,
eIDAS, of aangepast enterprise-beleid) en wordt opgeworpen door
CryptoPolicyEnforcervoordat enige handtekening of ciphertext wordt geproduceerd, zodat een beleidsovertredende bewerking nooit een niet-goedgekeurd artefact kan uitvoeren. Te onderscheiden van een nauwe OpenSSL-bewerkings- storing en van een ondertekenings-primitieve-storing: dit is een beleidsafwijzing van een overigens geldig verzoek. Afgestemd op NIST SP 800-131A Rev. 2 en ISO/IEC 19790:2025 §7. - Contextvelden.
policy(beleidsnaam, bijvoorbeeldFIPS 140-3 Strict),category(hash,signature,encryption, ofkey-strength),item(het afgewezen item, bijvoorbeeld een object identifier (OID), ciphernaam, ofrsa/1024),reason. - Herstel. Selecteer een algoritme, sleutellengte of cipher die het genoemde beleid goedkeurt, of pas het beleid aan als je het bezit. Route de gestructureerde context naar het gedocumenteerde compliance-runbook.
Sleutelbeheer
Sectie met titel “Sleutelbeheer”Twee gelijknamige klassen bestaan. Ze delen de SecurityException-wortel zodat één
catch (SecurityException $e)-blok beide trapt, maar ze dragen verschillende payloads.
Importeer via de fully qualified name wanneer je een specifieke vorm nodig hebt.
KeyManagementException (levenscyclus: NextPDF\Security\Exception)
Sectie met titel “KeyManagementException (levenscyclus: NextPDF\Security\Exception)”- Wanneer opgeworpen. Een sleutelbeheerbewerking faalt voordat de sleutel wordt geconsumeerd door een sign- of encrypt-primitieve: Privacy-Enhanced Mail (PEM)-, PKCS#12- of PKCS#11- sleutelparse-storingen; key-derivation (HKDF, PBKDF2, scrypt)-storingen; AES Key Wrap (RFC 3394)-afwijzing op een verkeerde key-encryption key; een hardware security module (HSM) die misvormde Distinguished Encoding Rules (DER) teruggeeft; of een Ed25519-seed- lengte-mismatch.
- Contextvelden.
operation(bijvoorbeeldload_pem,kek_derive,key_wrap),key_type(bijvoorbeeldRSA,EC-P256,Ed25519,AES-256),reason. Ruw sleutelmateriaal wordt nooit opgenomen. - Herstel. Inspecteer de genoemde bewerking en het sleuteltype, corrigeer het bron-sleutel- materiaal of de derivation-invoer, en probeer opnieuw.
KeyManagementException (ondertekeningspad: NextPDF\Security\Signature\Exception)
Sectie met titel “KeyManagementException (ondertekeningspad: NextPDF\Security\Signature\Exception)”- Wanneer opgeworpen. Een signer-provider stuit op een sleutelbeheerfout: de gevraagde
sleutelversie is onbekend, uitgeschakeld, gepland voor vernietiging, mist ondertekenings-
machtiging, of is anderszins onbruikbaar. Dit is wat
RsaPssSignerenLocalKeySignerProvideropwerpen bij live sleutelstoringen. Benoemde constructors:unknownKeyVersion()enkeyVersionDisabled(). - Contextvelden.
providerId,keyVersion,reason. Accessors:providerId(),keyVersion(),reason(). - Herstel. Roteer of her-permissieer de sleutel, of selecteer een bruikbare sleutelversie,
en probeer dan opnieuw. Te onderscheiden van
SignatureFailedException, die signaleert dat de ondertekenings-primitieve zelf faalde.
Ondertekening
Sectie met titel “Ondertekening”Voor symptoom-eerst-begeleiding over onbereikbare niveaus en ontbrekende capabilities, zie Handtekening- en tijdstempelstoringen.
SignatureFailedException (R4-13: NextPDF\Security\Exception)
Sectie met titel “SignatureFailedException (R4-13: NextPDF\Security\Exception)”- Wanneer opgeworpen. Een cryptografische ondertekeningsbewerking faalt: een RSA-, ECDSA- of
Ed25519-sign-primitieve geeft
falseof uitvoer van verkeerde lengte terug; een HSM- of PKCS#11- token reageert met een non-success-status; Cryptographic Message Syntax (CMS)-SignedData-assemblage faalt op een misvormd certificaat of keten; of een Ed25519- round-trip-zelfverificatie faalt. Nieuwe code zou de voorkeur moeten geven aan dit R4-13-subtype boven de legacy PAdES-gekoppelde handtekening-uitzondering. - Contextvelden.
operation(bijvoorbeeldsign,verify,build_cms),algorithm(bijvoorbeeldrsa-pkcs1v15-sha256,ed25519),reason. Accessors:getOperation(),getAlgorithm(),getReason(). - Herstel. Lees de bewerking en het algoritme, corrigeer de invoer (sleutel, certificaatketen, of backend-beschikbaarheid), en probeer opnieuw. Afgestemd op de fail-closed sleutelafhandelingshouding van ETSI EN 319 142-1.
SignatureFailedException (SPI: NextPDF\Security\Signature\Exception)
Sectie met titel “SignatureFailedException (SPI: NextPDF\Security\Signature\Exception)”- Wanneer opgeworpen. Een
SignerProviderInterface-implementatie kan een ondertekeningsbewerking niet voltooien om welke reden dan ook die niet als sleutelbeheer wordt gecategoriseerd: backend-driverfout, misvormd sleutelmateriaal, of onherstelbare HSM-I/O. Dit is de catch-all voor het fail-closed-ondertekeningscontract, waarbij elke primitieve opwerpt bij storing in plaats vannull,falseof een lege string terug te geven. Benoemde constructor:forProvider(). - Contextvelden.
providerId,reason. Accessors:providerId(),reason(). - Herstel. Inspecteer de provider-id en reden, corrigeer de provider-backend of
het sleutelmateriaal, en probeer opnieuw. Vertak op
KeyManagementExceptionversus dit type om “de sleutel is slecht” te scheiden van “de primitieve faalde”.
SignatureLevelUnreachableException
Sectie met titel “SignatureLevelUnreachableException”- Wanneer opgeworpen. Het gevraagde PAdES-conformiteitsniveau kan niet worden gehonoreerd onder
de huidige runtime-infrastructuur (meestal een ontbrekende timestamp authority voor
B-T en hoger) en de aanroeper heeft geen toestemming gegeven om te degraderen. De standaard
is fail-closed: de engine weigert in plaats van stilletjes een lager niveau te produceren
terwijl hij het hogere adverteert, wat een regressie op eIDAS-niveau zou zijn.
Afgestemd op ETSI EN 319 142-1 §6. Merk op dat deze klasse
NextPdfExceptionrechtstreeks uitbreidt (nietSecurityException). - Contextvelden.
requestedLevel,highestAchievableLevel,reason. Accessors:requestedLevel(),highestAchievableLevel(),reason(). - Herstel. Lees
reasonom de ontbrekende infrastructuur te identificeren en lever die (configureer bijvoorbeeld een timestamp authority), of geefallowDegradation: truemee aanPadesOrchestratorom opzettelijk het hoogst haalbare niveau te accepteren.
SignerProviderNotFoundException
Sectie met titel “SignerProviderNotFoundException”- Wanneer opgeworpen.
SignerProviderRegistry::get()wordt gevraagd om een provider-id die niet geregistreerd is. Implementeert PSR-11NotFoundExceptionInterface, zodat de registry voldoet aan het PSR-11-container-contract. Benoemde constructor:forId(). Deze klasse breidtRuntimeExceptionuit en steltgetContext()niet beschikbaar. - Contextvelden. Geen. De niet-geregistreerde id verschijnt in het bericht.
- Herstel. Registreer de provider onder de verwachte id voordat je hem opvraagt, of corrigeer de id die je aan de registry meegeeft.
Hashing (SHAKE256)
Sectie met titel “Hashing (SHAKE256)”Deze breiden RuntimeException uit en stellen getContext() niet beschikbaar. SHAKE256 is de
SHA-3 extendable-output function die door sommige ISO/TS 32001-paden wordt vereist.
Shake256NotAvailableException
Sectie met titel “Shake256NotAvailableException”- Wanneer opgeworpen. Bij digest-tijd, wanneer de geselecteerde provider niet aan het
verzoek kan voldoen. Benoemde constructors:
noBackend()(geen werkende SHAKE256-backend op deze host, over alle geprobeerde tiers) enffiCallFailed()(een FFI-gebonden OpenSSL EVP-aanroep gaf een non-success-status terug, bijvoorbeeld van een gestripte libcrypto- build). - Contextvelden. Geen. Het bericht noemt de geprobeerde tiers of het gefaalde symbool.
- Herstel. Installeer
ext-ffimet OpenSSL 3.x aanwezig, of upgrade naar een PHP- build dieshake256inhash_algos()blootstelt. Een userland-Keccak-fallback wordt opzettelijk niet meegeleverd.
Shake256ProviderNotAvailableException
Sectie met titel “Shake256ProviderNotAvailableException”- Wanneer opgeworpen. Vanuit een SHAKE256-provider-constructor wanneer de capability-probe
faalt, zodat de provider niet kan worden geïnstantieerd. Het is een control-flow-signaal: de
provider-registry vangt het op, registreert de tier-label en probeert de volgende tier.
Het zou nooit in applicatiecode mogen ontsnappen. Benoemde constructor:
forTier(). - Contextvelden. Geen. Het bericht noemt de tier en de reden.
- Herstel. Niet rechtstreeks door de aanroeper actiegericht; als de gehele tier-keten is
uitgeput, brengt de registry in plaats daarvan
Shake256NotAvailableException::noBackend()aan de oppervlakte, die de operator-gerichte oplossing meedraagt.
Document-MAC-integriteit (ISO/TS 32004)
Sectie met titel “Document-MAC-integriteit (ISO/TS 32004)”Deze dekken de ISO/TS 32004 document-niveau message authentication code (MAC),
opgeslagen onder /AuthCode. Beide breiden NextPdfException uit en overschrijven
getContext().
DocumentMacTokenException
Sectie met titel “DocumentMacTokenException”- Wanneer opgeworpen. Fail-closed, door de MAC-token-reader, wanneer een CMS-
AuthenticatedData-MAC-token structureel misvormd is of een algoritme declareert buiten de overeengekomen ISO/TS 32004-set. Benoemde constructors:malformed()enalgorithmMismatch(). Gemarkeerd als@internal. - Contextvelden.
status(deDocumentMacVerificationStatus-waarde, ofwelMalformedTokenofAlgorithmMismatch). Publieke readonly property:$status. - Herstel. Behandel het document als niet geverifieerd. Een misvormd token of een algoritme buiten de overeengekomen set betekent dat de MAC geen vertrouwen kan vestigen; ga niet verder alsof de inhoud beschermd is.
DocumentMacVerificationException
Sectie met titel “DocumentMacVerificationException”- Wanneer opgeworpen. Fail-closed, wanneer een document-niveau-MAC-verificatie geen
vertrouwde staat kan bereiken: een ontbrekende of misvormde
/AuthCode, een algoritme buiten de overeengekomen set, een unwrap-storing, of een MAC-mismatch (manipulatie). Deverify()van de verifier geeft een expliciet resultaat terug voor vertakking; dit is de exception-flow- tegenhanger die wordt opgeworpen doorassertVerified()zodat “vertrouw de inhoud”-code nooit voorbij een ongeverifieerd document kan komen. Benoemde constructor:fromResult(). - Contextvelden.
status(deDocumentMacVerificationStatus-waarde). Publieke readonly property:$status. - Herstel. Vertrouw de documentinhoud niet. Inspecteer
statusom een manipulatie (MAC-mismatch) te onderscheiden van een configuratieprobleem (ontbrekende of misvormde/AuthCode, algoritme-mismatch).
PKI-padvalidatie (RFC 5280)
Sectie met titel “PKI-padvalidatie (RFC 5280)”Deze dekken RFC 5280 certification-path-validatie. Het basistype en zijn subklassen zijn fail-closed.
PkiPathValidationException
Sectie met titel “PkiPathValidationException”- Wanneer opgeworpen. Een strict-modus-storing van de RFC 5280-padvalidator. Het is
de niet-finale basis voor nauwere subklassen (
ChainLengthExceededException,UnsupportedExtensionException), zodat handlers die dit type opvangen ook die opvangen via Liskov-substitutie. BreidtSecurityExceptionuit. - Contextvelden. Overschrijft
getContext()niet (erft de lege standaard). Draagt de gestructureerde redenen in de bevroren publieke readonly array- property$reasons(een niet-lege lijst van rule-name plus description strings). - Herstel. Lees
$reasonsom de falende regel te identificeren, corrigeer de certificaat- keten, en hervalideer. Vang dit type op om elke padvalidatiestoring uniform af te handelen.
ChainLengthExceededException
Sectie met titel “ChainLengthExceededException”- Wanneer opgeworpen. De padvalidator wordt gevraagd een keten te doorlopen waarvan de lengte
het geconfigureerde plafond overschrijdt. De cap wordt afgedwongen voordat enig parsen begint,
zodat een kwaadwillende leverancier de validator niet kan dwingen tot kwadratisch werk of
resources kan uitputten met een willekeurig diepe keten. Het standaardplafond van 10
volgt het PKIX-CMP-profiel (RFC 4210 §5.3.18); echte ketens passen in 5 tot 6
vermeldingen. Subklasse van
PkiPathValidationException. - Contextvelden. Erft de lege
getContext(); de reden-stringchain_length_exceeded: supplied=<n> cap=<n>wordt doorgestuurd naar de$reasonsvan de ouder. Publieke readonly properties:$supplied,$cap. - Herstel. Lever een keten binnen het plafond, of verhoog de geconfigureerde cap als een legitiem langere keten wordt verwacht.
UnsupportedExtensionException
Sectie met titel “UnsupportedExtensionException”- Wanneer opgeworpen. De padvalidator stuit op een kritieke X.509-extensie waarvan de
handhaving nog niet is geïmplementeerd. Per RFC 5280 §4.2 moet een onherkende kritieke
extensie fail-closed gaan; zowel strikte als lenient-modi gaan hier fail-closed, omdat
het stilletjes overslaan van een kritieke extensie een beveiligingsregressie zou zijn. De
validator dekt chain build, AKI/SKI-matching, key usage, extended key usage,
basic constraints, expiry en signature verification; alles anders dat kritiek is
komt hier aan de oppervlakte. Subklasse van
PkiPathValidationException. - Contextvelden. Erft de lege
getContext(); gestructureerde redenen worden doorgestuurd naar de$reasonsvan de ouder. Publieke readonly properties:$extensionOid(dotted OID, bijvoorbeeld2.5.29.30voor name constraints),$extensionName,$clauseRef(verwijzing naar de RFC 5280-clausule en de deferred-items-logvermelding). - Herstel. In lenient-modus, vang deze specifieke subklasse op om terug te vallen op
een grover beleid zonder echte padvalidatiestoringen te slikken. Audit
$extensionOiden$clauseReftegen je PKI-fixtures om te zien welke extensie de validatie blokkeert.
RevocationCheckFailedException
Sectie met titel “RevocationCheckFailedException”- Wanneer opgeworpen. Zowel OCSP- als certificate revocation list (CRL)-endpoints zijn
uitgeput zonder een definitief oordeel: OCSP-transportstoring of misvormd antwoord,
en CRL-transportstoring of misvormde CRL, met beide circuit breakers
open of beide caches ontbrekend. Strict-modus behandelt dit als fail-closed; lenient-modus
vangt het op en geeft een PSR-3-waarschuwing af met
revocation = null. BreidtSecurityExceptionuit. - Contextvelden. Overschrijft
getContext()niet (erft de lege standaard). Draagt de staat in de publieke readonly properties$ocspStateen$crlState(elk standaardunknown). - Herstel. Herstel de bereikbaarheid naar een intrekkingsbron, wacht tot de circuit breakers sluiten, of warm de cache op, en probeer dan opnieuw. Onderdruk dit niet om een long-term-validation-artefact te verkrijgen; de intrekkingsassertie maakt deel uit van dat niveau.
OCSP-handtekeningverificatie (RFC 6960)
Sectie met titel “OCSP-handtekeningverificatie (RFC 6960)”OcspSignatureInvalidException
Sectie met titel “OcspSignatureInvalidException”- Wanneer opgeworpen. Een RFC 6960 §4.2.2.2
BasicOCSPResponse-handtekening faalt de cryptografische verificatie tegen het certificaat van de responder. De parser decodeertsignatureAlgorithm(RSA-PSS, ECDSA, of RSA-PKCS1v15) en verifieertsignatureovertbsResponseData; elke storing werpt deze getypeerde uitzondering op zodat aanroepers een structureel geldig maar cryptografisch gemanipuleerd antwoord kunnen onderscheiden van een misvormd-DER-antwoord. Niet-finaal, zodat stroomafwaartse pakketten meer specifieke subklassen kunnen publiceren. BreidtSecurityExceptionuit. - Contextvelden. Overschrijft
getContext()niet (erft de lege standaard). Draagt de storings-tag in de publieke readonly property$reason(bijvoorbeeldsignature_mismatch,responder_cert_not_in_bundle,unsupported_signature_algorithm); vrije-tekstdetailwordt in het bericht gevouwen. - Herstel. Inspecteer
$reason. Voorresponder_cert_not_in_bundle, lever de juiste trust-anchor-bundle en het responder-certificaat. Voorsignature_mismatch, behandel het antwoord als onbetrouwbaar. Zie Handtekening- en tijdstempelstoringen.
Tijdstempeling (RFC 3161)
Sectie met titel “Tijdstempeling (RFC 3161)”TsaException
Sectie met titel “TsaException”- Wanneer opgeworpen. Een storing in RFC 3161 time-stamp authority (TSA)-communicatie
of antwoordparsing: de TSA geeft een errorstatus terug, het HTTP-verzoek faalt, of
het ASN.1-antwoord kan niet worden geparset. Het is de basis van de TSA-fout-hiërarchie
en is niet-finaal zodat verificatiestoringen het kunnen uitbreiden. Breidt
NextPdfExceptionuit. - Contextvelden. Overschrijft
getContext()niet (erft de lege standaard). - Herstel. Vang
TsaExceptionop voor elk TSA-fout-pad. Verifieer de TSA- bereikbaarheid en dat het endpoint een welgevormd RFC 3161-antwoord teruggeeft.
TsaTokenVerificationException
Sectie met titel “TsaTokenVerificationException”- Wanneer opgeworpen. CMS-verificatie van een RFC 3161
TimeStampTokenfaalt bij een van de verplichte verificatiestappen: RFC 5816 §3 ESSCertIDv2-binding, RFC 5652 §11 signed-attributes-integriteit, RFC 3161 §2.4.2producedAt-versheid, of RFC 5652 §5.4SignerInfo-handtekening. Fail-closed, met een getypeerde stap- discriminator zodat audit-pipelines replay van clock skew van cert-mismatch kunnen onderscheiden zonder berichten te grepppen. Subklasse vanTsaException, zodat legacycatch (TsaException)-handlers blijven afvuren. - Contextvelden.
step(de falende pipeline-Step-waarde) enmessage. Accessor:getStep(). - Herstel. Actiegericht door een ontwikkelaar (verkeerd geconfigureerd TSA-certificaat of skew-
tolerantie) of beveiliging (vermoedelijke MITM of replay). Lees
stepom de falende fase te lokaliseren en corrigeer de bijbehorende invoer of trustconfiguratie.
MalformedDerException
Sectie met titel “MalformedDerException”- Wanneer opgeworpen. Intern signaal dat een DER-walk een misvormde of afgekapte
grens raakte, opgeworpen door de laag-niveau-walkers binnen de TSA-token-verifier. Het wordt
altijd opgevangen op de openbare verify-grens en opnieuw verpakt in een
TsaTokenVerificationExceptiondie de juiste stap-discriminator meedraagt; het lekt nooit naar aanroepercode. BreidtRuntimeExceptionuit; gemarkeerd als@internal. - Contextvelden. Geen.
- Herstel. Niet aanroeper-gericht. Handel in plaats daarvan de verpakte
TsaTokenVerificationExceptionaf.
Certificaat-extensie-decodering
Sectie met titel “Certificaat-extensie-decodering”Deze breiden RuntimeException uit en stellen getContext() niet beschikbaar. Beide zijn
fail-closed-decoders.
NameConstraintsDecodeException
Sectie met titel “NameConstraintsDecodeException”- Wanneer opgeworpen. De name-constraints-decoder stuit op een afdwingbaar
GeneralSubtree-element dat hij niet getrouw kan decoderen. RFC 5280 §4.2.1.10 vereist dat een relying party een afdwingbare name constraint verwerkt of het certificaat afwijst; het omzetten van de eerdere stille drop naar deze getypeerde storing voorkomt een fail-open die de geaccepteerde name-set stilletjes zou hebben verbreed. De reikwijdte is beperkt tot de afdwingbare naamvormen (directoryName, dNSName, iPAddress, rfc822Name, uniformResourceIdentifier); niet-afdwingbare vormen blijven negeerbaar en werpen hem nooit op. Benoemde constructor:undecodableEnforceableBase(). Gemarkeerd als@internal. - Contextvelden. Geen. Een log-veilige detail-string wordt in het bericht meegedragen.
- Herstel. De enforcer brengt een fail-closed
name_constraints:-reden aan de oppervlakte en de keten wordt afgewezen. Onderzoek de name-constraints-codering van het certificaat; versoepel de handhaving niet.
QcStatementsDecodeException
Sectie met titel “QcStatementsDecodeException”- Wanneer opgeworpen. De
qcStatements-extensie is structureel misvormd: afgekapte DER, een verkeerde tag, of een lengte-overflow. De decoder is fail-closed en werpt op in plaats van een gedeeltelijk of heuristisch resultaat terug te geven wanneer hij niet met zekerheid kan bepalen wat de extensie zegt. Gemarkeerd als@api. - Contextvelden. Geen.
- Herstel. Vang hem alleen expliciet op als je van plan bent misvormde codering te tolereren; behandel anders de qualified-certificate-statements van het certificaat als onbepaalbaar en wijs het certificaat af of geef het opnieuw uit.
PKCS#11-sessies
Sectie met titel “PKCS#11-sessies”Pkcs11SessionException
Sectie met titel “Pkcs11SessionException”- Wanneer opgeworpen. Een PKCS#11 v3.1 session-management-defect. Elke benoemde
constructor mapt naar een specifieke defect-klasse en naar een PKCS#11-
CKR_*-return- waarde, blootgesteld via de getypeerde$kind-discriminator zodat aanroepers vertakken op een stabiele enum-string in plaats van fragiele bericht-matching. Constructors omvatten:cryptokiNotInitialized(),userNotLoggedIn(),userAlreadyLoggedIn(),operationNotInitialized(),operationActive(),mechanismNotAllowed(),tokenDisconnected(),concurrentSessionLimitExceeded(),sessionAlreadyClosed(),stateTransitionInvalid(),osLockingRequired(),loginTtlExpired(), ensignOperationTtlExpired(). BreidtSecurityExceptionuit. - Contextvelden. Overschrijft
getContext()niet (erft de lege standaard). Draagt het getypeerde kind in de publieke readonly property$kind, een van deKIND_*-constanten (bijvoorbeeldKIND_USER_NOT_LOGGED_IN,KIND_TOKEN_DISCONNECTED,KIND_LOGIN_TTL_EXPIRED). Slot- en sessie- identifiers, mechanisme en TTL-waarden verschijnen in het bericht. PIN’s en certificaatbytes worden nooit opgenomen. - Herstel. Switch op
$kind. Vooruser_not_logged_in, log in met de user- PIN voordat je een sign-bewerking initialiseert. Voortoken_disconnected, behandel alle sessies op het slot als verweesd. Voor de TTL-kinds, herauthenticeer of herinitialiseer de bewerking. Voormechanism_not_allowed, breid de geconfigureerde mechanisme-allow-list uit of kies een toegestaan mechanisme.