按TLV格式拆分APDU指令

本文介绍了一种方法来解析TLV格式的APDU指令,通过判断Tag的第一字节特性来确定Tag的长度,然后提取对应的Value部分。在函数SerchTagFromDGIData中,遍历输入数据,当找到匹配的Tag时,返回相应的Value和完整的TLV数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

判断规则:

     1、Tag第一字节的bit3为1,则该tag为模版;

     2、Tag第一字节高5位为全1,则该Tag的长度为2字节,否则则为1字节长度。


/************************************************************************/
/*  SerchTagFromDGIData
/*  In:
   inData 输入数据,以模板或者TAG开头
   tag    需要重找的TAG值
 out:
   outV   TAG的数据
   outTLV TAG的TLV数据                                                       
/************************************************************************/
SerchTagFromDGIData(char *inData, char *tag, char *outV, char *outTLV)
{
 int tag_len = 0;
 CString _inData = "", _tag = "";
 char _outV[256], _outTLV[256];
 
 memset(_outV, 0x00, sizeof(_outV));
 memset(_outTLV, 0x00, sizeof(_outTLV));
 _inData.Format("%s", inData);
 _tag.Format("%s", tag);
 
 while(_inData != "")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值