Visual FoxPro
Visual FoxPro
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 Visual FoxPro Downloads
LOCAL lnSuccess
LOCAL lcConcatenatedParams
LOCAL loPfx
LOCAL loPrivKey
LOCAL loRsa
LOCAL lcHexSig
LOCAL loCrypt
LOCAL loBd
LOCAL lcMd5_summary
lnSuccess = 0
* 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('Chilkat.Pfx')
lnSuccess = loPfx.LoadPfxFile("qa_data/pfx/cert_test123.pfx","test123")
IF (lnSuccess = 0) THEN
? loPfx.LastErrorText
RELEASE loPfx
CANCEL
ENDIF
loPrivKey = CreateObject('Chilkat.PrivateKey')
lnSuccess = loPfx.PrivateKeyAt(0,loPrivKey)
IF (lnSuccess = 0) THEN
? loPfx.LastErrorText
RELEASE loPfx
RELEASE loPrivKey
CANCEL
ENDIF
* Create IIC signature according to RSASSA-PKCS-v1_5 using SHA256
loRsa = CreateObject('Chilkat.Rsa')
lnSuccess = loRsa.UsePrivateKey(loPrivKey)
IF (lnSuccess = 0) THEN
? loRsa.LastErrorText
RELEASE loPfx
RELEASE loPrivKey
RELEASE loRsa
CANCEL
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('Chilkat.Crypt2')
loCrypt.EncodingMode = "hex"
loCrypt.HashAlgorithm = "md5"
loBd = CreateObject('Chilkat.BinData')
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