PLBuildModernDetachedCMS

Kryptografi, digitala signaturer

Beskrivning

Bygger ett fristående CMS SignedData kring RSA-, ECDSA- eller Ed25519-signaturer, för de algoritmer som Windows CryptoAPI-meddelandelagret inte kan uttrycka

Signeringscertifikatet med sin kedjekontext, digest-algoritmen, DER-kodningarna av commitment type och signaturpolicy, återkallningsmaterialet och utfyllnadspolicyn kommer alla in via parametrar, och den råa signaturen levereras av CNG NCrypt, en extern digest-signerarcallback eller ren-Pascal-Ed25519-vägen

Syntax

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;

Parametrar

CertContextWindows-CERT_CONTEXT-handle för signeringscertifikatet; Nil för den rent externa vägen
CertificateDERDER-kodat signeringscertifikat, använt för det inbäddade certifikatet och utfärdar- och serienummerreferenserna
Ed25519Seed32-bytes-seed vid Ed25519-signering utan CNG, annars tom
DataDe redan digestade intervallbyten som den fristående signaturen täcker
SubFilterMål-/SubFilter som /ETSI.CAdES.detached, som styr attributvalet
DigestAlgorithmDigest-algoritmsordinal som matchar Ord(TPDFlibDigestAlgorithm): 2 SHA-256, 3 SHA-384, 4 SHA-512, 5 till 7 SHA-3-familjen
CommitmentTypeDERDER-kodat commitment type-attribut, tomt när inget finns
SignaturePolicyDERDER-kodat signaturpolicy-id, tomt när inget finns
NCryptKeyHandleÖppet CNG-nyckelhandle; 0 låter funktionen öppna certifikatets privata nyckel själv, med UI om så önskas
AllowPrivateKeyUITillåter dialogen för CNG-nyckelanskaffning när nyckeln kräver användarens närvaro
ExternalSignerCallback som tar emot digisten och returnerar den råa signaturen, för HSM eller fjärrsignering
ExternalSenderAvsändare som skickas tillbaka till ExternalSigner-callbacken
ExternalSignProcessIDSigneringsprocess-ID som skickas tillbaka till callbacken
ExternalSignatureAlgorithmEn av PL_EXTERNAL_SIGNATURE_RSA_PKCS1, PL_EXTERNAL_SIGNATURE_ECDSA_DER, PL_EXTERNAL_SIGNATURE_ECDSA_P1363
RSAPSSPaddingVäljer RSASSA-PSS-utfyllnad för RSA-signaturer
RevocationInfoDERFörsamlad återkallningsinformation att bädda in som RevocationInfoChoices

Returvärde

Det DER-kodade fristående CMS:et, eller en tom sträng när något signeringssteg misslyckas

Anmärkningar

Rutinen är motorn bakom signaturprocessens moderna signaturvägar; att anropa den direkt behåller full kontroll över commitment- och policyattributen, och de returnerade byten passar i PDF:ens /Contents-hål som med data verifierade av PLIsModernDetachedCMS

Se även

PLVerifyModernDetachedCMS, PLIsModernDetachedCMS, PLModernSignatureSizeEstimate, TPDFlibExternalDigestSignEvent, SetSignProcessExternalDigestSigner