Windows Signing Timestamps
De Windows sign-operatie kan een echte RFC3161-timestamp vragen via een synchrone applicatie-callback en de PDF pas publiceren na het authentiseren van de response
Signing-options
{"schemaVersion":1,"type":"sign","incremental":true,
"existingField":true,"fieldName":"ApprovalOne",
"pfxFile":"C:/keys/signer.pfx","pfxPassword":"password",
"cades":true,"digestMethod":"SHA384","timestamp":true,
"timestampURL":"https://tsa.example/service",
"timestampTrustedCAFile":"C:/trust/tsa-roots.pem",
"timestampTrustedCRLFile":"C:/trust/tsa-crls.pem",
"requireTimestampRevocation":true}
timestamp defaultt naar false; een true-waarde vraagt de application transport-callback en een expliciete timestampTrustedCAFile met vertrouwde PEM-certificaat-roots
digestMethod kiest de echte document-CMS-digest en timestamp-imprint-algoritme uit SHA256, SHA384 of SHA512; de messageImprint hasht de echte CMS-signature-octets exact één keer
timestampTrustedCRLFile levert optioneel PEM CRL's; requireTimestampRevocation vraagt dat bestand en zet issuer- en certificaat-CRL-checks aan, inclusief ingetrokken certificaten en verlopen bewijzen
Trust-invoerbestanden blijven open met write sharing geweigerd tijdens het signeren en diens gecombineerde grootte is begrensd op een achtste van memoryBytes voordat OpenSSL ze laadt
Elk request bevat een verse cryptografische nonce en vraagt TSA-certificaten op; response-validatie authenticeert de request-nonce, imprint, complete CMS-signature, ESS signing-certificate-binding, certificaatketen en critical timestamp EKU
C ABI-transport
Geef hpdf_signing_operation_v1 door aan hpdf_document_execute_json_v1, zet operation.struct_size op sizeof(hpdf_signing_operation_v1) en lever timestamp_transport en timestamp_user_data aan
Het operation-prefix behoudt de bestaande hpdf_operation_v1-layout en ABI-versie; gewone operaties blijven de originele structuur gebruiken
De callback ontvangt de complete DER TimeStampReq en een geleende response_io; schrijf de complete DER TimeStampResp via response_io.write en geef een hpdf_status terug
De callback draait op de aanroepende thread, en request- en response-IO-pointers blijven alleen geldig tijdens die invocatie; de applicatie stuurt netwerktransport, authenticatie, timeout en verbindingsbeleid
response_io.is_cancelled pollt de operation-invoer-, uitvoer- en resultaat-annulerings-callbacks; response-writes handhaven een maximum van 16 MiB daarnaast afgeklemd op een achtste van memoryBytes vóór het kopiëren van callback-geheugen
Een response-write- of annuleringsfout blijft actief voor de operatie zelfs wanneer de callback daarna succes teruggeeft; gefaalde responses kunnen geen PDF-bytes publiceren
Pascal service-entry
THPDFJobProcessor.ExecuteLoadedSigningOperation accepteert het geladen document, operation JSON-object, uitvoerstream, checkpoint, THPDFHeadlessTimestampTransport-callback en opaque callback-context
Het Pascal-transport ontvangt request-DER en geeft response-DER terug; nested synchrone signing herstelt de omvattende callback-context wanneer de innerlijke operatie terugkeert
Seed-waarden en provenance
Een vereiste SV TimeStamp-constraint wordt vervuld door een echt geauthenticeerde response; wanneer het vereiste TimeStamp-dictionary een URL specificeert, moet timestampURL met die waarde overeenkomen
timestampURL is door de applicatie geclaimde transport-provenance; de gedeclareerde URL vergelijken legt geen HTTPS-serveridentiteit vast, en de applicatie moet diens gekozen endpoint authentiseren
Standalone file-jobs zonder een applicatie-callback kunnen geen timestamp-request uitvoeren; alleen een URL-string kan een vereiste timestamp niet vervullen