SetSignProcessCNGKey
Zabezpečení a podpisy
Popis
Připojí pojmenovaný soukromý klíč NCrypt a jeho certifikát X.509 kódovaný v DER k procesu podpisování PDF
Klíč se otevírá přímo z požadovaného poskytovatele úložiště klíčů, což umožňuje identitu podpisování založenou na TPM, hardwarových tokenech, cloudovém KSP a dalších dostupných jen v CNG, aniž by se exportoval soukromý klíč
Syntaxe
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
| SignProcessID | Hodnota vrácená funkcí NewSignProcessFrom* |
|---|---|
| CertificateDER | Kompletní certifikát X.509 RSA nebo ECDSA kódovaný v DER odpovídající soukromému klíči |
| ProviderName | Název poskytovatele úložiště klíčů Windows, nebo prázdný řetězec pro Microsoft Software Key Storage Provider |
| KeyName | Trvalý název klíče, kterému rozumí poskytovatel |
| UseMachineKey | True nebo nenulová hodnota k otevření klíče ze strojového rozsahu |
| AllowUI | True nebo nenulová hodnota k dovolení uživatelských rozhraní PIN, souhlasu či cloudového schválení od poskytovatele |
Návratové hodnoty
| 1 | Konfigurace identity byla připojena k procesu |
|---|---|
| 0 | Id procesu, certifikát, nebo název klíče byl neplatný |
Poznámky
Klíč se otevře, když se proces podpisu provede, a žádné bajty soukromého klíče nevstupují do paměti knihovny
Když je AllowUI false, aplikuje se NCRYPT_SILENT_FLAG na otevírání klíče a podpisování
Vygenerovaný podpis CMS se ověří proti CertificateDER, než se přijme, takže klíč se stejným algoritmem, ale nesouladem se odmítne
ActiveX přijímá variantu pole bajtů a DLL používá explicitní délku certifikátu, takže vložené nulové bajty se zachovají
Viz také
SetSignProcessCNGKeyFromFile, SetSignProcessCNGKeyByHandle, SetSignProcessPrivateKeyUI