PLBuildModernDetachedCMS
Cryptographie, signatures numériques
Description
Construit un CMS SignedData détaché autour de signatures RSA, ECDSA ou Ed25519 pour les algorithmes que la couche de messages de Windows CryptoAPI ne sait pas exprimer
Le certificat du signataire avec son contexte de chaîne, l'algorithme de condensat, les DER de type d'engagement et de politique de signature, le matériel de révocation et la politique de remplissage entrent tous par paramètres, et la signature brute est fournie par CNG NCrypt, un rappel de signature de condensat externe ou le chemin Ed25519 en Pascal pur
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;Paramètres
| CertContext | Handle CERT_CONTEXT Windows du certificat signataire; Nil pour le chemin purement externe |
|---|---|
| CertificateDER | Certificat signataire encodé en DER, utilisé pour le certificat intégré et les références émetteur/numéro de série |
| Ed25519Seed | Graine de 32 octets pour signer Ed25519 sans CNG, sinon vide |
| Data | Les octets de plage déjà condensés que couvre la signature détachée |
| SubFilter | /SubFilter cible, comme /ETSI.CAdES.detached, qui pilote la sélection des attributs |
| DigestAlgorithm | Ordinal de l'algorithme de condensat conforme à Ord(TPDFlibDigestAlgorithm): 2 SHA-256, 3 SHA-384, 4 SHA-512, 5 à 7 la famille SHA-3 |
| CommitmentTypeDER | Attribut de type d'engagement encodé en DER, vide en son absence |
| SignaturePolicyDER | Identifiant de politique de signature encodé en DER, vide en son absence |
| NCryptKeyHandle | Handle de clé CNG ouvert; 0 laisse la fonction ouvrir elle-même la clé privée du certificat, en montrant l'UI si demandé |
| AllowPrivateKeyUI | Autorise le dialogue d'acquisition de clé CNG quand la clé exige la présence de l'utilisateur |
| ExternalSigner | Rappel recevant le condensat et renvoyant la signature brute, pour HSM ou signature distante |
| ExternalSender | Expéditeur redonné au rappel ExternalSigner |
| ExternalSignProcessID | Identifiant de processus de signature redonné au rappel |
| ExternalSignatureAlgorithm | L'un de PL_EXTERNAL_SIGNATURE_RSA_PKCS1, PL_EXTERNAL_SIGNATURE_ECDSA_DER, PL_EXTERNAL_SIGNATURE_ECDSA_P1363 |
| RSAPSSPadding | Sélectionne le remplissage RSASSA-PSS pour les signatures RSA |
| RevocationInfoDER | Informations de révocation précollectées à intégrer comme RevocationInfoChoices |
Valeur de retour
Le CMS détaché encodé en DER, ou une chaîne vide quand une étape de signature échoue
Remarques
Cette routine est le moteur des chemins de signature moderne du processus de signature; l'appeler directement garde le contrôle total des attributs d'engagement et de politique, tandis que les octets renvoyés se logent dans le trou /Contents du PDF comme avec les données vérifiées par PLIsModernDetachedCMS
Voir aussi
PLVerifyModernDetachedCMS, PLIsModernDetachedCMS, PLModernSignatureSizeEstimate, TPDFlibExternalDigestSignEvent, SetSignProcessExternalDigestSigner