SetSignProcessCNGKey
Säkerhet och signaturer
Beskrivning
Fogar en namngiven NCrypt-privatnyckel och dess DER-kodade X.509-certifikat till en PDF-signeringsprocess
Nyckeln öppnas direkt från den begärda key storage-providern, vilket möjliggör TPM-backade, hårdvarutoken-, moln-KSP- och andra CNG-only signeringsidentiteter utan att exportera den privata nyckeln
Syntax
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);
Parametrar
| SignProcessID | Värde som returneras av en NewSignProcessFrom*-funktion |
|---|---|
| CertificateDER | Fullständigt DER-kodat RSA- eller ECDSA X.509-certifikat som motsvarar den privata nyckeln |
| ProviderName | Windows key storage-providernamn, eller en tom sträng för Microsoft Software Key Storage Provider |
| KeyName | Beständigt nyckelnamn som providern förstår |
| UseMachineKey | True eller skilt från noll för att öppna nyckeln från datoromfånget |
| AllowUI | True eller skilt från noll för att tillåta PIN-, samtyckes- eller molngodkännande-gränssnitt från providern |
Returvärden
| 1 | Identitetskonfigurationen fogades till processen |
|---|---|
| 0 | Process-id, certifikat eller nyckelnamn var ogiltigt |
Anmärkningar
Nyckeln öppnas när signeringsprocessen exekveras, och inga privatnyckelbyte når biblioteksminnet
När AllowUI är false tillämpas NCRYPT_SILENT_FLAG på nyckelöppning och signeringDen genererade CMS-signaturen verifieras mot
CertificateDER innan den godtas, så en nyckel med samma algoritm men fel matchning avvisas
ActiveX tar emot en byte-array-variant, och DLL:en använder en explicit certifikatlängd så att inbäddade nollbyte bevaras
Se även
SetSignProcessCNGKeyFromFile, SetSignProcessCNGKeyByHandle, SetSignProcessPrivateKeyUI