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

SignProcessIDValoare returnată de o funcție NewSignProcessFrom*
CertificateDERCertificat X.509 complet encodat DER, RSA sau ECDSA, corespunzător cheii private
ProviderNameNumele providerului de stocare de chei Windows, sau un șir vid pentru Microsoft Software Key Storage Provider
KeyNameNumele persistent al cheii, înțeles de provider
UseMachineKeyTrue sau nenul pentru a deschide cheia din scopul mașinii
AllowUITrue sau nenul pentru a permite interfețele de utilizator PIN, de consimțământ sau de aprobare cloud de la provider

Valori returnate

1Configurația identității a fost atașată procesului
0ID-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