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
(Unicode C) 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
#include <C_CkJsonObjectW.h> #include <C_CkCertW.h> #include <C_CkCodeSignW.h> void ChilkatSample(void) { BOOL success; HCkJsonObjectW json; HCkCertW cert; const wchar_t *exePath; HCkCodeSignW signer; // 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 = CkJsonObjectW_Create(); CkJsonObjectW_UpdateString(json,L"hashAlg",L"sha256"); CkJsonObjectW_UpdateBool(json,L"timestampToken.enabled",TRUE); CkJsonObjectW_UpdateString(json,L"timestampToken.tsaUrl",L"http://timestamp.digicert.com"); CkJsonObjectW_UpdateBool(json,L"timestampToken.requestTsaCert",TRUE); CkJsonObjectW_UpdateString(json,L"timestampToken.hashAlg",L"sha256"); // Load a code signing certificate.. cert = CkCertW_Create(); success = CkCertW_LoadPfxFile(cert,L"C:/someDir/myCodeSigningCert.pfx",L"pfx password"); if (success == FALSE) { wprintf(L"%s\n",CkCertW_lastErrorText(cert)); CkJsonObjectW_Dispose(json); CkCertW_Dispose(cert); return; } // You can sign .exe or .dll files. exePath = L"C:/someOtherDir/HelloWorld.exe"; signer = CkCodeSignW_Create(); // If successful, the following call will apply the signature to the EXE (or DLL). success = CkCodeSignW_AddSignature(signer,exePath,cert,json); if (success == FALSE) { wprintf(L"%s\n",CkCodeSignW_lastErrorText(signer)); CkJsonObjectW_Dispose(json); CkCertW_Dispose(cert); CkCodeSignW_Dispose(signer); return; } wprintf(L"Successfully applied the Authenticode signature.\n"); CkJsonObjectW_Dispose(json); CkCertW_Dispose(cert); CkCodeSignW_Dispose(signer); } |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.