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

CertContextWindows-CERT_CONTEXT-handle van het ondertekeningscertificaat; Nil voor het zuivere external-signer-pad
CertificateDERDER-gecodeerd ondertekeningscertificaat, gebruikt voor het ingebedde certificaat en de issuer-/serial-verwijzingen
Ed25519Seed32-byte-seed bij Ed25519-ondertekenen zonder CNG, anders leeg
DataDe al gedigesteerde bereikbytes die de detached-handtekening dekt
SubFilterDoel-/SubFilter zoals /ETSI.CAdES.detached, dat de attribuutkeuze stuurt
DigestAlgorithmDigestalgoritme-ordinaal passend bij Ord(TPDFlibDigestAlgorithm): 2 SHA-256, 3 SHA-384, 4 SHA-512, 5 tot en met 7 de SHA-3-familie
CommitmentTypeDERDER-gecodeerd commitment-type-attribuut, leeg als er geen is
SignaturePolicyDERDER-gecodeerde handtekeningsbeleidsidentificatie, leeg als er geen is
NCryptKeyHandleOpen CNG-sleutelhandle; 0 laat de functie zelf de privésleutel van het certificaat openen, optioneel met UI
AllowPrivateKeyUIStaat het CNG-dialoogvenster voor sleutelverwerving toe wanneer de sleutel aanwezigheid van de gebruiker vereist
ExternalSignerCallback die de digest ontvangt en de ruwe handtekening teruggeeft, voor HSM of ondertekenen op afstand
ExternalSenderAfzender die aan de ExternalSigner-callback wordt teruggegeven
ExternalSignProcessIDIdentificatie van het signproces die aan de callback wordt teruggegeven
ExternalSignatureAlgorithmEén van PL_EXTERNAL_SIGNATURE_RSA_PKCS1, PL_EXTERNAL_SIGNATURE_ECDSA_DER, PL_EXTERNAL_SIGNATURE_ECDSA_P1363
RSAPSSPaddingKiest RSASSA-PSS-padding voor RSA-handtekeningen
RevocationInfoDERVooraf 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