一种可处理多协议APDU命令的方法技术

技术编号:11335095 阅读:134 留言:0更新日期:2015-04-23 03:19
本发明专利技术公开一种可处理多协议APDU命令的方法,属于信息安全领域,所述方法包括:智能密钥设备向上声明自身为SCSI设备和CCID设备,当检测到SCSI接收数据标识置位时,处理SCSI缓存区中的数据,复位SCSI接收数据标识,打开SCSI端点中断;当接收到CCID命令时,处理CCID缓存区中的数据;所述方法还包括:当检测到发生SCSI设备标准命令中断时,执行相应操作并返回相应数据;当检测到发生APDU命令中断时,接收APDU命令数据并保存至SCSI缓存区中,置位SCSI接收数据标识,关闭SCSI端点中断。采用本发明专利技术的技术方法,能够实现单设备处理多协议命令,使用范围更广,产品的兼容性更好。

【技术实现步骤摘要】
一种可处理多协议APDU命令的方法
本专利技术涉及信息安全领域,尤其涉及一种可处理多协议APDU命令的方法。
技术介绍
随着信息产业的快速发展,信息技术的发展不仅给人们的生活带来了极大的便利,还从根本上改变了人们的生活方式、行为方式和价值观念,同时信息技术对经济和社会发展也产生了巨大而深刻的影响。现有的智能密钥设备只能向上声明自身是一个设备,只能分时处理上位机发送的数据,不能实时响应上位机的不同协议的APDU命令,而对于多接口的智能密钥设备也只有一个接口可执行APDU命令,另一个接口只能执行AUTORUN命令,如果主机上把smartcard服务禁止,智能密钥设备则无法进行正常访问。
技术实现思路
本专利技术为解决现有技术中存在的问题,提供了一种可处理多协议APDU命令的方法。本专利技术采用的技术方案是:一种可处理多协议APDU命令的方法,包括:智能密钥设备与上位机建立连接,上电初始化,向所述上位机声明自身为SCSI设备和CCID设备,所述智能密钥设备执行以下操作:步骤S1:复位SCSI接收数据标识,打开SCSI端点中断;步骤S2:等待接收所述上位机发送的CCID命令,并实时检测所述SCSI接收数据标识;当检测到所述SCSI接收数据标识置位时,获取并根据SCSI缓存区中的SCSI数据得到第一APDU数据,对所述第一APDU数据进行处理,得到SCSI处理结果,将所述SCSI处理结果返回所述上位机,复位所述SCSI接收数据标识,打开SCSI端点中断,返回步骤S2;当接收到CCID命令时,根据接收到的CCID命令中的CCID数据得到第二APDU数据并保存至CCID缓存区中,对所述第二APDU数据进行处理,得到CCID处理结果,将所述CCID处理结果返回所述上位机,返回步骤S2;所述方法还包括:当所述智能密钥设备检测到发生SCSI端点中断时,判断SCSI端点中断类型,如果是SCSI设备标准命令中断,则执行相应操作并返回相应数据;如果是APDU命令中断,则接收APDU命令中的SCSI数据并保存至所述SCSI缓存区中,置位所述SCSI接收数据标识,关闭SCSI端点中断。所述步骤S2中,当所述智能密钥设备未接收到所述上位机发送的CCID命令,且检测SCSI接收数据标识未置位时,还包括:步骤a0:判断是否处理按键操作,如果是,则执行步骤a1,否则不响应按键,返回步骤S2;步骤a1:等待接收按键操作,当接收到按键操作后,判断接收到的按键类型,如果是确认键,则执行步骤a2,如果是取消键,则执行步骤a3,如果是翻页键,则执行步骤a4;步骤a2:获取并根据独享标识执行相应的确认操作,更新所述独享标识,并向上位机返回成功响应,返回步骤S2;步骤a3:获取并根据独享标识执行相应的取消操作,更新所述独享标识,并向上位机返回失败响应,返回步骤S2;步骤a4:获取并根据独享标识执行相应的翻页操作,并向上位机返回翻页成功响应,返回步骤a1。所述对所述第一APDU数据进行处理,得到SCSI处理结果,将所述SCSI处理结果返回所述上位机,复位所述SCSI接收数据标识,打开SCSI端点中断,返回步骤S2,具体为:步骤c1-00:获取并判断所述独享标识,如果所述独享标识为第一初值,则将所述独享标识置为SCSI独享,执行步骤c1-01,如果所述独享标识为SCSI独享,则执行步骤c1-01,如果所述独享标识为CCID独享,则向上位机返回当前正忙响应,返回步骤S2;步骤c1-01:根据所述第一APDU数据,判断接收到的命令的类型,如果是哈希命令,则执行步骤c2-02,如果是签名命令,则执行步骤c3-03;步骤c2-02:解析所述第一APDU数据,得到第一哈希数据和SCSI显示数据,对所述第一哈希数据进行哈希计算,得到第一哈希结果并保存,复位所述SCSI接收数据标识,打开SCSI端点中断,向上位机返回成功响应,返回步骤S2;步骤c3-03:从SCSI显示数据中获取当前SCSI显示数据并显示,置位允许按键标识,向上位机返回成功响应,复位所述SCSI接收数据标识,打开SCSI端点中断,返回步骤S2;所述对所述第二APDU数据进行处理,得到CCID处理结果,将所述CCID处理结果返回所述上位机,返回步骤S2,具体为:步骤c1-10:获取并判断所述独享标识,如果所述独享标识为第一初值,则将所述独享标识置为CCID独享,执行步骤c1-11,如果所述独享标识为CCID独享,则执行步骤c1-11,如果所述独享标识为SCSI独享,则向上位机返回当前正忙响应,返回步骤S2;步骤c1-11:根据所述第二APDU数据,判断接收到的命令的类型,如果是哈希命令,则执行步骤c2-12,如果是签名命令,则执行步骤c3-13;步骤c2-12:解析所述第二APDU数据,得到第二哈希数据和CCID显示数据,对所述第二哈希数据进行哈希计算,得到第二哈希结果并保存,向上位机返回成功响应,返回步骤S2;步骤c3-13:从CCID显示数据中获取当前CCID显示数据并显示,置位允许按键标识,向上位机返回成功响应,返回步骤S2。所述步骤c2-02之前还包括:判断所述第一APDU数据是否符合预设格式,如果是,则执行步骤c2-02,否则向上位机返回错误响应,返回步骤S2;所述步骤c2-12之前还包括:判断所述第二APDU数据是否符合预设格式,如果是,则执行步骤c2-12,否则向上位机返回错误响应,返回步骤S2。所述步骤a0具体为:判断所述允许按键标识是否置位,如果是,则处理按键操作,执行步骤a1,否则不响应按键,返回步骤S2。所述步骤a2,具体为:步骤a2-1:获取并判断所述独享标识的类型,如果是SCSI独享,则执行步骤a2-2,如果是CCID独享,则执行步骤a2-3,如果是第一初值,则不响应按键,返回步骤S2;步骤a2-2:对所述第一哈希结果执行签名操作,得到第一签名结果,将所述独享标识置为第一初值,复位所述允许按键标识,根据所述第一签名结果生成签名成功响应并返回上位机,返回步骤S2;步骤a2-3:对所述第二哈希结果执行签名操作,得到第二签名结果,将所述独享标识置为第一初值,复位所述允许按键标识,根据所述第二签名结果生成签名成功响应并返回上位机,返回步骤S2。所述步骤a3,具体为:步骤a3-1:获取并判断独享标识的类型,如果是SCSI独享,则执行步骤a3-2,如果是CCID独享,则执行步骤a3-3,如果是第一初值,则不响应按键,返回步骤S2;步骤a3-2:删除所述第一哈希结果和所述SCSI显示数据,将所述独享标识置为第一初值,复位所述允许按键标识,向上位机返回失败响应,返回步骤S2;步骤a3-3:删除所述第二哈希结果和所述CCID显示数据,将所述独享标识置为第一初值,复位所述允许按键标识,向上位机返回失败响应,返回步骤S2。所述步骤a1中,当所述翻页键为上翻键时,所述步骤a4具体为:步骤d1-01:获取并判断所述独享标识,如果是SCSI独享,则执行步骤d2-02,如果是CCID独享,则执行步骤d3-03,如果是第一初值,则不响应按键,返回步骤S2;步骤d2-02:从所述SCSI显示数据中获取当前SCSI显示数据之前的SCSI显示数据,作为当前SCSI显示数据并显示,返回步骤a1;步骤d3-03:从所述CC本文档来自技高网...
一种可处理多协议APDU命令的方法

