Java Requires Chilkat v11.0.0+
Chilkat2 Java
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 Java Downloads
import com.chilkatsoft.chilkat2.BinData;
import com.chilkatsoft.chilkat2.ChilkatException;
import com.chilkatsoft.chilkat2.Crypt2;
import com.chilkatsoft.chilkat2.Pfx;
import com.chilkatsoft.chilkat2.PrivateKey;
import com.chilkatsoft.chilkat2.Rsa;
public class ChilkatExample {
public static void main(String[] args) {
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
String concatenatedParams = "12345678|2019-06-12T17:05:43+02:00|9952|bb123bb1231|cc123cc1231|ss123ss123|199.01";
// Get the private key from a pfx file.
Pfx pfx = new Pfx();
try {
pfx.loadPfxFile("qa_data/pfx/cert_test123.pfx", "test123");
} catch (ChilkatException e) {
System.out.println(e.getLastErrorText());
return;
}
PrivateKey privKey = new PrivateKey();
try {
pfx.privateKeyAt(0, privKey);
} catch (ChilkatException e) {
System.out.println(e.getLastErrorText());
return;
}
// Create IIC signature according to RSASSA-PKCS-v1_5 using SHA256
Rsa rsa = new Rsa();
try {
rsa.usePrivateKey(privKey);
} catch (ChilkatException e) {
System.out.println(e.getLastErrorText());
return;
}
// PKCS-v1_5 is used by default.
rsa.setEncodingMode("hex");
rsa.setCharset("utf-8");
String hexSig = rsa.signStringENC(concatenatedParams, "sha256");
System.out.println("Signature value result is: " + hexSig);
// Compute the MD5 hash of the bytes.
Crypt2 crypt = new Crypt2();
crypt.setEncodingMode("hex");
crypt.setHashAlgorithm("md5");
BinData bd = new BinData();
bd.appendEncoded(hexSig, "hex");
String md5_summary = crypt.hashBdENC(bd);
System.out.println("MD5 summary value is: " + md5_summary);
}
}