PLBuildModernDetachedCMS
Cryptografie, digitale handtekeningen
Beschrijving
Bouwt een detached CMS-SignedData rond RSA-, ECDSA- of Ed25519-handtekeningen, en dan precies voor de algoritmen die de berichtenlaag van Windows CryptoAPI niet kan uitdrukken
Het ondertekeningscertificaat met zijn ketencontext, het digestalgoritme, de DERs van commitment-type en handtekeningsbeleid, het intrekkingsmateriaal en het paddingbeleid komen binnen via parameters, terwijl CNG NCrypt, een externe digest-ondertekenaar-callback of het Ed25519-pad in pure Pascal de ruwe handtekening levert
Syntaxis
Delphi
Function PLBuildModernDetachedCMS(CertContext: Pointer;
Const CertificateDER, Ed25519Seed, Data, SubFilter: AnsiString;
DigestAlgorithm: Integer; Const CommitmentTypeDER,
SignaturePolicyDER: AnsiString; NCryptKeyHandle: TPLIntPtr= 0;
AllowPrivateKeyUI: Boolean= False;
ExternalSigner: TPDFlibExternalDigestSignEvent= Nil;
ExternalSender: TObject= Nil; ExternalSignProcessID: Integer= 0;
ExternalSignatureAlgorithm: Integer= 0;
RSAPSSPadding: Boolean= False;
Const RevocationInfoDER: AnsiString= ''): AnsiString;Parameters
| CertContext | Windows-CERT_CONTEXT-handle van het ondertekeningscertificaat; Nil voor het zuivere external-signer-pad |
|---|---|
| CertificateDER | DER-gecodeerd ondertekeningscertificaat, gebruikt voor het ingebedde certificaat en de issuer-/serial-verwijzingen |
| Ed25519Seed | 32-byte-seed bij Ed25519-ondertekenen zonder CNG, anders leeg |
| Data | De al gedigesteerde bereikbytes die de detached-handtekening dekt |
| SubFilter | Doel-/SubFilter zoals /ETSI.CAdES.detached, dat de attribuutkeuze stuurt |
| DigestAlgorithm | Digestalgoritme-ordinaal passend bij Ord(TPDFlibDigestAlgorithm): 2 SHA-256, 3 SHA-384, 4 SHA-512, 5 tot en met 7 de SHA-3-familie |
| CommitmentTypeDER | DER-gecodeerd commitment-type-attribuut, leeg als er geen is |
| SignaturePolicyDER | DER-gecodeerde handtekeningsbeleidsidentificatie, leeg als er geen is |
| NCryptKeyHandle | Open CNG-sleutelhandle; 0 laat de functie zelf de privésleutel van het certificaat openen, optioneel met UI |
| AllowPrivateKeyUI | Staat het CNG-dialoogvenster voor sleutelverwerving toe wanneer de sleutel aanwezigheid van de gebruiker vereist |
| ExternalSigner | Callback die de digest ontvangt en de ruwe handtekening teruggeeft, voor HSM of ondertekenen op afstand |
| ExternalSender | Afzender die aan de ExternalSigner-callback wordt teruggegeven |
| ExternalSignProcessID | Identificatie van het signproces die aan de callback wordt teruggegeven |
| ExternalSignatureAlgorithm | Eén van PL_EXTERNAL_SIGNATURE_RSA_PKCS1, PL_EXTERNAL_SIGNATURE_ECDSA_DER, PL_EXTERNAL_SIGNATURE_ECDSA_P1363 |
| RSAPSSPadding | Kiest RSASSA-PSS-padding voor RSA-handtekeningen |
| RevocationInfoDER | Vooraf verzamelde intrekkingsinformatie om in te sluiten als RevocationInfoChoices |
Retourwaarde
Het DER-gecodeerde detached CMS of een lege string wanneer een ondertekeningsstap faalt
Opmerkingen
Deze routine is de motor achter de moderne handtekeningpaden van het signproces; hem rechtstreeks aanroepen houdt volledige controle over commitment- en beleidsattributen, terwijl de teruggegeven bytes net als bij via PLIsModernDetachedCMS geverifieerde data in het /Contents-gat van de PDF vallen
Zie ook
PLVerifyModernDetachedCMS, PLIsModernDetachedCMS, PLModernSignatureSizeEstimate, TPDFlibExternalDigestSignEvent, SetSignProcessExternalDigestSigner