Windows signerings-tidsstempler

Windows sign-operationen kan anmode om et rigtigt RFC3161-tidsstempel gennem en synkron applikations-callback og publicere PDF'en først efter at have autentificeret responsen

Signerings-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 er som standard false; en true-værdi kræver applikationstransport-callbacken og en eksplicit timestampTrustedCAFile med betroede PEM-certifikatrødder

digestMethod vælger den faktiske dokument-CMS-digest og timestamp-aftryksalgoritme fra SHA256, SHA384 eller SHA512; messageImprint hasher de faktiske CMS signaturoktetter præcis én gang

timestampTrustedCRLFile leverer valgfrit PEM CRL'er; requireTimestampRevocation kræver den fil og aktiverer issuer- og certifikat-CRL-tjek, inklusive revokerede certifikater og udløbet evidence

Trust-inputfiler forbliver åbne med write sharing nægtet under signering, og deres samlede størrelse er begrænset til en ottendedel af memoryBytes, før OpenSSL indlæser dem

Hver anmodning indeholder en frisk kryptografisk nonce og anmoder om TSA-certifikaterne; responsvalidering autentificerer anmodningens nonce, aftryk, komplet CMS-signatur, ESS signing-certificate-binding, certifikatkæde og kritisk timestamping EKU

C ABI-transport

Send hpdf_signing_operation_v1 til hpdf_document_execute_json_v1, sæt operation.struct_size til sizeof(hpdf_signing_operation_v1) og lever timestamp_transport og timestamp_user_data

Operationspræfikset beholder det eksisterende hpdf_operation_v1-layout og ABI-version; almindelige operationer fortsætter med at bruge den originale struktur

Callbacken modtager den komplette DER TimeStampReq og en lånt response_io; skriv den komplette DER TimeStampResp gennem response_io.write og returnér en hpdf_status

Callbacken kører på den kaldende tråd, og anmodnings- og respons IO-pointere forbliver kun gyldige under den invokation; applikationen ejer netværkstransport, autentifikation, timeout og forbindelsespolitik

response_io.is_cancelled poller operationens input-, output- og resultat-cancellation-callbacks; respons-skrivninger håndhæver et maksimum på 16 MiB derudover begrænset til en ottendedel af memoryBytes, før callback-hukommelse kopieres

En respons-skrive- eller cancellation-fejl forbliver aktiv for operationen, selv når callbacken efterfølgende returnerer succes; mislykkede responser kan ikke publicere PDF-bytes

Pascal service-indgang

THPDFJobProcessor.ExecuteLoadedSigningOperation accepterer det indlæste dokument, operation JSON-objekt, outputstream, checkpoint, THPDFHeadlessTimestampTransport-callback og opak callback-kontekst

Pascal-transporten modtager anmodnings-DER og returnerer respons-DER; nestet synkron signering gendanner den omgivende callback-kontekst, når den indre operation returnerer

Seed-værdier og proveniens

En krævet SV TimeStamp-begrænsning tilfredsstilles af et rigtigt autentificeret respons; når den krævede TimeStamp-dictionary angiver en URL, skal timestampURL matche den værdi

timestampURL er applikationshævdet transportproveniens; at sammenligne den deklarerede URL etablerer ikke HTTPS-serveridentitet, og applikationen skal autentificere sit valgte endpoint

Selvstændige file jobs uden en applikations-callback kan ikke udføre en timestamp-anmodning; en URL-streng alene kan ikke tilfredsstille et krævet tidsstempel

Se Inkrementel PFX-signering og Native RFC3161-verifikation