J8583 Api and EMV credentials

835 views Asked by At

I've been looking at J8583: http://j8583.sourceforge.net/xmlconf.html.

It's a fantastic Api and well maintained, kudos to the author/dev.

I'm wondering if anyone has successfully used it for EMV transactions and/or whether or not the library can handles this data and/or whether it would be safe to do so.

It looks as though I'd need to use a composite custom field looking at field 55 of the primary bitmap. If the data is present I'd then need to investigate the EMV Tags and parse as required.

My sample ISO messages looks like:

666600000000000002001495F2A0201245F34010182021C008407A0000000031010950580000000009A031102249B0268009C01009F02060000000000009F03060000000000009F0607A00000000310109F0802008C9F0902008C9F100706010A039000009F1A0201249F2608423158936ED6C38F9F2701809F3303E0B0C89F34034103029F3501229F360200019F3704ACAC66E89F5800DF0100DF0200DF0400

The 6666 prefix is a template I've set up just to test this scenario, it only has field 55 of type LLLVAR

If we are then to look at decoding the EMV data we can use http://www.emvlab.org/tlvutils/ and pasting in:

5F2A0201245F34010182021C008407A0000000031010950580000000009A031102249B0268009C01009F02060000000000009F03060000000000009F0607A00000000310109F0802008C9F0902008C9F100706010A039000009F1A0201249F2608423158936ED6C38F9F2701809F3303E0B0C89F34034103029F3501229F360200019F3704ACAC66E89F5800DF0100DF0200DF0400

will yield a table of results that I'm effectively trying to reproduce.

My output is simply:

Output: 

666600000000000002001495F2A0201245F34010182021C008407A0000000031010950580000000009A031102249B0268009C01009F02060000000000009F03060000000000009F0607A00000000310109F0802008C9F0902008C9F100706010A039000009F1A0201249F2608423158936ED6C38F9F2701809F3303E0B0C89F34034103029F3501229F360200019F3704ACAC66E89F5800DF0100DF0200DF0400
Message type: 6666
FIELD TYPE    VALUE
   55 LLLVAR [5F2A0201245F34010182021C008407A0000000031010950580000000009A031102249B0268009C01009F02060000000000009F03060000000000009F0607A00000000310109F0802008C9]

as I haven't worked on the custom fields yet as I wanted to ask the SO community their thoughts first.

Thank in advance for any help/suggestions.

also...if someone reading this has 1500 rep, maybe J8583 si deserving it's own tag?

1

There are 1 answers

3
null On

Posting in case anyone else should stumble across this post.

It was determined that the J8583 library would not be suitable for EMV data. It is a great library but not suited for the task of parsing the BER-TLV tags.
Usign a composite field would also be unsuitable as these sub fields are accessed via indexing and it wouldn't be obvious if one were missing or not.

Anyway, the good news - this library is incredible for parsing the Tags : https://github.com/binaryfoo/emv-bertlv

You can wrap it in field 55 of the J8583 lib is you're already using it. 55 is considered the standard, I think.

Have fun! :)