Hi
I wanna make a MAC with using of JCESecurityModule and wrote following method:
public byte[] generateMac(byte[] Message, ParamKey paramKey)
{
byte[] MacResult = new byte[8];
try {
//JCESecurityModule jceSecurityModule = new JCESecurityModule("./cfg/secret.lmk");
//JCESecurityModule jceSecurityModule = new JCESecurityModule("./cfg/secret.lmk", "org.bouncycastle.jce.provider.BouncyCastleProvider");
JCESecurityModule sm = new JCESecurityModule();
Logger logger = new Logger();
logger.addListener(new SimpleLogListener());
sm.setLogger(logger, "jce-security-module");
Properties cfgProps = new Properties();
cfgProps.setProperty("lmk", "./cfg/secret.lmk");
cfgProps.setProperty("provider", "org.bouncycastle.jce.provider.BouncyCastleProvider"); //"com.sun.crypto.provider.SunJCE"
cfgProps.setProperty("rebuildlmk", "true");
cfgProps.setProperty("ede-mac", "DESEDEMAC");
SimpleConfiguration cfg = new SimpleConfiguration(cfgProps);
JCESecurityModule jceSecurityModule = new JCESecurityModule(cfg, logger, this.getClass().getName());
org.jpos.security.SecureDESKey secureDESKey = new SecureDESKey(LENGTH_DES3_2KEY , SMAdapter.TYPE_ZMK+":1U",
getKey(paramKey)
,
getKeyCheckValue
(paramKey)
);
MacResult = jceSecurityModule.generateEDE_MAC(Message, secureDESKey);
}
catch (Exception e)
{
e.printStackTrace();
}
return MacResult;
}
my code not work fine and i get following error:
org.jpos.security.SMException: Unable to load MAC algorithm whose name is: DESEDEMAC. Check that is used correct JCE provider and/or it is proper configured for this module. (org.jpos.security.jceadapter.JCEHandlerException: Parity not adjusted)
How do I do that?
Best regards
Mehdi