代码之家  ›  专栏  ›  技术社区  ›  Uma Achanta

解析cvm列表:在sfi中获取cvm列表后何时显示pin pad,需要任何命令

  •  1
  • Uma Achanta  · 技术社区  · 6 年前

    我正在使用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)
    

    在这之后,如果卡支持pin,我想显示pin pad。 我正在跟踪CVM列表

    4203 Encrypted PIN online, If terminal supports CVM, next 
    1E03 Signature, If terminal supports CVM, FAIL 
    1F03 No CVM
    

    如何在Android/Java中理解这些标签。有APDU命令吗?如何处理/执行CVM规则?

    所有建议将不胜感激。

    1 回复  |  直到 6 年前
        1
  •  2
  •   Michal Gluchowski    6 年前

    据我所知,您有某种形式的本地EMV内核,可以从您的Android应用程序调用。作为第一个建议,您应该看看该函数是否已经公开。 cvm list只是用read record命令读取的对象之一(带有标识符0x8e)。EMV第3册(见第10.5章和附件C3)中的定义,可在www.emvco.com上查阅。 由于EMV中的持卡人验证是按顺序进行的(通过适用于您的交易的列表检查条件),因此很难确定是否会使用PIN(无论卡是否支持这一事实——坦率地说,发卡行的支付计划要求发卡行支持大多数卡的PIN方法。奥托斯)某些条件可能取决于以前方法的执行状态(当b7设置在cvm规则字节1上时)。 关于命令,您可能期望脱机pin需要发送get data命令,请求0x9f17,这是脱机pin尝试计数器。当然,离线的pin需要发送验证命令来显示要由ICC验证的pin。