命令处理方法及装置与流程

文档序号:15882631发布日期:2018-11-09 18:15阅读:160来源:国知局

本发明属于通信技术领域,尤其涉及命令处理方法及装置。



背景技术:

对于CCID(Chip Card Interface Device,智能卡接口设备),主机操作系统会下发标准CCID命令,Window 7和Windows XP等操作系统还会下发智能卡标准APDU(Application Protocol Data Unit,应用协议数据单元)命令,这会影响到CCID设备的SCSI(Small Computer System Interface,小型计算机系统接口)通信。例如,对于使用CCID通道和SCSI通道的USB(Universal Serial Bus,通用串行总线)Key(密钥)复合设备,在中间件使用SCSI与设备通信时,若主机操作系统下发CCID命令,则会导致插入指令错误,从而影响SCSI通信。



技术实现要素:

鉴于此,本发明实施例提供了一种命令处理方法及装置,以解决现有技术中主机操作系统下发的CCID命令影响SCSI通信的问题。

第一方面,本发明实施例提供了一种命令处理方法,包括:

当检测到CCID命令时,获取所述CCID命令的类型;

若所述CCID命令是标准CCID命令,则处理所述CCID命令;

若所述CCID命令是自定义CCID命令,且COS限定使用SCSI通道进行通信,则不处理所述CCID命令;

若所述CCID命令是所述自定义CCID命令,所述COS未限定使用所述SCSI通道进行通信,且所述COS已开启CCID通道,则使用所述CCID通道的APDU流程处理所述CCID命令;

若所述CCID命令是所述自定义CCID命令,且所述COS未开启所述CCID通道,则不处理所述CCID命令。

第二方面,本发明实施例提供了一种命令处理装置,包括:

CCID命令类型获取单元,用于当检测到CCID命令时,获取所述CCID命令的类型;

第一处理单元,用于若所述CCID命令是标准CCID命令,则处理所述CCID命令;

第二处理单元,用于若所述CCID命令是自定义CCID命令,且COS限定使用SCSI通道进行通信,则不处理所述CCID命令;

第三处理单元,用于若所述CCID命令是所述自定义CCID命令,所述COS未限定使用所述SCSI通道进行通信,且所述COS已开启CCID通道,则使用所述CCID通道的APDU流程处理所述CCID命令;

第四处理单元,用于若所述CCID命令是所述自定义CCID命令,且所述COS未开启所述CCID通道,则不处理所述CCID命令。

本发明实施例与现有技术相比存在的有益效果是:本发明实施例通过当检测到CCID命令时,获取该CCID命令的类型,若该CCID命令是标准CCID命令,则直接处理该CCID命令而不走APDU流程,若该CCID命令是自定义CCID命令,则只有COS开启了CCID通道时才使用CCID通道的APDU流程处理该CCID命令,由此能够正常处理主机操作系统下发的CCID命令,且不影响SCSI通道的正常使用,从而增强了使用CCID通道和SCSI通道的CCID USB Key复合设备的通信稳定性。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的命令处理方法的实现流程图;

图2是本发明另一实施例提供的命令处理方法的实现流程图;

图3是本发明实施例提供的命令处理装置的结构框图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

图1示出了本发明实施例提供的命令处理方法的实现流程图,详述如下:

在步骤S101中,当检测到CCID命令时,获取该CCID命令的类型。

优选地,当检测到CCID命令时,获取该CCID命令的类型具体为:当检测到CCID命令时,接收该CCID命令的一个数据包;根据接收的数据包确定该CCID命令的类型。

在本发明实施例中,当检测到CCID命令时,先接收CCID命令的一个数据包,根据接收的数据包的第一个字节确定该CCID命令的类型。在这里,通过先接收CCID命令的一个数据包,而不直接接收CCID命令的所有数据包,提高了通信效率。

在步骤S102中,若该CCID命令是标准CCID命令,则处理该CCID命令。

其中,标准CCID命令指的是CCID协议定义的命令中非用于发送APDU的命令,如PC_to_RDR_lccPowerOn、PC_to_RDR_lccPowerOff、PC_to_RDR_GetSlotStatus等。

若该CCID命令是标准CCID命令,则直接处理该CCID命令,而不走APDU流程。

优选地,处理该CCID命令包括:接收该CCID命令的剩余的数据包;处理该CCID命令;返回响应信息。

在步骤S103中,若该CCID命令是自定义CCID命令,且COS限定使用SCSI通道进行通信,则不处理该CCID命令。

其中,自定义CCID命令指的是自定义的完成COS(Chip Operating System,片内操作系统)功能的CCID命令。

在本发明实施例中,若COS已经确定使用SCSI通道进行通信,则CCID通道不可用,因此不处理该CCID命令。

优选地,不处理CCID命令包括:丢弃接收的所述数据包;返回错误信息。

在这里,返回错误信息具体可以为返回插入指令错误信息。

在步骤S104中,若该CCID命令是自定义CCID命令,COS未限定使用SCSI通道进行通信,且COS已开启CCID通道,则使用CCID通道的APDU流程处理该CCID命令。

优选地,使用CCID通道的APDU流程处理该CCID命令包括:接收该CCID命令的剩余的数据包;使用CCID通道的APDU流程处理该CCID命令;返回响应信息。

在步骤S105中,若该CCID命令是自定义CCID命令,且COS未开启CCID通道,则不处理该CCID命令。

优选地,不处理CCID命令包括:丢弃接收的数据包;返回错误信息。

