Tcl
Tcl
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 Tcl Downloads
load ./chilkat.dll
set success 0
# This example requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
set concatenatedParams "12345678|2019-06-12T17:05:43+02:00|9952|bb123bb1231|cc123cc1231|ss123ss123|199.01"
# Get the private key from a pfx file.
set pfx [new_CkPfx]
set success [CkPfx_LoadPfxFile $pfx "qa_data/pfx/cert_test123.pfx" "test123"]
if {$success == 0} then {
puts [CkPfx_lastErrorText $pfx]
delete_CkPfx $pfx
exit
}
set privKey [new_CkPrivateKey]
set success [CkPfx_PrivateKeyAt $pfx 0 $privKey]
if {$success == 0} then {
puts [CkPfx_lastErrorText $pfx]
delete_CkPfx $pfx
delete_CkPrivateKey $privKey
exit
}
# Create IIC signature according to RSASSA-PKCS-v1_5 using SHA256
set rsa [new_CkRsa]
set success [CkRsa_UsePrivateKey $rsa $privKey]
if {$success == 0} then {
puts [CkRsa_lastErrorText $rsa]
delete_CkPfx $pfx
delete_CkPrivateKey $privKey
delete_CkRsa $rsa
exit
}
# PKCS-v1_5 is used by default.
CkRsa_put_EncodingMode $rsa "hex"
CkRsa_put_Charset $rsa "utf-8"
set hexSig [CkRsa_signStringENC $rsa $concatenatedParams "sha256"]
puts "Signature value result is: $hexSig"
# Compute the MD5 hash of the bytes.
set crypt [new_CkCrypt2]
CkCrypt2_put_EncodingMode $crypt "hex"
CkCrypt2_put_HashAlgorithm $crypt "md5"
set bd [new_CkBinData]
CkBinData_AppendEncoded $bd $hexSig "hex"
set md5_summary [CkCrypt2_hashBdENC $crypt $bd]
puts "MD5 summary value is: $md5_summary"
delete_CkPfx $pfx
delete_CkPrivateKey $privKey
delete_CkRsa $rsa
delete_CkCrypt2 $crypt
delete_CkBinData $bd