Lianja
Lianja
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 Lianja Downloads
llSuccess = .F.
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
lcConcatenatedParams = "12345678|2019-06-12T17:05:43+02:00|9952|bb123bb1231|cc123cc1231|ss123ss123|199.01"
// Get the private key from a pfx file.
loPfx = createobject("CkPfx")
llSuccess = loPfx.LoadPfxFile("qa_data/pfx/cert_test123.pfx","test123")
if (llSuccess = .F.) then
? loPfx.LastErrorText
release loPfx
return
endif
loPrivKey = createobject("CkPrivateKey")
llSuccess = loPfx.PrivateKeyAt(0,loPrivKey)
if (llSuccess = .F.) then
? loPfx.LastErrorText
release loPfx
release loPrivKey
return
endif
// Create IIC signature according to RSASSA-PKCS-v1_5 using SHA256
loRsa = createobject("CkRsa")
llSuccess = loRsa.UsePrivateKey(loPrivKey)
if (llSuccess = .F.) then
? loRsa.LastErrorText
release loPfx
release loPrivKey
release loRsa
return
endif
// PKCS-v1_5 is used by default.
loRsa.EncodingMode = "hex"
loRsa.Charset = "utf-8"
lcHexSig = loRsa.SignStringENC(lcConcatenatedParams,"sha256")
? "Signature value result is: " + lcHexSig
// Compute the MD5 hash of the bytes.
loCrypt = createobject("CkCrypt2")
loCrypt.EncodingMode = "hex"
loCrypt.HashAlgorithm = "md5"
loBd = createobject("CkBinData")
loBd.AppendEncoded(lcHexSig,"hex")
lcMd5_summary = loCrypt.HashBdENC(loBd)
? "MD5 summary value is: " + lcMd5_summary
release loPfx
release loPrivKey
release loRsa
release loCrypt
release loBd