我正在使用JNI在android中运行以下命令。
select command: 00A4040006454D5600000100(based on relavant AId)
GPO: 80A80000(modifying based on pdol)
read record : 00B2010C(Based on number of AFLs, SFI available)
之后,我想显示针垫(如果卡支持针)。
我正在关注CVM列表
4203 Encrypted PIN online, If terminal supports CVM, next
1E03 Signature, If terminal supports CVM, FAIL
1F03 No CVM
如何在android / java中了解这些标签。为此有任何APDU命令吗?如何处理/执行cvm规则?
所有建议将不胜感激。
最佳答案
据我了解,您有某种形式的本地EMV内核,可以从Android应用程序中调用。作为第一个建议,您应该查看该功能是否尚未公开。
CVM列表只是您使用Read Record命令读取的对象(标识符为0x8E)之一。关于什么的定义,请参见www.emvco.com上的EMV规格书3(请参阅第10.5章和附件C3)。
由于EMV中的持卡人验证是按顺序执行的(通过列表检查条件适用于您的交易),因此很难说是否会使用PIN码(无论卡是否支持该密码-坦白地说,它都是由授权的)发行人的付款方案以支持大多数卡产品的PIN方法)。某些条件可能取决于先前方法的执行状态(在CVM规则字节1上设置b7时)。
关于命令,您可能希望脱机PIN需要发送Get Data命令来请求0x9F17,这是脱机PIN尝试计数器。当然,脱机PIN将需要发送验证命令,以显示要由ICC验证的PIN。
关于android - 解析CVM列表:在SFI中获取CVM列表后何时显示针垫,需要任何命令,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53592588/