SetSignProcessCNGKey
Securitate și semnături
Descriere
Atașează o cheie privată NCrypt numită și certificatul ei X.509 codificat DER unui proces de semnare PDF
Cheia este deschisă direct de la provider-ul de stocare a cheilor cerut, permițând identități de semnare bazate pe TPM, token-uri hardware, KSP cloud și alte identități doar-CNG, fără a exporta cheia privată
Sintaxă
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 | Valoare returnată de o funcție NewSignProcessFrom* |
|---|---|
| CertificateDER | Certificat X.509 complet encodat DER, RSA sau ECDSA, corespunzător cheii private |
| ProviderName | Numele providerului de stocare de chei Windows, sau un șir vid pentru Microsoft Software Key Storage Provider |
| KeyName | Numele persistent al cheii, înțeles de provider |
| UseMachineKey | True sau nenul pentru a deschide cheia din scopul mașinii |
| AllowUI | True sau nenul pentru a permite interfețele de utilizator PIN, de consimțământ sau de aprobare cloud de la provider |
Valori returnate
| 1 | Configurația identității a fost atașată procesului |
|---|---|
| 0 | ID-ul procesului, certificatul sau numele cheii era invalid |
Observații
Cheia este deschisă când procesul de semnare se execută, iar niciun octet de cheie privată nu intră în memoria bibliotecii
Când AllowUI este false, NCRYPT_SILENT_FLAG este aplicat deschiderii cheii și semnăriiSemnătura CMS generată este verificată contra
CertificateDER înainte de a fi acceptată, deci o cheie cu același algoritm dar nepotrivită este respinsăActiveX acceptă o variantă de vector de octeți, iar DLL-ul folosește o lungime explicită de certificat, astfel încât octeții zero înglobați sunt păstrați
Consultați și
SetSignProcessCNGKeyFromFile, SetSignProcessCNGKeyByHandle, SetSignProcessPrivateKeyUI