PLBuildModernDetachedCMS

Criptografía, firmas digitales

Descripción

Construye un CMS SignedData detached en torno a firmas RSA, ECDSA o Ed25519 para los algoritmos que la capa de mensajes de Windows CryptoAPI no sabe expresar

El certificado del firmante y su contexto de cadena, el algoritmo de resumen, los DER de tipo de compromiso y política de firma, el material de revocación y la política de relleno entran todos por parámetros, y la firma bruta la aportan CNG NCrypt, una devolución de llamada de firma de resumen externa o la ruta Ed25519 en Pascal puro

Sintaxis

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;

Parámetros

CertContextHandle de CERT_CONTEXT de Windows del certificado firmante; Nil para la ruta pura de firmante externo
CertificateDERCertificado firmante codificado en DER, usado para el certificado incrustado y las referencias de emisor/número de serie
Ed25519SeedSemilla de 32 bytes al firmar Ed25519 sin CNG, en caso contrario vacía
DataLos bytes del rango ya resumido que cubre la firma detached
SubFilter/SubFilter de destino, como /ETSI.CAdES.detached, que gobierna la selección de atributos
DigestAlgorithmOrdinal del algoritmo de resumen acorde con Ord(TPDFlibDigestAlgorithm): 2 SHA-256, 3 SHA-384, 4 SHA-512, 5 a 7 la familia SHA-3
CommitmentTypeDERAtributo de tipo de compromiso codificado en DER, vacío cuando no hay
SignaturePolicyDERIdentificador de política de firma codificado en DER, vacío cuando no hay
NCryptKeyHandleHandle de clave CNG abierto; 0 deja que la función abra ella misma la clave privada del certificado, mostrando opcionalmente la UI
AllowPrivateKeyUIPermite el diálogo de adquisición de clave CNG cuando la clave exige la presencia del usuario
ExternalSignerDevolución de llamada que recibe el resumen y devuelve la firma bruta, para HSM o firma remota
ExternalSenderRemitente que se devuelve a la devolución de llamada ExternalSigner
ExternalSignProcessIDIdentificador del proceso de firma que se devuelve a la devolución de llamada
ExternalSignatureAlgorithmUno de PL_EXTERNAL_SIGNATURE_RSA_PKCS1, PL_EXTERNAL_SIGNATURE_ECDSA_DER, PL_EXTERNAL_SIGNATURE_ECDSA_P1363
RSAPSSPaddingSelecciona el relleno RSASSA-PSS para las firmas RSA
RevocationInfoDERInformación de revocación precacheada que se incrusta como RevocationInfoChoices

Valor devuelto

El CMS detached codificado en DER, o una cadena vacía cuando falla cualquier paso de firma

Observaciones

Esta rutina es el motor detrás de las rutas de firma moderna del proceso de firma; llamarla directamente mantiene el control total sobre los atributos de compromiso y política, mientras que los bytes devueltos encajan en el hueco de /Contents del PDF igual que los datos verificados por PLIsModernDetachedCMS

Véase también

PLVerifyModernDetachedCMS, PLIsModernDetachedCMS, PLModernSignatureSizeEstimate, TPDFlibExternalDigestSignEvent, SetSignProcessExternalDigestSigner