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
(C++) RSA Signature with Certificate's Private Key from PFXSee more RSA ExamplesDemonstrates how to use a certificate's private key from a PFX file to create an RSA signature.
#include <CkCertStore.h> #include <CkCert.h> #include <CkPrivateKey.h> #include <CkRsa.h> void ChilkatSample(void) { // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. // Create an instance of a certificate store object, load a PFX file, // locate the certificate we need, and use it for signing. // (a PFX file may contain more than one certificate.) CkCertStore certStore; // The 1st argument is the filename, the 2nd arg is the // PFX file's password: bool success = certStore.LoadPfxFile("chilkat.pfx","test"); if (success != true) { std::cout << certStore.lastErrorText() << "\r\n"; return; } CkCert *cert = certStore.FindCertBySubject("Chilkat Software, Inc."); if (certStore.get_LastMethodSuccess() == false) { std::cout << certStore.lastErrorText() << "\r\n"; return; } CkPrivateKey *pkey = cert->ExportPrivateKey(); if (cert->get_LastMethodSuccess() == false) { std::cout << cert->lastErrorText() << "\r\n"; delete cert; return; } delete cert; // Get the private key in XML format: const char *pkeyXml = pkey->getXml(); CkRsa rsa; // Import the private key into the RSA component: success = rsa.ImportPrivateKey(pkeyXml); if (success != true) { std::cout << rsa.lastErrorText() << "\r\n"; delete pkey; return; } // Encode the signature as a hex string rsa.put_EncodingMode("hex"); const char *strData = "This is the string to be signed."; // Sign the string using the sha-1 hash algorithm. // Other valid choices are "sha-256", "md2" and "md5". const char *hexSig = rsa.signStringENC(strData,"sha-1"); std::cout << hexSig << "\r\n"; delete pkey; std::cout << "Success!" << "\r\n"; } |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.