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

CertContextHandle CERT_CONTEXT Windows du certificat signataire; Nil pour le chemin purement externe
CertificateDERCertificat signataire encodé en DER, utilisé pour le certificat intégré et les références émetteur/numéro de série
Ed25519SeedGraine de 32 octets pour signer Ed25519 sans CNG, sinon vide
DataLes 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
DigestAlgorithmOrdinal de l'algorithme de condensat conforme à Ord(TPDFlibDigestAlgorithm): 2 SHA-256, 3 SHA-384, 4 SHA-512, 5 à 7 la famille SHA-3
CommitmentTypeDERAttribut de type d'engagement encodé en DER, vide en son absence
SignaturePolicyDERIdentifiant de politique de signature encodé en DER, vide en son absence
NCryptKeyHandleHandle de clé CNG ouvert; 0 laisse la fonction ouvrir elle-même la clé privée du certificat, en montrant l'UI si demandé
AllowPrivateKeyUIAutorise le dialogue d'acquisition de clé CNG quand la clé exige la présence de l'utilisateur
ExternalSignerRappel recevant le condensat et renvoyant la signature brute, pour HSM ou signature distante
ExternalSenderExpéditeur redonné au rappel ExternalSigner
ExternalSignProcessIDIdentifiant de processus de signature redonné au rappel
ExternalSignatureAlgorithmL'un de PL_EXTERNAL_SIGNATURE_RSA_PKCS1, PL_EXTERNAL_SIGNATURE_ECDSA_DER, PL_EXTERNAL_SIGNATURE_ECDSA_P1363
RSAPSSPaddingSélectionne le remplissage RSASSA-PSS pour les signatures RSA
RevocationInfoDERInformations 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