`
leo123456
  • 浏览: 13452 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

转-操作卡片文件命令--写二进制(UPDATE BINARY)

阅读更多
1、命令功能描述

    写二进制命令用于更新二进制文件的全部或部分内容。

    每次更新内容在256Byte以内,如果需要更新超过256Byte的内容的话,需要通过多次操作完成。

    对二进制文件写操作前需要满足二进制文件描述块中关于写操作的安全控制的要求。

  2、命令报文格式

    命令的APDU内容如下所示:

      代码              值
       CLA                 0x00
       INS                 0xD6
       P1                  应用控制参数
       P2                  应用控制参数
       Lc                  DATA域的数据长度
       Data                要更新的新的数据内容
       Le                  不存在

    其中:

    * 如果P1的最高位b8为1时,b6和b7位必须为0,b5-b1位表示待更新的EF文件的SFI;这时P2表示要更新数据起始位置在文件中的偏移量。
    * 如果P1的最高位为0时,P1的后7位和P2相连共同组成了一个超过256的整数,表示待更新数据块的起始位置在文件中的偏移量,可以用于超过256Byte文件的读取。
    * 在DATA域中只包含要更新的纯数据内容。

  3、响应报文数据

    响应报文数据为空。

  4、响应报文状态码

    此命令执行成功的状态码为0x9000。

    对于异常情况,IC卡可能回送的错误码如下所示:

       SW1     SW2      含义
       0x65     0x81        存储区写错误,修改失败
       0x67     0x00        Lc域为空
       0x69     0x81        命令和文件格式不相容
       0x69     0x85        命令临时锁定,使用条件不满足
       0x69     0x86        不满足命令执行条件(当前EF错误)
       0x6A     0x81        不支持此功能
       0x6A     0x82        文件没有找到
       0x6A     0x86        P1、P2不正确
       0x6B     0x00        偏移地址错误
       0x6D     0x00        INS错误
       0x6E     0x00        CLA错误
       0x93     0x03        应用永久锁定  

  5、命令实现的其他要求

    如果卡片不支持大文件的读写操作,可以不实现超过256Byte数据操作。

    为了加强安全控制,可以选择采用带MAC的命令格式,这里CLA为0x04,DATA域为该更新的新数据内容加上4Byte的MAC。

  6、命令实现说明

    如果支持大文件读写操作的话,对文件的写操作将通过一个命令链来完成,命令链的第一条命令中将给出文件的SFI,并且只能对小于256Byte的区域进行写操作,后续命令可以操作超过256Byte部分,不需要继续给出文件的SFI。为了实现这样的功能
,在写操作第一条命令成功执行以后,卡片需要记下操作的文件的SFI,也就是维护一个当前EF的标志。对当前EF标志最关键的地方在于不继续对该EF操作时,必须将标志清除掉。

  7、命令使用示例

   (1)预设环境

    假设有二进制文件,SFI为0x05,总长度为0x400。

   (2)命令报文

    写文件前5Byte的APDU:

    00 D6 05 00 05 01 02 03 04 05

    其中:

    * 00 表示UPDATE BINARY命令的CLA。
    * D6 表示UPDATE BINARY命令的INS。
    * 05 表示UPDATE BINARY命令的P1,为要更新文件的SFI。
    * 00 表示UPDATE BINARY命令的P2。
    * 05 表示UPDATE BINARY命令的Lc,即更新的数据长度为5Byte。
    * 0102030405 表示更新以后的数据。

    更新文件从0x150开始的5Byte的APDU:

    00 D6 81 50 05 01 02 03 04 05

    其中:

    * 00 表示UPDATE BINARY命令的CLA。
    * D6 表示UPDATE BINARY命令的INS。
    * 81 表示UPDATE BINARY命令的P1,高位1表示P1 P2组成偏移量。
    * 50 表示UPDATE BINARY命令的P2,P1、P2组成偏移量0x150。
    * 05 表示UPDATE BINARY命令的Lc,即更新的数据长度为0x30Byte。
    * 0102030405表示更新以后的数据。

   (3)UPDATE BINARY响应报文

    卡片处理以后,UPDATE BINARY的响应报文可以根据应用的具体情况决定。
转自http://blog.ednchina.com/thinkker/172042/message.aspx
分享到:
评论

相关推荐

    ISO智能卡通用APDU命令集

    - WRITE BINARY(D0):将二进制数据写入EF。同样需要指定起始位置P1-P2和数据长度Lc,数据字段包含待写入的数据,Le字段为空。 - UPDATE BINARY(00/04D6):更新EF中的已有数据,使用提供的位进行操作。 - ...

    SmartCOSV4.5用户手册(兼容复旦RF CPU卡COS)

    手册进一步详细介绍了SmartCOS的具体命令,如外部认证(EXTERNAL AUTHENTICATE)、取随机数(GET CHALLENGE)、内部认证(INTERNAL AUTHENTICATE)、选择文件(SELECT)、读二进制文件(READ BINARY)、读记录文件...

    PSAM卡应用规范(最新版)

    - **写二进制文件(UPDATE BINARY):** 更新二进制文件中的数据。 - **外部认证(EXTERNAL AUTHENTICATION):** 进行外部认证操作。 - **取响应数据(GET RESPONSE):** 获取命令执行后的响应数据。 - **取...

    FMCOS通用技术手册

    **7.7 写二进制文件UPDATE BINARY** - 修改二进制文件中的数据。 **7.8 写记录文件UPDATE RECORD** - 修改记录文件中的记录。 **7.9 添加记录文件APPEND RECORD** - 在记录文件中添加新的记录。 **7.10 验证口令...

    非接触IC卡片APDU指令系统介绍.docx

    通用指令如SELECT用于选择文件,READ BINARY读取二进制数据,UPDATE BINARY或UPDATE RECORD用于更新数据。电子钱包和电子存折应用中,GET BALANCE读取余额,INITIALIZE FOR LOAD和CREDIT FOR LOAD实现圈存,DEBIT ...

    PSAM卡应用规范.DOC

    5. 写二进制文件(UPDATE BINARY):与读二进制相对应,用于写入二进制数据到卡片中。 6. 外部认证(EXTERNAL AUTHENTICATION):在进行敏感操作前,验证持卡人或设备的身份,确保交易安全。 7. 取响应数据(GET ...

    智能卡ISO7816-4规范(中文版).doc

    规范列举了一些常见的命令,如READ BINARY(读取二进制数据)、WRITE BINARY(写入二进制数据)、UPDATE BINARY(更新二进制数据)和ERASE BINARY(擦除二进制数据),这些都是智能卡操作的基础。 12. 命令实例 ...

    IOS-7816中文说明_Part4.doc

    - **WRITE BINARY**命令:允许写入二进制数据到卡片,常用于更新卡片状态或存储新的信息。 - **UPDATE BINARY**命令:类似于WRITE BINARY,但可能涉及到更复杂的更新操作,如覆写或增加数据。 - **ERASE BINARY**...

    (2021-2022年收藏)智能卡ISO78164规范中文版.doc

    - **UPDATE BINARY**:更新卡片上的二进制数据,可能涉及到权限验证。 - **ERASE BINARY**:擦除指定区域的二进制数据,通常在数据更新或清除敏感信息时使用。 这些基本命令是智能卡操作的核心,它们允许读卡器...

    第4部分:联网电子收费PSAM卡应用指南_20080324

    - **UPDATE BINARY命令**:更新二进制数据。 - **GET CHALLENGE命令**:获取挑战值,用于后续的认证过程。 - **GET RESPONSE命令**:基于挑战值生成响应值。 2. **扩展命令**: - **APPLICATION UNBLOCK命令**:...

    ISO7816-4通信协议.doc

    - **WRITE BINARY**:允许向卡片写入二进制数据,通常在数据更新或记录创建时使用。 - **UPDATE BINARY**:更新卡片上的数据,可以用于修改已存在的数据。 - **ERASE BINARY**:擦除卡片上的数据块,通常在...

    新版FMCOS2.0设计手册

    手册还列举了大量具体的FMCOS命令,如外部认证(EXTERNAL AUTHENTICATE)、取随机数(GET CHALLENGE)、内部认证(INTERNAL AUTHENTICATE)、选择文件(SELECT)、读二进制文件(READ BINARY)、读记录文件(READ ...

    智能卡ISO7816-4规范(中文版)1

    5. 基本的行业间命令:规范中列出了几种基础的智能卡操作命令,如READ BINARY、WRITE BINARY、UPDATE BINARY和ERASE BINARY,它们分别用于读取、写入、更新和删除卡片上的二进制数据块。这些基本命令是构建复杂应用...

    智能卡APDU的命令格式及其分析.pdf

    2. Update Binary:使用给定的数据来更新二进制文件部分或全部的内容。 CLA 00 INS D6 P1 见参数说明 P2 要修改的第一字节的偏移地址 Lc 后续数据域的长度 Data 修改用的数据 3. Read Record:读取记录文件中指定...

    智能卡ISO7816-4规范(中文版).

    最后,"基本的行业间命令"列出了最常用的一系列命令,如READ BINARY、WRITE BINARY、UPDATE BINARY和ERASE BINARY等,它们分别用于读取、写入、更新和擦除卡片上的二进制数据块。这些命令是智能卡操作中最基础也是最...

Global site tag (gtag.js) - Google Analytics