在这里,返回错误信息具体可以为返回条件不满足的错误信息。

优选地,若该CCID命令是自定义CCID命令,则在使用CCID通道的APDU流程处理该CCID命令之前,该方法还包括:判断是否接收到自定义APDU判定命令,若是,则判定COS已开启CCID通道;若否,则判定COS未开启CCID通道。

在本发明实施例中,自定义APDU判定命令是专用于开启CCID通道的命令,若接收到自定义APDU判定命令,则判定COS已开启CCID通道。

图2示出了本发明另一实施例提供的命令处理方法的实现流程图,参照图2:

在步骤S201中,当检测到CCID命令时,获取该CCID命令的类型;

在步骤S202中,根据该CCID命令的类型判断该CCID命令是否为标准CCID命令,若是,则执行步骤S203;若否,则执行步骤S204;

在步骤S203中,处理该CCID命令;

在步骤S204中,判断COS是否限定SCSI通道进行通信,若是,则执行步骤S205;若否,则执行步骤S206;

在步骤S205中,不处理该CCID命令;

在步骤S206中,判断COS是否已开启CCID通道,若是,则执行步骤S207;若否,则执行步骤S205;

在步骤S207中,使用CCID通道的APDU流程处理该CCID命令。

以使用CCID通道和SCSI通道的CCID USB Key复合设备为例,接收到的命令可能是CCID命令或者SCSI命令。SCSI命令包括标准SCSI命令和APDU命令。CCID命令包括标准CCID命令和自定义CCID命令。若先接收到的是标准SCSI命令,则需要立即处理该响应该标准SCSI命令,不影响COS选择协议类型。若先接收到的是SCSI通道的APDU命令,则后续限定使用SCSI协议进行通信。在限定使用SCSI协议进行通信的过程中,若接收到SCSI命令或者标准CCID命令,则进行处理;若接收到除标准CCID命令以外的其他类型的CCID命令,则不处理,并返回错误信息。若先接收到的是标准CCID命令,则处理并返回响应。若先接收到的是自定义CCID命令,则判断是否接收到自定义APDU判定命令,若是,则处理该自定义CCID命令;若否,则不处理该自定义CCID命令,并返回条件不满足错误信息。

应理解,在本发明实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

本发明实施例通过当检测到CCID命令时,获取该CCID命令的类型,若该CCID命令是标准CCID命令,则直接处理该CCID命令而不走APDU流程,若该CCID命令是自定义CCID命令,则只有COS开启了CCID通道时才使用CCID通道的APDU流程处理该CCID命令,由此能够正常处理主机操作系统下发的CCID命令,且不影响SCSI通道的正常使用,从而增强了使用CCID通道和SCSI通道的CCID USB Key复合设备的通信稳定性。

图3示出了本发明实施例提供的命令处理装置的结构框图,该装置可以用于运行图1或图2所示的命令处理方法。为了便于说明,仅示出了与本发明实施例相关的部分。

参照图3,该装置包括:

CCID命令类型获取单元31,用于当检测到CCID命令时,获取该CCID命令的类型;

第一处理单元32,用于若该CCID命令是标准CCID命令,则处理该CCID命令;

第二处理单元33,用于若该CCID命令是自定义CCID命令,且COS限定使用SCSI通道进行通信,则不处理该CCID命令;

第三处理单元34,用于若该CCID命令是自定义CCID命令,COS未限定使用SCSI通道进行通信,且COS已开启CCID通道,则使用CCID通道的APDU流程处理该CCID命令;

第四处理单元35,用于若该CCID命令是自定义CCID命令,且COS未开启CCID通道,则不处理该CCID命令。

优选地,该装置还包括判断单元,判断单元36包括:

判断子单元361,用于判断是否接收到自定义APDU判定命令;

CCID通道开启判定子单元362,用于若接收到自定义APDU判定命令,则判定COS已开启CCID通道;

CCID通道未开启判定子单元363,用于若未接收到自定义APDU判定命令,则判定COS未开启CCID通道。

优选地,该CCID命令类型获取单元31包括:

数据包接收子单元311,用于当检测到CCID命令时,接收该CCID命令的一个数据包;

CCID命令类型确定子单元312,用于根据接收的数据包确定该CCID命令的类型。

优选地,第一处理单元32具体用于:

若该CCID命令是标准CCID命令,则接收该CCID命令的剩余的数据包,处理该CCID命令,并返回响应信息;

第三处理单元34具体用于:

若该CCID命令是自定义CCID命令,COS未限定使用SCSI通道进行通信,且COS已开启CCID通道,则接收该CCID命令的剩余的数据包,使用CCID通道的APDU流程处理该CCID命令,并返回响应信息。

优选地,第二处理单元33具体用于:

若该CCID命令是自定义CCID命令,且COS限定使用SCSI通道进行通信,则丢弃接收的数据包,并返回错误信息;

第四处理单元35具体用于:

若该CCID命令是自定义CCID命令,且COS未开启CCID通道,则丢弃接收的数据包,并返回错误信息。

本发明实施例通过当检测到CCID命令时,获取该CCID命令的类型,若该CCID命令是标准CCID命令,则直接处理该CCID命令而不走APDU流程,若该CCID命令是自定义CCID命令,则只有COS开启了CCID通道时才使用CCID通道的APDU流程处理该CCID命令,由此能够正常处理主机操作系统下发的CCID命令,且不影响SCSI通道的正常使用,从而增强了使用CCID通道和SCSI通道的CCID USB Key复合设备的通信稳定性。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1