Ich verwende CAPICOM in einer .NET 3.0 C # -App, um eine Authenticode-Signatur in einer EXE-Datei zu überprüfen. Ich muss sicherstellen, dass das Zertifikat als vertrauenswürdiger Herausgeber aufgeführt ist. Wenn Sie signedCode.Verify(true)
verwenden, wird ein Dialogfeld angezeigt, wenn das Zertifikat nicht bereits vertrauenswürdig ist. Daher kann der Benutzer auswählen, ob er dies tun möchte oder nicht. % Co_de% überprüft jedoch die Signatur, auch wenn sie nicht von einem vertrauenswürdigen Herausgeber stammt - vermutlich überprüft dies nur, ob das Zertifikat gültig ist.
Wie kann ich überprüfen, ob die Signatur in einer Datei von einem gültigen und vertrauenswürdigen Zertifikat ohne Benutzeroberfläche stammt?
Erstens ist StrongNameSignatureVerificationEx für die Überprüfung der Assembly-Signatur und nicht für die Überprüfung der Authenticode-Signatur. Das ist also für den Kontext der ursprünglichen Posterfrage nicht relevant.
Bei der ersten Frage können Sie mithilfe des folgenden Codes manuell überprüfen, ob das Unterzeichnerzertifikat korrekt an ein vertrauenswürdiges Stammverzeichnis ohne GUI gekoppelt ist:
%Vor%Die Idee besteht darin, das Zertifikat des Unterzeichners abzurufen und CAPICom mitzuteilen, dass es eine korrekte Vertrauenskette hat.
Ich hoffe, das wird helfen. Prost,
Mounir IDRASSI, IDRIX Ссылка
Was Sie wahrscheinlich tun müssten, ist exposed durch die mscoree.dll StrongNameSignatureVerificationEx
Funktion mit P / Invoke:
Tags und Links c# authenticode digital-signature capicom