|  | 
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
| (Unicode 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_CkPfxW.h> #include <C_CkPrivateKeyW.h> #include <C_CkRsaW.h> #include <C_CkCrypt2W.h> #include <C_CkBinDataW.h> void ChilkatSample(void) { BOOL success; const wchar_t *concatenatedParams; HCkPfxW pfx; HCkPrivateKeyW privKey; HCkRsaW rsa; const wchar_t *hexSig; HCkCrypt2W crypt; HCkBinDataW bd; const wchar_t *md5_summary; success = FALSE; // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. concatenatedParams = L"12345678|2019-06-12T17:05:43+02:00|9952|bb123bb1231|cc123cc1231|ss123ss123|199.01"; // Get the private key from a pfx file. pfx = CkPfxW_Create(); success = CkPfxW_LoadPfxFile(pfx,L"qa_data/pfx/cert_test123.pfx",L"test123"); if (success == FALSE) { wprintf(L"%s\n",CkPfxW_lastErrorText(pfx)); CkPfxW_Dispose(pfx); return; } privKey = CkPrivateKeyW_Create(); success = CkPfxW_PrivateKeyAt(pfx,0,privKey); if (success == FALSE) { wprintf(L"%s\n",CkPfxW_lastErrorText(pfx)); CkPfxW_Dispose(pfx); CkPrivateKeyW_Dispose(privKey); return; } // Create IIC signature according to RSASSA-PKCS-v1_5 using SHA256 rsa = CkRsaW_Create(); success = CkRsaW_UsePrivateKey(rsa,privKey); if (success == FALSE) { wprintf(L"%s\n",CkRsaW_lastErrorText(rsa)); CkPfxW_Dispose(pfx); CkPrivateKeyW_Dispose(privKey); CkRsaW_Dispose(rsa); return; } // PKCS-v1_5 is used by default. CkRsaW_putEncodingMode(rsa,L"hex"); CkRsaW_putCharset(rsa,L"utf-8"); hexSig = CkRsaW_signStringENC(rsa,concatenatedParams,L"sha256"); wprintf(L"Signature value result is: %s\n",hexSig); // Compute the MD5 hash of the bytes. crypt = CkCrypt2W_Create(); CkCrypt2W_putEncodingMode(crypt,L"hex"); CkCrypt2W_putHashAlgorithm(crypt,L"md5"); bd = CkBinDataW_Create(); CkBinDataW_AppendEncoded(bd,hexSig,L"hex"); md5_summary = CkCrypt2W_hashBdENC(crypt,bd); wprintf(L"MD5 summary value is: %s\n",md5_summary); CkPfxW_Dispose(pfx); CkPrivateKeyW_Dispose(privKey); CkRsaW_Dispose(rsa); CkCrypt2W_Dispose(crypt); CkBinDataW_Dispose(bd); } | ||||||
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.