SetSignProcessCNGKey

Sicurezza e firme

Descrizione

Associa una chiave privata NCrypt denominata e il certificato X.509 DER a un processo di firma PDF

La chiave viene aperta direttamente dal provider di archiviazione delle chiavi richiesto, consentendo di usare identità di firma basate su TPM, token hardware, KSP cloud e altre identità disponibili solo tramite CNG senza esportare la chiave privata

Sintassi

Delphi

Function TPDFlib.SetSignProcessCNGKey(SignProcessID: Integer; Const CertificateDER: AnsiString; Const ProviderName, KeyName: WideString; UseMachineKey, AllowUI: Boolean): Integer;

ActiveX

Function PDFlib::SetSignProcessCNGKey(SignProcessID As Long, CertificateDER As Variant, ProviderName As String, KeyName As String, UseMachineKey As Long, AllowUI As Long) As Long

DLL

int DLSetSignProcessCNGKey(int InstanceID, int SignProcessID, const char* CertificateDER, int CertificateLength, const wchar_t* ProviderName, const wchar_t* KeyName, int UseMachineKey, int AllowUI);

Parametri

SignProcessIDValore restituito da una funzione NewSignProcessFrom*
CertificateDERCertificato X.509 RSA o ECDSA completo con codifica DER corrispondente alla chiave privata
ProviderNameNome del provider di archiviazione chiavi Windows oppure stringa vuota per Microsoft Software Key Storage Provider
KeyNameNome di chiave persistente riconosciuto dal provider
UseMachineKeyTrue o un valore diverso da zero per aprire la chiave dall'ambito del computer
AllowUITrue o diverso da zero per consentire interfacce utente del provider per PIN, consenso o approvazione cloud

Valori restituiti

1La configurazione dell'identità è stata associata al processo
0L'ID del processo, il certificato o il nome della chiave non era valido

Note

La chiave viene aperta durante il processo di firma e nessun byte della chiave privata entra nella memoria della libreria

Con AllowUI false, NCRYPT_SILENT_FLAG si applica ad apertura chiave e firma

La firma CMS generata viene verificata rispetto a CertificateDER prima di essere accettata, rifiutando chiavi non corrispondenti dello stesso algoritmo

ActiveX accetta una variante di array di byte e la DLL usa una lunghezza esplicita del certificato, così i byte zero incorporati vengono mantenuti

Vedere anche

SetSignProcessCNGKeyFromFile, SetSignProcessCNGKeyByHandle, SetSignProcessPrivateKeyUI