|  | 
Chilkat  HOME  Android™  AutoIt  C  C#  C++  Chilkat2-Python  CkPython  Classic ASP  DataFlex  Delphi DLL  Go  Java  Node.js  Objective-C  PHP Extension  Perl  PowerBuilder  PowerShell  PureBasic  Ruby  SQL Server  Swift  Tcl  Unicode C  Unicode C++  VB.NET  VBScript  Visual Basic 6.0  Visual FoxPro  Xojo Plugin
| (C) 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 Note: This example requires Chilkat v11.0.0 or greater. 
 #include <C_CkPfx.h> #include <C_CkPrivateKey.h> #include <C_CkRsa.h> #include <C_CkCrypt2.h> #include <C_CkBinData.h> void ChilkatSample(void) { BOOL success; const char *concatenatedParams; HCkPfx pfx; HCkPrivateKey privKey; HCkRsa rsa; const char *hexSig; HCkCrypt2 crypt; HCkBinData bd; const char *md5_summary; success = FALSE; // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. concatenatedParams = "12345678|2019-06-12T17:05:43+02:00|9952|bb123bb1231|cc123cc1231|ss123ss123|199.01"; // Get the private key from a pfx file. pfx = CkPfx_Create(); success = CkPfx_LoadPfxFile(pfx,"qa_data/pfx/cert_test123.pfx","test123"); if (success == FALSE) { printf("%s\n",CkPfx_lastErrorText(pfx)); CkPfx_Dispose(pfx); return; } privKey = CkPrivateKey_Create(); success = CkPfx_PrivateKeyAt(pfx,0,privKey); if (success == FALSE) { printf("%s\n",CkPfx_lastErrorText(pfx)); CkPfx_Dispose(pfx); CkPrivateKey_Dispose(privKey); return; } // Create IIC signature according to RSASSA-PKCS-v1_5 using SHA256 rsa = CkRsa_Create(); success = CkRsa_UsePrivateKey(rsa,privKey); if (success == FALSE) { printf("%s\n",CkRsa_lastErrorText(rsa)); CkPfx_Dispose(pfx); CkPrivateKey_Dispose(privKey); CkRsa_Dispose(rsa); return; } // PKCS-v1_5 is used by default. CkRsa_putEncodingMode(rsa,"hex"); CkRsa_putCharset(rsa,"utf-8"); hexSig = CkRsa_signStringENC(rsa,concatenatedParams,"sha256"); printf("Signature value result is: %s\n",hexSig); // Compute the MD5 hash of the bytes. crypt = CkCrypt2_Create(); CkCrypt2_putEncodingMode(crypt,"hex"); CkCrypt2_putHashAlgorithm(crypt,"md5"); bd = CkBinData_Create(); CkBinData_AppendEncoded(bd,hexSig,"hex"); md5_summary = CkCrypt2_hashBdENC(crypt,bd); printf("MD5 summary value is: %s\n",md5_summary); CkPfx_Dispose(pfx); CkPrivateKey_Dispose(privKey); CkRsa_Dispose(rsa); CkCrypt2_Dispose(crypt); CkBinData_Dispose(bd); } | ||||||
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.