【技术保护点】
一种可处理多协议APDU命令的方法,其特征在于,包括:智能密钥设备与上位机建立连接,上电初始化,向所述上位机声明自身为SCSI设备和CCID设备,所述智能密钥设备执行以下操作:步骤S1:复位SCSI接收数据标识,打开SCSI端点中断;步骤S2:等待接收所述上位机发送的CCID命令,并实时检测所述SCSI接收数据标识;当检测到所述SCSI接收数据标识置位时,获取并根据SCSI缓存区中的SCSI数据得到第一APDU数据,对所述第一APDU数据进行处理,得到SCSI处理结果,将所述SCSI处理结果返回所述上位机,复位所述SCSI接收数据标识,打开SCSI端点中断,返回步骤S2;当接收到CCID命令时,根据接收到的CCID命令中的CCID数据得到第二APDU数据并保存至CCID缓存区中,对所述第二APDU数据进行处理,得到CCID处理结果,将所述CCID处理结果返回所述上位机,返回步骤S2;所述方法还包括:当所述智能密钥设备检测到发生SCSI端点中断时,判断SCSI端点中断类型,如果是SCSI设备标准命令中断,则执行相应操作并返回相应数据;如果是APDU命令中断,则接收APDU命令中的SCSI数据并保存至所述SCSI缓存区中,置位所述SCSI接收数据标识,关闭SCSI端点中断。...

