CN109062844B - 一种ccid协议设备数据传输方法及装置 - Google Patents

一种ccid协议设备数据传输方法及装置 Download PDF

Info

Publication number
CN109062844B
CN109062844B CN201810799178.5A CN201810799178A CN109062844B CN 109062844 B CN109062844 B CN 109062844B CN 201810799178 A CN201810799178 A CN 201810799178A CN 109062844 B CN109062844 B CN 109062844B
Authority
CN
China
Prior art keywords
instruction
pretreated
response
ccid
length
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810799178.5A
Other languages
English (en)
Other versions
CN109062844A (zh
Inventor
孙健
温作奖
胡伯良
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Haitai Fangyuan High Technology Co Ltd
Original Assignee
Beijing Haitai Fangyuan High Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Haitai Fangyuan High Technology Co Ltd filed Critical Beijing Haitai Fangyuan High Technology Co Ltd
Priority to CN201810799178.5A priority Critical patent/CN109062844B/zh
Publication of CN109062844A publication Critical patent/CN109062844A/zh
Application granted granted Critical
Publication of CN109062844B publication Critical patent/CN109062844B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0042Universal serial bus [USB]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Communication Control (AREA)

Abstract

本发明公开了一种CCID协议设备数据传输方法及装置,用以解决现有技术中CCID协议设备通信数据传输效率低的问题。所述方法包括:终端获取CCID协议设备的CPU位数信息,CPU位数信息为CCID协议设备根据终端发送的CCID指令从自身获取并反馈给终端的;根据所述CPU位数信息以及待输出指令的长度在待输出指令的预设位置处添加第一设定长度的随机数,生成预处理后的输出指令,使得预处理后的输出指令的长度为2n字节的整数倍,待输出指令包含命令头Header字段与应用协议数据单元APDU命令字段,APDU命令字段中包含输出数据,n为大于等于1的整数;按照2n字节向CCID协议设备发送预处理后的输出指令。

Description

一种CCID协议设备数据传输方法及装置
技术领域
本发明涉及信息安全技术领域,尤其涉及一种CCID协议设备数据传输方法及装置。
背景技术
现有的CCID协议设备(USB Chip/Smart Card Interface Devices,USB芯片智能卡接口设备/Integrated Circuit(s)Cards Interface Devices,集成电路卡接口设备)协议设备与终端进行数据传输的通信格式一般为:
终端向CCID协议设备发送数据的输出指令格式如图1所示,包括Header 字段(命令头)字段和APDU(Application Protocol Data Unit,应用协议数据单元)命令字段,其中,Header字段为10个字节,APDU命令字段可以由指令类别CLA、指令码INS、参数P1、P2、数据长度Len和0~255字节的数据域组成,数据域中的数据即为终端向CCID协议设备发送的数据(输出数据)。 CCID协议设备接收到终端发送的输出指令后,针对APDU命令字段的数据域中的输出数据进行应答后,向终端返回应答数据的应答指令格式如图2所示,其中,Header字段为10个字节,APDU应答体字段可以由数据域和状态字节 SW1、SW2组成,数据域中的数据即为应答数据。
终端与CCID协议设备进行数据传输时,通信数据的收发都是按照一个字节一个字节进行传输的,传输效率较低。
发明内容
为了解决现有技术中CCID协议设备通信数据传输效率低的问题,本发明实施例提供了一种CCID协议设备数据传输方法及装置。
第一方面,本发明实施例提供了一种终端侧实施的CCID协议设备数据传输方法,所述CCID协议设备与终端进行数据传输,包括:
终端获取CCID协议设备的CPU位数信息,其中,所述CCID协议设备的 CPU位数信息为所述CCID协议设备根据所述终端发送的CCID指令从自身获取并反馈给所述终端的;
根据所述CCID协议设备的CPU位数信息以及待输出指令的长度在所述待输出指令的预设位置处添加第一设定长度的随机数,生成预处理后的输出指令,使得所述预处理后的输出指令的长度为2n字节的整数倍,其中,所述待输出指令包含命令头Header字段与应用协议数据单元APDU命令字段,所述 APDU命令字段中包含待输出数据,n为大于等于1的整数;
按照2n字节向所述CCID协议设备发送所述预处理后的输出指令。
采用本发明实施例提供的终端侧实施的CCID协议设备数据传输方法,终端首先向CCID协议设备发送CCID指令,所述CCID指令为获取CCID协议设备的CPU位数信息的指令,CCID协议设备根据CCID指令获取自身的CPU 位数信息并发送给终端;进而,终端根据接收的CCID协议设备的CPU位数信息以及待输出指令的长度对待输出指令进行预处理,在待输出指令的预设位置处添加第一设定长度的随机数,生成预处理后的输出指令,使得预处理后的输出指令的长度为2n字节的整数倍,其中,所述待输出指令包含命令头Header 字段与应用协议数据单元APDU命令字段,所述APDU命令字段中包含输出数据,n为大于等于1的整数,其中,所述输出数据为终端需要向CCID协议设备传输的数据,包含于APDU命令字段的数据域中;进一步地,按照2n字节向CCID协议设备发送该预处理后的输出指令,由于2n字节大于等于2字节,相比于现有技术中终端与CCID协议设备的单字节传输,有效地提高了传输效率。
较佳地,在所述待输出指令的预设位置处添加第一设定长度的随机数,生成预处理后的输出指令,具体包括:
在所述待输出指令的Header字段与APDU命令字段之间添加若干字节的随机数,生成预处理后的输出指令。
上述较佳的方式表征,当确定待输出指令的长度不为2n字节的整数倍时,可以在待输出指令的Header字段与APDU命令字段之间添加若干字节的随机数,生成预处理后的输出指令,使得所述预处理后的输出指令的长度为2n字节的整数倍,较佳地,可以使得预处理后的输出指令的长度为2n字节的最小整数倍,即添加最小长度的随机数,即可达到使预处理后的输出指令的长度为2n字节的整数倍,进而,终端可以按照2n字节向CCID协议设备传输添加后的预处理后的输出指令,从而,进一步地提高了终端与CCID协议设备之间数据传输的效率,提高了用户体验,节约了资源。
可选地,所述方法还包括:
按照2n字节接收所述CCID协议设备按照所述2n字节返回的预处理后的应答指令,其中,所述预处理后的应答指令为所述CCID协议设备从所述预处理后的输出指令中剔除所述添加的第一设定长度的随机数后,生成应答数据、并将所述应答数据包含于APDU应答体字段的数据域中,生成包含Header字段与所述APDU应答体字段的应答指令,并根据所述CCID协议设备的CPU位数信息以及所述应答指令的长度在所述应答指令的预设位置处添加第二设定长度的随机数后生成的数据;
从所述预处理后的应答指令中剔除所述添加的第二设定长度的随机数,恢复出所述应答数据。
上述可选的方式表征,CCID协议设备向终端发送数据时,也按照所述2n字节传输,CCID协议设备接收终端发送的预处理后的输出指令后,从该待传输指令中剔除添加的第一设定长度的随机数恢复出输出数据,针对输出数据进行应答,生成应答数据,并将应答数据包含于APDU应答体字段的数据域中,生成包含Header字段与所述APDU应答体字段的应答指令,并对应答指令进行预处理,即和终端针对输出指令进行的预处理一样,根据CCID协议设备的CPU 位数信息以及应答指令的长度在应答指令的预设位置处添加第二设定长度的随机数,得到预处理后的应答指令,终端按照2n字节接收CCID协议设备按照 2n字节返回的预处理后的应答指令后,从该预处理后的应答指令中剔除添加的第二设定长度的随机数,恢复出应答数据,其中,设定字节大于等于2字节,相比于现有技术中的单字节传输,有效地提高了传输效率。
第二方面,本发明实施例提供了一种终端侧实施的CCID协议设备数据传输装置,所述CCID协议设备与终端进行数据传输,包括:
获取单元,用于获取CCID协议设备的CPU位数信息,其中,所述CCID 协议设备的CPU位数信息为所述CCID协议设备根据所述终端发送的CCID指令从自身获取并反馈给所述终端的;
添加单元,用于根据所述CCID协议设备的CPU位数信息以及待输出指令的长度在所述待输出指令的预设位置处添加第一设定长度的随机数,生成预处理后的输出指令,使得所述预处理后的输出指令的长度为2n字节的整数倍,其中,所述待输出指令包含命令头Header字段与应用协议数据单元APDU命令字段,所述APDU命令字段中包含输出数据,n为大于等于1 的整数;
发送单元,用于按照2n字节向所述CCID协议设备发送所述预处理后的输出指令。
较佳地,所述添加单元,具体用于在所述待输出指令的Header字段与 APDU命令字段之间添加若干字节的随机数,生成预处理后的输出指令。
可选地,所述装置还包括:
接收单元,用于按照2n字节接收所述CCID协议设备按照所述2n字节返回的预处理后的应答指令,其中,所述预处理后的应答指令为所述CCID协议设备从所述预处理后的输出指令中剔除所述添加的第一设定长度的随机数后,生成应答数据、并将所述应答数据包含于APDU应答体字段的数据域中,生成包含Header字段与所述APDU应答体字段的应答指令,并根据所述CCID协议设备的CPU位数信息以及所述应答指令的长度在所述应答指令的预设位置处添加第二设定长度的随机数后生成的数据;
恢复单元,用于从所述预处理后的应答指令中剔除所述添加的第二设定长度的随机数,恢复出所述应答数据。
本发明第二方面提供的终端侧实施的CCID协议设备数据传输装置,其技术效果可以参见上述第一方面或第一方面的各个实现方式的技术效果,此处不再赘述。
第三方面,本发明实施例提供了一种CCID协议设备侧实施的CCID协议设备数据传输方法,所述CCID协议设备与终端进行数据传输,包括:
CCID协议设备接收终端发送的CCID指令;
根据所述CCID指令获取所述CCID协议设备的CPU位数信息,并发送给所述终端,以使所述终端根据所述CCID协议设备的CPU位数信息以及待输出指令的长度在所述待输出指令的预设位置处添加第一设定长度的随机数,生成预处理后的输出指令,使得所述预处理后的输出指令为2n字节的整数倍,其中,所述待输出指令包含命令头Header字段与应用协议数据单元APDU命令字段,所述APDU命令字段中包含输出数据,n为大于等于1 的整数;
按照2n字节接收所述终端按照2n字节发送的所述预处理后的输出指令;
从所述预处理后的输出指令中剔除所述添加的第一设定长度的随机数后,生成应答数据、并将所述应答数据包含于APDU应答体字段的数据域中,生成包含Header字段与所述APDU应答体字段的应答指令;并
根据所述CCID协议设备的CPU位数信息以及所述应答指令的长度在所述应答指令的预设位置处添加第二设定长度的随机数,生成预处理后的应答指令,使得所述预处理后的应答指令的长度为2n字节的整数倍;
按照2n字节向所述终端发送所述预处理后的应答指令,以使所述终端从所述预处理后的应答指令中剔除所述添加的第二设定长度的随机数,恢复出所述应答数据。
采用本发明实施例提供的CCID协议设备侧实施的CCID协议设备数据传输方法,CCID协议设备接收终端发送的CCID指令,根据CCID指令获取该 CCID协议设备的CPU位数信息,并发送给终端,其中,所述CCID指令为用于获取CCID协议设备的CPU位数信息的指令,以使终端根据所述CCID协议设备的CPU位数信息以及待输出指令的长度对待输出指令进行预处理,在待输出指令的预设位置处添加第一设定长度的随机数,生成预处理后的输出指令,使得所述预处理后的输出指令为2n字节的整数倍,其中,所述待输出指令包含 Header字段与APDU命令字段,所述APDU命令字段中包含输出数据,n为大于等于1的整数,并按照2n字节向CCID协议设备发送预处理后的输出指令,CCID协议设备按照2n字节接收终端发送的预处理后的输出指令后,从该待传输数据中剔除添加的第一设定长度的随机数,恢复出输出数据,针对输出数据进行应答,生成应答数据,并将所述应答数据包含于APDU 应答体字段的数据域中,生成包含Header字段与所述APDU应答体字段的应答指令,进一步地,对应答指令进行预处理,根据CCID协议设备的CPU位数信息以及应答指令的长度在应答指令的预设位置处添加第二设定长度的随机数,得到预处理后的应答指令,使得所述预处理后的应答指令的长度为2n字节的整数倍,CCID协议设备按照2n字节向所述终端发送所述预处理后的应答指令,以使终端按照2n字节接收CCID协议设备返回的预处理后的应答指令后,从该预处理后的应答指令中剔除添加的第二设定长度的随机数,恢复出应答数据,由于设定字节大于等于2字节,相比于现有技术中CCID协议设备与终端的单字节传输通信数据的方式,有效地提高了传输效率。
较佳地,在所述应答指令的预设位置处添加第二设定长度的随机数,生成预处理后的应答指令,具体包括:
在所述应答指令的Header字段与APDU应答体字段之间添加若干字节的随机数,生成预处理后的应答指令。
上述较佳的方式表征,当确定应答指令的长度不为2n字节的整数倍时,可以在应答指令的Header字段与APDU应答体字段数据之间添加若干字节的随机数,生成预处理后的应答指令,使得所述预处理后的应答指令的长度为2n字节的整数倍,较佳地,可以使得预处理后的应答指令的长度为2n字节的最小整数倍,即添加最小长度的随机数,即可达到使预处理后的应答指令的长度为2n字节的整数倍,进而,CCID协议设备可以按照2n字节向终端传输预处理后的输出指令,从而,进一步地提高了CCID协议设备与终端之间数据传输的效率,提高了用户体验,节约了资源。
第四方面,本发明实施例提供了一种CCID协议设备侧实施的CCID协议设备数据传输装置,所述CCID协议设备与终端进行数据传输,包括:
第一接收单元,用于接收终端发送的CCID指令;
第一发送单元,用于根据所述CCID指令获取所述CCID协议设备的CPU 位数信息,并发送给所述终端,以使所述终端根据所述CCID协议设备的CPU 位数信息以及待输出指令的长度在所述待输出指令的预设位置处添加第一设定长度的随机数,生成预处理后的输出指令,使得所述预处理后的输出指令为 2n字节的整数倍,其中,所述待输出指令包含命令头Header字段与应用协议数据单元APDU命令字段,所述APDU命令字段中包含输出数据, n为大于等于1的整数;
第二接收单元,用于按照2n字节接收所述终端按照2n字节发送的所述预处理后的输出指令;
应答单元,用于从所述预处理后的输出指令中剔除所述添加的第一设定长度的随机数后,生成应答数据、并将所述应答数据包含于APDU应答体字段的数据域中,生成包含Header字段与所述APDU应答体字段的应答指令;
预处理单元,用于根据所述CCID协议设备的CPU位数信息以及所述应答指令的长度在所述应答指令的预设位置处添加第二设定长度的随机数,生成预处理后的应答指令,使得所述预处理后的应答指令的长度为2n字节的整数倍;
第二发送单元,用于按照2n字节向所述终端发送所述预处理后的应答指令,以使所述终端从所述预处理后的应答指令中剔除所述添加的第二设定长度的随机数,恢复出所述应答数据。
较佳地,所述预处理单元,具体用于在所述应答指令的Header字段与 APDU应答体字段之间添加若干字节的随机数,生成预处理后的应答指令。
本发明第四方面提供的CCID协议设备侧实施的CCID协议设备数据传输装置,其技术效果可以参见上述第三方面或第三方面的各个实现方式的技术效果,此处不再赘述。
第五方面,本发明实施例提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现本发明所述的终端侧实施的CCID协议设备数据传输方法。
第六方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明所述的终端侧实施的CCID协议设备数据传输方法中的步骤。
第七方面,本发明实施例提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现本发明所述的CCID协议设备侧实施的CCID协议设备数据传输方法。
第八方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明所述的CCID协议设备侧实施的 CCID协议设备数据传输方法中的步骤。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为终端向CCID协议设备发送数据的输出指令格式示意图;
图2为CCID协议设备向终端返回应答数据的应答指令格式示意图;
图3为本发明实施例提供的CCID协议设备数据传输方法的应用场景示意图;
图4为本发明实施例提供的CCID协议设备数据传输方法的实施流程示意图;
图5为本发明实施例中待输出指令示意图;
图6为本发明实施例中预处理后的输出指令示例图之一;
图7为本发明实施例中预处理后的输出指令示例图之二;
图8为本发明实施例中预处理后的输出指令示例图之三;
图9为本发明实施例中应答指令示例图;
图10为本发明实施例中预处理后的应答指令示例图;
图11为本发明实施例提供的终端侧实施的CCID协议设备数据传输方法的实施流程示意图;
图12为本发明实施例提供的终端侧实施的CCID协议设备数据传输装置的结构示意图;
图13为本发明实施例提供的CCID协议设备侧实施的CCID协议设备数据传输方法的实施流程示意图;
图14为本发明实施例提供的CCID协议设备侧实施的CCID协议设备数据传输装置的结构示意图;
图15为本发明实施例提供的电子设备的结构示意图。
具体实施方式
为了解决现有技术中CCID协议设备通信数据传输效率低的问题,本发明提出了一种CCID协议设备数据传输方法及装置。
本发明实施例提供的CCID协议设备数据传输方法的实施原理是:本发明实施例提供的CCID协议设备数据传输方法,终端首先向CCID协议设备发送 CCID指令,所述CCID指令为获取CCID协议设备的CPU位数信息的指令, CCID协议设备根据CCID指令获取自身的CPU位数信息并发送给终端;进而,终端根据接收的CCID协议设备的CPU位数信息以及待输出指令的长度对待输出指令进行预处理,在待输出指令的预设位置处添加第一设定长度的随机数,生成预处理后的输出指令,使得预处理后的输出指令的长度为2n字节的整数倍,其中,所述待输出指令包含命令头Header字段与应用协议数据单元APDU命令字段,所述APDU命令字段中包含输出数据,n为大于等于1 的整数,其中,所述输出数据为终端需要向CCID协议设备传输的数据,包含于APDU命令字段的数据域中;进一步地,终端按照2n字节向CCID协议设备发送该预处理后的输出指令,CCID协议设备按照2n字节接收终端发送的预处理后的输出指令后,从该待传输数据中剔除添加的第一设定长度的随机数,恢复出输出数据,针对输出数据进行应答,生成应答数据,并将所述应答数据包含于APDU应答体字段的数据域中,生成包含Header字段与所述APDU应答体字段的应答指令;进一步地,CCID协议设备对应答指令进行预处理,根据 CCID协议设备的CPU位数信息以及应答指令的长度在应答指令的预设位置处添加第二设定长度的随机数,得到预处理后的应答指令,使得所述预处理后的应答指令的长度为2n字节的整数倍,CCID协议设备按照2n字节向所述终端发送所述预处理后的应答指令;终端按照2n字节接收CCID协议设备返回的预处理后的应答指令后,从该预处理后的应答指令中剔除添加的第二设定长度的随机数,恢复出应答数据。由于2n字节大于等于2字节,相比于现有技术中终端与CCID协议设备之间的单字节传输通信数据的方式,有效地提高了传输效率。
以下结合说明书附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明,并且在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
首先参考图3,其为本发明实施例提供的CCID协议设备数据传输方法的应用场景示意图。终端11与CCID协议设备12可以通过USB接口连接后进行通信,其中,终端11可以但不限于为含有USB接口的计算机、笔记本电脑等。终端11与CCID协议设备12进行数据传输之前,首先终端11向CCID协议设备12发送CCID指令以获取CCID协议设备12的CPU位数,CCID协议设备 12将自身CPU位数信息反馈给终端11后,终端11根据该CPU位数信息以及待输出指令的长度在待输出指令的预设位置处添加第一设定长度的随机数,生成预处理后的输出指令,使得预处理后的输出指令的长度为2n字节的整数倍,其中,所述待输出指令包含Header字段与APDU命令字段,所述APDU命令字段中包含输出数据,n为大于等于1的整数,其中,所述输出数据为终端需要向CCID协议设备传输的数据,包含于待输出指令的APDU命令字段的数据域中;进而,终端11按照2n字节向CCID协议设备12发送该预处理后的输出指令,CCID协议设备12按照2n字节接收所述预处理后的输出指令以后,从预处理后的输出指令中剔除所述添加的第一设定长度的随机数,恢复出输出数据,然后针对恢复出的输出数据进行应答,生成应答数据,并将所述应答数据包含于APDU应答体字段的数据域中,生成包含Header字段与所述APDU应答体字段的应答指令;进一步地,CCID协议设备12对应答指令进行预处理,根据CCID协议设备12的CPU位数信息以及应答指令的长度在应答指令的预设位置处添加第二设定长度的随机数,得到预处理后的应答指令,使得所述预处理后的应答指令的长度为2n字节的整数倍,CCID协议设备12按照2n字节向所述终端11发送所述预处理后的应答指令,终端11按照2n字节接收CCID协议设备12返回的预处理后的应答指令后,从该预处理后的应答指令中剔除添加的第二设定长度的随机数,恢复出应答数据。
下面结合图3的应用场景,参考图4~10来描述根据本发明示例性实施方式的CCID协议设备数据传输方法。需要注意的是,上述应用场景仅是为了便于理解本发明的精神和原理而示出,本发明的实施方式在此不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。
如图4所示,其为本发明实施例提供的CCID协议设备数据传输方法的实施流程示意图,可以包括以下步骤:
S21、终端向CCID协议设备发送CCID指令。
具体实施时,终端在与CCID协议设备进行传输数据之前,首先向CCID 协议设备发送CCID指令,其中,CCID指令为用于获取CCID协议设备的CPU 位数信息的指令。
S22、CCID协议设备根据所述CCID指令获取所述CCID协议设备的CPU 位数信息。
具体实施时,CCID协议设备接收到终端发送的CCID指令后,根据所述CCID指令读取该CCID协议设备的CPU位数信息,例如,16位、32位或者 64位。
S23、CCID协议设备将所述CCID协议设备的CPU位数信息发送给所述终端。
S24、终端根据所述CCID协议设备的CPU位数信息以及待输出指令的长度在所述待输出指令的预设位置处添加第一设定长度的随机数,生成新的预处理后的输出指令,使得所述预处理后的输出指令的长度为2n字节的整数倍。
本步骤中,所述待输出指令包含命令头Header字段与应用协议数据单元 APDU命令字段,所述APDU命令字段中包含输出数据,n为大于等于1的整数。所述输出数据为终端需要向CCID协议设备传输的数据,包含于待输出指令的APDU命令字段的数据域中,可参照图1所示的CCID协议设备协议输出指令的格式。
具体实施时,n的取值可以为但不限于1、2或3,例如当CPU位数为16 位时,2n=16/8=2,n=1;当CPU位数为32位时,2n=32/8=4,n=2;当CPU 位数为64位时,2n=64/8=8,n=3。
具体实施时,当确定所述待输出指令的长度不为2n字节的整数倍时,则在所述待输出指令的Header字段与APDU命令字段之间添加若干字节的随机数,生成预处理后的输出指令,使得所述预处理后的输出指令的长度为2n字节的整数倍。
较佳地,当确定所述待输出指令的长度不为2n字节的整数倍时,则在所述待输出指令的Header字段与APDU命令字段之间添加若干字节的随机数,生成预处理后的输出指令,使得所述预处理后的输出指令的长度为2n字节的最小整数倍。
例如,当确定所述CCID协议设备的CPU位数为16位,且所述待输出指令的长度不为2字节的整数倍时,则在所述待输出指令的Header字段与APDU 命令字段之间添加若干字节的随机数,生成预处理后的输出指令,使得所述预处理后的输出指令的长度为2字节的整数倍,较佳地,可以使得生成的预处理后的输出指令的长度为2字节的最小整数倍。如果所述预处理后的输出指令的长度为2字节的整数倍,则可以不对预处理后的输出指令做处理,即若干字节为0。
例如,待输出指令如图5所示,其中,“6f0a0000000014000000”为命令头 Header字段,共10个字节,其后“00a4 00 00 02 3f00”为APDU命令字段,其中的“00”、“a4”、“00”、“00”、“02”按顺序依次分别对应APDU命令字段中的CLA、INS、P1、P2和Len,“3f00”对应APDU命令字段中的数据域,即为数据域中存储的输出数据,整条输出命令的长度共17个字节,不是2字节的整数倍,则可以在“6f0a0000000014000000”与“00a4 00 00 02 3f00”之间添加一个字节的随机数,使处理后的输出指令长度为2字节的整数倍,也是最小整数倍,此时,预处理后的输出指令长度最短,传输速度最快,也可以添加多个字节,只要使得预处理后的输出指令长度为2字节的整数倍即可,本发明实施例对此不作限定。另外,也可以在Header字段前添加第一设定长度的随机数,或在APDU命令字段后添加第一设定长度的随机数,本发明实施例对此不作限定。假设可以在Header字段和APDU命令字段之间添加一个字节的随机数“ff”,则生成的预处理后的输出指令如图6所示,或者可以在Header字段之前添加一个字节的随机数“ff”,生成的预处理后的输出指令如图7所示,或者可以在 APDU命令字段后面添加一个字节的随机数“ff”,生成的预处理后的输出指令如图8所示。
当确定所述CCID协议设备的CPU位数为32位,且所述待输出指令的长度不为4字节的整数倍时,则在所述待输出指令的Header字段与APDU命令字段之间添加若干字节的随机数,生成新的预处理后的输出指令,使得所述新的预处理后的输出指令的长度为4字节的整数倍,较佳地,使得生成的预处理后的输出指令的长度为4字节的最小整数倍。具体实施参照CPU位数为16位时的实例,此处不再赘述。
当确定所述CCID协议设备的CPU位数为64位,且所述待输出指令的长度不为8字节的整数倍时,则在所述待输出指令的Header字段与APDU命令字段之间添加若干字节的随机数,生成新的预处理后的输出指令,使得所述预处理后的输出指令的长度为8字节的整数倍,较佳地,可以使得生成的预处理后的输出指令的长度为8字节的最小整数倍。具体实施参照CPU位数为16位时的实例,此处不再赘述。
S25、终端按照2n字节向所述CCID协议设备发送所述预处理后的输出指令。
本步骤中的2n字节与步骤S24中的2n字节保持一致,即当CCID协议设备的CPU位数为16位时,2n字节为2字节;当CCID协议设备的CPU位数为 32位时,2n字节为4字节;当CCID协议设备的CPU位数为64位时,2n字节为8字节。
S26、CCID协议设备按照2n字节接收所述终端发送的所述预处理后的输出指令,从所述预处理后的输出指令中剔除所述添加的第一设定长度的随机数后,生成应答数据、并将所述应答数据包含于APDU应答体字段的数据域中,生成包含Header字段与所述APDU应答体字段的应答指令。
具体实施时,CCID协议设备按照所述2n字节接收所述终端发送的预处理后的输出指令,并从预处理后的输出指令中剔除所述添加的第一设定长度的随机数后,恢复出输出数据,并针对恢复出的输出数据进行应答,生成应答数据,并将所述应答数据包含于APDU应答体字段的数据域中,生成包含Header字段与所述APDU应答体字段的应答指令。
具体地,本步骤中的2n字节与步骤S24中的2n字节保持一致,即当CCID 协议设备的CPU位数为16位时,2n字节为2字节;当CCID协议设备的CPU 位数为32位时,2n字节为4字节;当CCID协议设备的CPU位数为64位时, 2n字节为8字节。
S27、CCID协议设备根据所述CCID协议设备的CPU位数信息以及所述应答指令的长度在所述应答指令的预设位置处添加第二设定长度的随机数,生成预处理后的应答指令,使得所述预处理后的应答指令的长度为2n字节的整数倍。
具体实施时,当确定所述CCID协议设备的CPU位数为16位,且所述应答指令的长度不为2字节的整数倍时,则在所述应答指令的命令头Header字段与应用协议数据单元APDU命令字段之间添加若干字节的随机数,生成预处理后的应答指令,使得所述预处理后的应答指令的长度为2字节的整数倍,较佳地,使得生成的预处理后的应答指令的长度为2字节的最小整数倍。如果所述预处理后的应答指令的长度为2字节的整数倍,则可以不对所述应答指令做处理。
当确定所述CCID协议设备的CPU位数为32位,且所述应答指令的长度不为4字节的整数倍时,则在所述应答指令的Header字段与APDU命令字段之间添加若干字节的随机数,生成预处理后的应答指令,使得所述预处理后的应答指令的长度为4字节的整数倍,较佳地,使得生成的预处理后的应答指令的长度为4字节的最小整数倍。
当确定所述CCID协议设备的CPU位数为64位,且所述应答指令的长度不为8字节的整数倍时,则在所述应答指令的Header字段与APDU命令字段之间添加若干字节的随机数,生成预处理后的应答指令,使得所述预处理后的应答指令的长度为8字节的整数倍,较佳地,使得生成的预处理后的应答指令的长度为8字节的最小整数倍。
例如,应答指令如图9所示,其中,“80120000000014000000”为命令头 Header,共10个字节,其后的“6f0c84050102030405a5038801019900”为APDU 应答体字段,其中,“6f0c84050102030405a503880101”对应APDU应答体中的数据域,即针对输出数据进行应答后生成的应答数据、“90”、“00”分别对应 APDU应答体中的SW1、SW2,整条应答指令的长度共26个字节。假设CCID 协议设备的CPU位数为16位,则可以不对应答指令进行处理。假设CCID协议设备的CPU位数为32位,上述应答指令总长度26字节不是4字节的整数倍,较佳地,可以在“80120000000014000000”与“6f0c84050102030405a5038801019000”之间添加2个字节的随机数,使得预处理后的应答指令为4字节的整数倍,即最小整数倍。另外,也可以在Header前添加第二设定长度的随机数,或在APDU应答体后添加第二设定长度的随机数,使得预处理后的应答指令为4字节的整数倍,本发明实施例对此不作限定。假设在Header和APDU应答体之间添加2个字节“ffff”,则生成的预处理后的应答指令如图10所示。
S28、CCID协议设备按照2n字节向所述终端发送所述预处理后的应答指令。
具体实施时,2n字节大于等于2字节,与步骤S24中的2n字节一致。具体地,当CCID协议设备的CPU位数为16位时,2n字节为2字节;当CCID协议设备的CPU位数为32位时,2n字节为4字节;当CCID协议设备的CPU位数为64位时,2n字节为8字节。
S29、终端按照2n字节接收所述CCID协议设备返回的预处理后的应答指令,从所述预处理后的应答指令中剔除所述添加的第二设定长度的随机数,恢复出所述应答数据。
具体实施时,终端按照2n字节接收所述CCID协议设备按照2n字节返回的所述预处理后的应答指令,并从所述预处理后的应答指令中剔除步骤S27中添加的第二设定长度的随机数,恢复出应答数据。
其中,2n字节与步骤S24中的2n字节一致。即当CCID协议设备的CPU 位数为16位时,2n字节为2字节;当CCID协议设备的CPU位数为32位时, 2n字节为4字节;当CCID协议设备的CPU位数为64位时,2n字节为8字节。
本发明实施例提供的CCID协议设备数据传输方法,终端在与CCID协议设备进行传输数据之前,首先向CCID协议设备发送CCID指令,所述CCID 指令为获取CCID协议设备的CPU位数信息的指令,CCID协议设备根据CCID 指令获取自身的CPU位数信息并发送给终端;进而,终端根据接收的CCID 协议设备的CPU位数信息以及待输出指令的长度对待输出指令进行预处理,在待输出指令的预设位置处添加第一设定长度的随机数,生成预处理后的输出指令,使得预处理后的输出指令的长度为2n字节的整数倍,其中,所述待输出指令包含命令头Header字段与应用协议数据单元APDU命令字段,所述APDU 命令字段中包含输出数据,n为大于等于1的整数,其中,所述输出数据为终端需要向CCID协议设备传输的数据,包含于APDU命令字段的数据域中;进一步地,终端按照2n字节向CCID协议设备发送该预处理后的输出指令,CCID协议设备按照2n字节接收终端发送的预处理后的输出指令后,从该待传输数据中剔除添加的第一设定长度的随机数,恢复出输出数据,针对输出数据进行应答,生成应答数据,并将所述应答数据包含于APDU应答体字段的数据域中,生成包含Header字段与所述APDU应答体字段的应答指令;进一步地,CCID协议设备对应答指令进行预处理,根据CCID协议设备的CPU 位数信息以及应答指令的长度在应答指令的预设位置处添加第二设定长度的随机数,得到预处理后的应答指令,使得所述预处理后的应答指令的长度为2n字节的整数倍,CCID协议设备按照2n字节向所述终端发送所述预处理后的应答指令;终端按照2n字节接收CCID协议设备返回的预处理后的应答指令后,从该预处理后的应答指令中剔除添加的第二设定长度的随机数,恢复出应答数据。由于2n字节大于等于2字节,终端与CCID协议设备之间可以按照2字节、 4字节或8字节传输数据,相比于现有技术中终端与CCID协议设备之间的单字节传输通信数据的方式,有效地提高了传输效率。
基于同样的发明构思,本发明实施例提供了一种终端侧实施的CCID协议设备数据传输方法,所述CCID协议设备与终端进行数据传输,由于上述终端侧实施的CCID协议设备数据传输方法解决问题的原理与上述CCID协议设备数据传输方法相似,因此上述终端侧方法的实施可以参见上述方法的实施,重复之处不再赘述。
如图11所示,其为本发明实施例提供的终端侧实施的CCID协议设备数据传输方法的实施流程示意图,可以包括以下步骤:
S31、终端获取CCID协议设备的CPU位数信息,其中,所述CCID协议设备的CPU位数信息为所述CCID协议设备根据所述终端发送的CCID指令从自身获取并反馈给所述终端的。
S32、根据所述CCID协议设备的CPU位数信息以及待输出指令的长度在所述待输出指令的预设位置处添加第一设定长度的随机数,生成预处理后的输出指令,使得所述预处理后的输出指令的长度为2n字节的整数倍。
其中,所述待输出指令包含命令头Header字段与应用协议数据单元APDU 命令字段,所述APDU命令字段中包含输出数据,n为大于等于1的整数。
较佳地,当确定所述待输出指令的长度不为2n字节的整数倍时,则在所述待输出指令的预设位置处添加第一设定长度的随机数,生成预处理后的输出指令,使得所述预处理后的输出指令为2n字节的整数倍,具体包括:
在所述待输出指令的Header字段与APDU命令字段之间添加若干字节的随机数,生成预处理后的输出指令,使得所述预处理后的输出指令的长度为2n字节的整数倍。
S33、按照2n字节向所述CCID协议设备发送所述预处理后的输出指令。
基于同一发明构思,本发明实施例还提供了一种终端侧实施的CCID协议设备数据传输装置,所述CCID协议设备与终端进行数据传输,由于上述终端侧实施的CCID协议设备数据传输装置解决问题的原理与终端侧实施的CCID 协议设备数据传输方法相似,因此上述装置的实施可以参见方法的实施,重复之处不再赘述。
如图12所示,其为本发明实施例提供的终端侧实施的CCID协议设备数据传输装置的结构示意图,可以包括:
获取单元41,用于获取CCID协议设备的CPU位数信息,其中,所述CCID 协议设备的CPU位数信息为所述CCID协议设备根据所述终端发送的CCID指令从自身获取并反馈给所述终端的;
添加单元42,用于根据所述CCID协议设备的CPU位数信息以及待输出指令的长度在所述待输出指令的预设位置处添加第一设定长度的随机数,生成预处理后的输出指令,使得所述预处理后的输出指令的长度为2n字节的整数倍,其中,所述待输出指令包含命令头Header字段与应用协议数据单元APDU命令字段,所述APDU命令字段中包含输出数据,n为大于等于1 的整数;
发送单元43,用于按照2n字节向所述CCID协议设备发送所述预处理后的输出指令。
较佳地,所述添加单元42,具体用于当确定所述待输出指令的长度不为2n字节的整数倍时,则在所述待输出指令的Header字段与APDU命令字段之间添加若干字节的随机数,生成预处理后的输出指令,使得所述预处理后的输出指令的长度为2n字节的整数倍。
可选地,所述装置还包括:
接收单元44,用于按照2n字节接收所述CCID协议设备按照所述2n字节返回的预处理后的应答指令,其中,所述预处理后的应答指令为所述CCID协议设备从所述预处理后的输出指令中剔除所述添加的第一设定长度的随机数后,生成应答数据、并将所述应答数据包含于APDU应答体字段的数据域中,生成包含Header字段与所述APDU应答体字段的应答指令,并根据所述CCID协议设备的CPU位数信息以及所述应答指令的长度在所述应答指令的预设位置处添加第二设定长度的随机数后生成的数据;
恢复单元45,用于从所述预处理后的应答指令中剔除所述添加的第二设定长度的随机数,恢复出所述应答数据。
基于同样的发明构思,本发明实施例提供了一种CCID协议设备侧实施的 CCID协议设备数据传输方法,所述CCID协议设备与终端进行数据传输,由于上述CCID协议设备侧实施的CCID协议设备数据传输方法解决问题的原理与上述CCID协议设备数据传输方法相似,因此上述CCID协议设备侧方法的实施可以参见上述方法的实施,重复之处不再赘述。
如图13所示,其为本发明实施例提供的CCID协议设备侧实施的CCID协议设备数据传输方法的实施流程示意图,可以包括以下步骤:
S51、CCID协议设备接收终端发送的CCID指令。
S52、根据所述CCID指令获取所述CCID协议设备的CPU位数信息,并发送给所述终端,以使所述终端根据所述CCID协议设备的CPU位数信息以及待输出指令的长度在所述待输出指令的预设位置处添加第一设定长度的随机数,生成预处理后的输出指令,使得所述预处理后的输出指令为2n字节的整数倍。
其中,所述待输出指令包含命令头Header字段与应用协议数据单元APDU 命令字段,所述APDU命令字段中包含输出数据,n为大于等于1的整数。
S53、按照2n字节接收所述终端按照2n字节发送的所述预处理后的输出指令。
S54、从所述预处理后的输出指令中剔除所述添加的第一设定长度的随机数后,生成应答数据、并将所述应答数据包含于APDU应答体字段的数据域中,生成包含Header字段与所述APDU应答体字段的应答指令。
S55、根据所述CCID协议设备的CPU位数信息以及所述应答指令的长度在所述应答指令的预设位置处添加第二设定长度的随机数,生成预处理后的应答指令,使得所述预处理后的应答指令的长度为2n字节的整数倍。
较佳地,当确定所述应答指令的长度不为2n字节的整数倍时,则在所述应答指令的预设位置处添加第二设定长度的随机数,生成预处理后的应答指令,使得所述预处理后的应答指令的长度为2n字节的整数倍,具体包括:
在所述应答指令的Header字段与APDU应答体字段之间添加若干字节的随机数,生成预处理后的应答数据,使得所述预处理后的应答指令的长度为2n字节的整数倍。
S56、按照2n字节向所述终端发送所述预处理后的应答指令,以使所述终端从所述预处理后的应答指令中剔除所述添加的第二设定长度的随机数,恢复出所述应答数据。
基于同一发明构思,本发明实施例还提供了一种CCID协议设备侧实施的 CCID协议设备数据传输装置,由于上述CCID协议设备侧实施的CCID协议设备数据传输装置解决问题的原理与CCID协议设备侧实施的CCID协议设备数据传输方法相似,因此上述装置的实施可以参见方法的实施,重复之处不再赘述。
如图14所示,其为本发明实施例提供的CCID协议设备侧实施的CCID协议设备数据传输装置的结构示意图,可以包括:
第一接收单元61,用于接收终端发送的CCID指令;
第一发送单元62,用于根据所述CCID指令获取所述CCID协议设备的 CPU位数信息,并发送给所述终端,以使所述终端根据所述CCID协议设备的 CPU位数信息以及待输出指令的长度在所述待输出指令的预设位置处添加第一设定长度的随机数,生成预处理后的输出指令,使得所述预处理后的输出指令为2n字节的整数倍,其中,所述待输出指令包含命令头Header字段与应用协议数据单元APDU命令字段,所述APDU命令字段中包含输出数据,n为大于等于1的整数;
第二接收单元63,用于按照2n字节接收所述终端按照2n字节发送的所述预处理后的输出指令;
应答单元64,用于从所述预处理后的输出指令中剔除所述添加的第一设定长度的随机数后,生成应答数据、并将所述应答数据包含于APDU应答体字段的数据域中,生成包含Header字段与所述APDU应答体字段的应答指令;
预处理单元65,用于根据所述CCID协议设备的CPU位数信息以及所述应答指令的长度在所述应答指令的预设位置处添加第二设定长度的随机数,生成预处理后的应答指令,使得所述预处理后的应答指令的长度为2n字节的整数倍;
第二发送单元66,用于按照2n字节向所述终端发送所述预处理后的应答指令,以使所述终端从所述预处理后的应答指令中剔除所述添加的第二设定长度的随机数,恢复出所述应答数据。
较佳地,所述预处理单元65,具体用于当确定所述应答指令的长度不为2n字节的整数倍时,则在所述应答指令的Header字段与APDU应答体字段之间添加若干字节的随机数,生成预处理后的应答数据,使得所述预处理后的应答指令的长度为2n字节的整数倍。
基于同一技术构思,本发明实施例还提供了一种电子设备700,参照图15 所示,电子设备700用于实施上述方法实施例记载的CCID协议设备数据传输方法,该实施例的电子设备700可以包括:存储器701、处理器702以及存储在所述存储器中并可在所述处理器上运行的计算机程序,例如终端侧实施的 CCID协议设备数据传输程序。所述处理器执行所述计算机程序时实现上述各个终端侧实施的CCID协议设备数据传输方法实施例中的步骤,例如图11所示的步骤S31。或者,所述处理器执行所述计算机程序时实现上述各装置实施例中各模块/单元的功能,例如41。
本发明实施例中不限定上述存储器701、处理器702之间的具体连接介质。本申请实施例在图15中以存储器701、处理器702之间通过总线703连接,总线703在图15中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线703可以分为地址总线、数据总线、控制总线等。为便于表示,图15中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器701可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器701也可以是非易失性存储器 (non-volatilememory),例如只读存储器,快闪存储器(flash memory),硬盘 (hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)、或者存储器701是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器701可以是上述存储器的组合。
处理器702,用于实现如图11所示的一种终端侧实施的CCID协议设备数据传输方法,包括:
所述处理器702,用于调用所述存储器701中存储的计算机程序执行如图 11中所示的步骤S31、终端获取CCID协议设备的CPU位数信息,其中,所述CCID协议设备的CPU位数信息为所述CCID协议设备根据所述终端发送的 CCID指令从自身获取并反馈给所述终端的,步骤S32、根据所述CCID协议设备的CPU位数信息以及待输出指令的长度在所述待输出指令的预设位置处添加第一设定长度的随机数,生成预处理后的输出指令,使得所述预处理后的输出指令的长度为2n字节的整数倍,和步骤S33、按照2n字节向所述CCID协议设备发送所述预处理后的输出指令。
本申请实施例还提供了一种计算机可读存储介质,存储为执行上述处理器所需执行的计算机可执行指令,其包含用于执行上述处理器所需执行的程序。
在一些可能的实施方式中,本发明提供的终端侧实施的CCID协议设备数据传输方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在电子设备上运行时,所述程序代码用于使所述电子设备执行本说明书上述描述的根据本发明各种示例性实施方式的终端侧实施的CCID协议设备数据传输方法中的步骤,例如,所述电子设备可以执行如图11中所示的步骤S31、终端获取CCID协议设备的CPU位数信息,其中,所述CCID协议设备的CPU位数信息为所述CCID协议设备根据所述终端发送的CCID指令从自身获取并反馈给所述终端的,步骤S32、根据所述CCID协议设备的CPU 位数信息以及待输出指令的长度在所述待输出指令的预设位置处添加第一设定长度的随机数,生成预处理后的输出指令,使得所述预处理后的输出指令的长度为2n字节的整数倍,和步骤S33、按照2n字节向所述CCID协议设备发送所述预处理后的输出指令。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器 (CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
本发明的实施方式的用于终端侧实施的CCID协议设备数据传输的程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在计算设备上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++ 等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(LAN)或广域网 (WAN)—连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现本发明实施例所述的CCID协议设备侧实施的CCID协议设备数据传输方法。
本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明实施例所述的CCID协议设备侧实施的 CCID协议设备数据传输方法中的步骤。
其结构及实施原理参见上述终端设备侧实施的CCID协议设备数据传输方法对应的电子设备及计算机可读存储介质,此处不再赘述。
应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、 CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(装置)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和 /或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/ 或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (12)

1.一种USB芯片智能卡接口设备CCID协议设备数据传输方法,所述CCID协议设备与终端进行数据传输,其特征在于,包括:
终端获取CCID协议设备的CPU位数信息,其中,所述CCID协议设备的CPU位数信息为所述CCID协议设备根据所述终端发送的CCID指令从自身获取并反馈给所述终端的;
根据所述CCID协议设备的CPU位数信息以及待输出指令的长度在所述待输出指令的预设位置处添加第一设定长度的随机数,生成预处理后的输出指令,使得所述预处理后的输出指令的长度为2n字节的整数倍,其中,所述待输出指令包含命令头Header字段与应用协议数据单元APDU命令字段,所述APDU命令字段中包含输出数据,n为大于等于1的整数;
按照2n字节向所述CCID协议设备发送所述预处理后的输出指令。
2.如权利要求1所述的方法,其特征在于,在所述待输出指令的预设位置处添加第一设定长度的随机数,生成预处理后的输出指令,具体包括:
在所述待输出指令的Header字段与APDU命令字段之间添加若干字节的随机数,生成预处理后的输出指令。
3.如权利要求1所述的方法,其特征在于,还包括:
按照2n字节接收所述CCID协议设备按照所述2n字节返回的预处理后的应答指令,其中,所述预处理后的应答指令为所述CCID协议设备从所述预处理后的输出指令中剔除所述添加的第一设定长度的随机数后,生成应答数据、并将所述应答数据包含于APDU应答体字段的数据域中,生成包含Header字段与所述APDU应答体字段的应答指令,并根据所述CCID协议设备的CPU位数信息以及所述应答指令的长度在所述应答指令的预设位置处添加第二设定长度的随机数后生成的数据;
从所述预处理后的应答指令中剔除所述添加的第二设定长度的随机数,恢复出所述应答数据。
4.一种CCID协议设备数据传输装置,所述CCID协议设备与终端进行数据传输,其特征在于,包括:
获取单元,用于获取CCID协议设备的CPU位数信息,其中,所述CCID协议设备的CPU位数信息为所述CCID协议设备根据所述终端发送的CCID指令从自身获取并反馈给所述终端的;
添加单元,用于根据所述CCID协议设备的CPU位数信息以及待输出指令的长度在所述待输出指令的预设位置处添加第一设定长度的随机数,生成预处理后的输出指令,使得所述预处理后的输出指令的长度为2n字节的整数倍,其中,所述待输出指令包含命令头Header字段与应用协议数据单元APDU命令字段,所述APDU命令字段中包含输出数据,n为大于等于1
的整数;
发送单元,用于按照2n字节向所述CCID协议设备发送所述预处理后的输出指令。
5.如权利要求4所述的装置,其特征在于,
所述添加单元,具体用于在所述待输出指令的Header字段与APDU命令字段之间添加若干字节的随机数,生成预处理后的输出指令。
6.如权利要求4所述的装置,其特征在于,还包括:
接收单元,用于按照2n字节接收所述CCID协议设备按照所述2n字节返回的预处理后的应答指令,其中,所述预处理后的应答指令为所述CCID协议设备从所述预处理后的输出指令中剔除所述添加的第一设定长度的随机数后,生成应答数据、并将所述应答数据包含于APDU应答体字段的数据域中,生成包含Header字段与所述APDU应答体字段的应答指令,并根据所述CCID协议设备的CPU位数信息以及所述应答指令的长度在所述应答指令的预设位置处添加第二设定长度的随机数后生成的数据;
恢复单元,用于从所述预处理后的应答指令中剔除所述添加的第二设定长度的随机数,恢复出所述应答数据。
7.一种USB芯片智能卡接口设备CCID协议设备数据传输方法,所述CCID协议设备与终端进行数据传输,其特征在于,包括:
CCID协议设备接收终端发送的CCID指令;
根据所述CCID指令获取所述CCID协议设备的CPU位数信息,并发送给所述终端,以使所述终端根据所述CCID协议设备的CPU位数信息以及待输出指令的长度在所述待输出指令的预设位置处添加第一设定长度的随机数,生成预处理后的输出指令,使得所述预处理后的输出指令为2n字节的整数倍,其中,所述待输出指令包含命令头Header字段与应用协议数据单元APDU命令字段,所述APDU命令字段中包含输出数据,n为大于等于1的整数;
按照2n字节接收所述终端按照2n字节发送的所述预处理后的输出指令;
从所述预处理后的输出指令中剔除所述添加的第一设定长度的随机数后,生成应答数据、并将所述应答数据包含于APDU应答体字段的数据域中,生成包含Header字段与所述APDU应答体字段的应答指令;并
根据所述CCID协议设备的CPU位数信息以及所述应答指令的长度在所述应答指令的预设位置处添加第二设定长度的随机数,生成预处理后的应答指令,使得所述预处理后的应答指令的长度为2n字节的整数倍;
按照2n字节向所述终端发送所述预处理后的应答指令,以使所述终端从所述预处理后的应答指令中剔除所述添加的第二设定长度的随机数,恢复出所述应答数据。
8.如权利要求7所述的方法,其特征在于,在所述应答指令的预设位置处添加第二设定长度的随机数,生成预处理后的应答指令,具体包括:
在所述应答指令的Header字段与APDU应答体字段之间添加若干字节的随机数,生成预处理后的应答指令。
9.一种CCID协议设备数据传输装置,所述CCID协议设备与终端进行数据传输,其特征在于,包括:
第一接收单元,用于接收终端发送的CCID指令;
第一发送单元,用于根据所述CCID指令获取所述CCID协议设备的CPU位数信息,并发送给所述终端,以使所述终端根据所述CCID协议设备的CPU位数信息以及待输出指令的长度在所述待输出指令的预设位置处添加第一设定长度的随机数,生成预处理后的输出指令,使得所述预处理后的输出指令为2n字节的整数倍,其中,所述待输出指令包含命令头Header字段与应用协议数据单元APDU命令字段,所述APDU命令字段中包含输出数据,n为大于等于1的整数;
第二接收单元,用于按照2n字节接收所述终端按照2n字节发送的所述预处理后的输出指令;
应答单元,用于从所述预处理后的输出指令中剔除所述添加的第一设定长度的随机数后,生成应答数据、并将所述应答数据包含于APDU应答体字段的数据域中,生成包含Header字段与所述APDU应答体字段的应答指令;
预处理单元,用于根据所述CCID协议设备的CPU位数信息以及所述应答指令的长度在所述应答指令的预设位置处添加第二设定长度的随机数,生成预处理后的应答指令,使得所述预处理后的应答指令的长度为2n字节的整数倍;
第二发送单元,用于按照2n字节向所述终端发送所述预处理后的应答指令,以使所述终端从所述预处理后的应答指令中剔除所述添加的第二设定长度的随机数,恢复出所述应答数据。
10.如权利要求9所述的装置,其特征在于,
所述预处理单元,具体用于当在所述应答指令的Header字段与APDU应答体字段之间添加若干字节的随机数,生成预处理后的应答指令。
11.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1~3或者7~8任一项所述的CCID协议设备数据传输方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1~3或者7~8任一项所述的CCID协议设备数据传输方法中的步骤。
CN201810799178.5A 2018-07-19 2018-07-19 一种ccid协议设备数据传输方法及装置 Active CN109062844B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810799178.5A CN109062844B (zh) 2018-07-19 2018-07-19 一种ccid协议设备数据传输方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810799178.5A CN109062844B (zh) 2018-07-19 2018-07-19 一种ccid协议设备数据传输方法及装置

Publications (2)

Publication Number Publication Date
CN109062844A CN109062844A (zh) 2018-12-21
CN109062844B true CN109062844B (zh) 2019-04-02

Family

ID=64817566

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810799178.5A Active CN109062844B (zh) 2018-07-19 2018-07-19 一种ccid协议设备数据传输方法及装置

Country Status (1)

Country Link
CN (1) CN109062844B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113361670B (zh) * 2021-06-22 2023-01-17 深圳市雪球科技有限公司 一种智能卡个人化处理方法、装置和一种服务器

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103310175A (zh) * 2013-06-24 2013-09-18 飞天诚信科技股份有限公司 一种基于标准ccid协议的多卡槽读卡器的工作方法
CN107992441A (zh) * 2017-12-20 2018-05-04 联想(北京)有限公司 数据传输设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070067539A1 (en) * 2005-09-12 2007-03-22 Neil Morrow Enhanced CCID circuits and systems utilizing USB and PCI functions

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103310175A (zh) * 2013-06-24 2013-09-18 飞天诚信科技股份有限公司 一种基于标准ccid协议的多卡槽读卡器的工作方法
CN107992441A (zh) * 2017-12-20 2018-05-04 联想(北京)有限公司 数据传输设备

Also Published As

Publication number Publication date
CN109062844A (zh) 2018-12-21

Similar Documents

Publication Publication Date Title
CN109756568A (zh) 文件的处理方法、设备及计算机可读存储介质
CN103369707A (zh) 无线网络连接的建立方法及终端设备
CN109902053A (zh) 一种基于双控制器的spi通信方法、终端设备及存储介质
US20170154327A1 (en) Mobile Payment Method and Apparatus and Near Field Communication Device
CN107005062A (zh) 充电方法、移动终端和充电装置
CN108200387A (zh) 一种文件的传输方法、系统及相机
CN109379742A (zh) 一种无线局域网的接入方法、装置和存储介质
CN106464345A (zh) 用于全双工无线通信的干扰管理技术
US20230221764A1 (en) Modular embedded compute appliance docking board, and methods and systems for the same
CN111340243B (zh) 用于联盟学习的方法、装置及联盟学习系统
CN110532294A (zh) 话单合并方法、装置、设备及计算机可读存储介质
CN105469783B (zh) 音频识别方法及装置
CN109062844B (zh) 一种ccid协议设备数据传输方法及装置
CN109068284A (zh) 基于物联网设备之间群组连接的物理层认证方法及系统
CN110019093A (zh) 数据写入方法、装置、设备及介质
CN110505516A (zh) 一种投屏控制方法、装置和系统
CN106851811B (zh) 一种通信设备及增益控制方法
CN108650170A (zh) 一种信息的显示方法及装置
CN109753359B (zh) 一种用于构建资源池的fpga板卡、服务器和系统
CN103957070B (zh) 一种数据帧的定位方法及装置
CN108289165A (zh) 一种基于手机控制相机的实现方法、装置及终端设备
CN103163967A (zh) 无线扩展卡以及用于数据存储的方法
CN104092557B (zh) 数据收集方法、服务器、终端及系统
CN105847216A (zh) 身份认证方法及装置
CN108009110A (zh) 设备识别方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant