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
| SignProcessID | Valore restituito da una funzione NewSignProcessFrom* |
|---|---|
| CertificateDER | Certificato X.509 RSA o ECDSA completo con codifica DER corrispondente alla chiave privata |
| ProviderName | Nome del provider di archiviazione chiavi Windows oppure stringa vuota per Microsoft Software Key Storage Provider |
| KeyName | Nome di chiave persistente riconosciuto dal provider |
| UseMachineKey | True o un valore diverso da zero per aprire la chiave dall'ambito del computer |
| AllowUI | True o diverso da zero per consentire interfacce utente del provider per PIN, consenso o approvazione cloud |
Valori restituiti
| 1 | La configurazione dell'identità è stata associata al processo |
|---|---|
| 0 | L'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