Generate ARPC algorithm

Jan 27, 2010 at 3:16 PM

Hi, I m trying to find src code for generate ARPC, is anyone know how is it calculated?

I saw that Thales simulator doesn't support this command (KQ), is it?

I have the key, the pan, and field 55 (including arqc), how can I caclulate the ARPC? (Ofcourse it's only for testing environment, not production).

Thanks in advance,


Jan 27, 2010 at 7:37 PM

KQ isn't currently implemented. I think that ARPC generation is covered in EMV Book 2.

If KQ were implemented, how would you test it?

Jan 28, 2010 at 8:39 AM

I have Mastercard simulator, I am the issuer, and when I send EMV transaction (to my hsm machine emulator), it fails on invalid ARPC on the MC simulator.

If the ARPC was valid, I could see validation on the MC simulator, and this is my way to test ARPC.

I want to implement KQ myself, I am just looking for the generate ARPC algorithm,

or if you already have function that calculates it will be helpful.

Do you know how ARPC is calculated? Where can I find EMV Book 2?

Jan 28, 2010 at 10:15 AM

The ARPC algorithm is not the same for all EMV cards, so you need to know what card platform (like VSDC or M/Chip) you are using.

Jan 28, 2010 at 10:20 AM

The card platform is M/Chip 2.

Do you know the ARPC algorithm for this platform?


Jan 28, 2010 at 7:28 PM

You can find EMV Book 2 at the EMVCo site ( I believe that both VSDC and M/Chip are covered under section 8.1 (refered to as method 1 and method 2).

If you happen to implement the validation, I'd be grateful if you would consider sharing your code so it can be added to the Thales simulator.

Feb 2, 2010 at 10:54 AM

Thanks a lot, I am not sure if I will implement it (it seems to be more complicated than I thought)

If yes, of course I will share my code.

Nov 11, 2010 at 7:24 PM

A user has contributed an implementation of the KQ command. Would you be willing to test the implementation dikla?

Nov 15, 2010 at 9:27 AM

Yes, sure. Where is the implementation?

Nov 15, 2010 at 3:52 PM

You can download the implementation from the change set 57541. Note that the original implementation was done on a dated simulator version and it was converted to use XML host definitions...but I do not have any test data to properly write a test case.

Please let me know how it goes.