【技术特征摘要】
1.一种可处理多协议APDU命令的方法,其特征在于,包括:智能密钥设备与上位机建立连接,上电初始化,向所述上位机声明自身为SCSI设备和CCID设备,所述智能密钥设备执行以下操作:步骤S1:复位SCSI接收数据标识,打开SCSI端点中断;步骤S2:等待接收所述上位机发送的CCID命令,并实时检测所述SCSI接收数据标识;当检测到所述SCSI接收数据标识置位时,获取并根据SCSI缓存区中的SCSI数据得到第一APDU数据,对所述第一APDU数据进行处理,得到SCSI处理结果,将所述SCSI处理结果返回所述上位机,复位所述SCSI接收数据标识,打开SCSI端点中断,返回步骤S2;当接收到CCID命令时,根据接收到的CCID命令中的CCID数据得到第二APDU数据并保存至CCID缓存区中,对所述第二APDU数据进行处理,得到CCID处理结果,将所述CCID处理结果返回所述上位机,返回步骤S2;所述方法还包括:当所述智能密钥设备检测到发生SCSI端点中断时,判断SCSI端点中断类型,如果是SCSI设备标准命令中断,则执行相应操作并返回相应数据;如果是APDU命令中断,则接收APDU命令中的SCSI数据并保存至所述SCSI缓存区中,置位所述SCSI接收数据标识,关闭SCSI端点中断。2.根据权利要求1所述的方法,其特征在于,所述步骤S2中,当所述智能密钥设备未接收到所述上位机发送的CCID命令,且检测SCSI接收数据标识未置位时,还包括:步骤a0:判断是否处理按键操作,如果是,则执行步骤a1,否则不响应按键,返回步骤S2;步骤a1:等待接收按键操作,当接收到按键操作后,判断接收到的按键类型,如果是确认键,则执行步骤a2,如果是取消键,则执行步骤a3,如果是翻页键,则执行步骤a4;步骤a2:获取并根据独享标识执行相应的确认操作,更新所述独享标识,并向上位机返回成功响应,返回步骤S2;步骤a3:获取并根据独享标识执行相应的取消操作,更新所述独享标识,并向上位机返回失败响应,返回步骤S2;步骤a4:获取并根据独享标识执行相应的翻页操作,并向上位机返回翻页成功响应,返回步骤a1。3.根据权利要求2所述的方法,其特征在于,所述对所述第一APDU数据进行处理,得到SCSI处理结果,将所述SCSI处理结果返回所述上位机,复位所述SCSI接收数据标识,打开SCSI端点中断,返回步骤S2,具体为:步骤c1-00:获取并判断所述独享标识,如果所述独享标识为第一初值,则将所述独享标识置为SCSI独享,执行步骤c1-01,如果所述独享标识为SCSI独享,则执行步骤c1-01,如果所述独享标识为CCID独享,则向上位机返回当前正忙响应,返回步骤S2;步骤c1-01:根据所述第一APDU数据,判断接收到的命令的类型,如果是哈希命令,则执行步骤c2-02,如果是签名命令,则执行步骤c3-03;步骤c2-02:解析所述第一APDU数据,得到第一哈希数据和SCSI显示数据,对所述第一哈希数据进行哈希计算,得到第一哈希结果并保存,复位所述SCSI接收数据标识,打开SCSI端点中断,向上位机返回成功响应,返回步骤S2;步骤c3-03:从SCSI显示数据中获取当前SCSI显示数据并显示,置位允许按键标识,向上位机返回成功响应,复位所述SCSI接收数据标识,打开SCSI端点中断,返回步骤S2;所述对所述第二APDU数据进行处理,得到CCID处理结果,将所述CCID处理结果返回所述上位机,返回步骤S2,具体为:步骤c1-10:获取并判断所述独享标识,如果所述独享标识为第一初值,则将所述独享标识置为CCID独享,执行步骤c1-11,如果所述独享标识为CCID独享,则执行步骤c1-11,如果所述独享标识为SCSI独享,则向上位机返回当前正忙响应,返回步骤S2;步骤c1-11:根据所述第二APDU数据,判断接收到的命令的类型,如果是哈希命令,则执行步骤c2-12,如果是签名命令,则执行步骤c3-13;步骤c2-12:解析所述第二APDU数据,得到第二哈希数据和CCID显示数据,对所述第二哈希数据进行哈希计算,得到第二哈希结果并保存,向上位机返回成功响应,返回步骤S2;步骤c3-13:从CCID显示数据中获取当前CCID显示数据并显示,置位允许按键标识,向上位机返回成功响应,返回步骤S2。4.根据权利要求3所述的方法,其特征在于,所述步骤c2-02之前还包括:判断所述第一APDU数据是否符合预设格式,如果是,则执行步骤c2-02,否则向上位机返回错误响应,返回步骤S2;所述步骤c2-12之前还包括:判断所述第二APDU数据是否符合预设格式,如果是,则执行步骤c2-12,否则向上位机返回错误响应,返回步骤S2。5.根据权利要求3所述的方法,其特征在于,所述步骤a0具体为:判断所述允许按键标识是否置位,如果是,则处理按键操作,执行步骤a1,否则不响应按键,返回步骤S2。6.根据权利要求5所述的方法,其特征在于,所述步骤a2,具体为:步骤a2-1:获取并判断所述独享标识的类型,如果是SCSI独享,则执行步骤a2-2,如果是CCID独享,则执行步骤a2-3,如果是第一初值,则不响应按键,返回步骤S2;步骤a2-2:对所述第一哈希结果执行签名操作,得到第一签名结果,将所述独享标识置为第一初值,复位所述允许按键标识,根据所述第一签名结果生成签名成功响应并返回上位机,返回步骤S2;步骤a2-3:对所述第二哈希结果执行签名操作,得到第二签名结果,将所述独享标识置为第一初值,复位所述允许按键标识,根据所述第二签名结果生成签名成功响应并返回上位机,返回步骤S2。7.根据权利要求5所述的方法,其特征在于,所述步骤a3,具体为:步骤a3-1:获取并判断独享标识的类型,如果是SCSI独享,则执行步骤a3-2,如果是CCID独享,则执行步骤a3-3,如果是第一初值,则不响应按键,返回步骤S2;步骤a3-2:删除所述第一哈希结果和所述SCSI显示数据,将所述独享标识置为第一初值,复位所述允许按键标识,向上位机返回失败响应,返回步骤S2;步骤a3-3:删除所述第二哈希结果和所述CCID显示数据,将所述独享标识置为第一初值,复位所述允许按键标识,向上位机返回失败响应,返回步骤S2。8.根据权利要求5所述的方法,其特征在于,所述步骤a1中,当所述翻页键为上翻键时,所述步骤a4具体为:步骤d1-01:获取并判断所述独享标识,如果是SCSI独享,则执行步骤d2-02,如果是CCID独享,则执行步骤d3-03,如果是第一初值,则不响应按键,返回步骤S2;步骤d2-02:从所述SCSI显示数据中获取当前SCSI显示数据之前的SCSI显示数据,作为当前SCSI显示数据并显示,返回步骤a1;步骤d3-03:从所述CCID显示数据中获取当前CCID显示数据之前的CCID显示数据,作为当前CCID显示数据并显示,返回步骤a1。9.根据权利要求5所述的方法,其特征在于,所述步骤a1中,当所述翻页键为下翻键时,所述步骤a4具体为;步骤d1-11:获取并判断所述独享标识,如果是SCSI独享,则执行步骤d2-12,如果是CCID独享,则执行步骤d3-13,如果是第一初值,则不响应按键,返回步骤S2;步骤d2-12:从所述SCSI显示数据中获取当前SCSI显示数据之后的SCSI显示数据,作为当前SCSI显示数据并显示,返回步骤a1;步骤d3-13:从所述CCID显示数据中获取当前CCID显示数据之后的CCID显示数据,作为当前CCID显示数据并显示,返回步骤a1。10.根据权利要求1所述的方法,其特征在于,所述步骤S2中,当所述智能密钥设备未接收到所述上位机发送的CCID命令,且检测SCSI接收数据标识未置位时,还包括:步骤b0:判断是否处理按键操作,如果是,则执行步骤b1,否则不响应按键,返回步骤S2;步骤b1:当接收到按键操作后,判断接收到的按键类型,如果是确认键,则执行步骤b2,如果是取消键,则执行步骤b3,如果是翻页键,则执行步骤b4;步骤b2:获取并根据当前操作标识执行相应的确认操作,更新所述当前操作标识,并向上位机返回成功响应,返回步骤S2;步骤b3:获取并根据当前操作标识执行相应的取消操作,更新所述当前操作标识,并向上位机返回失败响应,返回步骤S2;步骤b4:执行翻页操作,根据翻页后显示信息,更新当前操作标识,向所述上位机返回翻页成功响应,返回步骤b1。11.根据权利要求10所述的方法,其特征在于,所述对所述第一APDU数据进行处理,得到SCSI处理结果,将所述SCSI处理结果返回所述上位机,复位所述SCSI接收数据标识,打开SCSI端点中断,返回步骤S2,具体为:步骤e1-01:根据所述第一APDU数据,判断接收到的命令的类型,如果是哈希命令,则执行步骤e2-02,如果是签名命令,则执行步骤e3-03;步骤e2-02:解析所述第一APDU数据,得到第一哈希数据和SCSI显示数据,对所述第一哈希数据进行哈希计算,得到第一哈希结果并保存,向上位机返回成功响应,复位所述SCSI接收数据标识,打开SCSI端点中断,返回步骤S2;步骤e3-03:获取并判断当前操作标识,如果是CCID操作标识,则执行步骤e4-04,如果是SCSI操作标识,则执行步骤e3-05,如果是...

【专利技术属性】
技术研发人员:陆舟于华章
申请(专利权)人:飞天诚信科技股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1