SetSignProcessCNGKey

Sicherheit und Signaturen

Beschreibung

Ordnet einem PDF-Signaturprozess einen benannten privaten NCrypt-Schlüssel und dessen DER-codiertes X.509-Zertifikat zu

Der Schlüssel wird direkt beim angeforderten Schlüsselspeicheranbieter geöffnet und ermöglicht TPM-gestützte, Hardware-Token-, Cloud-KSP- und andere reine CNG-Signaturidentitäten, ohne den privaten Schlüssel zu exportieren

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

Parameter

SignProcessIDVon einer NewSignProcessFrom*-Funktion zurückgegebener Wert
CertificateDERVollständiges DER-codiertes RSA- oder ECDSA-X.509-Zertifikat, das dem privaten Schlüssel entspricht
ProviderNameName des Windows-Schlüsselspeicheranbieters oder eine leere Zeichenfolge für Microsoft Software Key Storage Provider
KeyNameVom Anbieter verstandener persistenter Schlüsselname
UseMachineKeyTrue oder ein von null verschiedener Wert, um den Schlüssel aus dem Computerbereich zu öffnen
AllowUITrue oder ungleich null, um PIN-, Zustimmungs- oder Cloud-Genehmigungsoberflächen des Anbieters zuzulassen

Rückgabewerte

1Die Identitätskonfiguration wurde dem Prozess zugeordnet
0Prozess-ID, Zertifikat oder Schlüsselname war ungültig

Anmerkungen

Der Schlüssel wird bei der Ausführung des Signaturvorgangs geöffnet, und es gelangen keine Bytes des privaten Schlüssels in den Bibliotheksspeicher

Wenn AllowUI false ist, wird NCRYPT_SILENT_FLAG beim Öffnen von Schlüsseln und beim Signieren angewendet

Die erzeugte CMS-Signatur wird vor ihrer Annahme gegen CertificateDER geprüft, sodass ein Schlüssel mit demselben Algorithmus, aber ohne Übereinstimmung abgelehnt wird

ActiveX akzeptiert eine Bytearray-Variante, und die DLL verwendet eine ausdrückliche Zertifikatlänge, sodass eingebettete Nullbytes erhalten bleiben

Siehe auch

SetSignProcessCNGKeyFromFile, SetSignProcessCNGKeyByHandle, SetSignProcessPrivateKeyUI