Go
Go
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 Go Downloads
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 := chilkat.NewPfx()
success = pfx.LoadPfxFile("qa_data/pfx/cert_test123.pfx","test123")
if success == false {
fmt.Println(pfx.LastErrorText())
pfx.DisposePfx()
return
}
privKey := chilkat.NewPrivateKey()
success = pfx.PrivateKeyAt(0,privKey)
if success == false {
fmt.Println(pfx.LastErrorText())
pfx.DisposePfx()
privKey.DisposePrivateKey()
return
}
// Create IIC signature according to RSASSA-PKCS-v1_5 using SHA256
rsa := chilkat.NewRsa()
success = rsa.UsePrivateKey(privKey)
if success == false {
fmt.Println(rsa.LastErrorText())
pfx.DisposePfx()
privKey.DisposePrivateKey()
rsa.DisposeRsa()
return
}
// PKCS-v1_5 is used by default.
rsa.SetEncodingMode("hex")
rsa.SetCharset("utf-8")
hexSig := rsa.SignStringENC(concatenatedParams,"sha256")
fmt.Println("Signature value result is: ", *hexSig)
// Compute the MD5 hash of the bytes.
crypt := chilkat.NewCrypt2()
crypt.SetEncodingMode("hex")
crypt.SetHashAlgorithm("md5")
bd := chilkat.NewBinData()
bd.AppendEncoded(*hexSig,"hex")
md5_summary := crypt.HashBdENC(bd)
fmt.Println("MD5 summary value is: ", *md5_summary)
pfx.DisposePfx()
privKey.DisposePrivateKey()
rsa.DisposeRsa()
crypt.DisposeCrypt2()
bd.DisposeBinData()