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

SignProcessIDHodnota vrácená funkcí NewSignProcessFrom*
CertificateDERKompletní certifikát X.509 RSA nebo ECDSA kódovaný v DER odpovídající soukromému klíči
ProviderNameNázev poskytovatele úložiště klíčů Windows, nebo prázdný řetězec pro Microsoft Software Key Storage Provider
KeyNameTrvalý název klíče, kterému rozumí poskytovatel
UseMachineKeyTrue nebo nenulová hodnota k otevření klíče ze strojového rozsahu
AllowUITrue nebo nenulová hodnota k dovolení uživatelských rozhraní PIN, souhlasu či cloudového schválení od poskytovatele

Návratové hodnoty

1Konfigurace identity byla připojena k procesu
0Id 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