Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Delphi DLL) Authenticode Sign an Executable (EXE) or DLLSee more Code Signing ExamplesDemonstrates how to Authenticode sign an EXE or DLL. Note: Chilkat's code signing class was added in v9.5.0.97
uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, CodeSign, Cert, JsonObject; ... procedure TForm1.Button1Click(Sender: TObject); var success: Boolean; json: HCkJsonObject; cert: HCkCert; exePath: PWideChar; signer: HCkCodeSign; begin // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. // First create the following JSON to specify that SHA256 is to be used, // and provide timestamp server information. // { // "hashAlg": "sha256", // "timestampToken": { // "enabled": true, // "tsaUrl": "http://timestamp.digicert.com", // "requestTsaCert": true, // "hashAlg": "sha256" // } // } json := CkJsonObject_Create(); CkJsonObject_UpdateString(json,'hashAlg','sha256'); CkJsonObject_UpdateBool(json,'timestampToken.enabled',True); CkJsonObject_UpdateString(json,'timestampToken.tsaUrl','http://timestamp.digicert.com'); CkJsonObject_UpdateBool(json,'timestampToken.requestTsaCert',True); CkJsonObject_UpdateString(json,'timestampToken.hashAlg','sha256'); // Load a code signing certificate.. cert := CkCert_Create(); success := CkCert_LoadPfxFile(cert,'C:/someDir/myCodeSigningCert.pfx','pfx password'); if (success = False) then begin Memo1.Lines.Add(CkCert__lastErrorText(cert)); Exit; end; // You can sign .exe or .dll files. exePath := 'C:/someOtherDir/HelloWorld.exe'; signer := CkCodeSign_Create(); // If successful, the following call will apply the signature to the EXE (or DLL). success := CkCodeSign_AddSignature(signer,exePath,cert,json); if (success = False) then begin Memo1.Lines.Add(CkCodeSign__lastErrorText(signer)); Exit; end; Memo1.Lines.Add('Successfully applied the Authenticode signature.'); CkJsonObject_Dispose(json); CkCert_Dispose(cert); CkCodeSign_Dispose(signer); end; |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.