PLBuildModernDetachedCMS

Kryptografi, digitale signaturer

Beskrivelse

Bygger en detached CMS-SignedData omkring RSA-, ECDSA- eller Ed25519-signaturer for de algoritmer, som Windows CryptoAPI-meddelelseslaget ikke kan udtrykke

Signaturcertifikatet med dets kædekontekst, digest-algoritmen, DER'erne for commitment-type og signaturpolicy, tilbagekaldelsesmaterialet og padding-politikken kommer ind gennem parametre, mens CNG NCrypt, en ekstern digest-signer-callback eller Ed25519-stien i ren Pascal leverer den rå signatur

Syntaks

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;

Parametre

CertContextWindows-CERT_CONTEXT-handle på signaturcertifikatet; Nil for den rene external-signer-sti
CertificateDERDER-kodet signaturcertifikat, bruges til det indlejrede certifikat og issuer-/serial-referencerne
Ed25519Seed32-byte-seed ved Ed25519-signering uden CNG, ellers tom
DataDe allerede digestede interval-bytes, som den detachede signatur dækker
SubFilterMål-/SubFilter såsom /ETSI.CAdES.detached, der styrer valget af attributter
DigestAlgorithmDigest-algoritme-ordinal, der matcher Ord(TPDFlibDigestAlgorithm): 2 SHA-256, 3 SHA-384, 4 SHA-512, 5 til 7 SHA-3-familien
CommitmentTypeDERDER-kodet commitment-type-attribut, tom hvis ingen
SignaturePolicyDERDER-kodet signaturpolicy-identifikator, tom hvis ingen
NCryptKeyHandleÅbent CNG-nøglehandle; 0 lader funktionen selv åbne certifikatets private nøgle, eventuelt med UI
AllowPrivateKeyUITillader CNG-dialogen til nøglefremskaffelse, når nøglen kræver brugerens tilstedeværelse
ExternalSignerCallback, der modtager digesten og returnerer den rå signatur, til HSM eller fjernsignering
ExternalSenderAfsender, der sendes tilbage til ExternalSigner-callbacken
ExternalSignProcessIDSign-proces-identifikator, der sendes tilbage til callbacken
ExternalSignatureAlgorithmÉn af PL_EXTERNAL_SIGNATURE_RSA_PKCS1, PL_EXTERNAL_SIGNATURE_ECDSA_DER, PL_EXTERNAL_SIGNATURE_ECDSA_P1363
RSAPSSPaddingVælger RSASSA-PSS-padding til RSA-signaturer
RevocationInfoDERPå forhånd indsamlede tilbagekaldelsesoplysninger, der indlejres som RevocationInfoChoices

Returværdi

Det DER-kodede detachede CMS eller en tom streng, hvis noget signeringstrin fejler

Bemærkninger

Denne rutine er motoren bag de moderne signaturstier i sign-processen; at kalde den direkte bevarer fuld kontrol over commitment- og policy-attributter, mens de returnerede bytes falder på plads i PDF'ens /Contents-hul som med PLIsModernDetachedCMS-verificerede data

Se også

PLVerifyModernDetachedCMS, PLIsModernDetachedCMS, PLModernSignatureSizeEstimate, TPDFlibExternalDigestSignEvent, SetSignProcessExternalDigestSigner