Chilkat HOME Android™ Classic ASP C C++ C# Mono C# .NET Core C# C# UWP/WinRT DataFlex Delphi ActiveX Delphi DLL Visual FoxPro Java Lianja MFC Objective-C Perl PHP ActiveX PHP Extension PowerBuilder PowerShell PureBasic CkPython Chilkat2-Python Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ Visual Basic 6.0 VB.NET VB.NET UWP/WinRT VBScript Xojo Plugin Node.js Excel Go
(MFC) IKOF Generation Code for Montenegro Fiscalization ServiceDemonstrates computing the IKOF MD5 summary value as described in section 4.3 of this document: https://poreskauprava.gov.me/ResourceManager/FileDownload.aspx?rId=416042&rType=2
#include <CkPfx.h> #include <CkPrivateKey.h> #include <CkRsa.h> #include <CkCrypt2.h> #include <CkBinData.h> void ChilkatSample(void) { CkString strOut; // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. const char *concatenatedParams = "12345678|2019-06-12T17:05:43+02:00|9952|bb123bb1231|cc123cc1231|ss123ss123|199.01"; // Get the private key from a pfx file. CkPfx pfx; bool success = pfx.LoadPfxFile("qa_data/pfx/cert_test123.pfx","test123"); if (success != true) { strOut.append(pfx.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } CkPrivateKey *privKey = pfx.GetPrivateKey(0); if (pfx.get_LastMethodSuccess() == false) { strOut.append(pfx.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } // Create IIC signature according to RSASSA-PKCS-v1_5 using SHA256 CkRsa rsa; success = rsa.ImportPrivateKeyObj(*privKey); if (success == false) { strOut.append(rsa.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } // PKCS-v1_5 is used by default. rsa.put_EncodingMode("hex"); rsa.put_Charset("utf-8"); const char *hexSig = rsa.signStringENC(concatenatedParams,"sha256"); strOut.append("Signature value result is: "); strOut.append(hexSig); strOut.append("\r\n"); // Compute the MD5 hash of the bytes. CkCrypt2 crypt; crypt.put_EncodingMode("hex"); crypt.put_HashAlgorithm("md5"); CkBinData bd; bd.AppendEncoded(hexSig,"hex"); const char *md5_summary = crypt.hashBdENC(bd); strOut.append("MD5 summary value is: "); strOut.append(md5_summary); strOut.append("\r\n"); delete privKey; SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); } |
© 2000-2022 Chilkat Software, Inc. All Rights Reserved.