i'm trying to understand which entitlements i need to ask for in order to be able to read the credit card via NFC.
I work for the bank and i'd like the read our card in order to verify there are the bank's credit card. The goal is to be able to use the card as a physical token to verify the user identity.
on android we manage to do this without limitation
if (await NfcManager.isSupported()) {
await NfcManager.requestTechnology(NfcTech.IsoDep)
const tag = await NfcManager.getTag()
if (tag) toast.success("NFC Tag read successfully", { cancel: undefined, description: tag.id, id })
else toast.error("No NFC Tag found", { cancel: undefined, id })
const ppse = await NfcManager.isoDepHandler.transceive([
0x00, 0xa4, 0x04, 0x00, 0x0e, 0x32, 0x50, 0x41, 0x59, 0x2e, 0x53, 0x59, 0x53, 0x2e, 0x44, 0x44, 0x46, 0x30,
0x31, 0x00,
])
logger.info("PPSE", ppse.map((c) => fromBase10ToHex(c, 2)).join(" "))
const select = await NfcManager.isoDepHandler.transceive([
0x00, 0xa4, 0x04, 0x00, 0x07, 0xa0, 0x00, 0x00, 0x00, 0x04, 0x10, 0x10, 0x00,
])
logger.info("Select AID", select.map((c) => fromBase10ToHex(c, 2)).join(" "))
const gpo = await NfcManager.isoDepHandler.transceive([0x80, 0xa8, 0x00, 0x00, 0x02, 0x83, 0x00, 0x00])
logger.info("GPO", gpo.map((c) => fromBase10ToHex(c, 2)).join(" "))
const record = await NfcManager.isoDepHandler.transceive([0x00, 0xb2, 0x01, 0x14, 0x00])
logger.info("record: ", record.map((c) => fromBase10ToHex(c, 2)).join(" "))
logger.info("PAN", findTag(record, [0x5a]))
logger.info("expiry", findTag(record, [0x5f, 0x24])?.reverse())
}
but on ios we have restricted access and the ppse doesn't work but i can't find which entitlement i need to ask for, since HCE is to make the iphone into a nfc tag himself and the tap to pay is to pay with the iphone, both of those doesn't match my needs and i wouldn't be able to valid the requirement to get them into production.
So i am wondering which entitlement i needs to ask for in order to be able to scan the card inside the bank app. We only care about our card