Lua Requires Chilkat v11.0.0+
Lua
IKOF Generation Code for Montenegro Fiscalization Service
See more _Miscellaneous_ Examples
Demonstrates 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=2Chilkat Lua Downloads
local chilkat = require("chilkat")
-- This example requires the Chilkat API to have been previously unlocked.
-- See Global Unlock Sample for sample code.
local concatenatedParams = "12345678|2019-06-12T17:05:43+02:00|9952|bb123bb1231|cc123cc1231|ss123ss123|199.01"
-- Get the private key from a pfx file.
local pfx = chilkat.Pfx.new()
local success = pfx:load_pfx_file("qa_data/pfx/cert_test123.pfx", "test123")
if not success then
print(pfx.last_error_text)
return
end
local privKey = chilkat.PrivateKey.new()
success = pfx:private_key_at(0, privKey)
if not success then
print(pfx.last_error_text)
return
end
-- Create IIC signature according to RSASSA-PKCS-v1_5 using SHA256
local rsa = chilkat.Rsa.new()
success = rsa:use_private_key(privKey)
if not success then
print(rsa.last_error_text)
return
end
-- PKCS-v1_5 is used by default.
rsa.encoding_mode = "hex"
rsa.charset = "utf-8"
local hexSig = rsa:sign_string_enc(concatenatedParams, "sha256")
print("Signature value result is: " .. hexSig)
-- Compute the MD5 hash of the bytes.
local crypt = chilkat.Crypt2.new()
crypt.encoding_mode = "hex"
crypt.hash_algorithm = "md5"
local bd = chilkat.BinData.new()
bd:append_encoded(hexSig, "hex")
local md5_summary = crypt:hash_bd_enc(bd)
print("MD5 summary value is: " .. md5_summary)