PLBuildModernDetachedCMS

Kryptografie, digitální podpisy

Popis

Staví oddělený CMS SignedData kolem podpisů RSA, ECDSA nebo Ed25519 pro algoritmy, které zprávková vrstva Windows CryptoAPI nedokáže vyjádřit

Certifikát podepisujícího s kontextem jeho řetězce, hašovací algoritmus, DER bloky typu závazku a politiky podpisu, revokační materiál i politika doplnění vcházejí parametry; surovou podpis dodává CNG NCrypt, externí callback podepisujícího haše nebo čistě paskalovská cesta Ed25519

Syntaxe

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;

Parametry

CertContextHandle Windows CERT_CONTEXT podepisujícího certifikátu; Nil pro čistě externí cestu podpisu
CertificateDERDER kódovaný podepisující certifikát; slouží pro vložený certifikát a odkazy vydavatel/sériové číslo
Ed25519Seed32bajtový seed při podepisování Ed25519 bez CNG, jinak prázdný
DataBajty už vyhašovaného rozsahu, které oddělený podpis pokrývá
SubFilterCílový /SubFilter jako /ETSI.CAdES.detached, řídí výběr atributů
DigestAlgorithmPořadové číslo hašovacího algoritmu odpovídající Ord(TPDFlibDigestAlgorithm): 2 SHA-256, 3 SHA-384, 4 SHA-512, 5 až 7 rodina SHA-3
CommitmentTypeDERDER kódovaný atribut typu závazku, prázdný když žádný není
SignaturePolicyDERDER kódovaný identifikátor politiky podpisu, prázdný když žádný není
NCryptKeyHandleOtevřený handle klíče CNG; 0 znamená, že si funkce soukromý klíč certifikátu otevře sama, volitelně s zobrazením UI
AllowPrivateKeyUIPovoluje dialog získání klíče CNG, když klíč vyžaduje přítomnost uživatele
ExternalSignerCallback, který převezme haš a vrátí surovou podpis; pro HSM nebo vzdálené podepisování
ExternalSenderOdesílatel předávaný zpět do callback ExternalSigner
ExternalSignProcessIDIdentifikátor procesu podpisu předávaný zpět do callback
ExternalSignatureAlgorithmJedna z hodnot PL_EXTERNAL_SIGNATURE_RSA_PKCS1, PL_EXTERNAL_SIGNATURE_ECDSA_DER, PL_EXTERNAL_SIGNATURE_ECDSA_P1363
RSAPSSPaddingVolí doplnění RSASSA-PSS pro podpisy RSA
RevocationInfoDERPředem sesbírané revokační informace k vložení jako RevocationInfoChoices

Návratová hodnota

DER kódovaný oddělený CMS, nebo prázdný řetězec, když kterýkoli krok podpisu selže

Poznámky

Tato rutina je motor za moderními cestami podpisu v procesu podepisování; přímé volání drží plnou kontrolu nad atributy závazku a politiky a vrácené bajty zapadnou do díry PDF /Contents stejně jako data ověřená přes PLIsModernDetachedCMS

Viz také

PLVerifyModernDetachedCMS, PLIsModernDetachedCMS, PLModernSignatureSizeEstimate, TPDFlibExternalDigestSignEvent, SetSignProcessExternalDigestSigner