SetSignProcessCNGKey

Zabezpieczenia i podpisy

Opis

Dołącza nazwany klucz prywatny NCrypt i odpowiadający mu certyfikat X.509 zakodowany w DER do procesu podpisywania PDF

Klucz jest otwierany bezpośrednio u wskazanego dostawcy magazynu kluczy, co pozwala używać tożsamości podpisujących opartych na TPM, tokenach sprzętowych, chmurowych dostawcach KSP i innych mechanizmach dostępnych wyłącznie przez CNG bez eksportowania klucza prywatnego

Składnia

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);

Parametry

SignProcessIDWartość zwrócona przez funkcję NewSignProcessFrom*
CertificateDERKompletny certyfikat X.509 RSA lub ECDSA zakodowany w DER, odpowiadający kluczowi prywatnemu
ProviderNameNazwa dostawcy magazynu kluczy Windows albo pusty ciąg dla Microsoft Software Key Storage Provider
KeyNameTrwała nazwa klucza rozpoznawana przez dostawcę
UseMachineKeyTrue lub wartość niezerowa otwiera klucz z zakresu komputera
AllowUITrue lub wartość niezerowa zezwala dostawcy na wyświetlanie interfejsu użytkownika dla kodu PIN, zgody lub zatwierdzenia chmurowego

Wartości zwracane

1Konfiguracja tożsamości została dołączona do procesu
0Identyfikator procesu, certyfikat lub nazwa klucza były nieprawidłowe

Uwagi

Klucz jest otwierany podczas wykonywania procesu podpisywania, a bajty klucza prywatnego nigdy nie trafiają do pamięci biblioteki

Gdy AllowUI ma wartość false, przy otwieraniu klucza i podpisywaniu stosowana jest flaga NCRYPT_SILENT_FLAG

Wygenerowany podpis CMS jest przed zaakceptowaniem weryfikowany przy użyciu CertificateDER, dlatego klucz o tym samym algorytmie, lecz niepasujący do certyfikatu, zostanie odrzucony

ActiveX przyjmuje wariant tablicy bajtów, a biblioteka DLL używa jawnej długości certyfikatu, dzięki czemu zachowywane są osadzone bajty zerowe

Zobacz również

SetSignProcessCNGKeyFromFile, SetSignProcessCNGKeyByHandle, SetSignProcessPrivateKeyUI