PLBuildModernDetachedCMS
Crittografia, firme digitali
Descrizione
Costruisce un CMS SignedData detached attorno a firme RSA, ECDSA o Ed25519 per gli algoritmi che il layer di messaggi di Windows CryptoAPI non sa esprimere
Il certificato del firmatario con il suo contesto di catena, l'algoritmo di digest, i DER di commitment type e signature policy, il materiale di revoca e la politica di padding entrano tutti come parametri, mentre la firma grezza arriva da CNG NCrypt, da una callback di firma del digest esterna o dal percorso Ed25519 in Pascal puro
Sintassi
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;Parametri
| CertContext | Handle CERT_CONTEXT di Windows del certificato firmatario; Nil per il percorso interamente esterno |
|---|---|
| CertificateDER | Certificato firmatario codificato DER, usato per il certificato incorporato e i riferimenti emittente/numero di serie |
| Ed25519Seed | Seed di 32 byte quando si firma Ed25519 senza CNG, altrimenti vuota |
| Data | I byte dell'intervallo già digerito coperti dalla firma detached |
| SubFilter | /SubFilter di destinazione, come /ETSI.CAdES.detached, che guida la selezione degli attributi |
| DigestAlgorithm | Ordinale dell'algoritmo di digest conforme a Ord(TPDFlibDigestAlgorithm): 2 SHA-256, 3 SHA-384, 4 SHA-512, da 5 a 7 la famiglia SHA-3 |
| CommitmentTypeDER | Attributo commitment type codificato DER, vuoto se assente |
| SignaturePolicyDER | Identificatore di signature policy codificato DER, vuoto se assente |
| NCryptKeyHandle | Handle di chiave CNG aperto; con 0 la funzione apre da sola la chiave privata del certificato, mostrando eventualmente la UI |
| AllowPrivateKeyUI | Consente la finestra di acquisizione della chiave CNG quando la chiave richiede la presenza dell'utente |
| ExternalSigner | Callback che riceve il digest e restituisce la firma grezza, per HSM o firma remota |
| ExternalSender | Mittente riportato alla callback ExternalSigner |
| ExternalSignProcessID | Identificatore del processo di firma riportato alla callback |
| ExternalSignatureAlgorithm | Uno tra PL_EXTERNAL_SIGNATURE_RSA_PKCS1, PL_EXTERNAL_SIGNATURE_ECDSA_DER, PL_EXTERNAL_SIGNATURE_ECDSA_P1363 |
| RSAPSSPadding | Seleziona il padding RSASSA-PSS per le firme RSA |
| RevocationInfoDER | Informazioni di revoca precatalogate da incorporare come RevocationInfoChoices |
Valore restituito
Il CMS detached codificato DER, oppure una stringa vuota quando un passaggio di firma fallisce
Note
Questa routine è il motore dei percorsi di firma moderna del processo di firma; chiamarla direttamente mantiene il pieno controllo sugli attributi di commitment e policy, e i byte restituiti si incastrano nel buco di /Contents del PDF come con i dati verificati da PLIsModernDetachedCMS
Vedere anche
PLVerifyModernDetachedCMS, PLIsModernDetachedCMS, PLModernSignatureSizeEstimate, TPDFlibExternalDigestSignEvent, SetSignProcessExternalDigestSigner