I need to send APDUs to a PIV card (Javacard) via the 14443 contactless protocol. The card I am using supports the 14443 Type A interface. I am using a third party chip to communicate with the card via the 14443 protocol (and am not using PC/SC on a Windows PC); so I must format the frames to send to the card.
I have read the 14443 specs, but cannot find anywhere where it defines how to encapsulate the APDUs for the card within a 14443-4 frame (I-Block). For example, in order to select the PIV applet, the APDU is "00A404000BA00000030800001000010000". I think that I must enclose the Select APDU in the INF field of a 14443-4 I-Block frame, so the complete 14443-4 frame to send to the card is "0A0100A404000BA00000030800001000010000+2CRCBytes" (where the 0A01 at the beginning of the frame is the prologue PCB (0A) and the CID (01) for the card; and the 2CRCBytes at the end of the frame are the calculated CRC bytes). However when I send this to the card, I am getting no response from the card.
How are the 7816 APDUs supposed to be encapsulated within the 14443-4 frame for the card?
Found a solution. The PIV card expects a PPS, which I was interpreting as being optional (based on 14443-4). After sending the PPS and receiving a PPS response from the card, the card would subsequently give a response to the Select APDU.