It's our great honour to announce the Industry’s First VHBR CCID reader - VHBR Dual interface smart card reader vR504. It is able to support the world’s fastest ePassports.

To celebrate the new product release, there is Special Discount for New Registered Members in our store.
- Get $20.00 OFF instantly for smart card reader vR504, R502 and bR301

Come to get the readers now!

Error when generating CMAC

Algorithm School

Moderator: UNKNwYSHSA

Posts: 12
Joined: Wed Feb 24, 2016 3:04 am
Points: 128

Error when generating CMAC

Postby Tinatco » Mon Mar 13, 2017 1:48 am

I have to generate CMAC in my applet.But I encountered some problems when doing this and I can't find where I made mistake. Here is my code:

Code: Select all

 Zeros = { 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00}           
 SecretKeySpec desSK = new SecretKeySpec(KeySession,0, 8,"DES");
 Cipher DesCipher = Cipher.getInstance("DES/CBC/NoPadding", "SunJCE");
 Spec = new IvParameterSpec(Zeros);
 DesCipher.init(Cipher.ENCRYPT_MODE, desSK,Spec);
 byte ForLastBlock[] = DesCipher.doFinal(data, 0, 8);
 cipher = Cipher.getInstance("DESede/CBC/NoPadding", "SunJCE");
 Spec = new IvParameterSpec(ForLastBlock);
 cipher.init(Cipher.ENCRYPT_MODE, getKeySpec(KeySession), Spec);
  byte cMac[] = cipher.doFinal(data, 8, 8);   

Hope someone help me out.

Posts: 24
Joined: Mon Nov 30, 2015 3:02 am
Points: 188

Re: Error when generating CMAC

Postby JCaberham » Mon Mar 13, 2017 4:21 am

Your computation method has something wrong. You should notice that: the last block is DES3 encrypted, ICV is last calculated C_MAC

Return to “Algorithm School”

Who is online

Users browsing this forum: No registered users and 1 guest

JavaCard OS : Disclaimer