Embedded 要克服EMV TLV长度限制

Embedded 要克服EMV TLV长度限制,embedded,contactless-smartcard,emv,tlv,verifone,Embedded,Contactless Smartcard,Emv,Tlv,Verifone,我们有代码来查询各种EMV TLV的值。 但是,对于PED序列号,标签“9F1E”的规范 有:- 名称说明源格式模板标签长度p/C接口 设备(IFD)序列号分配的唯一和永久序列号 由制造商端子A 8 9F1E 8原语连接至IFD 但是上面给出了8的限制,而我们有9长SNs的VeriFone PED 因此,依赖于标记“9F1E”的示例代码无法检索完整长度 int GetPPSerialNumber() { int rc = -1; rc = GetTLV("9F1E", &

我们有代码来查询各种EMV TLV的值。 但是,对于PED序列号,标签“9F1E”的规范 有:-

名称说明源格式模板标签长度p/C接口 设备(IFD)序列号分配的唯一和永久序列号 由制造商端子A 8 9F1E 8原语连接至IFD

但是上面给出了8的限制,而我们有9长SNs的VeriFone PED

因此,依赖于标记“9F1E”的示例代码无法检索完整长度

int GetPPSerialNumber()
{
    int rc = -1;

    rc = GetTLV("9F1E", &resultCharArray);

    return rc;
}
在上面的代码中,GetTLV()是用来获取标记arg并将值填充到char数组中的

有没有开发人员找到检索完整9的好方法?

你说得对——这里有一个错误匹配。TLV的好处在于,您不需要真正的规范来告诉您该值将持续多长时间。您的GetTLV()本身就施加了此限制;显而易见的解决办法是放松这一点

实际上,我们甚至没有查看TLV解析级别上记录的长度。每个标记都映射到BL中的一个关联实体(有时由于非接触模式走自己的路线,因此会有多个),我们可以选择要在其中施加长度限制的实体