SetSignProcessCNGKey
Varnost in podpisi
Opis
Podpisnemu procesu PDF pripne poimenovani zasebni ključ NCrypt in njegov certifikat X.509 v kodiranju DER
Ključ se odpre neposredno pri zahtevanem ponudniku shrambe ključev, kar omogoča identitete podpisovanja na osnovi TPM, strojnih žetonov, oblačnih KSP in druge, ki delujejo samo s CNG, brez izvoza zasebnega ključa
Sintaksa
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 | Vrednost, ki jo vrne funkcija NewSignProcessFrom* |
|---|---|
| CertificateDER | Popoln certifikat RSA ali ECDSA X.509, kodiran v DER, ki ustreza zasebnemu ključu |
| ProviderName | Ime ponudnika shrambe ključev Windows ali prazen niz za Microsoft Software Key Storage Provider |
| KeyName | Trajno ime ključa, ki ga razume ponudnik |
| UseMachineKey | True ali neničelna vrednost za odpiranje ključa iz obsega računalnika |
| AllowUI | True ali neničelna vrednost za dovoljenje uporabniških vmesnikov PIN, soglasja ali obdobila v oblaku s strani ponudnika |
Vrnjene vrednosti
| 1 | Konfiguracija identitete je bila pripeta procesu |
|---|---|
| 0 | ID procesa, certifikat ali ime ključa ni bilo veljavno |
Opombe
Ključ se odpre, ko se postopek podpisa izvede, in v pomnilnik knjižnice ne vstopijo nobeni bajti zasebnega ključa
Kadar je AllowUI false, se NCRYPT_SILENT_FLAG uveljavi pri odpiranju ključa in podpisovanjuUstvarjeni podpis CMS se preveri proti
CertificateDER, preden je sprejet, tako da je ključ z istim algoritmom, a napačnim ujemanjem zavrnjenActiveX sprejme varianto tabele bajtov, DLL pa uporablja izrecno dolžino certifikata, tako da so vgrajeni ničelni bajti ohranjeni
Glejte tudi
SetSignProcessCNGKeyFromFile, SetSignProcessCNGKeyByHandle, SetSignProcessPrivateKeyUI