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
| CertContext | Handle Windows CERT_CONTEXT podepisujícího certifikátu; Nil pro čistě externí cestu podpisu |
|---|---|
| CertificateDER | DER kódovaný podepisující certifikát; slouží pro vložený certifikát a odkazy vydavatel/sériové číslo |
| Ed25519Seed | 32bajtový seed při podepisování Ed25519 bez CNG, jinak prázdný |
| Data | Bajty už vyhašovaného rozsahu, které oddělený podpis pokrývá |
| SubFilter | Cílový /SubFilter jako /ETSI.CAdES.detached, řídí výběr atributů |
| DigestAlgorithm | Poř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 |
| CommitmentTypeDER | DER kódovaný atribut typu závazku, prázdný když žádný není |
| SignaturePolicyDER | DER kódovaný identifikátor politiky podpisu, prázdný když žádný není |
| NCryptKeyHandle | Otevřený handle klíče CNG; 0 znamená, že si funkce soukromý klíč certifikátu otevře sama, volitelně s zobrazením UI |
| AllowPrivateKeyUI | Povoluje dialog získání klíče CNG, když klíč vyžaduje přítomnost uživatele |
| ExternalSigner | Callback, který převezme haš a vrátí surovou podpis; pro HSM nebo vzdálené podepisování |
| ExternalSender | Odesílatel předávaný zpět do callback ExternalSigner |
| ExternalSignProcessID | Identifikátor procesu podpisu předávaný zpět do callback |
| ExternalSignatureAlgorithm | Jedna z hodnot PL_EXTERNAL_SIGNATURE_RSA_PKCS1, PL_EXTERNAL_SIGNATURE_ECDSA_DER, PL_EXTERNAL_SIGNATURE_ECDSA_P1363 |
| RSAPSSPadding | Volí doplnění RSASSA-PSS pro podpisy RSA |
| RevocationInfoDER | Př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